refactor MagicChangeStateAction -> ChangeStateAction

master
ShawnieBoy 2015-04-13 10:22:38 +01:00
parent 47a5011c94
commit 26ae19374c
20 changed files with 56 additions and 56 deletions

View File

@ -4,7 +4,7 @@ import magic.ai.ArtificialScoringSystem;
import magic.model.action.AttachAction;
import magic.model.action.ChangeControlAction;
import magic.model.action.ChangeCountersAction;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import magic.model.action.MagicDestroyAction;
import magic.model.action.MagicRemoveFromPlayAction;
import magic.model.action.MagicSoulbondAction;
@ -771,7 +771,7 @@ public class MagicPermanent extends MagicObjectImpl implements MagicSource,Magic
game.logAppendMessage(getController(),getName()+" is put into its owner's graveyard.");
game.addDelayedAction(new MagicRemoveFromPlayAction(this,MagicLocationType.Graveyard));
} else if (hasState(MagicPermanentState.Destroyed)) {
game.addDelayedAction(MagicChangeStateAction.Clear(this,MagicPermanentState.Destroyed));
game.addDelayedAction(ChangeStateAction.Clear(this,MagicPermanentState.Destroyed));
game.addDelayedAction(new MagicDestroyAction(this));
} else if (toughness-damage<=0) {
game.addDelayedAction(new MagicDestroyAction(this));

View File

@ -33,7 +33,7 @@ public class ChangeControlAction extends MagicAction {
perm.setState(MagicPermanentState.Summoned);
game.doAction(new MagicRemoveFromCombatAction(perm));
game.doAction(MagicChangeStateAction.Clear(perm,MagicPermanentState.ExcludeFromCombat));
game.doAction(ChangeStateAction.Clear(perm,MagicPermanentState.ExcludeFromCombat));
if (perm.getPairedCreature().isValid()) {;
game.doAction(new MagicSoulbondAction(perm,perm.getPairedCreature(),false));

View File

@ -5,22 +5,22 @@ import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.trigger.MagicTriggerType;
public class MagicChangeStateAction extends MagicAction {
public class ChangeStateAction extends MagicAction {
public final MagicPermanent permanent;
public final MagicPermanentState state;
private final boolean set;
private boolean changed;
public static MagicChangeStateAction Set(final MagicPermanent permanent,final MagicPermanentState state) {
return new MagicChangeStateAction(permanent, state, true);
public static ChangeStateAction Set(final MagicPermanent permanent,final MagicPermanentState state) {
return new ChangeStateAction(permanent, state, true);
}
public static MagicChangeStateAction Clear(final MagicPermanent permanent,final MagicPermanentState state) {
return new MagicChangeStateAction(permanent, state, false);
public static ChangeStateAction Clear(final MagicPermanent permanent,final MagicPermanentState state) {
return new ChangeStateAction(permanent, state, false);
}
protected MagicChangeStateAction(final MagicPermanent aPermanent,final MagicPermanentState aState,final boolean aSet) {
protected ChangeStateAction(final MagicPermanent aPermanent,final MagicPermanentState aState,final boolean aSet) {
permanent = aPermanent;
state = aState;
set = aSet;

View File

@ -62,7 +62,7 @@ public class MagicCombatDamageAction extends MagicAction {
combatDamage.add(MagicDamage.Combat(blocker,attacker,power));
}
if (first) {
game.doAction(MagicChangeStateAction.Set(blocker, MagicPermanentState.DealtFirstStrike));
game.doAction(ChangeStateAction.Set(blocker, MagicPermanentState.DealtFirstStrike));
}
}
}
@ -108,7 +108,7 @@ public class MagicCombatDamageAction extends MagicAction {
}
}
if (first) {
game.doAction(MagicChangeStateAction.Set(attacker, MagicPermanentState.DealtFirstStrike));
game.doAction(ChangeStateAction.Set(attacker, MagicPermanentState.DealtFirstStrike));
}
}
}

View File

@ -116,7 +116,7 @@ public class MagicDealDamageAction extends MagicAction {
if (target.isCreature()) {
final MagicPermanent targetPermanent=(MagicPermanent)target;
if (damage.hasNoRegeneration()) {
game.doAction(MagicChangeStateAction.Set(targetPermanent,MagicPermanentState.CannotBeRegenerated));
game.doAction(ChangeStateAction.Set(targetPermanent,MagicPermanentState.CannotBeRegenerated));
}
if (source.hasAbility(MagicAbility.Wither)||source.hasAbility(MagicAbility.Infect)) {
game.doAction(new ChangeCountersAction(targetPermanent,MagicCounterType.MinusOne,dealtAmount));
@ -125,9 +125,9 @@ public class MagicDealDamageAction extends MagicAction {
targetPermanent.setDamage(oldDamage+dealtAmount);
}
if (source.hasAbility(MagicAbility.Deathtouch)) {
game.doAction(MagicChangeStateAction.Set(targetPermanent,MagicPermanentState.Destroyed));
game.doAction(ChangeStateAction.Set(targetPermanent,MagicPermanentState.Destroyed));
}
game.doAction(MagicChangeStateAction.Set(targetPermanent,MagicPermanentState.WasDealtDamage));
game.doAction(ChangeStateAction.Set(targetPermanent,MagicPermanentState.WasDealtDamage));
}
if (target.isPlayer()) {

View File

@ -39,7 +39,7 @@ public class MagicDestroyAction extends MagicAction {
game.doAction(new MagicTapAction(permanent));
game.doAction(new MagicRemoveAllDamageAction(permanent));
game.doAction(new MagicRemoveFromCombatAction(permanent));
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.Regenerated));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.Regenerated));
destroy = false;
}

View File

@ -23,7 +23,7 @@ public class MagicFlipAction extends MagicAction {
if (permanent.isFlipCard() && permanent.isFlipped() == false) {
oldStatics = permanent.getStatics();
game.doAction(MagicChangeStateAction.Set(permanent, MagicPermanentState.Flipped));
game.doAction(ChangeStateAction.Set(permanent, MagicPermanentState.Flipped));
newStatics = permanent.getStatics();
game.removeStatics(permanent, oldStatics);

View File

@ -58,7 +58,7 @@ public class MagicPlayCardFromStackAction extends MagicAction {
permanent.getFirstController().addPermanent(permanent);
if (cardOnStack.isCast() && cardOnStack.getFromLocation() == MagicLocationType.OwnersHand) {
game.doAction(MagicChangeStateAction.Set(permanent, MagicPermanentState.CastFromHand));
game.doAction(ChangeStateAction.Set(permanent, MagicPermanentState.CastFromHand));
}
//comes into play with/as, such as manifest

View File

@ -3,7 +3,7 @@ package magic.model.action;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
public class MagicRegenerateAction extends MagicChangeStateAction {
public class MagicRegenerateAction extends ChangeStateAction {
public MagicRegenerateAction(final MagicPermanent permanent) {
super(permanent,MagicPermanentState.Regenerated,true);
}

View File

@ -22,17 +22,17 @@ public class MagicRemoveFromCombatAction extends MagicAction {
attacking=permanent.hasState(MagicPermanentState.Attacking);
blocking=permanent.hasState(MagicPermanentState.Blocking);
if (attacking) {
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.Attacking));
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.Blocked));
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.DealtFirstStrike));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.Attacking));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.Blocked));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.DealtFirstStrike));
blockingCreatures=new MagicPermanentList(permanent.getBlockingCreatures());
permanent.removeBlockingCreatures();
for (final MagicPermanent blockingCreature : blockingCreatures) {
blockingCreature.setBlockedCreature(MagicPermanent.NONE);
}
} else if (blocking) {
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.Blocking));
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.DealtFirstStrike));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.Blocking));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.DealtFirstStrike));
blockedCreature=permanent.getBlockedCreature();
if (blockedCreature.isValid()) {
permanent.setBlockedCreature(MagicPermanent.NONE);

View File

@ -24,9 +24,9 @@ public class MagicTransformAction extends MagicAction {
oldStatics = permanent.getStatics();
if (permanent.isTransformed()) {
game.doAction(MagicChangeStateAction.Clear(permanent, MagicPermanentState.Transformed));
game.doAction(ChangeStateAction.Clear(permanent, MagicPermanentState.Transformed));
} else {
game.doAction(MagicChangeStateAction.Set(permanent, MagicPermanentState.Transformed));
game.doAction(ChangeStateAction.Set(permanent, MagicPermanentState.Transformed));
}
newStatics = permanent.getStatics();

View File

@ -23,7 +23,7 @@ public class MagicTurnFaceDownAction extends MagicAction {
if (permanent.isFaceDown() == false && permanent.isDoubleFaced() == false) {
oldStatics = permanent.getStatics();
game.doAction(MagicChangeStateAction.Set(permanent, MagicPermanentState.FaceDown));
game.doAction(ChangeStateAction.Set(permanent, MagicPermanentState.FaceDown));
newStatics = permanent.getStatics();
game.removeStatics(permanent, oldStatics);

View File

@ -24,7 +24,7 @@ public class MagicTurnFaceUpAction extends MagicAction {
if (permanent.isFaceDown() && permanent.getRealCardDefinition().isPermanent()) {
oldStatics = permanent.getStatics();
game.doAction(MagicChangeStateAction.Clear(permanent, MagicPermanentState.FaceDown));
game.doAction(ChangeStateAction.Clear(permanent, MagicPermanentState.FaceDown));
newStatics = permanent.getStatics();
game.removeStatics(permanent, oldStatics);

View File

@ -4,7 +4,7 @@ import magic.model.MagicGame;
import magic.model.MagicMappable;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import java.util.ArrayList;
import java.util.Collections;
@ -41,11 +41,11 @@ public class MagicExcludeResult implements MagicMappable<MagicExcludeResult> {
final MagicPermanent permanent=excludePermanents.get(index);
final boolean excludeFromCombat=(excludeFlags&flag)==0;
if (excludeFromCombat) {
game.doAction(MagicChangeStateAction.Set(permanent,MagicPermanentState.ExcludeFromCombat));
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.ExcludeManaSource));
game.doAction(ChangeStateAction.Set(permanent,MagicPermanentState.ExcludeFromCombat));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.ExcludeManaSource));
} else {
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.ExcludeFromCombat));
game.doAction(MagicChangeStateAction.Set(permanent,MagicPermanentState.ExcludeManaSource));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.ExcludeFromCombat));
game.doAction(ChangeStateAction.Set(permanent,MagicPermanentState.ExcludeManaSource));
}
}
}

View File

@ -58,7 +58,7 @@ public enum MagicRuleEventAction {
final Collection<MagicPermanent> targets = game.filterPermanents(event.getPlayer(),filter);
if (matcher.group("noregen") != null) {
for (final MagicPermanent it : targets) {
game.doAction(MagicChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
game.doAction(ChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
}
}
game.doAction(new MagicDestroyAction(targets));
@ -78,7 +78,7 @@ public enum MagicRuleEventAction {
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent it = ARG.itPermanent(event, matcher);
if (matcher.group("noregen") != null) {
game.doAction(MagicChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
game.doAction(ChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
}
game.doAction(new MagicDestroyAction(it));
}
@ -120,7 +120,7 @@ public enum MagicRuleEventAction {
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent it) {
if (matcher.group("noregen") != null) {
game.doAction(MagicChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
game.doAction(ChangeStateAction.Set(it, MagicPermanentState.CannotBeRegenerated));
}
game.doAction(new MagicDestroyAction(it));
}
@ -2006,7 +2006,7 @@ public enum MagicRuleEventAction {
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent it = ARG.itPermanent(event, matcher);
game.doAction(new MagicTapAction(it));
game.doAction(MagicChangeStateAction.Set(
game.doAction(ChangeStateAction.Set(
it,
MagicPermanentState.DoesNotUntapDuringNext
));
@ -2026,7 +2026,7 @@ public enum MagicRuleEventAction {
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent creature) {
game.doAction(new MagicTapAction(creature));
game.doAction(MagicChangeStateAction.Set(
game.doAction(ChangeStateAction.Set(
creature,
MagicPermanentState.DoesNotUntapDuringNext
));
@ -2096,7 +2096,7 @@ public enum MagicRuleEventAction {
return new MagicEventAction() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(MagicChangeStateAction.Set(
game.doAction(ChangeStateAction.Set(
ARG.itPermanent(event, matcher),
MagicPermanentState.DoesNotUntapDuringNext
));
@ -2115,7 +2115,7 @@ public enum MagicRuleEventAction {
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent perm) {
game.doAction(MagicChangeStateAction.Set(
game.doAction(ChangeStateAction.Set(
perm,
MagicPermanentState.DoesNotUntapDuringNext
));
@ -2712,7 +2712,7 @@ public enum MagicRuleEventAction {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne, amount));
game.doAction(MagicChangeStateAction.Set(event.getPermanent(),MagicPermanentState.Monstrous));
game.doAction(ChangeStateAction.Set(event.getPermanent(),MagicPermanentState.Monstrous));
}
};
}

View File

@ -6,7 +6,7 @@ import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.MagicPlayer;
import magic.model.MagicPlayerState;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import magic.model.action.MagicUntapAction;
import magic.model.trigger.MagicTriggerType;
@ -28,11 +28,11 @@ public class MagicUntapPhase extends MagicPhase {
for (final MagicPermanent permanent : player.getPermanents()) {
if (permanent.hasState(MagicPermanentState.Summoned)) {
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.Summoned));
game.doAction(MagicChangeStateAction.Set(permanent,MagicPermanentState.MustPayEchoCost));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.Summoned));
game.doAction(ChangeStateAction.Set(permanent,MagicPermanentState.MustPayEchoCost));
}
if (permanent.hasState(MagicPermanentState.DoesNotUntapDuringNext)) {
game.doAction(MagicChangeStateAction.Clear(permanent,MagicPermanentState.DoesNotUntapDuringNext));
game.doAction(ChangeStateAction.Clear(permanent,MagicPermanentState.DoesNotUntapDuringNext));
} else if (permanent.isTapped() && !permanent.hasAbility(MagicAbility.DoesNotUntap) &&
(!exhausted || !(permanent.isLand() || permanent.isCreature()))) {
game.doAction(new MagicUntapAction(permanent));

View File

@ -5,7 +5,7 @@ import magic.model.MagicManaCost;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.MagicPlayer;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import magic.model.action.MagicSacrificeAction;
import magic.model.choice.MagicMayChoice;
import magic.model.choice.MagicPayManaCostChoice;
@ -41,7 +41,7 @@ public class MagicEchoTrigger extends MagicAtUpkeepTrigger {
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent permanent = event.getPermanent();
if (event.isYes()) {
game.doAction(MagicChangeStateAction.Clear(
game.doAction(ChangeStateAction.Clear(
permanent,
MagicPermanentState.MustPayEchoCost
));

View File

@ -2,7 +2,7 @@ package magic.model.trigger;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
public abstract class MagicWhenBecomesMonstrousTrigger extends MagicWhenBecomesStateTrigger {
public MagicWhenBecomesMonstrousTrigger(final int priority) {
@ -11,7 +11,7 @@ public abstract class MagicWhenBecomesMonstrousTrigger extends MagicWhenBecomesS
public MagicWhenBecomesMonstrousTrigger() {}
public boolean accept(final MagicPermanent permanent, final MagicChangeStateAction data) {
public boolean accept(final MagicPermanent permanent, final ChangeStateAction data) {
return data.state == MagicPermanentState.Monstrous;
}
}

View File

@ -3,11 +3,11 @@ package magic.model.trigger;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import magic.model.event.MagicEvent;
import magic.model.event.MagicSourceEvent;
public abstract class MagicWhenBecomesStateTrigger extends MagicTrigger<MagicChangeStateAction> {
public abstract class MagicWhenBecomesStateTrigger extends MagicTrigger<ChangeStateAction> {
public MagicWhenBecomesStateTrigger(final int priority) {
super(priority);
}
@ -22,11 +22,11 @@ public abstract class MagicWhenBecomesStateTrigger extends MagicTrigger<MagicCha
public static MagicWhenBecomesStateTrigger create(final MagicPermanentState state, final MagicSourceEvent sourceEvent) {
return new MagicWhenBecomesStateTrigger() {
@Override
public boolean accept(final MagicPermanent permanent, final MagicChangeStateAction data) {
public boolean accept(final MagicPermanent permanent, final ChangeStateAction data) {
return data.state == state;
}
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicChangeStateAction data) {
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final ChangeStateAction data) {
return sourceEvent.getEvent(permanent);
}
};
@ -35,11 +35,11 @@ public abstract class MagicWhenBecomesStateTrigger extends MagicTrigger<MagicCha
public static MagicWhenBecomesStateTrigger createSelf(final MagicPermanentState state, final MagicSourceEvent sourceEvent) {
return new MagicWhenBecomesStateTrigger() {
@Override
public boolean accept(final MagicPermanent permanent, final MagicChangeStateAction data) {
public boolean accept(final MagicPermanent permanent, final ChangeStateAction data) {
return data.state == state && data.permanent == permanent;
}
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final MagicChangeStateAction data) {
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent, final ChangeStateAction data) {
return sourceEvent.getEvent(permanent);
}
};

View File

@ -6,7 +6,7 @@ import magic.model.MagicPayedCost;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentState;
import magic.model.action.MagicSacrificeAction;
import magic.model.action.MagicChangeStateAction;
import magic.model.action.ChangeStateAction;
import magic.model.action.MagicPermanentAction;
import magic.model.event.MagicEventAction;
import magic.model.event.MagicEvent;
@ -87,7 +87,7 @@ public abstract class MagicWhenComesIntoPlayTrigger extends MagicTrigger<MagicPa
event.processTargetPermanent(game,new MagicPermanentAction() {
public void doAction(final MagicPermanent permanent) {
game.doAction(new MagicSacrificeAction(permanent));
game.doAction(MagicChangeStateAction.Set(event.getPermanent(), MagicPermanentState.Exploit));
game.doAction(ChangeStateAction.Set(event.getPermanent(), MagicPermanentState.Exploit));
}
});
}