From c1f3a49ea035c9c39d822d5954a9ccb32e3c2c67 Mon Sep 17 00:00:00 2001 From: Sol Date: Fri, 14 Sep 2018 00:42:11 +0000 Subject: [PATCH 1/3] Najeela --- .../cardsfolder/n/najeela_the_blade_blossom.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt diff --git a/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt b/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt new file mode 100644 index 00000000000..faa19d5a7f8 --- /dev/null +++ b/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt @@ -0,0 +1,14 @@ +Name:Najeela, the Blade-Blossom +ManaCost:2 R +Types:Legendary Creature Human Warrior +PT:3/2 +T:Mode$ Attacks | ValidCard$ Warrior | TriggerZones$ Battlefield | Execute$ TrigToken | OptionalDecider$ You | TriggerController$ You | TriggerDescription$ Whenever a Warrior attacks, you may have its controller create a 1/1 white Warrior creature token that's tapped and attacking. +SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Warrior | TokenTypes$ Creature,Warrior | TokenOwner$ TriggeredAttackerController | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenTapped$ True | TokenAttacking$ True | TokenImage$ w 1 1 warrior +A:AB$ UntapAll | Cost$ W U B R G | ValidCards$ Creature.attacking | ActivationPhases$ BeginCombat->EndCombat | SubAbility$ DBAddCombat | SpellDescription$ Untap all attacking creatures. They gain trample, lifelink, and haste until end of turn. After this phase, there is an additional combat phase. Activate this ability only during combat. +SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ BeginCombat | AfterPhase$ EndCombat | SubAbility$ DBPumpAll +SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.attacking | KW$ Trample & Lifelink & Haste +SVar:PlayMain1:TRUE +DeckHints:Type$Warrior +DeckHas:Ability$Token +SVar:Picture:http://www.wizards.com/global/images/magic/general/najeela_the_blade_blossom.jpg +Oracle:Whenever a Warrior attacks, you may have its controller create a 1/1 white Warrior creature token that's tapped and attacking.\n{W}{U}{B}{R}{G}: Untap all attacking creatures. They gain trample, lifelink, and haste until end of turn. After this phase, there is an additional combat phase. Activate this ability only during combat. \ No newline at end of file From 5503897911f4140a5c82d10b489bc69daca9bd62 Mon Sep 17 00:00:00 2001 From: Agetian Date: Fri, 14 Sep 2018 12:51:29 +0300 Subject: [PATCH 2/3] - Added a basic AI logic for Najeela, the Blade Blossom. --- forge-ai/src/main/java/forge/ai/ability/TokenAi.java | 6 ++++++ forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java index 92290632239..289888009d0 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java @@ -311,6 +311,12 @@ public class TokenAi extends SpellAbilityAi { } } + if ("OnlyOnAlliedAttack".equals(sa.getParam("AILogic"))) { + Combat combat = ai.getGame().getCombat(); + return combat != null && combat.getAttackingPlayer() != null + && !combat.getAttackingPlayer().isOpponentOf(ai); + } + return true; } /* (non-Javadoc) diff --git a/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt b/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt index faa19d5a7f8..873d0619519 100644 --- a/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt +++ b/forge-gui/res/cardsfolder/n/najeela_the_blade_blossom.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Legendary Creature Human Warrior PT:3/2 T:Mode$ Attacks | ValidCard$ Warrior | TriggerZones$ Battlefield | Execute$ TrigToken | OptionalDecider$ You | TriggerController$ You | TriggerDescription$ Whenever a Warrior attacks, you may have its controller create a 1/1 white Warrior creature token that's tapped and attacking. -SVar:TrigToken:DB$Token | TokenAmount$ 1 | TokenName$ Warrior | TokenTypes$ Creature,Warrior | TokenOwner$ TriggeredAttackerController | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenTapped$ True | TokenAttacking$ True | TokenImage$ w 1 1 warrior +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenName$ Warrior | TokenTypes$ Creature,Warrior | TokenOwner$ TriggeredAttackerController | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenTapped$ True | TokenAttacking$ True | TokenImage$ w 1 1 warrior | AILogic$ OnlyOnAlliedAttack A:AB$ UntapAll | Cost$ W U B R G | ValidCards$ Creature.attacking | ActivationPhases$ BeginCombat->EndCombat | SubAbility$ DBAddCombat | SpellDescription$ Untap all attacking creatures. They gain trample, lifelink, and haste until end of turn. After this phase, there is an additional combat phase. Activate this ability only during combat. SVar:DBAddCombat:DB$ AddPhase | ExtraPhase$ BeginCombat | AfterPhase$ EndCombat | SubAbility$ DBPumpAll SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.attacking | KW$ Trample & Lifelink & Haste From d87e63c9a778d6deca8bcc4d97539f1435445674 Mon Sep 17 00:00:00 2001 From: Agetian Date: Sun, 16 Sep 2018 19:03:24 +0300 Subject: [PATCH 3/3] - Fixed the AI not putting the Najeela trigger on stack if it doesn't want to use it. --- forge-ai/src/main/java/forge/ai/ability/TokenAi.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java index 289888009d0..56d88681c72 100644 --- a/forge-ai/src/main/java/forge/ai/ability/TokenAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/TokenAi.java @@ -311,6 +311,12 @@ public class TokenAi extends SpellAbilityAi { } } + if (mandatory) { + // Necessary because the AI goes into this method twice, first to set up targets (with mandatory=true) + // and then the second time to confirm the trigger (where mandatory may be set to false). + return true; + } + if ("OnlyOnAlliedAttack".equals(sa.getParam("AILogic"))) { Combat combat = ai.getGame().getCombat(); return combat != null && combat.getAttackingPlayer() != null