Actions can now work or fail...
This commit is contained in:
@@ -114,4 +114,14 @@ public class PlayEventAction extends AbstractCostToEffectAction {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return _cardPlayed && _playCardEffect.wasSuccessful() && !_playCardEffect.getPlayEventResult().isEventCancelled();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return _cardPlayed && _playCardEffect.wasCarriedOut() && !_playCardEffect.getPlayEventResult().isEventCancelled();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,4 +103,14 @@ public class PlayPermanentAction extends AbstractCostToEffectAction {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return _cardPlayed && _playCardEffect.wasSuccessful();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return _cardPlayed && _playCardEffect.wasCarriedOut();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ public abstract class AbstractCostToEffectAction implements CostToEffectAction {
|
|||||||
private LinkedList<Effect> _processedCosts = new LinkedList<Effect>();
|
private LinkedList<Effect> _processedCosts = new LinkedList<Effect>();
|
||||||
|
|
||||||
private LinkedList<Effect> _effects = new LinkedList<Effect>();
|
private LinkedList<Effect> _effects = new LinkedList<Effect>();
|
||||||
|
private LinkedList<Effect> _processedEffects = new LinkedList<Effect>();
|
||||||
|
|
||||||
private Phase _actionTimeword;
|
private Phase _actionTimeword;
|
||||||
private String _performingPlayer;
|
private String _performingPlayer;
|
||||||
@@ -71,6 +72,24 @@ public abstract class AbstractCostToEffectAction implements CostToEffectAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected final Effect getNextEffect() {
|
protected final Effect getNextEffect() {
|
||||||
return _effects.poll();
|
final Effect effect = _effects.poll();
|
||||||
|
if (effect != null)
|
||||||
|
_processedEffects.add(effect);
|
||||||
|
return effect;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
for (Effect processedCost : _processedCosts) {
|
||||||
|
if (!processedCost.wasSuccessful())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return wasSuccessful();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import java.util.LinkedList;
|
|||||||
public class SubAction implements Action {
|
public class SubAction implements Action {
|
||||||
private Action _action;
|
private Action _action;
|
||||||
private LinkedList<Effect> _effects = new LinkedList<Effect>();
|
private LinkedList<Effect> _effects = new LinkedList<Effect>();
|
||||||
|
private LinkedList<Effect> _processedEffects = new LinkedList<Effect>();
|
||||||
|
|
||||||
public SubAction(Action action) {
|
public SubAction(Action action) {
|
||||||
_action = action;
|
_action = action;
|
||||||
@@ -57,6 +58,33 @@ public class SubAction implements Action {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Effect nextEffect(LotroGame game) {
|
public Effect nextEffect(LotroGame game) {
|
||||||
return _effects.poll();
|
final Effect effect = _effects.poll();
|
||||||
|
if (effect != null)
|
||||||
|
_processedEffects.add(effect);
|
||||||
|
return effect;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
if (!_effects.isEmpty())
|
||||||
|
return false;
|
||||||
|
for (Effect effect : _processedEffects) {
|
||||||
|
if (!effect.wasSuccessful())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
if (!_effects.isEmpty())
|
||||||
|
return false;
|
||||||
|
for (Effect effect : _processedEffects) {
|
||||||
|
if (!effect.wasCarriedOut())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,4 +20,8 @@ public interface Action {
|
|||||||
public String getText(LotroGame game);
|
public String getText(LotroGame game);
|
||||||
|
|
||||||
public Effect nextEffect(LotroGame game);
|
public Effect nextEffect(LotroGame game);
|
||||||
|
|
||||||
|
public boolean wasSuccessful();
|
||||||
|
|
||||||
|
public boolean wasCarriedOut();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,4 +99,14 @@ public class PlayerReconcilesAction implements Action {
|
|||||||
|
|
||||||
return _effectQueue.poll();
|
return _effectQueue.poll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,4 +116,14 @@ public class ResolveSkirmishAction implements Action {
|
|||||||
else
|
else
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,4 +54,14 @@ public class SimpleEffectAction implements Action {
|
|||||||
_effect = null;
|
_effect = null;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,4 +38,14 @@ public abstract class SystemAction implements Action {
|
|||||||
public String getText(LotroGame game) {
|
public String getText(LotroGame game) {
|
||||||
throw new UnsupportedOperationException("System action has no text");
|
throw new UnsupportedOperationException("System action has no text");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasCarriedOut() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean wasSuccessful() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user