diff --git a/forge-ai/src/main/java/forge/ai/ability/CountersRemoveAi.java b/forge-ai/src/main/java/forge/ai/ability/CountersRemoveAi.java index 863e3b53c21..24a0ff0fa9d 100644 --- a/forge-ai/src/main/java/forge/ai/ability/CountersRemoveAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/CountersRemoveAi.java @@ -23,6 +23,14 @@ import java.util.Map; public class CountersRemoveAi extends SpellAbilityAi { + @Override + protected boolean canPlayWithoutRestrict(final Player ai, final SpellAbility sa) { + if ("Always".equals(sa.getParam("AILogic"))) { + return true; + } + return super.canPlayWithoutRestrict(ai, sa); + } + /* * (non-Javadoc) * diff --git a/forge-game/src/main/java/forge/game/card/CounterType.java b/forge-game/src/main/java/forge/game/card/CounterType.java index ff44ee8983b..2d20a3c9abd 100644 --- a/forge-game/src/main/java/forge/game/card/CounterType.java +++ b/forge-game/src/main/java/forge/game/card/CounterType.java @@ -269,6 +269,8 @@ public enum CounterType { STUDY("STUDY", 226, 192, 165), + TASK("TASK", 109, 95, 243), + THEFT("THEFT", 255, 176, 125), TIDE("TIDE", 0, 212, 187), diff --git a/forge-gui/res/cardsfolder/a/archery_training.txt b/forge-gui/res/cardsfolder/a/archery_training.txt index 078d3450fe0..dfd669cc03f 100644 --- a/forge-gui/res/cardsfolder/a/archery_training.txt +++ b/forge-gui/res/cardsfolder/a/archery_training.txt @@ -6,7 +6,7 @@ A:SP$ Attach | Cost$ W | AILogic$ Pump | ValidTgts$ Creature T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your upkeep, you may put an arrow counter on CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ ARROW | CounterNum$ 1 S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddAbility$ ArcheryDamage | AddSVar$ DBArcheryDamage & ArcheryX & DBArcheryCleanup | Description$ Enchanted creature has "{T}: This creature deals X damage to target attacking or blocking creature, where X is the number of arrow counters on CARDNAME." -SVar:ArcheryDamage:AB$ Pump | Cost$ T | ImprintCards$ OriginalHost | SubAbility$ DBArcheryDamage | SpellDescription$ CARDNAME deals X damage to target attacking or blocking creature, where X is the number of arrow counters on original aura. +SVar:ArcheryDamage:AB$ Pump | Cost$ T | ImprintCards$ OriginalHost | SubAbility$ DBArcheryDamage | SpellDescription$ CARDNAME deals X damage to target attacking or blocking creature, where X is the number of arrow counters on ORIGINALHOST. SVar:DBArcheryDamage:DB$ DealDamage | ValidTgts$ Creature.attacking,Creature.blocking | TgtPrompt$ Select target attacking or blocking creature | NumDmg$ ArcheryX | References$ ArcheryX | SubAbility$ DBArcheryCleanup SVar:ArcheryX:Count$TotalCounters_ARROW_Card.IsImprinted+namedArchery Training SVar:DBArcheryCleanup:DB$ Pump | ForgetImprinted$ OriginalHost | StackDescription$ None diff --git a/forge-gui/res/cardsfolder/h/hankyu.txt b/forge-gui/res/cardsfolder/h/hankyu.txt index 0edd940b135..23ac7327d36 100644 --- a/forge-gui/res/cardsfolder/h/hankyu.txt +++ b/forge-gui/res/cardsfolder/h/hankyu.txt @@ -3,7 +3,7 @@ ManaCost:1 Types:Artifact Equipment K:Equip:4 S:Mode$ Continuous | Affected$ Card.EquippedBy | AddAbility$ HankyuPutCounter & HankyuDmg | AddSVar$ HankyuX | Description$ Equipped creature has "{T}: Put an aim counter on CARDNAME" and "{T}, Remove all aim counters from CARDNAME: This creature deals damage to any target equal to the number of aim counters removed this way." -SVar:HankyuPutCounter:AB$ PutCounter | Cost$ T | CounterType$ AIM | CounterNum$ 1 | Defined$ OriginalHost | SpellDescription$ Put an aim counter on Hankyu. +SVar:HankyuPutCounter:AB$ PutCounter | Cost$ T | CounterType$ AIM | CounterNum$ 1 | Defined$ OriginalHost | SpellDescription$ Put an aim counter on ORIGINALHOST. SVar:HankyuDmg:AB$ DealDamage | Cost$ T SubCounter | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ HankyuX | References$ HankyuX | SpellDescription$ CARDNAME deals damage to any target equal to the number of aim counters removed this way. SVar:HankyuX:SVar$CostCountersRemoved AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/r/rakdos_riteknife.txt b/forge-gui/res/cardsfolder/r/rakdos_riteknife.txt index 4fd8049a9ea..7d9ae7e2db3 100644 --- a/forge-gui/res/cardsfolder/r/rakdos_riteknife.txt +++ b/forge-gui/res/cardsfolder/r/rakdos_riteknife.txt @@ -3,7 +3,7 @@ ManaCost:2 Types:Artifact Equipment K:Equip:2 S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ X | References$ X | AddAbility$ RitualSac | Description$ Equipped creature gets +1/+0 for each blood counter on CARDNAME and has "{T}, Sacrifice a creature: Put a blood counter on CARDNAME." -SVar:RitualSac:AB$ PutCounter | Cost$ T Sac<1/Creature> | Defined$ OriginalHost | CounterType$ BLOOD | CounterNum$ 1 | SpellDescription$ Put a blood counter on Rakdos Riteknife. +SVar:RitualSac:AB$ PutCounter | Cost$ T Sac<1/Creature> | Defined$ OriginalHost | CounterType$ BLOOD | CounterNum$ 1 | SpellDescription$ Put a blood counter on ORIGINALHOST. A:AB$ Sacrifice | Cost$ B R Sac<1/CARDNAME> | ValidTgts$ Player | SacValid$ Permanent | SacMessage$ Permanent | Amount$ X | References$ X | SpellDescription$ Target player sacrifices a permanent for each blood counter on CARDNAME. SVar:X:Count$CardCounters.BLOOD AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/upcoming/heliods_punishment.txt b/forge-gui/res/cardsfolder/upcoming/heliods_punishment.txt new file mode 100644 index 00000000000..069bf043327 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/heliods_punishment.txt @@ -0,0 +1,10 @@ +Name:Heliod's Punishment +ManaCost:1 W +Types:Enchantment Aura +K:Enchant creature +K:etbCounter:TASK:4 +A:SP$ Attach | Cost$ 1 W | ValidTgts$ Creature | AILogic$ Curse +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. | RemoveAllAbilities$ True | AddAbility$ ABRemoveCounter | AddSVar$ DBHeliodsPunishment | Description$ Enchanted creature can't attack or block. It loses all abilities and has "{T}: Remove a task counter from CARDNAME. Then if it has no task counters on it, destroy CARDNAME." +SVar:ABRemoveCounter:AB$ RemoveCounter | Cost$ T | CounterType$ TASK | CounterNum$ 1 | AILogic$ Always | Defined$ OriginalHost | SpellDescription$ Remove a task counter from ORIGINALHOST. Then if it has no task counters on it, destroy ORIGINALHOST. | SubAbility$ DBHeliodsPunishment +SVar:DBHeliodsPunishment:DB$ Destroy | Defined$ OriginalHost | ConditionDefined$ OriginalHost | ConditionPresent$ Card.counters_EQ0_TASK +Oracle:Enchant creature\nHeliod's Punishment enters the battlefield with four task counters on it.\nEnchanted creature can't attach or block. It loses all abilities and has "{T}: Remove a task counter from Heliod's Punishment. Then if it has no task counters on it, destroy Heliod's Punishment."