From 19ee29c6288d5ce5fc8d3976fe776a34f7de3725 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 23 Aug 2022 16:36:00 +0200 Subject: [PATCH 01/40] update --- .../src/main/java/forge/game/card/Card.java | 4 ++++ .../java/forge/game/card/CardFactoryUtil.java | 15 +++++++++++++++ .../src/main/java/forge/game/card/CardView.java | 1 + .../src/main/java/forge/game/keyword/Keyword.java | 1 + .../java/forge/trackable/TrackableProperty.java | 1 + .../cardsfolder/upcoming/giant_fire_beetles.txt | 7 +++++++ 6 files changed, 29 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/giant_fire_beetles.txt diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index eab8afa5f4e..111ee0a1068 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1369,6 +1369,10 @@ public class Card extends GameEntity implements Comparable, IHasSVars { public final boolean hasDoubleStrike() { return hasKeyword(Keyword.DOUBLE_STRIKE); } + + public final boolean hasDoubleTeam() { + return hasKeyword(Keyword.DOUBLE_TEAM); + } public final boolean hasSecondStrike() { return hasDoubleStrike() || !hasFirstStrike(); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 0e205ff0d64..4c5f516e539 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1063,6 +1063,21 @@ public class CardFactoryUtil { dethroneTrigger.setOverridingAbility(AbilityFactory.getAbility(abString, card)); inst.addTrigger(dethroneTrigger); + } else if (keyword.equals("Double Team")) { + + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | Secondary$ True | TriggerZones$ Battlefield | RemoveKeyword$ Double Team | AddStaticAbility$ ForgetDoubleTeam | TriggerDescription$(" + inst.getReminderText() + ")"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; + final String effectString = "DB$ Effect | StaticAbilities$ ForgetDoubleTeam | Duration$ Permanent"; + final String forgetString = "Mode$ Continuous | Affected$ Card.Self | RemoveKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Command,Exile,Graveyard,Library"; + + final SpellAbility makeSA = AbilityFactory.getAbility(makeString, card); + final Trigger doubleteamTrigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); + doubleteamTrigger.setOverridingAbility(AbilityFactory.getAbility(makeString,card)); + AbilitySub effectSA = (AbilitySub) AbilityFactory.getAbility(effectString, card); + effectSA.setSVar("ForgetDoubleTeam", forgetString); + makeSA.setSubAbility(effectSA); + inst.addTrigger(doubleteamTrigger); + } else if (keyword.startsWith("Echo")) { final String[] k = keyword.split(":"); final String cost = k[1]; diff --git a/forge-game/src/main/java/forge/game/card/CardView.java b/forge-game/src/main/java/forge/game/card/CardView.java index 352ced47d8c..a176696afcd 100644 --- a/forge-game/src/main/java/forge/game/card/CardView.java +++ b/forge-game/src/main/java/forge/game/card/CardView.java @@ -1364,6 +1364,7 @@ public class CardView extends GameEntityView { public boolean hasDefender() { return get(TrackableProperty.HasDefender); } public boolean hasDivideDamage() { return get(TrackableProperty.HasDivideDamage); } public boolean hasDoubleStrike() { return get(TrackableProperty.HasDoubleStrike); } + public boolean hasDoubleTeam() { return get(TrackableProperty.HasDoubleTeam); } public boolean hasFirstStrike() { return get(TrackableProperty.HasFirstStrike); } public boolean hasFlying() { return get(TrackableProperty.HasFlying); } public boolean hasFear() { return get(TrackableProperty.HasFear); } diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index c92bcd4d4c7..0667b9688ea 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -60,6 +60,7 @@ public enum Keyword { DEVOID("Devoid", SimpleKeyword.class, true, "This card has no color."), DISTURB("Disturb", KeywordWithCost.class, false, "You may cast this card from your graveyard transformed for its disturb cost."), DOUBLE_STRIKE("Double Strike", SimpleKeyword.class, true, "This creature deals both first-strike and regular combat damage."), + DOUBLE_TEAM("Double Team", SimpleKeyword.class, true, "When this creature attacks, if it's not a token, conjure a duplicate of it into your hand. Then both cards perpetually lose double team."), DREDGE("Dredge", KeywordWithAmount.class, false, "If you would draw a card, instead you may put exactly {%d:card} from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card."), ECHO("Echo", KeywordWithCost.class, false, "At the beginning of your upkeep, if this permanent came under your control since the beginning of your last upkeep, sacrifice it unless you pay %s."), EMBALM("Embalm", KeywordWithCost.class, false, "%s, Exile this card from your graveyard: Create a token that's a copy of this card, except it's white, it has no mana cost, and it's a Zombie in addition to its other types. Embalm only as a sorcery."), diff --git a/forge-game/src/main/java/forge/trackable/TrackableProperty.java b/forge-game/src/main/java/forge/trackable/TrackableProperty.java index 62dbe8e9b96..c97649b0c1e 100644 --- a/forge-game/src/main/java/forge/trackable/TrackableProperty.java +++ b/forge-game/src/main/java/forge/trackable/TrackableProperty.java @@ -138,6 +138,7 @@ public enum TrackableProperty { HasDefender(TrackableTypes.BooleanType), HasDivideDamage(TrackableTypes.BooleanType), HasDoubleStrike(TrackableTypes.BooleanType), + HasDoubleTeam(TrackableTypes.BooleanType), HasFirstStrike(TrackableTypes.BooleanType), HasFlying(TrackableTypes.BooleanType), HasFear(TrackableTypes.BooleanType), diff --git a/forge-gui/res/cardsfolder/upcoming/giant_fire_beetles.txt b/forge-gui/res/cardsfolder/upcoming/giant_fire_beetles.txt new file mode 100644 index 00000000000..360556ffa46 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/giant_fire_beetles.txt @@ -0,0 +1,7 @@ +Name:Giant Fire Beetles +ManaCost:2 R +Types:Creature Insect +PT:2/2 +K:Double Team +K:Menace +Oracle:Menace\nDouble team From e87ebf2de7a01e5ec055c2db49188eda47099aa2 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Wed, 24 Aug 2022 10:12:38 +0200 Subject: [PATCH 02/40] Update --- .../java/forge/game/card/CardFactoryUtil.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 4c5f516e539..2fc4ce85308 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,19 +1064,21 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | Secondary$ True | TriggerZones$ Battlefield | RemoveKeyword$ Double Team | AddStaticAbility$ ForgetDoubleTeam | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; - final String effectString = "DB$ Effect | StaticAbilities$ ForgetDoubleTeam | Duration$ Permanent"; - final String forgetString = "Mode$ Continuous | Affected$ Card.Self | RemoveKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Command,Exile,Graveyard,Library"; - - final SpellAbility makeSA = AbilityFactory.getAbility(makeString, card); - final Trigger doubleteamTrigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); - doubleteamTrigger.setOverridingAbility(AbilityFactory.getAbility(makeString,card)); - AbilitySub effectSA = (AbilitySub) AbilityFactory.getAbility(effectString, card); - effectSA.setSVar("ForgetDoubleTeam", forgetString); - makeSA.setSubAbility(effectSA); - inst.addTrigger(doubleteamTrigger); + + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | Imprint$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | Keywords$ Double Team | StaticAbilities$ RemoveDoubleTeamMade"; + final String madeforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + /// final String SelfforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); + final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); + final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); + forget.setSVar("RemoveDoubleTeamMade",madeforgetString); + /// forget.setSVar("RemoveDoubleTeamSelf",SelfforgetString); + youMake.setSubAbility(forget); + trigger.setOverridingAbility(youMake); + inst.addTrigger(trigger); + } else if (keyword.startsWith("Echo")) { final String[] k = keyword.split(":"); From 5ef16372388b08110ea51642d78eec2bbcd635ec Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Wed, 24 Aug 2022 22:56:29 +0200 Subject: [PATCH 03/40] Update --- .../main/java/forge/game/ability/AbilityFactory.java | 1 + .../main/java/forge/game/card/CardFactoryUtil.java | 12 +++++------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java index 83a638f6ac3..7f0acdffefe 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -1,5 +1,6 @@ /* * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team * * This program is free software: you can redistribute it and/or modify diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 2fc4ce85308..6eb2a662248 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1065,21 +1065,19 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | Imprint$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | Keywords$ Double Team | StaticAbilities$ RemoveDoubleTeamMade"; - final String madeforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; - /// final String SelfforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String madeforgetString ="Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + ///final String SelfforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); forget.setSVar("RemoveDoubleTeamMade",madeforgetString); - /// forget.setSVar("RemoveDoubleTeamSelf",SelfforgetString); youMake.setSubAbility(forget); trigger.setOverridingAbility(youMake); inst.addTrigger(trigger); - - + } else if (keyword.startsWith("Echo")) { final String[] k = keyword.split(":"); final String cost = k[1]; From 920b9d31775c980569583975932100f5a8e52c51 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Wed, 24 Aug 2022 22:59:07 +0200 Subject: [PATCH 04/40] update --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 6eb2a662248..c47a7f36632 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1069,7 +1069,6 @@ public class CardFactoryUtil { final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString ="Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; - ///final String SelfforgetString ="Mode$ Continuous | EffectZone$ Command | Affected$ Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); @@ -1077,7 +1076,7 @@ public class CardFactoryUtil { youMake.setSubAbility(forget); trigger.setOverridingAbility(youMake); inst.addTrigger(trigger); - + } else if (keyword.startsWith("Echo")) { final String[] k = keyword.split(":"); final String cost = k[1]; From 9b350cb9ee1bf88faa0e6b9e7d65c88d6e5b7a6d Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 10:28:16 +0200 Subject: [PATCH 05/40] Create sworn_to_the_legion.txt --- .../res/cardsfolder/upcoming/sworn_to_the_legion.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt new file mode 100644 index 00000000000..f9db93e4b3e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -0,0 +1,10 @@ +Name:Sworn to the Legion +ManaCost:4 W W +Types:Enchantment +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ DBEffect | TriggerDescription$ When CARDNAME enters the battlefield, nontoken creatures you control perpetually gain double team. +SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl+nonToken | StaticAbilities$ PerpetualDoubleTeam | Name$ Sworn to the Legion's Perpetual Effect | Duration$ Permanent +SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Nontoken creatures you control perpetually gain double team. +T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. +SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent +SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team +Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1. \ No newline at end of file From d6900e249deed0aa4578b19bc4c8aa3da1628593 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 10:29:59 +0200 Subject: [PATCH 06/40] update --- forge-game/src/main/java/forge/game/ability/AbilityFactory.java | 1 - forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java index 7f0acdffefe..83a638f6ac3 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityFactory.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityFactory.java @@ -1,6 +1,5 @@ /* * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team * * This program is free software: you can redistribute it and/or modify diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index f9db93e4b3e..e19ef50f3dd 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -7,4 +7,6 @@ SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKey T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team +SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate +SVar:DBUpdate:DB$ UpdateRemember Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1. \ No newline at end of file From 64d4004bdc2b31a34b95cf00477748074f4d61c1 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 10:45:05 +0200 Subject: [PATCH 07/40] Create champions_of_tyr.txt --- .../cardsfolder/upcoming/champions_of_tyr.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt diff --git a/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt b/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt new file mode 100644 index 00000000000..7f80d070c71 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt @@ -0,0 +1,17 @@ +Name:Champions of Tyr +ManaCost:2 W W +Types:Creature Angel Knight +PT:4/3 +K:Flying +K:Double Team +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBDelayedTrigger | TriggerDescription$ When CARDNAME enters the battlefield, you get a boon with "When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it." +SVar:DBDelayedTrigger:DB$ DelayedTrigger | Execute$ TrigAddAPI | Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerDescription$ When you cast your next creature spell, that creature enters the battlefield with an additional +1/+1 counter, trample counter, and vigilance counter on it. +SVar:TrigAddAPI:DB$ Effect | RememberObjects$ TriggeredCard | ForgetOnMoved$ Stack | ReplacementEffects$ ReplaceEnter +SVar:ReplaceEnter:Event$ Moved | ValidCard$ Card.IsRemembered | Destination$ Battlefield | ReplaceWith$ AddExtraCounter | ReplacementResult$ Updated | Description$ When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it. +SVar:AddExtraCounter:DB$ GenericChoice | Defined$ You | Choices$ P1P1,Flying,Lifelink +SVar:P1P1:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard |CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ +1/+1 counter +SVar:Flying:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ Flying | CounterNum$ 1 | SpellDescription$ Flying counter +SVar:Lifelink:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard |CounterType$ Lifelink | CounterNum$ 1 | SpellDescription$ Lifelink counter +SVar:DBExile:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile +DeckHas:Ability$LifeGain|Counters +Oracle:Flying\nDouble team\nWhen Champions of Tyr enters the battlefield, you get a boon with "When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it." \ No newline at end of file From e3fda367db095db37b87e8aee54f8e8c94c5edd5 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 11:06:34 +0200 Subject: [PATCH 08/40] update --- forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt | 5 +---- .../res/cardsfolder/upcoming/genasi_rabble_rouser.txt | 7 +++++++ 2 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt diff --git a/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt b/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt index 7f80d070c71..168f18dd25e 100644 --- a/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt +++ b/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt @@ -8,10 +8,7 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:DBDelayedTrigger:DB$ DelayedTrigger | Execute$ TrigAddAPI | Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerDescription$ When you cast your next creature spell, that creature enters the battlefield with an additional +1/+1 counter, trample counter, and vigilance counter on it. SVar:TrigAddAPI:DB$ Effect | RememberObjects$ TriggeredCard | ForgetOnMoved$ Stack | ReplacementEffects$ ReplaceEnter SVar:ReplaceEnter:Event$ Moved | ValidCard$ Card.IsRemembered | Destination$ Battlefield | ReplaceWith$ AddExtraCounter | ReplacementResult$ Updated | Description$ When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it. -SVar:AddExtraCounter:DB$ GenericChoice | Defined$ You | Choices$ P1P1,Flying,Lifelink -SVar:P1P1:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard |CounterType$ P1P1 | CounterNum$ 1 | SpellDescription$ +1/+1 counter -SVar:Flying:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ Flying | CounterNum$ 1 | SpellDescription$ Flying counter -SVar:Lifelink:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard |CounterType$ Lifelink | CounterNum$ 1 | SpellDescription$ Lifelink counter +SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1,Flying,Lifelink | CounterNum$ 1 SVar:DBExile:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile DeckHas:Ability$LifeGain|Counters Oracle:Flying\nDouble team\nWhen Champions of Tyr enters the battlefield, you get a boon with "When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it." \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt new file mode 100644 index 00000000000..c5de81318dc --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt @@ -0,0 +1,7 @@ +Name:Genasi Rabble-Rouser +ManaCost:1 R +Types:Creature Elemental Shaman +K:Double Team +A:AB$ PumpAll | Cost$ 1 R | ValidCards$ Creature.YouCtrl+namedGenasi Rabble-Rouser | NumAtt$ +1 | SpellDescription$ Creatures you control named Genasi Rabble-Rouser get +1/+0 until end of turn. +DeckHas:Ability$Token +Oracle:Double team\n{1}{R}: Creatures you control named Genasi Rabble-Rouser gets +1/+0 until end of turn. From a79c98173d4283124c1e7aab7ac5b7a65909d6cf Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 13:22:16 +0200 Subject: [PATCH 09/40] Update --- .../res/cardsfolder/upcoming/gnoll_hunting_party.txt | 9 +++++++++ .../res/cardsfolder/upcoming/lizardfolk_librarians.txt | 8 ++++++++ .../res/cardsfolder/upcoming/moradins_disciples.txt | 8 ++++++++ forge-gui/res/cardsfolder/upcoming/ranger_squadron.txt | 7 +++++++ .../res/cardsfolder/upcoming/soldiers_of_the_watch.txt | 6 ++++++ .../res/cardsfolder/upcoming/tiefling_outcasts.txt | 8 ++++++++ .../cardsfolder/upcoming/ulder_ravengard_marshal.txt | 10 ++++++++++ .../res/cardsfolder/upcoming/warriors_of_tiamat.txt | 7 +++++++ 8 files changed, 63 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/lizardfolk_librarians.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/moradins_disciples.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ranger_squadron.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/soldiers_of_the_watch.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/warriors_of_tiamat.txt diff --git a/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt b/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt new file mode 100644 index 00000000000..aeebb105d8b --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt @@ -0,0 +1,9 @@ +Name:Gnoll Hunting Party +ManaCost:5 R +Types:Creature Gnoll +PT:5/5 +S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ X | EffectZone$ All | Description$ This spell costs {1} less to cast for each creature you attacked with this turn. +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, CARDNAME has first strike. +SVar:X:Count$AttackersDeclared +K:Double Team +Oracle:This spell costs {1} less to cast for each creature you attacked with this turn.\nDouble team\nAs long as it's your turn, Gnoll Hunting Party has first strike. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/lizardfolk_librarians.txt b/forge-gui/res/cardsfolder/upcoming/lizardfolk_librarians.txt new file mode 100644 index 00000000000..9b4f7f01c87 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lizardfolk_librarians.txt @@ -0,0 +1,8 @@ +Name:Lizardfolk Librarians +ManaCost:3 U +Types:Creature Lizard +PT:2/1 +K:Double Team +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When CARDNAME enters the battlefield, scry 2. +SVar:TrigScry:DB$ Scry | ScryNum$ 2 +Oracle:Double team\When Lizardfolk Librarians enters the battlefield, scry 2. diff --git a/forge-gui/res/cardsfolder/upcoming/moradins_disciples.txt b/forge-gui/res/cardsfolder/upcoming/moradins_disciples.txt new file mode 100644 index 00000000000..afe342d5d8a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/moradins_disciples.txt @@ -0,0 +1,8 @@ +Name:Moradin's Disciples +ManaCost:3 W +Types:Creature Dwarf Cleric +PT:2/3 +K:Double Team +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ DBTap | TriggerDescription$ Whenever CARDNAME attacks, tap target creature defending player controls. +SVar:DBTap:DB$ Tap | ValidTgts$ Creature | TargetsWithDefinedController$ TriggeredDefendingPlayer | TargetMax$ 1 | TgtPrompt$ Select target creature defending player controls +Oracle:Double team\nWhenever Moradin's Disciples attacks, tap target creature defending player controls. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ranger_squadron.txt b/forge-gui/res/cardsfolder/upcoming/ranger_squadron.txt new file mode 100644 index 00000000000..108e500babb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ranger_squadron.txt @@ -0,0 +1,7 @@ +Name:Ranger Squadron +ManaCost:4 W W +Types:Creature Cat Ranger +PT:3/4 +K:Flying +K:Double Team +Oracle:Flying\nDouble Team \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/soldiers_of_the_watch.txt b/forge-gui/res/cardsfolder/upcoming/soldiers_of_the_watch.txt new file mode 100644 index 00000000000..7ffb9277231 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/soldiers_of_the_watch.txt @@ -0,0 +1,6 @@ +Name:Soldiers of the Watch +ManaCost:1 W +Types:Creature Human Soldier +PT:2/1 +K:Double Team +Oracle:Double Team \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt b/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt new file mode 100644 index 00000000000..f630d6352ac --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt @@ -0,0 +1,8 @@ +Name:Tiefling Outcasts +ManaCost:R +Types:Tiefling Peasant +PT:1/1 +K:Double Team +S:Mode$ Continuous | Affected$ Demon.Other+YouCtrl,Devil.Other+YouCtrl,Imp.Other+YouCtrl,Tiefling.Other+YouCtrl | AddPower$ 1 | Description$ Other Demons, Devils, Imps, and Tieflings you control get +1/+0. +DeckHints:Type$Demon|Devil|Imp|Tiefling +Oracle:Double Team\nOther Demons, Devils, Imps, and Tieflings you control get +1/+0. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt new file mode 100644 index 00000000000..21a569c956c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt @@ -0,0 +1,10 @@ +Name:Ulder Ravengard, Marshal +ManaCost:1 R W +Types:Legendary Creature Human Noble Soldier +PT:3/3 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpEOT | TriggerDescription$ When CARDNAME enters the battlefield, another target nontoken creature you control gains double team until end of turn. +SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtPrompt$ Select another target nontoken creature | KW$ Double Team +T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. +SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | SubAbility$ DBMakeCard +SVar:DBMakeCard:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand +Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/warriors_of_tiamat.txt b/forge-gui/res/cardsfolder/upcoming/warriors_of_tiamat.txt new file mode 100644 index 00000000000..b3c0f03651f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/warriors_of_tiamat.txt @@ -0,0 +1,7 @@ +Name:Warriors of Tiamat +ManaCost:4 R +Types:Creature Dragon Warrior +PT:4/2 +K:Haste +K:Double Team +Oracle:Haste\nDouble Team \ No newline at end of file From c12c6645f9c159415f045c3fb7075d0a78868bb8 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:03:14 +0200 Subject: [PATCH 10/40] Update CardFactoryUtil.java --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index c47a7f36632..dd6044478bd 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1063,20 +1063,19 @@ public class CardFactoryUtil { dethroneTrigger.setOverridingAbility(AbilityFactory.getAbility(abString, card)); inst.addTrigger(dethroneTrigger); - } else if (keyword.equals("Double Team")) { - + } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True "; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; - final String madeforgetString ="Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); forget.setSVar("RemoveDoubleTeamMade",madeforgetString); youMake.setSubAbility(forget); trigger.setOverridingAbility(youMake); - inst.addTrigger(trigger); + inst.addTrigger(trigger); } else if (keyword.startsWith("Echo")) { final String[] k = keyword.split(":"); final String cost = k[1]; From d8db68796bcb0ef5693292246195cdf945b13cdb Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:18:53 +0200 Subject: [PATCH 11/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index dd6044478bd..f2505f80934 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,8 +1064,8 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); From 0ff9a3505b5a9bb4a5436f7ff26c3d7cc2c2ae69 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:19:41 +0200 Subject: [PATCH 12/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index f2505f80934..e6ca7707093 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,8 +1064,8 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); From 32be4628f21a554e15016c24bf922cd47ddf7dc8 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:20:16 +0200 Subject: [PATCH 13/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index e6ca7707093..5f492a878e7 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,7 +1066,7 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); From f645c672ab6296df332eb22c7b794a7e5dc6b511 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:21:14 +0200 Subject: [PATCH 14/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 5f492a878e7..5a630e734b4 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,7 +1066,7 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); From b43b1401e2700ad23b8174cc38eccfb895a04285 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:21:39 +0200 Subject: [PATCH 15/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 5a630e734b4..5f492a878e7 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,7 +1066,7 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); From 0639e0b9082ad7b3b10dbbc4be5a855f69faef25 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:22:03 +0200 Subject: [PATCH 16/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 5f492a878e7..b4a14e02050 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,7 +1066,7 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); From 257dbc6b51aaf96edb38796bfa08d0e81257a658 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:22:27 +0200 Subject: [PATCH 17/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index b4a14e02050..45e849e9553 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,7 +1066,7 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); From 8d9fba0ee0f5b40b99ef1808b0773443ca1b4e1b Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 25 Aug 2022 18:23:11 +0200 Subject: [PATCH 18/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 45e849e9553..493287fabb1 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,8 +1064,8 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); From d469fa2934114f162c85ebc1ac0ef6368e93e103 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 16:55:38 +0200 Subject: [PATCH 19/40] update --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 3 +++ forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 493287fabb1..f747492570b 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1068,11 +1068,14 @@ public class CardFactoryUtil { final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String CleanupString = "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True$"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); + final AbilitySub Cleanup = (AbilitySub) AbilityFactory.getAbility(CleanupString, card); forget.setSVar("RemoveDoubleTeamMade",madeforgetString); youMake.setSubAbility(forget); + forget.setSubAbility(Cleanup); trigger.setOverridingAbility(youMake); inst.addTrigger(trigger); diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index e19ef50f3dd..4076132c5cf 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -5,8 +5,6 @@ T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefi SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl+nonToken | StaticAbilities$ PerpetualDoubleTeam | Name$ Sworn to the Legion's Perpetual Effect | Duration$ Permanent SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Nontoken creatures you control perpetually gain double team. T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. -SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent +SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team -SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate -SVar:DBUpdate:DB$ UpdateRemember Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1. \ No newline at end of file From 4f656a004eec3a654a9dfcd66f1c9639286210b8 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 17:28:34 +0200 Subject: [PATCH 20/40] Update CardFactoryUtil.java --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index f747492570b..b9bdf0f5747 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,11 +1064,11 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | ImprintSource$ True | TriggerDescription$(" + inst.getReminderText() + ")"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | RememberObjects$ Imprinted | StaticAbilities$ RemoveDoubleTeamMade"; - final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; - final String CleanupString = "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True$"; + final String forgetString = "DB$ Effect | Duration$ Permanent | StaticAbilities$ RemoveDoubleTeamMade"; + final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.Remembered,Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String CleanupString = "DB$ Cleanup | ClearRemembered$ True"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); From 1c677adc1d7d934cfa13706a968c73d84dc8414a Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:24:08 +0200 Subject: [PATCH 21/40] Update CardFactoryUtil.java --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index b9bdf0f5747..ba2a10c30e6 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1066,14 +1066,16 @@ public class CardFactoryUtil { } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$(" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | StaticAbilities$ RemoveDoubleTeamMade"; - final String madeforgetString = "Mode$ Continuous | EffectZone$ Command | ValidCard$ Card.Remembered,Card.Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered,Imprinted | StaticAbilities$ RemoveDoubleTeamMade,RemoveDoubleStrikeSelf"; + final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String madeforgetselfString = "Mode$ Continuous | EffectZone$ Command | Defined$ Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final String CleanupString = "DB$ Cleanup | ClearRemembered$ True"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); final AbilitySub Cleanup = (AbilitySub) AbilityFactory.getAbility(CleanupString, card); - forget.setSVar("RemoveDoubleTeamMade",madeforgetString); + forget.setSVar("RemoveDoubleTeamMade",madeforgetmadeString); + forget.setSVar("RemoveDoubleTeamSelf",madeforgetselfString); youMake.setSubAbility(forget); forget.setSubAbility(Cleanup); trigger.setOverridingAbility(youMake); From c47c9ffca79ba32cba70b72899306ad543f2feb0 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:49:19 +0200 Subject: [PATCH 22/40] Update CardFactoryUtil.java --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index ba2a10c30e6..8b84a2b6bdb 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1065,17 +1065,15 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; - final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered,Imprinted | StaticAbilities$ RemoveDoubleTeamMade,RemoveDoubleStrikeSelf"; - final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; - final String madeforgetselfString = "Mode$ Continuous | EffectZone$ Command | Defined$ Self | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberImprinted$ True | RememberMade$ True"; + final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | ImprintCards$ TriggeredAttacker | StaticAbilities$ RemoveDoubleTeamMade"; + final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final String CleanupString = "DB$ Cleanup | ClearRemembered$ True"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); final AbilitySub Cleanup = (AbilitySub) AbilityFactory.getAbility(CleanupString, card); forget.setSVar("RemoveDoubleTeamMade",madeforgetmadeString); - forget.setSVar("RemoveDoubleTeamSelf",madeforgetselfString); youMake.setSubAbility(forget); forget.setSubAbility(Cleanup); trigger.setOverridingAbility(youMake); From 0cbed42dff3ba81df8aa54c31f3fcabff7c94600 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 19:53:28 +0200 Subject: [PATCH 23/40] Update CardFactoryUtil.java --- forge-game/src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 8b84a2b6bdb..94e795ba789 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1065,7 +1065,7 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$(" + inst.getReminderText() + ")"; - final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberImprinted$ True | RememberMade$ True"; + final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | ImprintCards$ TriggeredAttacker | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; final String CleanupString = "DB$ Cleanup | ClearRemembered$ True"; From db510659628e717a8bdb9290b3cf4e9ded3ad2fa Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 21:43:46 +0200 Subject: [PATCH 24/40] Update sworn_to_the_legion.txt --- forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index 4076132c5cf..8c57df8811f 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -7,4 +7,4 @@ SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKey T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team -Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1. \ No newline at end of file +Oracle:When Sworn to the Legion enters the battlefield, nontoken creatures you control perpetually gain double team.\nWhenever you cast a creature spell, it perpetually gains double team. From 6c49ccbefcd243f06ee9f02b054e488fa33d6be6 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Fri, 26 Aug 2022 22:56:30 +0200 Subject: [PATCH 25/40] Update genasi_rabble_rouser.txt --- forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt index c5de81318dc..ebd01a44f36 100644 --- a/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt +++ b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt @@ -3,5 +3,4 @@ ManaCost:1 R Types:Creature Elemental Shaman K:Double Team A:AB$ PumpAll | Cost$ 1 R | ValidCards$ Creature.YouCtrl+namedGenasi Rabble-Rouser | NumAtt$ +1 | SpellDescription$ Creatures you control named Genasi Rabble-Rouser get +1/+0 until end of turn. -DeckHas:Ability$Token Oracle:Double team\n{1}{R}: Creatures you control named Genasi Rabble-Rouser gets +1/+0 until end of turn. From 1fb056c4f6b35076abb0a09250d2d3f5edd37b8e Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 27 Aug 2022 16:16:42 +0200 Subject: [PATCH 26/40] update --- .../src/main/java/forge/game/card/CardFactoryUtil.java | 2 +- .../res/cardsfolder/upcoming/seatower_imprisonment.txt | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 94e795ba789..71a90586f79 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1068,7 +1068,7 @@ public class CardFactoryUtil { final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | ImprintCards$ TriggeredAttacker | StaticAbilities$ RemoveDoubleTeamMade"; final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; - final String CleanupString = "DB$ Cleanup | ClearRemembered$ True"; + final String CleanupString = "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); final AbilitySub forget = (AbilitySub) AbilityFactory.getAbility(forgetString, card); diff --git a/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt new file mode 100644 index 00000000000..5944b1d99f3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt @@ -0,0 +1,9 @@ +Name:Seatower Imprisonment +ManaCost:2 W W +Types:Enchantment Aura +K:Enchant creature or planeswalker you don't control +A:SP$ Attach | ValidTgts$ Creature.YouDontCtrl ,Planeswalker.YouDontCtrl | AILogic$ Curse +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield. +SVar:TrigConjure:DB$ MakeCard | Name$ Soldiers of the Watch | Zone$ Battlefield +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. & CARDNAME's activated abilities can't be activated. | Description$ Enchanted permanent can't attack or block and its activated abilities can't be activated. +Oracle:Enchant creature or planeswalker you don’t control\nWhen Seatower Imprisonment enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield.\nEnchanted permanent can't attack or block and its activated abilities can't be activated. \ No newline at end of file From 4d6a0ff5db9a6daa25328c3f94461fbcf71c9c47 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Sat, 27 Aug 2022 16:24:03 +0200 Subject: [PATCH 27/40] Update seatower_imprisonment.txt --- forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt index 5944b1d99f3..391897e8ff7 100644 --- a/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt +++ b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt @@ -6,4 +6,4 @@ A:SP$ Attach | ValidTgts$ Creature.YouDontCtrl ,Planeswalker.YouDontCtrl | AILog T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield. SVar:TrigConjure:DB$ MakeCard | Name$ Soldiers of the Watch | Zone$ Battlefield S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. & CARDNAME's activated abilities can't be activated. | Description$ Enchanted permanent can't attack or block and its activated abilities can't be activated. -Oracle:Enchant creature or planeswalker you don’t control\nWhen Seatower Imprisonment enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield.\nEnchanted permanent can't attack or block and its activated abilities can't be activated. \ No newline at end of file +Oracle:Enchant creature or planeswalker you don't control\nWhen Seatower Imprisonment enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield.\nEnchanted permanent can't attack or block and its activated abilities can't be activated. From 4790a199cbde42cc1f80ffdbfdb08ccc2515ba36 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:01:48 +0200 Subject: [PATCH 28/40] Update --- .../main/java/forge/game/ability/effects/MakeCardEffect.java | 1 - forge-game/src/main/java/forge/game/card/CardProperty.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index d1c406e986a..166f38d4f68 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -71,7 +71,6 @@ public class MakeCardEffect extends SpellAbilityEffect { if (!name.equals("")) { while (amount > 0) { Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player); - card.setTokenCard(true); game.getAction().moveTo(ZoneType.None, card, sa, moveParams); cards.add(card); amount--; diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 9a703130bc8..b94bb6f6124 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1339,7 +1339,7 @@ public class CardProperty { return false; } } else if (property.startsWith("token")) { - if (!card.isToken() && !card.isTokenCard()) { + if (!card.isToken()) { return false; } // copied spell don't count @@ -1347,7 +1347,7 @@ public class CardProperty { return false; } } else if (property.startsWith("nonToken")) { - if (card.isToken() || card.isTokenCard()) { + if (card.isToken()) { return false; } } else if (property.startsWith("copiedSpell")) { From 56352c41a00dc114a74d47a35be4bb1fc53e5021 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:04:49 +0200 Subject: [PATCH 29/40] revert --- .../main/java/forge/game/ability/effects/MakeCardEffect.java | 1 + forge-game/src/main/java/forge/game/card/CardProperty.java | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index 166f38d4f68..d1c406e986a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -71,6 +71,7 @@ public class MakeCardEffect extends SpellAbilityEffect { if (!name.equals("")) { while (amount > 0) { Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player); + card.setTokenCard(true); game.getAction().moveTo(ZoneType.None, card, sa, moveParams); cards.add(card); amount--; diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index b94bb6f6124..9a703130bc8 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -1339,7 +1339,7 @@ public class CardProperty { return false; } } else if (property.startsWith("token")) { - if (!card.isToken()) { + if (!card.isToken() && !card.isTokenCard()) { return false; } // copied spell don't count @@ -1347,7 +1347,7 @@ public class CardProperty { return false; } } else if (property.startsWith("nonToken")) { - if (card.isToken()) { + if (card.isToken() || card.isTokenCard()) { return false; } } else if (property.startsWith("copiedSpell")) { From 8f2946ed37fa064f14134a2387d1d52719d7c44e Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:40:02 +0200 Subject: [PATCH 30/40] Update MakeCardEffect.java --- .../src/main/java/forge/game/ability/effects/MakeCardEffect.java | 1 - 1 file changed, 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index d1c406e986a..166f38d4f68 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -71,7 +71,6 @@ public class MakeCardEffect extends SpellAbilityEffect { if (!name.equals("")) { while (amount > 0) { Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player); - card.setTokenCard(true); game.getAction().moveTo(ZoneType.None, card, sa, moveParams); cards.add(card); amount--; From 815fb74de849746d974bd38aa1dfe008e97256ce Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:52:54 +0200 Subject: [PATCH 31/40] Update MakeCardEffect.java --- .../src/main/java/forge/game/ability/effects/MakeCardEffect.java | 1 + 1 file changed, 1 insertion(+) diff --git a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java index 166f38d4f68..d1c406e986a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/MakeCardEffect.java @@ -71,6 +71,7 @@ public class MakeCardEffect extends SpellAbilityEffect { if (!name.equals("")) { while (amount > 0) { Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player); + card.setTokenCard(true); game.getAction().moveTo(ZoneType.None, card, sa, moveParams); cards.add(card); amount--; From b9bd0745666ad4004d4ccf026446b591fc127a93 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:57:04 +0200 Subject: [PATCH 32/40] Update genasi_rabble_rouser.txt --- forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt index ebd01a44f36..48cc67b15e2 100644 --- a/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt +++ b/forge-gui/res/cardsfolder/upcoming/genasi_rabble_rouser.txt @@ -3,4 +3,5 @@ ManaCost:1 R Types:Creature Elemental Shaman K:Double Team A:AB$ PumpAll | Cost$ 1 R | ValidCards$ Creature.YouCtrl+namedGenasi Rabble-Rouser | NumAtt$ +1 | SpellDescription$ Creatures you control named Genasi Rabble-Rouser get +1/+0 until end of turn. +DeckHints:Name$Genasi Rabble-Rouser Oracle:Double team\n{1}{R}: Creatures you control named Genasi Rabble-Rouser gets +1/+0 until end of turn. From 35b2ad8fc83002397ec9f3920aafb29b3ad52aa3 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:57:56 +0200 Subject: [PATCH 33/40] Update gnoll_hunting_party.txt --- forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt b/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt index aeebb105d8b..d194a5492a3 100644 --- a/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt +++ b/forge-gui/res/cardsfolder/upcoming/gnoll_hunting_party.txt @@ -6,4 +6,5 @@ S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ X | EffectZone S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, CARDNAME has first strike. SVar:X:Count$AttackersDeclared K:Double Team -Oracle:This spell costs {1} less to cast for each creature you attacked with this turn.\nDouble team\nAs long as it's your turn, Gnoll Hunting Party has first strike. \ No newline at end of file +SVar:PlayMain2:TRUE +Oracle:This spell costs {1} less to cast for each creature you attacked with this turn.\nDouble team\nAs long as it's your turn, Gnoll Hunting Party has first strike. From a41f3603f9a92f94528f5004cf815ebe71d14bfa Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 18:58:56 +0200 Subject: [PATCH 34/40] Update sworn_to_the_legion.txt --- forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index 8c57df8811f..a3e23ed1fe7 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -7,4 +7,5 @@ SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKey T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team +SVar:BuffedBy:Creature Oracle:When Sworn to the Legion enters the battlefield, nontoken creatures you control perpetually gain double team.\nWhenever you cast a creature spell, it perpetually gains double team. From 3c83042c70bfc12c0c94fda8888e055b564f1261 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 19:01:21 +0200 Subject: [PATCH 35/40] Update ulder_ravengard_marshal.txt --- forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt index 21a569c956c..adf81a8e73f 100644 --- a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt +++ b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt @@ -7,4 +7,5 @@ SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtProm T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | SubAbility$ DBMakeCard SVar:DBMakeCard:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand -Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. \ No newline at end of file +SVar:HasAttackEffect:TRUE +Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. From e7566034bcb7b8744fa8e1b92a9f2e1d534aa0f0 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 19:28:47 +0200 Subject: [PATCH 36/40] Update tiefling_outcasts.txt --- forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt b/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt index f630d6352ac..3c0df1ec579 100644 --- a/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt +++ b/forge-gui/res/cardsfolder/upcoming/tiefling_outcasts.txt @@ -1,8 +1,8 @@ Name:Tiefling Outcasts ManaCost:R -Types:Tiefling Peasant +Types:Creature Tiefling Peasant PT:1/1 K:Double Team S:Mode$ Continuous | Affected$ Demon.Other+YouCtrl,Devil.Other+YouCtrl,Imp.Other+YouCtrl,Tiefling.Other+YouCtrl | AddPower$ 1 | Description$ Other Demons, Devils, Imps, and Tieflings you control get +1/+0. DeckHints:Type$Demon|Devil|Imp|Tiefling -Oracle:Double Team\nOther Demons, Devils, Imps, and Tieflings you control get +1/+0. \ No newline at end of file +Oracle:Double Team\nOther Demons, Devils, Imps, and Tieflings you control get +1/+0. From ccce87f3539d8200ec1bb72aa6f01ff587ac8992 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:23:51 +0200 Subject: [PATCH 37/40] update --- .../main/java/forge/game/card/CardFactoryUtil.java | 4 ++-- .../res/cardsfolder/upcoming/champions_of_tyr.txt | 14 -------------- .../cardsfolder/upcoming/seatower_imprisonment.txt | 2 +- .../cardsfolder/upcoming/sworn_to_the_legion.txt | 2 +- .../upcoming/ulder_ravengard_marshal.txt | 6 +++--- 5 files changed, 7 insertions(+), 21 deletions(-) delete mode 100644 forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index c68571d4268..25bcd2abb76 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1064,10 +1064,10 @@ public class CardFactoryUtil { inst.addTrigger(dethroneTrigger); } else if (keyword.equals("Double Team")) { - final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$(" + inst.getReminderText() + ")"; + final String doubleteamScript = "Mode$ Attacks | ValidCard$ Card.Self+nonToken | TriggerZones$ Battlefield | TriggerDescription$ (" + inst.getReminderText() + ")"; final String makeString = "DB$ MakeCard | DefinedName$ Self | Zone$ Hand | RememberMade$ True"; final String forgetString = "DB$ Effect | Duration$ Permanent | RememberObjects$ Remembered | ImprintCards$ TriggeredAttacker | StaticAbilities$ RemoveDoubleTeamMade"; - final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually loses Double Team"; + final String madeforgetmadeString = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered,Card.IsImprinted | RemoveKeyword$ Double Team | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Both cards perpetually lose double team."; final String CleanupString = "DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True"; final Trigger trigger = TriggerHandler.parseTrigger(doubleteamScript, card, intrinsic); final SpellAbility youMake = AbilityFactory.getAbility(makeString, card); diff --git a/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt b/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt deleted file mode 100644 index 168f18dd25e..00000000000 --- a/forge-gui/res/cardsfolder/upcoming/champions_of_tyr.txt +++ /dev/null @@ -1,14 +0,0 @@ -Name:Champions of Tyr -ManaCost:2 W W -Types:Creature Angel Knight -PT:4/3 -K:Flying -K:Double Team -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ DBDelayedTrigger | TriggerDescription$ When CARDNAME enters the battlefield, you get a boon with "When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it." -SVar:DBDelayedTrigger:DB$ DelayedTrigger | Execute$ TrigAddAPI | Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerDescription$ When you cast your next creature spell, that creature enters the battlefield with an additional +1/+1 counter, trample counter, and vigilance counter on it. -SVar:TrigAddAPI:DB$ Effect | RememberObjects$ TriggeredCard | ForgetOnMoved$ Stack | ReplacementEffects$ ReplaceEnter -SVar:ReplaceEnter:Event$ Moved | ValidCard$ Card.IsRemembered | Destination$ Battlefield | ReplaceWith$ AddExtraCounter | ReplacementResult$ Updated | Description$ When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it. -SVar:AddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ P1P1,Flying,Lifelink | CounterNum$ 1 -SVar:DBExile:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile -DeckHas:Ability$LifeGain|Counters -Oracle:Flying\nDouble team\nWhen Champions of Tyr enters the battlefield, you get a boon with "When you cast your next creature spell, that creature enters the battlefield with your choice of a +1/+1 counter, a flying counter, or a lifelink counter on it." \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt index 391897e8ff7..c49cb221f5a 100644 --- a/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt +++ b/forge-gui/res/cardsfolder/upcoming/seatower_imprisonment.txt @@ -2,7 +2,7 @@ Name:Seatower Imprisonment ManaCost:2 W W Types:Enchantment Aura K:Enchant creature or planeswalker you don't control -A:SP$ Attach | ValidTgts$ Creature.YouDontCtrl ,Planeswalker.YouDontCtrl | AILogic$ Curse +A:SP$ Attach | ValidTgts$ Creature.YouDontCtrl,Planeswalker.YouDontCtrl | AILogic$ Curse T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, conjure a card named Soldiers of the Watch onto the battlefield. SVar:TrigConjure:DB$ MakeCard | Name$ Soldiers of the Watch | Zone$ Battlefield S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddHiddenKeyword$ CARDNAME can't attack or block. & CARDNAME's activated abilities can't be activated. | Description$ Enchanted permanent can't attack or block and its activated abilities can't be activated. diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index a3e23ed1fe7..8d2dfb4b579 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -5,7 +5,7 @@ T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefi SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl+nonToken | StaticAbilities$ PerpetualDoubleTeam | Name$ Sworn to the Legion's Perpetual Effect | Duration$ Permanent SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Nontoken creatures you control perpetually gain double team. T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. -SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect two | Duration$ Permanent +SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect | Duration$ Permanent SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team SVar:BuffedBy:Creature Oracle:When Sworn to the Legion enters the battlefield, nontoken creatures you control perpetually gain double team.\nWhenever you cast a creature spell, it perpetually gains double team. diff --git a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt index adf81a8e73f..18d3f2d8a8b 100644 --- a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt +++ b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt @@ -3,9 +3,9 @@ ManaCost:1 R W Types:Legendary Creature Human Noble Soldier PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpEOT | TriggerDescription$ When CARDNAME enters the battlefield, another target nontoken creature you control gains double team until end of turn. -SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtPrompt$ Select another target nontoken creature | KW$ Double Team -T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. +SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtPrompt$ Select another target nontoken creature you control | KW$ Double Team +T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever NICKNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | SubAbility$ DBMakeCard -SVar:DBMakeCard:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand +SVar:DBMakeCard:DB$ MakeCard | DefinedName$ Targeted | Zone$ Hand SVar:HasAttackEffect:TRUE Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. From 9a11575a1218863697f9824b135b6223fa582c83 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:26:39 +0200 Subject: [PATCH 38/40] Update ulder_ravengard_marshal.txt --- forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt index 18d3f2d8a8b..e8f4b26c7d4 100644 --- a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt +++ b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt @@ -6,6 +6,6 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtPrompt$ Select another target nontoken creature you control | KW$ Double Team T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever NICKNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | SubAbility$ DBMakeCard -SVar:DBMakeCard:DB$ MakeCard | DefinedName$ Targeted | Zone$ Hand +SVar:DBMakeCard:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand SVar:HasAttackEffect:TRUE Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. From 1cdf81fa1ffeafa1a8ac147ae49526f58f4b6aff Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Wed, 31 Aug 2022 07:09:49 +0200 Subject: [PATCH 39/40] Update sworn_to_the_legion.txt --- forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt index 8d2dfb4b579..a7cd72cd301 100644 --- a/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt +++ b/forge-gui/res/cardsfolder/upcoming/sworn_to_the_legion.txt @@ -6,6 +6,6 @@ SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl+nonToken | St SVar:PerpetualDoubleTeam:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Nontoken creatures you control perpetually gain double team. T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffectCast | TriggerDescription$ Whenever you cast a creature spell, it perpetually gains double team. SVar:DBEffectCast:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualDoubleTeamCast | Name$ Sworn to the Legion's Perpetual Effect | Duration$ Permanent -SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team +SVar:PerpetualDoubleTeamCast:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Double Team | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains double team. SVar:BuffedBy:Creature Oracle:When Sworn to the Legion enters the battlefield, nontoken creatures you control perpetually gain double team.\nWhenever you cast a creature spell, it perpetually gains double team. From a1bc0f0b349b071120791c37e1f52813fef7d9b7 Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Wed, 31 Aug 2022 18:45:22 +0200 Subject: [PATCH 40/40] Update ulder_ravengard_marshal.txt --- .../res/cardsfolder/upcoming/ulder_ravengard_marshal.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt index e8f4b26c7d4..04128aee82d 100644 --- a/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt +++ b/forge-gui/res/cardsfolder/upcoming/ulder_ravengard_marshal.txt @@ -4,8 +4,7 @@ Types:Legendary Creature Human Noble Soldier PT:3/3 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpEOT | TriggerDescription$ When CARDNAME enters the battlefield, another target nontoken creature you control gains double team until end of turn. SVar:TrigPumpEOT:DB$ Pump | ValidTgts$ Creature.YouCtrl+nonToken+Other | TgtPrompt$ Select another target nontoken creature you control | KW$ Double Team -T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigChoose | TriggerDescription$ Whenever NICKNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. -SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | SubAbility$ DBMakeCard -SVar:DBMakeCard:DB$ MakeCard | DefinedName$ ChosenCard | Zone$ Hand +T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigConjure | TriggerDescription$ Whenever NICKNAME attacks, conjure a duplicate of another target nontoken attacking creature into your hand. +SVar:TrigConjure:DB$ MakeCard | ValidTgts$ Creature.attacking+Other+nonToken | TgtPrompt$ Select another target nontoken creature that is attacking | DefinedName$ Targeted | Zone$ Hand SVar:HasAttackEffect:TRUE -Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. +Oracle:When Ulder Ravengard, Marshal enters the battlefield, another target nontoken creature you control gains double team until end of turn.\nWhenever Ulder Ravengard attacks, conjure a duplicate of another target nontoken attacking creature into your hand. \ No newline at end of file