diff --git a/forge-game/src/main/java/forge/game/player/PlayerProperty.java b/forge-game/src/main/java/forge/game/player/PlayerProperty.java index c3aaea9e604..e7eba207801 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerProperty.java +++ b/forge-game/src/main/java/forge/game/player/PlayerProperty.java @@ -22,6 +22,7 @@ public class PlayerProperty { Game game = player.getGame(); if (property.endsWith("Activator")) { sourceController = spellAbility.getHostCard().getController(); + property = property.substring(0, property.length() - 9); } if (property.equals("You")) { if (!player.equals(sourceController)) { diff --git a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java index 74ee9dcb995..91d3dd1cb64 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/NewGameScene.java @@ -193,7 +193,7 @@ public class NewGameScene extends UIScene { gender.getCurrentIndex() == 0, race.getCurrentIndex(), avatarIndex, - colorIds[custom.isEmpty() ? colorId.getCurrentIndex() : 0], + colorIds[custom.isEmpty() || !AdventureModes.Custom.equals(modes.get(mode.getCurrentIndex())) ? colorId.getCurrentIndex() : 0], Config.instance().getConfigData().difficulties[difficulty.getCurrentIndex()], modes.get(mode.getCurrentIndex()), colorId.getCurrentIndex(), editionIds[starterEdition.getCurrentIndex()], 0);//maybe replace with enum diff --git a/forge-gui/res/cardsfolder/s/scythe_of_the_wretched.txt b/forge-gui/res/cardsfolder/s/scythe_of_the_wretched.txt index c1061cdad06..cb9af6bd0b7 100644 --- a/forge-gui/res/cardsfolder/s/scythe_of_the_wretched.txt +++ b/forge-gui/res/cardsfolder/s/scythe_of_the_wretched.txt @@ -3,7 +3,7 @@ ManaCost:2 Types:Artifact Equipment K:Equip:4 S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Equipped creature gets +2/+2 -T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedByEquipped | TriggerZones$ Battlefield | Execute$ ScytheReturn | TriggerDescription$ Whenever a creature dealt damage by equipped creature this turn dies, return that card to the battlefield under your control. Attach CARDNAME to that creature. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedBy Equipped | TriggerZones$ Battlefield | Execute$ ScytheReturn | TriggerDescription$ Whenever a creature dealt damage by equipped creature this turn dies, return that card to the battlefield under your control. Attach CARDNAME to that creature. SVar:ScytheReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ TriggeredCard | RememberChanged$ True | SubAbility$ ScytheAttach SVar:ScytheAttach:DB$ Attach | Defined$ Remembered | SubAbility$ WretchedCleanup SVar:WretchedCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/upcoming/bewitching_leechcraft.txt b/forge-gui/res/cardsfolder/upcoming/bewitching_leechcraft.txt new file mode 100644 index 00000000000..43e35e1fec4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/bewitching_leechcraft.txt @@ -0,0 +1,14 @@ +Name:Bewitching Leechcraft +ManaCost:1 U +Types:Enchantment Aura +K:Enchant creature +A:SP$ Attach | ValidTgts$ Creature | AILogic$ Curse +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, tap enchanted creature. +SVar:TrigTap:DB$ Tap | Defined$ Enchanted +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddReplacementEffects$ DBUntap | Description$ Enchanted creature has "If this creature would untap during your untap step, remove a +1/+1 counter from it instead. If you do, untap it." (Otherwise, it doesn't untap.) +SVar:DBUntap:Event$ Untap | ActiveZones$ Battlefield | ValidCard$ Card.Self | ReplaceWith$ RepRemoveCounter | UntapStep$ True | Description$ If this creature would untap during your untap step, remove a +1/+1 counter from it instead. If you do, untap it. (Otherwise, it doesn't untap.) +SVar:RepRemoveCounter:DB$ RemoveCounter | Defined$ ReplacedCard | CounterType$ P1P1 | CounterNum$ 1 | RememberRemoved$ True | SubAbility$ Untap +SVar:Untap:DB$ Untap | Defined$ Self | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Count$RememberedSize +Oracle:Enchant creature\nWhen Bewitching Leechcraft enters the battlefield, tap enchanted creature.\nEnchanted creature has "If this creature would untap during your untap step, remove a +1/+1 counter from it instead. If you do, untap it." (Otherwise, it doesn't untap.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/improvised_club.txt b/forge-gui/res/cardsfolder/upcoming/improvised_club.txt new file mode 100644 index 00000000000..142e0bb4612 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/improvised_club.txt @@ -0,0 +1,8 @@ +Name:Improvised Club +ManaCost:1 R +Types:Instant +A:SP$ DealDamage | Cost$ 1 R Sac<1/Artifact;Creature/artifact or creature> | ValidTgts$ Any | NumDmg$ 4 | SpellDescription$ CARDNAME deals 4 damage to any target. +AI:RemoveDeck:All +DeckHas:Ability$Sacrifice +DeckHints:Type$Artifact +Oracle:As an additional cost to cast this spell, sacrifice an artifact or creature.\nImprovised Club deals 4 damage to any target. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/isildurs_fateful_strike.txt b/forge-gui/res/cardsfolder/upcoming/isildurs_fateful_strike.txt new file mode 100644 index 00000000000..ed245825fc4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/isildurs_fateful_strike.txt @@ -0,0 +1,7 @@ +Name:Isildur's Fateful Strike +ManaCost:2 B B +Types:Legendary Instant +A:SP$ Destroy | ValidTgts$ Creature | SubAbility$ DBExileHand | SpellDescription$ Destroy target creature. If its controller has more than four cards in hand, they exile cards from their hand equal to the difference. +SVar:DBExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ChangeType$ Card | Chooser$ TargetedController | Mandatory$ True | ChangeNum$ X | DefinedPlayer$ TargetedController +SVar:X:TargetedController$CardsInHand/Minus.4 +Oracle:(You may cast a legendary instant only if you control a legendary creature or planeswalker.)\nDestroy target creature. If its controller has more than four cards in hand, they exile cards from their hand equal to the difference. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/lembas.txt b/forge-gui/res/cardsfolder/upcoming/lembas.txt new file mode 100644 index 00000000000..f4830022f9f --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lembas.txt @@ -0,0 +1,11 @@ +Name:Lembas +ManaCost:2 +Types:Artifact Food +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigScry | TriggerDescription$ When CARDNAME enters the battlefield, scry 1, then draw a card. +SVar:TrigScry:DB$ Scry | ScryNum$ 1 | SubAbility$ DBDraw +SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 +A:AB$ GainLife | Cost$ 2 T Sac<1/CARDNAME> | Defined$ You | LifeAmount$ 3 | SpellDescription$ You gain 3 life. +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ ShuffleCard | TriggerDescription$ When CARDNAME is put into a graveyard from the battlefield, its owner shuffles it into their library. +SVar:ShuffleCard:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | Defined$ TriggeredNewCardLKICopy | ChangeNum$ 1 | Shuffle$ True | Mandatory$ True +DeckHas:Ability$LifeGain|Sacrifice +Oracle:When Lembas enters the battlefield, scry 1, then draw a card.\n{2}, {T}, Sacrifice Lembas: You gain 3 life.\nWhen Lembas is put into a graveyard from the battlefield, its owner shuffles it into their library. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/lost_to_legend.txt b/forge-gui/res/cardsfolder/upcoming/lost_to_legend.txt new file mode 100644 index 00000000000..c4e02c27d24 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/lost_to_legend.txt @@ -0,0 +1,5 @@ +Name:Lost to Legend +ManaCost:W W +Types:Instant +A:SP$ ChangeZone | ValidTgts$ Permanent.nonLand+Historic | TgtPrompt$ Select target historic nonland permanent | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 3 | IsCurse$ True | SpellDescription$ Put target nonland historic permanent into its owner's library fourth from the top. (Artifacts, legendaries, and Sagas are historic.) +Oracle:Put target nonland historic permanent into its owner's library fourth from the top. (Artifacts, legendaries, and Sagas are historic.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/old_man_willow.txt b/forge-gui/res/cardsfolder/upcoming/old_man_willow.txt new file mode 100644 index 00000000000..92f17d571af --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/old_man_willow.txt @@ -0,0 +1,13 @@ +Name:Old Man Willow +ManaCost:2 B G +Types:Legendary Creature Treefolk +PT:*/* +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of lands you control. +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigImmediate | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, you may sacrifice another creature or a token. When you do, target creature an opponent controls gets -2/-2 until end of turn. +SVar:TrigImmediate:AB$ ImmediateTrigger | Cost$ Sac<1/Creature.Other;Card.token/another creature or token> | Execute$ TrigDebuff | TriggerDescription$ When you do, target creature an opponent controls gets -2/-2 until end of turn. +SVar:TrigDebuff:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | NumAtt$ -2 | NumDef$ -2 | IsCurse$ True +SVar:X:Count$Valid Land.YouCtrl +DeckHas:Ability$Sacrifice +DeckHints:Ability$Token +SVar:HasAttackEffect:TRUE +Oracle:Old Man Willow's power and toughness are each equal to the number of lands you control.\nWhenever Old Man Willow attacks, you may sacrifice another creature or a token. When you do, target creature an opponent controls gets -2/-2 until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/pelargir_survivor.txt b/forge-gui/res/cardsfolder/upcoming/pelargir_survivor.txt new file mode 100644 index 00000000000..37e5ef6989d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/pelargir_survivor.txt @@ -0,0 +1,9 @@ +Name:Pelargir Survivor +ManaCost:1 U +Types:Creature Human Peasant +PT:1/3 +A:AB$ Mana | Cost$ T | Produced$ Any | RestrictValid$ Spell.Instant,Spell.Sorcery | SpellDescription$ Add one mana of any color. Spend this mana only to cast an instant or sorcery spell. +A:AB$ Mill | Cost$ 5 U T | NumCards$ 3 | ValidTgts$ Player | TgtPrompt$ Choose target player | SpellDescription$ Target player mills three cards. (They put the top three cards of their library into their graveyard.) +DeckHints:Type$Instant|Sorcery +DeckHas:Ability$Mill +Oracle:{T}: Add one mana of any color. Spend this mana only to cast an instant or sorcery spell.\n{5}{U}, {T}:Target player mills three cards. (They put the top three cards of their library into their graveyard.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/peregrin_took.txt b/forge-gui/res/cardsfolder/upcoming/peregrin_took.txt new file mode 100644 index 00000000000..a4de267acb4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/peregrin_took.txt @@ -0,0 +1,10 @@ +Name:Peregrin Took +ManaCost:2 G +Types:Legendary Creature Halfling Citizen +PT:2/3 +R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Food.YouCtrl | ReplaceWith$ DBReplace | Description$ If one or more tokens would be created under your control, those tokens plus an additional Food token are created instead. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.") +SVar:DBReplace:DB$ ReplaceToken | Type$ AddToken | Amount$ 1 | ValidCard$ Card.YouCtrl | TokenScript$ c_a_food_sac +A:AB$ Draw | Cost$ Sac<3/Food> | SpellDescription$ Draw a card. +DeckHas:Ability$Sacrifice|Token & Type$Food +DeckHints:Type$Food +Oracle:If one or more tokens would be created under your control, those tokens plus an additional Food token are created instead. (It's an artifact with "{2}, {T}, Sacrifice this artifact: You gain 3 life.")\nSacrifice three Foods: Draw a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/quickbeam_upstart_ent.txt b/forge-gui/res/cardsfolder/upcoming/quickbeam_upstart_ent.txt new file mode 100644 index 00000000000..3f7de733629 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/quickbeam_upstart_ent.txt @@ -0,0 +1,8 @@ +Name:Quickbeam, Upstart Ent +ManaCost:4 G G +Types:Legendary Creature Treefolk +PT:5/6 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self,Treefolk.Other+YouCtrl | Execute$ DBPump | TriggerDescription$ Whenever CARDNAME or another Treefolk enters the battlefield under your control, up to two target creatures each get +2/+2 and gain trample until end of turn. +SVar:DBPump:DB$ Pump | TargetMin$ 0 | TargetMax$ 2 | NumAtt$ +2 | NumDef$ 2 | KW$ Trample | ValidTgts$ Creature | TgtPrompt$ Select up to two target creatures. +DeckHints:Type$Treefolk +Oracle:Whenever Quickbeam, Upstart Ent or another Treefolk enters the battlefield under your control, up to two target creatures each get +2/+2 and gain trample until end of turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/sting_the_glinting_dagger.txt b/forge-gui/res/cardsfolder/upcoming/sting_the_glinting_dagger.txt new file mode 100644 index 00000000000..2c62b871b1e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sting_the_glinting_dagger.txt @@ -0,0 +1,9 @@ +Name:Sting, the Glinting Dagger +ManaCost:2 +Types:Legendary Artifact Equipment +K:Equip:2 +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Haste | Description$ Equipped creature gets +1/+1 and has haste. +T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ At the beginning of each combat, untap equipped creature. +SVar:TrigUntap:DB$ Untap | Defined$ Equipped +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ First Strike | IsPresent$ Creature.EquippedBy+blockingValid Goblin,Creature.EquippedBy+blockingValid Orc,Goblin.blockingValid Creature.EquippedBy,Orc.blockingValid Creature.EquippedBy | Description$ Equipped creature has first strike as long as it’s blocking or blocked by a Goblin or Orc. +Oracle:Equipped creature gets +1/+1 and has haste.\nAt the beginning of each combat, untap equipped creature.\nEquipped creature has first strike as long as it's blocking or blocked by a Goblin or Orc.\nEquip {2} \ No newline at end of file