mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
@@ -910,6 +910,11 @@ public final class GameActionUtil {
|
||||
}
|
||||
}
|
||||
|
||||
if (ability.getApi() == ApiType.Charm) {
|
||||
// reset chain
|
||||
ability.setSubAbility(null);
|
||||
}
|
||||
|
||||
ability.clearTargets();
|
||||
|
||||
ability.resetOnceResolved();
|
||||
|
||||
@@ -636,7 +636,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
// TODO can't attach later or moveToPlay would attach indirectly
|
||||
// bypass canBeAttached to skip Protection checks when trying to attach multiple auras that would grant protection
|
||||
gameCard.attachToEntity(game.getCardState(attachedTo), sa, true);
|
||||
} else { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||
} else if (gameCard.isAura()) { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -1366,7 +1366,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
// bypass canBeAttached to skip Protection checks when trying to attach multiple auras that would grant protection
|
||||
c.attachToEntity(game.getCardState(attachedTo), sa, true);
|
||||
}
|
||||
else { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||
else if (c.isAura()) { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +231,7 @@ public class DigUntilEffect extends SpellAbilityEffect {
|
||||
params.put("Attach", c);
|
||||
Card attachedTo = p.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString()), params);
|
||||
c.attachToEntity(game.getCardState(attachedTo), sa, true);
|
||||
} else {
|
||||
} else if (c.isAura()) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1063,7 +1063,6 @@ public class PhaseHandler implements java.io.Serializable {
|
||||
// do setup
|
||||
this.setupFirstTurn(goesFirst, startGameHook);
|
||||
|
||||
|
||||
// MAIN GAME LOOP
|
||||
while (!game.isGameOver()) {
|
||||
this.mainLoopStep();
|
||||
|
||||
@@ -80,6 +80,11 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
||||
sVars.put("StoredTransform", String.valueOf(ability.getHostCard().getTransformedTimestamp()));
|
||||
}
|
||||
|
||||
if (sa.getApi() == ApiType.Charm && sa.hasParam("ChoiceRestriction")) {
|
||||
// Remember the Choice here for later handling
|
||||
sa.getHostCard().addChosenModes(sa, sa.getSubAbility().getDescription(), sa.getHostCard().getGame().getPhaseHandler().inCombat());
|
||||
}
|
||||
|
||||
view = new StackItemView(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -291,11 +291,6 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
return;
|
||||
}
|
||||
|
||||
if (sp.getApi() == ApiType.Charm && sp.hasParam("ChoiceRestriction")) {
|
||||
// Remember the Choice here for later handling
|
||||
source.addChosenModes(sp, sp.getSubAbility().getDescription(), game.getPhaseHandler().inCombat());
|
||||
}
|
||||
|
||||
//cancel auto-pass for all opponents of activating player
|
||||
//when a new non-triggered ability is put on the stack
|
||||
if (!sp.isTrigger()) {
|
||||
@@ -312,6 +307,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
||||
sp.changeText();
|
||||
sp.setOriginalAbility(original);
|
||||
original.setXManaCostPaid(null);
|
||||
if (original.getApi() == ApiType.Charm) {
|
||||
// reset chain
|
||||
original.setSubAbility(null);
|
||||
}
|
||||
}
|
||||
|
||||
if (frozen && !sp.hasParam("IgnoreFreeze")) {
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:R G
|
||||
Types:Legendary Creature Gnoll
|
||||
PT:2/2
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerZones$ Battlefield | CheckSVar$ PackTactics | SVarCompare$ GE6 | NoResolvingCheck$ True | TriggerDescription$ Pack tactics — Whenever CARDNAME attacks, if you attacked with creatures with total power 6 or greater this combat, attacking creatures get +1/+0 until end of turn.
|
||||
A:AB$ Pump | Cost$ 2 R G | NumAtt$ +X | NumDef$ +Y | Double$ True | SpellDescription$ Double CARDNAME's power and toughness until end of turn.
|
||||
A:AB$ Pump | Cost$ 2 R G | NumAtt$ +X | NumDef$ +Y | Double$ True | SpellDescription$ Double NICKNAME's power and toughness until end of turn.
|
||||
SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.attacking | NumAtt$ 1
|
||||
SVar:X:Count$CardPower
|
||||
SVar:Y:Count$CardToughness
|
||||
|
||||
Reference in New Issue
Block a user