From d8d18acfef155c46c044ee99ef84bf3b45f50d05 Mon Sep 17 00:00:00 2001 From: jjayers99 <56438137+jjayers99@users.noreply.github.com> Date: Fri, 17 Feb 2023 23:15:46 -0500 Subject: [PATCH] Adventure updates Adventure items can now spawn cards in command zone via startBattleWithCardInCommandZone - Updated Mana Shard based items to do so. Added new map objects: Mana Shard rewards, generic collision zone, intended for use in upcoming map updates. Fixed mismatched wall tile in green castle. --- .../forge/adventure/editor/RewardEdit.java | 2 +- .../main/java/forge/game/player/Player.java | 10 +++++++++ .../forge/game/player/RegisteredPlayer.java | 12 +++++++++++ .../src/forge/adventure/data/EffectData.java | 18 ++++++++++++++++ .../src/forge/adventure/scene/DuelScene.java | 6 ++++++ .../custom_cards/cursed_treasure.txt | 5 +++-- .../Shandalar/custom_cards/farmers_tools.txt | 5 +++-- .../custom_cards/hill_giant_club.txt | 8 +++---- .../Shandalar/custom_cards/pipers_charm.txt | 5 +++-- .../Shandalar/custom_cards/sleep_wand.txt | 5 +++-- .../maps/map/main_story/green_castle.tmx | 2 +- .../adventure/Shandalar/maps/obj/collision.tx | 8 +++++++ .../Shandalar/maps/obj/manashards.tx | 20 ++++++++++++++++++ .../adventure/Shandalar/maps/tileset/main.tsx | 12 +++++++++++ .../Shandalar/sprites/manashards.atlas | 17 +++++++++++++++ .../adventure/Shandalar/sprites/treasure.png | Bin 13675 -> 18694 bytes .../res/adventure/Shandalar/world/items.json | 10 ++++----- 17 files changed, 125 insertions(+), 20 deletions(-) create mode 100644 forge-gui/res/adventure/Shandalar/maps/obj/collision.tx create mode 100644 forge-gui/res/adventure/Shandalar/maps/obj/manashards.tx create mode 100644 forge-gui/res/adventure/Shandalar/sprites/manashards.atlas diff --git a/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java b/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java index 65cc3767bb0..0b2f521f707 100644 --- a/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java +++ b/forge-adventure/src/main/java/forge/adventure/editor/RewardEdit.java @@ -15,7 +15,7 @@ import java.util.Arrays; public class RewardEdit extends FormPanel { RewardData currentData; - JComboBox typeField =new JComboBox(new String[] { "card", "gold", "life", "deckCard", "item","mana"}); + JComboBox typeField =new JComboBox(new String[] { "card", "gold", "life", "deckCard", "item","shards"}); JSpinner probability = new JSpinner(new SpinnerNumberModel(0f, 0, 1, 0.1f)); JSpinner count = new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1)); JSpinner addMaxCount = new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1)); diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 83896843267..13759edaa84 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -2891,6 +2891,16 @@ public class Player extends GameEntity implements Comparable { com.add(conspire); } + // Adventure Mode items + Iterable adventureItemCards = registeredPlayer.getExtraCardsInCommandZone(); + if (adventureItemCards != null) { + for (final IPaperCard cp : adventureItemCards) { + Card c = Card.fromPaperCard(cp, this); + com.add(c); + c.setStartsGameInPlay(true); + } + } + for (final Card c : getCardsIn(ZoneType.Library)) { for (KeywordInterface inst : c.getKeywords()) { String kw = inst.getOriginal(); diff --git a/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java b/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java index 2607a62c6b0..6cb37ae0891 100644 --- a/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java +++ b/forge-game/src/main/java/forge/game/player/RegisteredPlayer.java @@ -29,6 +29,7 @@ public class RegisteredPlayer { private int manaShards = 0; private Iterable cardsOnBattlefield = null; private Iterable extraCardsOnBattlefield = null; + private Iterable extraCardsInCommandZone = null; private Iterable schemes = null; private Iterable planes = null; private Iterable conspiracies = null; @@ -56,6 +57,10 @@ public class RegisteredPlayer { extraCardsOnBattlefield == null ? EmptyList : extraCardsOnBattlefield); } + public final Iterable getExtraCardsInCommandZone() { + return extraCardsInCommandZone == null ? EmptyList : extraCardsInCommandZone; + } + public final void setStartingLife(int startingLife) { this.startingLife = startingLife; } @@ -86,6 +91,13 @@ public class RegisteredPlayer { this.extraCardsOnBattlefield = Iterables.concat(this.extraCardsOnBattlefield, extraCardsonTable); } + public final void addExtraCardsInCommandZone(Iterable extraCardsInCommandZone) { + if (this.extraCardsInCommandZone == null) + this.extraCardsInCommandZone = extraCardsInCommandZone; + else + this.extraCardsInCommandZone = Iterables.concat(this.extraCardsInCommandZone, extraCardsInCommandZone); + } + public int getStartingHand() { return startingHand; } diff --git a/forge-gui-mobile/src/forge/adventure/data/EffectData.java b/forge-gui-mobile/src/forge/adventure/data/EffectData.java index 1b35fc83b49..9e2d43f8149 100644 --- a/forge-gui-mobile/src/forge/adventure/data/EffectData.java +++ b/forge-gui-mobile/src/forge/adventure/data/EffectData.java @@ -14,6 +14,7 @@ public class EffectData implements Serializable { public int lifeModifier = 0; //Amount to add to starting Life. public int changeStartCards = 0; //Amount to add to starting hand size. public String[] startBattleWithCard; //Cards that start in the Battlefield. + public String[] startBattleWithCardInCommandZone; //Cards that start in the Command Zone of the Battlefield. //Map only effects. public boolean colorView = false; //Allows to display enemy colors on the map. public float moveSpeed = 1.0f; //Change of movement speed. Map only. @@ -52,6 +53,23 @@ public class EffectData implements Serializable { return startCards; } + public Array startBattleWithCardsInCommandZone(){ + Array startCardsInCommandZone=new Array<>(); + if(startBattleWithCardInCommandZone != null) { + for (String name:startBattleWithCardInCommandZone) { + PaperCard C = FModel.getMagicDb().getCommonCards().getCard(name); + if(C != null) + startCardsInCommandZone.add(C); + else { + PaperToken T = FModel.getMagicDb().getAllTokens().getToken(name); + if (T != null) startCardsInCommandZone.add(T); + else System.err.print("Can not find card \"" + name + "\"\n"); + } + } + } + return startCardsInCommandZone; + } + public String cardNames() { StringBuilder ret = new StringBuilder(); Array array=startBattleWithCards(); diff --git a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java index 5e2772a0070..5b0938613d6 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/DuelScene.java @@ -20,6 +20,7 @@ import forge.assets.FBufferedImage; import forge.assets.FSkin; import forge.deck.Deck; import forge.deck.DeckProxy; +import forge.deck.DeckSection; import forge.game.GameRules; import forge.game.GameType; import forge.game.card.CounterEnumType; @@ -167,14 +168,19 @@ public class DuelScene extends ForgeScene { int changeStartCards = 0; int extraManaShards = 0; Array startCards = new Array<>(); + Array startCardsInCommandZone = new Array<>(); for (EffectData data : effects) { lifeMod += data.lifeModifier; changeStartCards += data.changeStartCards; startCards.addAll(data.startBattleWithCards()); + startCardsInCommandZone.addAll(data.startBattleWithCardsInCommandZone()); + extraManaShards += data.extraManaShards; } player.addExtraCardsOnBattlefield(startCards); + player.addExtraCardsInCommandZone(startCardsInCommandZone); + player.setStartingLife(Math.max(1, lifeMod + player.getStartingLife())); player.setStartingHand(player.getStartingHand() + changeStartCards); player.setManaShards((player.getManaShards() + extraManaShards)); diff --git a/forge-gui/res/adventure/Shandalar/custom_cards/cursed_treasure.txt b/forge-gui/res/adventure/Shandalar/custom_cards/cursed_treasure.txt index f230c847d32..24f958bb979 100644 --- a/forge-gui/res/adventure/Shandalar/custom_cards/cursed_treasure.txt +++ b/forge-gui/res/adventure/Shandalar/custom_cards/cursed_treasure.txt @@ -3,6 +3,7 @@ ManaCost:no cost Types:Artifact S:Mode$ Continuous | Description$ Provided by Cursed Treasure (Equipped Item - Right) StackDescription$ Create a Treasure token. You lose 2 life. | SpellDescription$ Create a Treasure token. You lose 2 life. -A:AB$ Token | Cost$ PayShards<1> Sac<1/CARDNAME> | TokenScript$ c_a_treasure_sac | SubAbility$ DBLoseLife2 | SpellDescription$ Create a Treasure token. +A:AB$ Token | Cost$ PayShards<1> T | ActivationZone$ Command | TokenScript$ c_a_treasure_sac | SubAbility$ DBLoseLife2 | SubAbility$ Eject | SpellDescription$ Create a Treasure token. SVar:DBLoseLife2:DB$ LoseLife | LifeAmount$ 2 | Defined$ You -Oracle: Provided by Cursed Treasure. Pay {M}, sacrifice Cursed Treasure: Create a Treasure token. You lose 2 life. \ No newline at end of file +Oracle:Pay {M}, exile Cursed Treasure: Create a Treasure token. You lose 2 life. +SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/custom_cards/farmers_tools.txt b/forge-gui/res/adventure/Shandalar/custom_cards/farmers_tools.txt index aaa555d121b..4431bb58be3 100644 --- a/forge-gui/res/adventure/Shandalar/custom_cards/farmers_tools.txt +++ b/forge-gui/res/adventure/Shandalar/custom_cards/farmers_tools.txt @@ -2,5 +2,6 @@ Name:Farmer's Tools ManaCost:no cost Types:Artifact S:Mode$ Continuous | Description$ Provided by Farmer's Tools (Equipped Item - Left) -A:AB$ ChangeZone | Cost$ PayShards<2> Sac<1/CARDNAME> | ExileOnMoved$ Battlefield | Optional$ True | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | DefinedPlayer$ Player | ChangeNum$ 1 | StackDescription$ Each player may put a land card from their hand onto the battlefield. -Oracle: Provided by Farmer's Tools. Pay {M}{M}, sacrifice Farmer's Tools: Starting with you, each player may place a land card from their hand onto the battlefield. \ No newline at end of file +A:AB$ ChangeZone | Cost$ PayShards<2> T | ActivationZone$ Command | SubAbility$ Eject | ExileOnMoved$ Battlefield | Optional$ True | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | DefinedPlayer$ Player | ChangeNum$ 1 | StackDescription$ Each player may put a land card from their hand onto the battlefield. +Oracle: Pay {M}{M}, exile Farmer's Tools: Starting with you, each player may place a land card from their hand onto the battlefield. +SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/custom_cards/hill_giant_club.txt b/forge-gui/res/adventure/Shandalar/custom_cards/hill_giant_club.txt index f01e05754ab..2cf9dee5890 100644 --- a/forge-gui/res/adventure/Shandalar/custom_cards/hill_giant_club.txt +++ b/forge-gui/res/adventure/Shandalar/custom_cards/hill_giant_club.txt @@ -2,9 +2,7 @@ Name:Hill Giant Club ManaCost:no cost Types:Artifact S:Mode$ Continuous | Description$ Provided by Hill Giant Club (Equipped Item - Right) -A:AB$ Effect | Cost$ PayShards<2> Sac<1/CARDNAME> | ValidTgts$ Creature | TgtPrompt$ Select target creature | ExileOnMoved$ Battlefield | StaticAbilities$ UnblockableLE2 | RememberObjects$ Targeted | StackDescription$ {c:Targeted} can't be blocked by creatures with power 2 or less this turn. | SpellDescription$ Targe creature can't be blocked by creatures with power 2 or less this turn. +A:AB$ Effect | Cost$ PayShards<2> T | ActivationZone$ Command | SubAbility$ Eject | ValidTgts$ Creature | TgtPrompt$ Select target creature | ExileOnMoved$ Battlefield | StaticAbilities$ UnblockableLE2 | RememberObjects$ Targeted | StackDescription$ {c:Targeted} can't be blocked by creatures with power 2 or less this turn. | SpellDescription$ Targe creature can't be blocked by creatures with power 2 or less this turn. SVar:UnblockableLE2:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | ValidBlocker$ Creature.powerLE2 | Description$ {c:Targeted} can't be blocked by creatures with power 2 or less this turn. -Oracle: Provided by Hill Giant Club. Pay {M}{M}, sacrifice Hill Giant Club: Target creature can't be blocked by creatures with power 2 or less this turn. - - - +Oracle: Pay {M}{M}, exile Hill Giant Club: Target creature can't be blocked by creatures with power 2 or less this turn. +SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/custom_cards/pipers_charm.txt b/forge-gui/res/adventure/Shandalar/custom_cards/pipers_charm.txt index 3cc5ab5c7fb..d8251b1ee60 100644 --- a/forge-gui/res/adventure/Shandalar/custom_cards/pipers_charm.txt +++ b/forge-gui/res/adventure/Shandalar/custom_cards/pipers_charm.txt @@ -2,6 +2,7 @@ Name:Piper's Charm ManaCost:no cost Types:Artifact S:Mode$ Continuous | Description$ Provided by Piper's Charm (Equipped Item - Neck) -A:AB$ Effect | Cost$ PayShards<3> Sac<1/CARDNAME> | ValidTgts$ Creature | ExileOnMoved$ Battlefield | StaticAbilities$ MustBlock | RememberObjects$ Targeted | StackDescription$ {c:Targeted} blocks this turn if able. | SpellDescription$ Target creature blocks this turn if able. +A:AB$ Effect | Cost$ PayShards<3> T | ActivationZone$ Command | SubAbility$ Eject | ValidTgts$ Creature | ExileOnMoved$ Battlefield | StaticAbilities$ MustBlock | RememberObjects$ Targeted | StackDescription$ {c:Targeted} blocks this turn if able. | SpellDescription$ Target creature blocks this turn if able. SVar:MustBlock:Mode$ MustBlock | ValidCreature$ Card.IsRemembered | Description$ This creature blocks this turn if able. -Oracle: Provided by Piper's Charm. Pay {M}{M}{M}, sacrifice Piper's Charm: Target creature blocks this turn if able. \ No newline at end of file +Oracle: Pay {M}{M}{M}, exile Piper's Charm: Target creature blocks this turn if able. +SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/custom_cards/sleep_wand.txt b/forge-gui/res/adventure/Shandalar/custom_cards/sleep_wand.txt index 3af0901add6..71d6869d5f7 100644 --- a/forge-gui/res/adventure/Shandalar/custom_cards/sleep_wand.txt +++ b/forge-gui/res/adventure/Shandalar/custom_cards/sleep_wand.txt @@ -2,5 +2,6 @@ Name:Sleep Wand ManaCost:no cost Types:Artifact S:Mode$ Continuous | Description$ Provided by Sleep Wand (Equipped Item - Left) -A:AB$ PutCounter | Cost$ PayShards<2> Sac<1/CARDNAME> | ValidTgts$ Creature | ExileOnMoved$ Battlefield ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ Stun | CounterNum$ 1 | StackDescription$ Put a stun counter on target creature. (If a permanent with a stun counter would become untapped, remove one from it instead.) -Oracle: Provided by Sleep Wand. Pay {M}, sacrifice Sleep Wand: Put a stun counter on target creature. \ No newline at end of file +A:AB$ PutCounter | Cost$ PayShards<2> T | ActivationZone$ Command | SubAbility$ Eject | ValidTgts$ Creature | ExileOnMoved$ Battlefield ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ Stun | CounterNum$ 1 | StackDescription$ Put a stun counter on target creature. (If a permanent with a stun counter would become untapped, remove one from it instead.) +Oracle: Pay {M}, exile Sleep Wand: Put a stun counter on target creature. +SVar:Eject:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile \ No newline at end of file diff --git a/forge-gui/res/adventure/Shandalar/maps/map/main_story/green_castle.tmx b/forge-gui/res/adventure/Shandalar/maps/map/main_story/green_castle.tmx index 4ba260e015a..78178402e21 100644 --- a/forge-gui/res/adventure/Shandalar/maps/map/main_story/green_castle.tmx +++ b/forge-gui/res/adventure/Shandalar/maps/map/main_story/green_castle.tmx @@ -29,7 +29,7 @@ - eJztmH0OwiAMxTnBNo3uIu4WXsePHUt3FS+kiyOZhNI3RsFkJelfkr5fhm0fdJUxnYaGhoaGhoaGYLSNMU8wzjt877HJw3/46EisvfJvgr+vjbkCcau/XBdw/73OX8vIOeX6rlvhR/vnMPE/tH8qv/KL83N1aetLmh/pD75a57j2mfiR/L6ziuVH5ys1n1Px91NOisfOdzd/7P+WykP5kzkb5TXGnBwPpYvONaqOEF1qj9UeZyY3L19V/LmH9nO6cza3ftfUZCr+GE3l/w/+pXcSKX7pu45PMyX/Gg/h63/2/SPkHST4W0cfuSeE9BHNlPwIi/L//ub2AOr9gfIhpfmpfEv01vCH/Fvom1Fzn7u/DwvOcu7fQr2T829S3p/7thwb6t9c75Z6hbSl/FuJldL/lFix/ifmfhh7vyz91mvP9CSso/xl+d+e+Pwi + eJztmH0OgjAMxXcCQKKchFt4HT84lnIVL6REluCyro+xbiZ0yfvLpf2F2fZtfWVMr1KpVCqVSiWorjHmCep8wPeemjz8x08eidUq/y74h9qYK6Bb/eW6gPvvdf5aRs4p13fdCz/aP8eZ/6H9U/mVX5yfq0tbX9L8SH/w1TrH1WbiR+L7ziqWH52v1HxOxT/MMSkeO9/d+LH/WyoO5U+WbJTXmGJyPFRedK5RdYTkpfbY3NPM5Oblq4o/99B+Lu+Sza3fLTWZij8mp/L/B//aO4kUv/Rdx5czJf8WD+Hrf/b9I+QdJPg7Jz9yTwjlR3Km5EdYlP/3N7cHUO8PlA8pzU/FW5NvC3/Iv4W+GTX3ufv7uOIsl/4t1Ds5/ybl/blvy7Gh/s31bqlXKLeUfyuxUvqfEivW/8TcD2Pvl6Xfev/1/VP50+oNNlL7xQ== diff --git a/forge-gui/res/adventure/Shandalar/maps/obj/collision.tx b/forge-gui/res/adventure/Shandalar/maps/obj/collision.tx new file mode 100644 index 00000000000..4a1d90320cb --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/obj/collision.tx @@ -0,0 +1,8 @@ + + diff --git a/forge-gui/res/adventure/Shandalar/maps/obj/manashards.tx b/forge-gui/res/adventure/Shandalar/maps/obj/manashards.tx new file mode 100644 index 00000000000..808056ba3bf --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/maps/obj/manashards.tx @@ -0,0 +1,20 @@ + + diff --git a/forge-gui/res/adventure/Shandalar/maps/tileset/main.tsx b/forge-gui/res/adventure/Shandalar/maps/tileset/main.tsx index c2c7fa70f43..5cde5a2a859 100644 --- a/forge-gui/res/adventure/Shandalar/maps/tileset/main.tsx +++ b/forge-gui/res/adventure/Shandalar/maps/tileset/main.tsx @@ -3496,6 +3496,18 @@ + + + + + + + + + + + + diff --git a/forge-gui/res/adventure/Shandalar/sprites/manashards.atlas b/forge-gui/res/adventure/Shandalar/sprites/manashards.atlas new file mode 100644 index 00000000000..c2af9ee4520 --- /dev/null +++ b/forge-gui/res/adventure/Shandalar/sprites/manashards.atlas @@ -0,0 +1,17 @@ +treasure.png +size: 64,144 +format: RGBA8888 +filter: Nearest,Nearest +repeat: none +Idle + xy: 0, 128 + size: 16, 16 +Idle + xy: 16, 128 + size: 16, 16 +Idle + xy: 32, 128 + size: 16, 16 +Idle + xy: 48, 128 + size: 16, 16 diff --git a/forge-gui/res/adventure/Shandalar/sprites/treasure.png b/forge-gui/res/adventure/Shandalar/sprites/treasure.png index a25b381e9bf962d2011866c6fc2ce494aee8305c..da1337791bad475867b3a97a10bd958243f65e9c 100644 GIT binary patch literal 18694 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%0DyuZdqZO@Q)dz*Q*%pO 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 M#pT2*MGOM|A8ol=(f|Me literal 13675 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