From 3fed75e08958466227efb7a2d94193f67d03637d Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Thu, 26 Oct 2023 19:55:35 +0200 Subject: [PATCH] YWOE Talions Throneguard (#3978) * Create talions_throneguard.txt * fix cards and tweak Bargain interface * update --------- Co-authored-by: Northmoc --- .../src/main/java/forge/game/GameActionUtil.java | 2 +- .../game/spellability/OptionalCostValue.java | 2 +- .../cardsfolder/upcoming/dunbarrow_revivalist.txt | 4 ++-- .../cardsfolder/upcoming/talions_throneguard.txt | 15 +++++++++++++++ forge-gui/res/languages/en-US.properties | 2 +- 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 forge-gui/res/cardsfolder/upcoming/talions_throneguard.txt diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index f62eb05b3d3..485c1acb675 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -441,7 +441,7 @@ public final class GameActionUtil { for (KeywordInterface inst : source.getKeywords()) { final String keyword = inst.getOriginal(); if (keyword.equals("Bargain")) { - final Cost cost = new Cost("Sac<1/Artifact;Enchantment;Card.token/artifact or enchantment or token>", false); + final Cost cost = new Cost("Sac<1/Artifact;Enchantment;Card.token/artifact, enchantment or token>", false); costs.add(new OptionalCostValue(OptionalCost.Bargain, cost)); } else if (keyword.startsWith("Buyback")) { final Cost cost = new Cost(keyword.substring(8), false); diff --git a/forge-game/src/main/java/forge/game/spellability/OptionalCostValue.java b/forge-game/src/main/java/forge/game/spellability/OptionalCostValue.java index 4375a6c956f..6131726faa1 100644 --- a/forge-game/src/main/java/forge/game/spellability/OptionalCostValue.java +++ b/forge-game/src/main/java/forge/game/spellability/OptionalCostValue.java @@ -54,7 +54,7 @@ public class OptionalCostValue implements Serializable { boolean isTag = type.getName().startsWith("("); if (type != OptionalCost.Generic && !isTag) { sb.append(type.getName()); - sb.append(" "); + sb.append(" – "); } sb.append(cost.toSimpleString()); sb.append(isTag ? " " + type.getName() : ""); diff --git a/forge-gui/res/cardsfolder/upcoming/dunbarrow_revivalist.txt b/forge-gui/res/cardsfolder/upcoming/dunbarrow_revivalist.txt index f60b14aeebf..e8c7a1ba3e1 100644 --- a/forge-gui/res/cardsfolder/upcoming/dunbarrow_revivalist.txt +++ b/forge-gui/res/cardsfolder/upcoming/dunbarrow_revivalist.txt @@ -7,8 +7,8 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigBoon:DB$ Effect | Boon$ True | Duration$ Permanent | Triggers$ ChangeZoneTrig | SubAbility$ DBBargained SVar:ChangeZoneTrig:Mode$ ChangesZoneAll | ValidCards$ Creature.YouCtrl | Destination$ Battlefield | TriggerZones$ Command | OneOff$ True | Execute$ TrigChoose | TriggerDescription$ When one or more creatures enter the battlefield under your control, create a Wicked Role token attached to one of them. SVar:TrigChoose:DB$ ChooseCard | Defined$ You | Choices$ Card.TriggeredCards | ChoiceTitle$ Choose one of the cards that entered the battlefield | Mandatory$ True | SubAbility$ DBToken -SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ role_wicked | TokenOwner$ You | AttachedTo$ ChosenCard -SVar:DBBargained:DB$ ChangeZone | Condition$ Bargain | Origin$ Graveyard | Destination$ Hand | Hidden$ True | ChangeType$ Creature.YouOwn | ChangeNum$ 1 +SVar:DBToken:DB$ Token | TokenScript$ role_wicked | AttachedTo$ ChosenCard +SVar:DBBargained:DB$ ChangeZone | ConditionDefined$ Self | ConditionPresent$ Card.bargained | Origin$ Graveyard | Destination$ Hand | Hidden$ True | ChangeType$ Creature.YouOwn | ChangeNum$ 1 DeckHints:Type$Artifact|Enchantment & Ability$Token DeckHas:Ability$Sacrifice|LifeGain|Token|Graveyard & Type$Aura Oracle:Bargain\nWhen Dunbarrow Revivalist enters the battlefield, you get a one-time boon with "When one or more creatures enter the battlefield under your control, create a Wicked Role token attached to one of them." Then if Dunbarrow Revivalist was bargained, return a creature card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/upcoming/talions_throneguard.txt b/forge-gui/res/cardsfolder/upcoming/talions_throneguard.txt new file mode 100644 index 00000000000..03d9b308ff1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/talions_throneguard.txt @@ -0,0 +1,15 @@ +Name:Talion's Throneguard +ManaCost:2 U U +Types:Creature Faerie Wizard +PT:2/1 +K:Flash +K:Bargain +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When CARDNAME enters the battlefield, return up to one target spell or nonland permanent to its owner's hand. If CARDNAME was bargained, that card perpetually gains "This spell costs {2} more to cast." +SVar:TrigReturn:DB$ ChangeZone | ValidTgts$ Permanent.nonLand,Card.inZoneStack | TgtZone$ Stack,Battlefield | TargetMin$ 0 | TargetMax$ 1 | Origin$ Battlefield,Stack | Fizzle$ True | Destination$ Hand | RememberChanged$ True | TgtPrompt$ Choose up to one target spell or nonland permanent | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | ConditionDefined$ Self | ConditionPresent$ Card.bargained | StaticAbilities$ PerpetualAbility | Name$ Talion's Throneguard's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup +SVar:PerpetualAbility:Mode$ RaiseCost | ValidCard$ Card.IsRemembered | Type$ Spell | Amount$ 2 | EffectZone$ All | Description$ This spell costs {2} more to cast. +SVar:DBCleanup:DB$ Cleanup | ClearRemembered +DeckHints:Type$Artifact|Enchantment & Ability$Token +DeckHas:Ability$Sacrifice +Oracle:Flash\nBargain\nFlying\nWhen Talion's Throneguard enters the battlefield, return up to one target spell or nonland permanent to its owner's hand. If Talion's Throneguard was bargained, that card perpetually gains "This spell costs {2} more to cast." diff --git a/forge-gui/res/languages/en-US.properties b/forge-gui/res/languages/en-US.properties index dec6d20161d..1b07c31b757 100644 --- a/forge-gui/res/languages/en-US.properties +++ b/forge-gui/res/languages/en-US.properties @@ -1279,7 +1279,7 @@ lblTriggeredby=Triggered by lblChooseWhichCardstoReveal=Choose which card(s) to reveal lblChooseCardsActivateOpeningHandandOrder=Choose cards to activate from opening hand and their order lblActivateFirst=Activate first -lblChooseOptionalCosts=Choose optional Costs +lblChooseOptionalCosts=Choose optional costs lblOptionalCosts=Optional Costs lblDoYouWanttoScry=Do you want to scry? lblChooseCardstoSpliceonto=Choose cards to Splice onto