Add player argument to ChangeCountersAction (#1549)

* Add source argument to ChangeCountersAction

* Add source argument to usages of ChangeCountersAction in event package

* Update usages in DealDamageAction

* Update usages in trigger package

* Change source argument to player argument

The oracle text refers to the player putting counters, so it's more
logical to have a player argument.

* Add player data to MagicCounterChangeTriggerData

* Update DealDamageAction

* Change to player in event package

* Change to player argument in trigger package

* Add import

* Fix usage in test package

* Fix usage in groovy scripts

* Fix bug
master
Ada Joule 2018-04-10 11:08:37 +07:00 committed by Melvin Zhang
parent 209bb0a6d0
commit 2a0d8c0394
184 changed files with 235 additions and 166 deletions

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.Age,
1
@ -19,6 +20,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.MinusOne,
event.getPermanent().getCounters(MagicCounterType.Age)

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
final int amount = INSTANT_OR_SORCERY_CARD_FROM_ALL_GRAVEYARDS.filter(permanent.getController()).size();
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,amount));
game.logAppendMessage(permanent.getController(), permanent.getName()+" enters the battlefield with "+amount+" +1/+1 counters on it.");
return MagicEvent.NONE;
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent, final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,2));
}
return MagicEvent.NONE;
}

View File

@ -14,7 +14,7 @@
PERMANENT.filter(event) each {
if (it.hasCounters()) {
for (MagicCounterType type : MagicCounterType.values()) {
game.doAction(new ChangeCountersAction(it, type, -it.getCounters(type)));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, type, -it.getCounters(type)));
}
}
if (it.isToken()) {

View File

@ -1,8 +1,8 @@
def action = {
final MagicGame game, final MagicEvent event ->
if (event.isYes()) {
game.doAction(new ChangeCountersAction(event.getPlayer(), MagicCounterType.Energy, -2));
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPlayer(), MagicCounterType.Energy, -2));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.PlusOne, 1));
final MagicPermanent target = event.getRefPermanent();
if (target.isValid()) {
game.doAction(new TapAction(target));

View File

@ -14,8 +14,8 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
if (event.getPermanent().hasCounters(MagicCounterType.PlusOne)) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,-1));
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,-1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,1));
}
});
}

View File

@ -16,7 +16,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
]

View File

@ -46,7 +46,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final int amount = event.getPlayer().getLife();
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, amount));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusOne, amount));
game.doAction(new GainAbilityAction(it, MagicAbility.Trample, MagicStatic.UntilEOT));
});
}

View File

@ -14,6 +14,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.Charge,
event.getRefInt()

View File

@ -5,7 +5,7 @@
final int count = payedCost.getX() >= 5 ?
2 * payedCost.getX() :
payedCost.getX();
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,count));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,count));
return MagicEvent.NONE;
}
}

View File

@ -14,8 +14,8 @@
if (event.isYes()) {
event.processTargetPermanent(game, {
if (it.hasCounters(MagicCounterType.PlusOne)) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,-1));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,-1));
}
});
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game, final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,1));
}
return MagicEvent.NONE;
}

View File

@ -33,7 +33,7 @@ def choice = Positive("target nonartifact creature");
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new AddStaticAction(it,type));
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,1));
});
}
}

View File

@ -39,7 +39,7 @@ def AB = new MagicStatic(MagicLayer.Ability) {
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.Feather,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.Feather,1));
game.doAction(new AddStaticAction(it, PT));
game.doAction(new AddStaticAction(it, AB));
});

View File

@ -14,6 +14,7 @@
final DestroyAction destroy = new DestroyAction(ARTIFACT_OR_ENCHANTMENT.filter(event));
game.doAction(destroy);
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
destroy.getNumDestroyed()

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,2));
game.doAction(new GainAbilityAction(permanent,MagicAbility.FirstStrike,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -16,7 +16,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent equippedCreature = event.getPermanent().getEquippedCreature();
final int amount = equippedCreature.hasSubType(MagicSubType.Vampire) ? 2 : 1;
game.doAction(new ChangeCountersAction(equippedCreature,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(event.getPlayer(),equippedCreature,MagicCounterType.PlusOne,amount));
}
}
]

View File

@ -17,6 +17,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
event.getRefInt()

View File

@ -15,7 +15,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.MinusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.MinusOne,1));
});
}
}

View File

@ -34,7 +34,7 @@ def TARGET_CREATURE_WITH_BOUNTY_COUNTER = new MagicTargetChoice(
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.Tower,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.Tower,1));
});
}
},

View File

@ -14,6 +14,7 @@ def preventAddPlus = new IfDamageWouldBeDealtTrigger(MagicTrigger.REPLACE_DAMAGE
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
event.getRefInt()

View File

@ -6,7 +6,7 @@
otherPermanent.isCreature() &&
otherPermanent.isFriend(permanent) &&
otherPermanent.hasSubType(MagicSubType.Warrior)) {
game.doAction(new ChangeCountersAction(otherPermanent,MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(permanent.getController(),otherPermanent,MagicCounterType.PlusOne,1));
}
return MagicEvent.NONE;
}

View File

@ -14,7 +14,7 @@
event.processTargetPlayer(game, {
game.doAction(new DrawAction(it, 3));
game.doAction(new ChangeLifeAction(it, -3));
game.doAction(new ChangeCountersAction(it, MagicCounterType.Poison, 3));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.Poison, 3));
});
}
}

View File

@ -12,6 +12,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.Shred,
1

View File

@ -2,7 +2,7 @@ def action = {
final MagicGame game, final MagicEvent event ->
if (event.isYes()) {
final MagicPermanent target = event.getRefPermanent();
game.doAction(new ChangeCountersAction(event.getPlayer(), MagicCounterType.Energy, -target.getConvertedCost()));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPlayer(), MagicCounterType.Energy, -target.getConvertedCost()));
game.doAction(new GainControlAction(event.getPlayer(), target));
}
}
@ -22,7 +22,7 @@ def action = {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(event.getPlayer(), MagicCounterType.Energy, 4));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPlayer(), MagicCounterType.Energy, 4));
if (event.getPlayer().getEnergy() >= it.getConvertedCost()) {
game.addEvent(new MagicEvent(
event.getSource(),

View File

@ -15,7 +15,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
ARTIFACT_YOU_CONTROL.filter(it) each {
game.doAction(new ChangeCountersAction(it, MagicCounterType.Rust, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.Rust, 1));
}
ARTIFACT_YOU_CONTROL.filter(it) each {
if (it.getConvertedCost() <= it.getCounters(MagicCounterType.Rust)) {

View File

@ -21,7 +21,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,event.getRefInt()));
});
}
}

View File

@ -15,9 +15,9 @@
final MagicEvent sacrifice = new MagicSacrificePermanentEvent(event.getSource(), SACRIFICE_CREATURE);
if (event.isYes() && sacrifice.isSatisfied()) {
game.addEvent(sacrifice);
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.PlusOne, 1));
} else {
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusOne, -1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.PlusOne, -1));
}
}
}

View File

@ -25,8 +25,8 @@ def choice = MagicTargetChoice.Positive("another target creature you control wit
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
if (it.hasCounters(MagicCounterType.PlusOne)) {
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, -1));
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusOne, -1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.PlusOne, 1));
}
});
}

View File

@ -17,7 +17,7 @@ def choice = Positive("target creature you control");
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,event.getRefInt()));
});
}
}

View File

@ -25,7 +25,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
game.doAction(new ChangeLifeAction(it, -2));
game.doAction(new ChangeCountersAction(it, MagicCounterType.Poison, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.Poison, 1));
game.doAction(new MillLibraryAction(it, 6));
});
}

View File

@ -15,7 +15,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new CounterItemOnStackAction(event.getRefCardOnStack()));
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.Depletion,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.Depletion,1));
if (event.getPermanent().getCounters(MagicCounterType.Depletion) >= 3) {
game.doAction(new SacrificeAction(event.getPermanent()));
}

View File

@ -19,7 +19,7 @@
final MagicPermanent perm ->
final MagicGame G = perm.getGame();
if (perm.hasSubType(MagicSubType.Angel)) {
G.doAction(new ChangeCountersAction(perm,MagicCounterType.PlusOne,2));
G.doAction(new ChangeCountersAction(event.getPlayer(),perm,MagicCounterType.PlusOne,2));
}
}));
});

View File

@ -14,11 +14,13 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
event.getPlayer().getHandSize()
));
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
-it.getHandSize()

View File

@ -17,7 +17,7 @@
if (event.isYes() && sac.isSatisfied()) {
game.addEvent(sac);
game.doAction(new TapAction(perm));
game.doAction(new ChangeCountersAction(perm,MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),perm,MagicCounterType.PlusOne,1));
}
}
}

View File

@ -25,7 +25,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent SN = event.getPermanent();
if (MagicCondition.NOT_MONSTROUS_CONDITION.accept(SN)) {
game.doAction(new ChangeCountersAction(SN, MagicCounterType.PlusOne, event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(), SN, MagicCounterType.PlusOne, event.getRefInt()));
game.doAction(ChangeStateAction.Set(SN, MagicPermanentState.Monstrous));
}
}

View File

@ -14,7 +14,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetCardOnStack(game, {
game.doAction(new CounterItemOnStackAction(it));
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,it.getConvertedCost()));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(),MagicCounterType.PlusOne,it.getConvertedCost()));
});
}
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,2));
game.doAction(new GainAbilityAction(permanent,MagicAbility.Fear,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -25,7 +25,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusTwo, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusTwo, 1));
});
}
}

View File

@ -26,12 +26,14 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.MinusTwo,
-1
));
if (event.getRefPermanent().hasSubType(MagicSubType.Thrull)) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOnePlusZero,
1

View File

@ -16,7 +16,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final int amount = it.hasSubType(MagicSubType.Human) ? 2 : 1;
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,amount));
});
}
}

View File

@ -11,7 +11,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPlayer(), MagicCounterType.Energy, event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPlayer(), MagicCounterType.Energy, event.getRefInt()));
}
}
]

View File

@ -17,7 +17,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processRefPermanent(game, {
game.doAction(new ChangeCountersAction(it,MagicCounterType.MinusZeroMinusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.MinusZeroMinusOne,1));
});
}
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,2));
game.doAction(new GainAbilityAction(permanent,MagicAbility.Flying,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -32,7 +32,7 @@
event.getPermanent(),
MagicAbility.Indestructible
));
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
]

View File

@ -32,7 +32,7 @@
event.getPermanent(),
MagicAbility.Flying
));
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
]

View File

@ -1,6 +1,6 @@
def action = {
final MagicGame game, final MagicEvent event ->
game.doAction(new ChangeCountersAction(event.getRefPermanent(),MagicCounterType.PlusOne,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getRefPermanent(),MagicCounterType.PlusOne,1));
game.doAction(new GainAbilityAction(
event.getRefPermanent(),
event.getChosenColor().getProtectionAbility()

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (permanent.isController(damage.getTarget())) {
final int amount = damage.replace();
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.Depletion,amount));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.Depletion,amount));
}
return MagicEvent.NONE;
}

View File

@ -17,7 +17,7 @@
event.processTargetPermanent(game, {
final int amount=event.getRefPermanent().getConvertedCost();
game.logAppendValue(event.getPlayer(),amount);
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, amount));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusOne, amount));
});
}
}

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.Age,
1

View File

@ -43,7 +43,7 @@ def PreventAllDamage = new PreventDamageTrigger() {
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final int amt = event.getPlayer().getOpponent().getNrOfPermanents(MagicType.Creature);
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.Loyalty,amt));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.Loyalty,amt));
}
},
new MagicPlaneswalkerActivation(0) {

View File

@ -27,7 +27,7 @@ def TARGET_PERMANENT_WITH_COUNTERS = new MagicTargetChoice(
source,
TARGET_PERMANENT_WITH_COUNTERS,
this,
"Double the number of each kind of counter on target permanent\$."
"Doubles the number of each kind of counter on target permanent\$."
);
}
@Override
@ -36,6 +36,7 @@ def TARGET_PERMANENT_WITH_COUNTERS = new MagicTargetChoice(
for (final MagicCounterType counterType : MagicCounterType.values()) {
if (it.hasCounters(counterType)) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
it,
counterType,
it.getCounters(counterType)

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.Age,
1

View File

@ -13,7 +13,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPlayer(), MagicCounterType.Energy, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPlayer(), MagicCounterType.Energy, 1));
}
}
,

View File

@ -15,7 +15,7 @@
event.processTargetPermanent(game, {
game.doAction(new MillLibraryAction(event.getPlayer(),3));
final int amount = CREATURE_CARD_FROM_GRAVEYARD.filter(event).size();
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,amount))
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,amount))
});
}
}

View File

@ -16,7 +16,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
}

View File

@ -24,7 +24,7 @@
final MagicPermanent permanent=event.getPermanent();
event.processTargetPermanent(game, {
game.doAction(new SacrificeAction(it));
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(),permanent,MagicCounterType.PlusOne, 1));
game.doAction(new GainAbilityAction(permanent, MagicAbility.Flying, MagicStatic.Forever));
game.doAction(new GainAbilityAction(permanent, MagicAbility.Trample, MagicStatic.Forever));
final MagicEvent newEvent=executeTrigger(game, permanent, MagicPayedCost.NO_COST);

View File

@ -22,7 +22,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent creature = event.getPermanent();
final int amount = creature.getPower();
game.doAction(new ChangeCountersAction(creature,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(event.getPlayer(),creature,MagicCounterType.PlusOne,amount));
game.logAppendX(event.getPlayer(),amount);
}
}

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent otherPermanent) {
final MagicPlayer player = permanent.getController();
game.doAction(new ChangeCountersAction(permanent, MagicCounterType.PlusOne, 5));
game.doAction(new ChangeCountersAction(permanent.getController(), permanent, MagicCounterType.PlusOne, 5));
game.logAppendMessage(player,"${player.getName()} puts 5 +1/+1 counters on ${permanent.getName()}")
return MagicEvent.NONE;
}

View File

@ -11,7 +11,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final int amount = event.getPlayer().getNrOfPermanents(MagicType.Creature);
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.Loyalty, amount));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.Loyalty, amount));
}
}
]

View File

@ -15,7 +15,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final int amount = game.getCreatureDiedThisTurn() ? 3 : 1;
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,amount));
});
}
}

View File

@ -50,7 +50,7 @@ def PutHydra = new MagicTrigger<Integer>() {
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent SN = event.getPermanent();
if (MagicCondition.NOT_MONSTROUS_CONDITION.accept(SN)) {
game.doAction(new ChangeCountersAction(SN, MagicCounterType.PlusOne, event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(), SN, MagicCounterType.PlusOne, event.getRefInt()));
game.doAction(ChangeStateAction.Set(SN, MagicPermanentState.Monstrous));
game.executeTrigger(PutHydra, SN, SN, event.getRefInt());
}

View File

@ -24,7 +24,7 @@ def choice = Positive("target creature");
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
final int amount = event.getPlayer().getNrOfPermanents(MagicSubType.Elf);
game.doAction(new ChangeCountersAction(it,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(event.getPlayer(),it,MagicCounterType.PlusOne,amount));
});
}
}

View File

@ -18,7 +18,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTarget(game, {
game.doAction(new DealDamageAction(event.getSource(), it, event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getSource(), MagicCounterType.Doom, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getSource(), MagicCounterType.Doom, 1));
});
}
}

View File

@ -13,7 +13,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
game.doAction(new GainControlAction(it,event.getPermanent()));
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.Charge,1));
game.doAction(new ChangeCountersAction(it,event.getPermanent(),MagicCounterType.Charge,1));
});
}
},
@ -61,7 +61,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.Charge, event.isMode(1) ? 1 : -1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.Charge, event.isMode(1) ? 1 : -1));
}
}
]

View File

@ -12,6 +12,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
CREATURE_YOU_CONTROL.filter(event) each {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
it,
MagicCounterType.PlusOne,
it.getCounters(MagicCounterType.PlusOne)

View File

@ -13,7 +13,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
]

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,3));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,3));
game.doAction(new GainAbilityAction(permanent,MagicAbility.Trample,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -16,7 +16,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
}

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.getTarget() == permanent) {
final int amount = damage.replace();
game.doAction(new ChangeCountersAction(permanent, MagicCounterType.MinusOne, amount));
game.doAction(new ChangeCountersAction(permanent.getController(), permanent, MagicCounterType.MinusOne, amount));
}
return MagicEvent.NONE;
}

View File

@ -38,7 +38,7 @@ def ST = new MagicStatic(MagicLayer.Type) {
event.processTargetPermanent(game, {
final int amount=event.getRefInt();
game.logAppendValue(event.getPlayer(),amount);
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, amount));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusOne, amount));
if (!it.hasType(MagicType.Creature) && !it.hasSubType(MagicSubType.Vehicle)) {
game.doAction(new BecomesCreatureAction(it, PT, ST));
}

View File

@ -40,7 +40,7 @@ def searchAction = {
for (final MagicPlayer player : game.getPlayers().minus(event.getPlayer())) {
for (final MagicPermanent permanent : player.getPermanents()) {
if (permanent.hasType(MagicType.Creature)) {
game.doAction(new ChangeCountersAction(permanent, MagicCounterType.MinusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), permanent, MagicCounterType.MinusOne, 1));
}
}}

View File

@ -25,6 +25,7 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
it,
MagicCounterType.PlusZeroPlusOne,
it.getConvertedCost()

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,5));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,5));
}
return MagicEvent.NONE;
}

View File

@ -24,10 +24,10 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
final MagicPermanent permanent = event.getPermanent();
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.Hatchling,1));
game.doAction(new ChangeCountersAction(event.getPlayer(),permanent,MagicCounterType.Hatchling,1));
final int counters = permanent.getCounters(MagicCounterType.Hatchling);
if (counters >= 5) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.Hatchling,-counters));
game.doAction(new ChangeCountersAction(event.getPlayer(),permanent,MagicCounterType.Hatchling,-counters));
game.doAction(new TransformAction(permanent));
}
}

View File

@ -14,7 +14,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isYes()){
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.Quest,1));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.Quest,1));
}
}
}

View File

@ -11,7 +11,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.Time,2));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.Time,2));
game.doAction(new AddTriggerAction(event.getPermanent(), FadeVanishCounterTrigger.Time));
}
}

View File

@ -24,7 +24,7 @@
final MagicPermanent permanent=event.getPermanent();
event.processTargetPermanent(game, {
game.doAction(new SacrificeAction(it));
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(event.getPlayer(),permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeLifeAction(event.getPlayer(),2));
final MagicEvent newEvent=executeTrigger(game,permanent,MagicPayedCost.NO_COST);
if (newEvent.isValid()) {

View File

@ -13,7 +13,7 @@ def MUTANT = new MagicStatic(MagicLayer.Type) {
otherPermanent.isFriend(permanent)) {
final int amount = permanent.getPower();
game.doAction(new ChangeCountersAction(otherPermanent,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(permanent.getController(),otherPermanent,MagicCounterType.PlusOne,amount));
game.doAction(new AddStaticAction(otherPermanent,MUTANT));
game.logAppendMessage(
permanent.getController(),

View File

@ -29,7 +29,7 @@ def TARGET_PERMANENT_OR_PLAYER = new MagicTargetChoice(
event.processTarget(game, {
for (final MagicCounterType counterType : MagicCounterType.values()) {
if (it.hasCounters(counterType)) {
game.doAction(new ChangeCountersAction(it, counterType, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, counterType, 1));
}
}
});
@ -44,7 +44,7 @@ def TARGET_PERMANENT_OR_PLAYER = new MagicTargetChoice(
TARGET_PERMANENT_OR_PLAYER,
this,
"For each kind of counter on target permanent or player\$, " +
"give that permanent or player another counter of that kind."
"PN gives that permanent or player another counter of that kind."
);
}
@Override
@ -52,7 +52,7 @@ def TARGET_PERMANENT_OR_PLAYER = new MagicTargetChoice(
event.processTarget(game, {
for (final MagicCounterType counterType : MagicCounterType.values()) {
if (it.hasCounters(counterType)) {
game.doAction(new ChangeCountersAction(it, counterType, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, counterType, 1));
}
}
});

View File

@ -15,7 +15,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new DrawAction(event.getPlayer(), 1));
game.doAction(new ChangeCountersAction(event.getSource(), MagicCounterType.Hour, -2));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getSource(), MagicCounterType.Hour, -2));
}
}
,

View File

@ -17,7 +17,7 @@
game.doAction(new ReturnCardAction(MagicLocationType.Graveyard,it,event.getPlayer(),{
final MagicPermanent perm ->
final MagicGame G = perm.getGame();
G.doAction(new ChangeCountersAction(perm,MagicCounterType.PlusOne,1));
G.doAction(new ChangeCountersAction(event.getPlayer(),perm,MagicCounterType.PlusOne,1));
}));
});
}

View File

@ -19,12 +19,12 @@
public void executeEvent(final MagicGame game, final MagicEvent event) {
if (event.isMode(1)) {
CREATURE_YOU_CONTROL.filter(event.getRefPlayer()) each {
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getRefPlayer(), it, MagicCounterType.PlusOne, 1));
}
game.doAction(new ChangeLifeAction(event.getRefPlayer(), 4));
} else if (event.isMode(2)) {
CREATURE_YOU_CONTROL.filter(event.getPlayer()) each {
game.doAction(new ChangeCountersAction(it, MagicCounterType.MinusOne, 1));
game.doAction(new ChangeCountersAction(event.getRefPlayer(), it, MagicCounterType.MinusOne, 1));
}
game.doAction(new DealDamageAction(event.getSource(), event.getPlayer(), 4));
}

View File

@ -22,7 +22,7 @@ def A_CREATURE_CARD_FROM_GRAVEYARD = new MagicTargetChoice("a creature card from
final MagicCard exiled = event.getRefCard();
final int amount = exiled.getConvertedCost();
game.logAppendX(event.getPlayer(), amount);
game.doAction(new ChangeCountersAction(event.getPermanent(), MagicCounterType.PlusZeroPlusOne, amount));
game.doAction(new ChangeCountersAction(event.getPlayer(), event.getPermanent(), MagicCounterType.PlusZeroPlusOne, amount));
}
}
]

View File

@ -15,7 +15,7 @@
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,event.getRefInt()));
}
}
]

View File

@ -26,7 +26,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(event.getPermanent(),MagicCounterType.PlusOne,5));
game.doAction(new ChangeCountersAction(event.getPlayer(),event.getPermanent(),MagicCounterType.PlusOne,5));
game.doAction(ChangeStateAction.Set(
event.getPermanent(),
MagicPermanentState.Monstrous

View File

@ -33,6 +33,7 @@ def NONLAND_PERMANENT_WITHOUT_FATE_COUNTER = new MagicPermanentFilterImpl() {
game.doAction(new DestroyAction(NONLAND_PERMANENT_WITHOUT_FATE_COUNTER.filter(event)));
PERMANENT.filter(event) each {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
it,
MagicCounterType.Fate,
-it.getCounters(MagicCounterType.Fate)

View File

@ -16,6 +16,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
event.getRefInt()

View File

@ -23,7 +23,7 @@ def filter = MagicTargetFilterFactory.Permanent("Vampire you control")
MagicLocationType.Exile
));
filter.filter(event) each {
game.doAction(new ChangeCountersAction(it, MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(event.getPlayer(), it, MagicCounterType.PlusOne, 1));
}
}
}

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.PlusOne,
1

View File

@ -7,7 +7,7 @@
// Prevention effect.
damage.prevent();
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,-1));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,-1));
}
return MagicEvent.NONE;
}

View File

@ -15,6 +15,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.MinusOne,
event.getRefInt()

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.Age,
1

View File

@ -4,7 +4,7 @@
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicDamage damage) {
if (damage.getTarget() == permanent) {
final int amount = damage.replace();
game.doAction(new ChangeCountersAction(permanent, MagicCounterType.PlusOne, amount));
game.doAction(new ChangeCountersAction(permanent.getController(), permanent, MagicCounterType.PlusOne, amount));
}
return MagicEvent.NONE;
}

View File

@ -3,6 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(
permanent.getController(),
permanent,
MagicCounterType.Age,
1

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,2));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,2));
game.doAction(new GainAbilityAction(permanent,MagicAbility.Haste,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -3,7 +3,7 @@
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPayedCost payedCost) {
if (payedCost.isKicked()) {
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,3));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,3));
game.doAction(new GainAbilityAction(permanent,MagicAbility.Haste,MagicStatic.Forever));
}
return MagicEvent.NONE;

View File

@ -6,7 +6,7 @@
CREATURE_YOU_CONTROL.except(permanent).filter(permanent) each {
amount = Math.max(amount,it.getPower());
}
game.doAction(new ChangeCountersAction(permanent,MagicCounterType.PlusOne,amount));
game.doAction(new ChangeCountersAction(permanent.getController(),permanent,MagicCounterType.PlusOne,amount));
game.logAppendMessage(permanent.getController(),permanent.getName()+" enters the battlefield with ("+amount+") +1/+1 counters on it.");
return MagicEvent.NONE;
}

View File

@ -12,6 +12,7 @@
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new ChangeCountersAction(
event.getPlayer(),
event.getPermanent(),
MagicCounterType.PlusOne,
event.getRefInt()

View File

@ -2,7 +2,7 @@
new AtYourUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
game.doAction(new ChangeCountersAction(permanent, MagicCounterType.PlusOne, 1));
game.doAction(new ChangeCountersAction(permanent.getController(), permanent, MagicCounterType.PlusOne, 1));
final int amount = permanent.getCounters(MagicCounterType.PlusOne);
return new MagicEvent(
permanent,

Some files were not shown because too many files have changed in this diff Show More