From fda1cbb88b6c342068ae01b16a778aa9de8c56b8 Mon Sep 17 00:00:00 2001 From: Hanmac Date: Sat, 11 Jun 2016 18:39:32 +0000 Subject: [PATCH] AbilityUtils: make "OppNon" more generic to allow "OppNonParentTarget" add "The Fate of the Flammable", "May Civilization Collapse", "Feed the Machine" and "Surrender Your Thoughts" update ChooseGenericEffectAI, currently it does prefer others over self, even if targeted wouldn't hurt target player. --- .gitattributes | 4 ++++ .../java/forge/ai/ability/ChooseGenericEffectAi.java | 2 +- .../main/java/forge/game/ability/AbilityUtils.java | 2 +- forge-gui/res/cardsfolder/f/feed_the_machine.txt | 11 +++++++++++ .../res/cardsfolder/m/may_civilization_collapse.txt | 11 +++++++++++ .../res/cardsfolder/s/surrender_your_thoughts.txt | 11 +++++++++++ .../res/cardsfolder/t/the_fate_of_the_flammable.txt | 11 +++++++++++ 7 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 forge-gui/res/cardsfolder/f/feed_the_machine.txt create mode 100644 forge-gui/res/cardsfolder/m/may_civilization_collapse.txt create mode 100644 forge-gui/res/cardsfolder/s/surrender_your_thoughts.txt create mode 100644 forge-gui/res/cardsfolder/t/the_fate_of_the_flammable.txt diff --git a/.gitattributes b/.gitattributes index 3bc98daa9f7..ca8a3589c13 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5857,6 +5857,7 @@ forge-gui/res/cardsfolder/f/feat_of_resistance.txt -text forge-gui/res/cardsfolder/f/fecundity.txt svneol=native#text/plain forge-gui/res/cardsfolder/f/feebleness.txt svneol=native#text/plain forge-gui/res/cardsfolder/f/feed_the_clan.txt -text +forge-gui/res/cardsfolder/f/feed_the_machine.txt -text svneol=unset#text/plain forge-gui/res/cardsfolder/f/feed_the_pack.txt -text forge-gui/res/cardsfolder/f/feedback.txt svneol=native#text/plain forge-gui/res/cardsfolder/f/feedback_bolt.txt svneol=native#text/plain @@ -9569,6 +9570,7 @@ forge-gui/res/cardsfolder/m/maw_of_kozilek.txt -text forge-gui/res/cardsfolder/m/maw_of_the_mire.txt -text forge-gui/res/cardsfolder/m/maw_of_the_obzedat.txt -text forge-gui/res/cardsfolder/m/mawcor.txt svneol=native#text/plain +forge-gui/res/cardsfolder/m/may_civilization_collapse.txt -text svneol=unset#text/plain forge-gui/res/cardsfolder/m/mayael_the_anima.txt svneol=native#text/plain forge-gui/res/cardsfolder/m/mayael_the_anima_avatar.txt -text forge-gui/res/cardsfolder/m/mayaels_aria.txt svneol=native#text/plain @@ -14699,6 +14701,7 @@ forge-gui/res/cardsfolder/s/surrakar_banisher.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/surrakar_marauder.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/surrakar_spellblade.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/surreal_memoir.txt -text +forge-gui/res/cardsfolder/s/surrender_your_thoughts.txt -text svneol=unset#text/plain forge-gui/res/cardsfolder/s/surveilling_sprite.txt svneol=native#text/plain forge-gui/res/cardsfolder/s/survey_the_wreckage.txt -text forge-gui/res/cardsfolder/s/surveyors_scope.txt -text @@ -15106,6 +15109,7 @@ forge-gui/res/cardsfolder/t/the_dark_barony.txt -text forge-gui/res/cardsfolder/t/the_dead_shall_serve.txt -text forge-gui/res/cardsfolder/t/the_eon_fog.txt -text forge-gui/res/cardsfolder/t/the_fallen.txt -text +forge-gui/res/cardsfolder/t/the_fate_of_the_flammable.txt -text svneol=unset#text/plain forge-gui/res/cardsfolder/t/the_fourth_sphere.txt -text forge-gui/res/cardsfolder/t/the_gitrog_monster.txt -text forge-gui/res/cardsfolder/t/the_great_aurora.txt -text diff --git a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java index 57193829550..e1e8249ab82 100644 --- a/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/ChooseGenericEffectAi.java @@ -70,7 +70,7 @@ public class ChooseGenericEffectAi extends SpellAbilityAi { } } return spells.get(0); - } else if ("Khans".equals(logic) || "Dragons".equals(logic)) { // Fate Reforged sieges + } else if ("Khans".equals(logic) || "Dragons".equals(logic) || "Self".equals(logic) || "Others".equals(logic)) { // Fate Reforged sieges for (final SpellAbility sp : spells) { if (sp.getDescription().equals(logic)) { return sp; diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index 116c1f531f6..3cc0ebb6b68 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -957,7 +957,7 @@ public class AbilityUtils { } } } - else if (defined.startsWith("OppNonTriggered")) { + else if (defined.startsWith("OppNon")) { players.addAll(sa.getActivatingPlayer().getOpponents()); players.removeAll((Collection)getDefinedPlayers(card, defined.substring(6), sa)); } diff --git a/forge-gui/res/cardsfolder/f/feed_the_machine.txt b/forge-gui/res/cardsfolder/f/feed_the_machine.txt new file mode 100644 index 00000000000..f6619d83f67 --- /dev/null +++ b/forge-gui/res/cardsfolder/f/feed_the_machine.txt @@ -0,0 +1,11 @@ +Name:Feed the Machine +ManaCost:no cost +Types:Scheme +T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoose | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she sacrifices two creatures. if the player chooses others, each of your other opponents sacrifice a creature. + +SVar:DBChoose:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ Self,Others | AILogic$ Others +SVar:Self:DB$ Sacrifice | SacValid$ Creature | Defined$ ParentTarget | Amount$ 2 | SpellDescription$ Self +SVar:Others:DB$ Sacrifice | SacValid$ Creature | Defined$ OppNonParentTarget | Amount$ 1 | SpellDescription$ Others + +SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Feed the Machine.full.jpg +Oracle:When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she sacrifices two creatures. if the player chooses others, each of your other opponents sacrifice a creature. diff --git a/forge-gui/res/cardsfolder/m/may_civilization_collapse.txt b/forge-gui/res/cardsfolder/m/may_civilization_collapse.txt new file mode 100644 index 00000000000..620a471f741 --- /dev/null +++ b/forge-gui/res/cardsfolder/m/may_civilization_collapse.txt @@ -0,0 +1,11 @@ +Name:May Civilization Collapse +ManaCost:no cost +Types:Scheme +T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoose | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she sacrifices two lands. if the player chooses others, each of your other opponents sacrifice a land. + +SVar:DBChoose:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ Self,Others | AILogic$ Others +SVar:Self:DB$ Sacrifice | SacValid$ Land | Defined$ ParentTarget | Amount$ 2 | SpellDescription$ Self +SVar:Others:DB$ Sacrifice | SacValid$ Land | Defined$ OppNonParentTarget | Amount$ 1 | SpellDescription$ Others + +SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/May Civilization Collapse.full.jpg +Oracle:When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she sacrifices two lands. if the player chooses others, each of your other opponents sacrifice a land. diff --git a/forge-gui/res/cardsfolder/s/surrender_your_thoughts.txt b/forge-gui/res/cardsfolder/s/surrender_your_thoughts.txt new file mode 100644 index 00000000000..bd5a77eb0c3 --- /dev/null +++ b/forge-gui/res/cardsfolder/s/surrender_your_thoughts.txt @@ -0,0 +1,11 @@ +Name:Surrender Your Thoughts +ManaCost:no cost +Types:Scheme +T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoose | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she discards four cards. if the player chooses others, each of your other opponents discards two cards. + +SVar:DBChoose:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ Self,Others | AILogic$ Others +SVar:Self:DB$ Discard | Mode$ TgtChoose | Defined$ ParentTarget | NumCards$ 4 | SpellDescription$ Self +SVar:Others:DB$ Discard | Mode$ TgtChoose | Defined$ OppNonParentTarget | NumCards$ 2 | SpellDescription$ Others + +SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Surrender Your Thoughts.full.jpg +Oracle:When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, he or she discards four cards. if the player chooses others, each of your other opponents discards two cards. diff --git a/forge-gui/res/cardsfolder/t/the_fate_of_the_flammable.txt b/forge-gui/res/cardsfolder/t/the_fate_of_the_flammable.txt new file mode 100644 index 00000000000..35ce6a605d6 --- /dev/null +++ b/forge-gui/res/cardsfolder/t/the_fate_of_the_flammable.txt @@ -0,0 +1,11 @@ +Name:The Fate of the Flammable +ManaCost:no cost +Types:Scheme +T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DBChoose | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, this scheme deals 6 damage to him or her. if the player chooses others, this scheme deals 3 damage to each of your other opponents. + +SVar:DBChoose:DB$ GenericChoice | ValidTgts$ Opponent | Choices$ Self,Others | AILogic$ Others +SVar:Self:DB$ DealDamage | Defined$ ParentTarget | NumDmg$ 6 | SpellDescription$ Self +SVar:Others:DB$ DealDamage | Defined$ OppNonParentTarget | NumDmg$ 3 | SpellDescription$ Others + +SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/The Fate of the Flammable.full.jpg +Oracle:When you set this scheme in motion, target opponent chooses self or others. If that player chooses self, this scheme deals 6 damage to him or her. if the player chooses others, this scheme deals 3 damage to each of your other opponents.