From 1b7bdd2e57fa1a55ea66272b4309848bb351d3e9 Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 28 May 2018 22:40:34 +0800 Subject: [PATCH] - Added Demon/Angel Partners --- .../main/java/forge/game/ability/AbilityUtils.java | 4 ++++ .../src/main/java/forge/game/player/Player.java | 8 ++++++++ .../main/java/forge/game/player/PlayerProperty.java | 4 ++++ .../res/cardsfolder/upcoming/krav_the_unredeemed.txt | 12 ++++++++++++ .../res/cardsfolder/upcoming/regna_the_redeemer.txt | 11 +++++++++++ 5 files changed, 39 insertions(+) create mode 100644 forge-gui/res/cardsfolder/upcoming/krav_the_unredeemed.txt create mode 100644 forge-gui/res/cardsfolder/upcoming/regna_the_redeemer.txt diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index a8cbaba37bc..dfd17fce19f 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -439,6 +439,10 @@ public class AbilityUtils { players.addAll(game.getPlayers()); val = CardFactoryUtil.playerXCount(players, calcX[1], card); } + else if (hType.equals("YourTeam")) { + players.addAll(player.getYourTeam()); + val = CardFactoryUtil.playerXCount(players, calcX[1], card); + } else if (hType.equals("Opponents")) { players.addAll(player.getOpponents()); val = CardFactoryUtil.playerXCount(players, calcX[1], card); 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 fc3db4f65d1..64797d921d6 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -309,6 +309,14 @@ public class Player extends GameEntity implements Comparable { return getAllOtherPlayers().filter(Predicates.not(PlayerPredicates.isOpponentOf(this))); } + /** + * returns allied players. + * Should keep player relations somewhere in the match structure + */ + public final PlayerCollection getYourTeam() { + return game.getPlayers().filter(Predicates.not(PlayerPredicates.isOpponentOf(this))); + } + /** * returns all other players. * Should keep player relations somewhere in the match structure 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 1fe534d07db..7658f93b2be 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerProperty.java +++ b/forge-game/src/main/java/forge/game/player/PlayerProperty.java @@ -38,6 +38,10 @@ public class PlayerProperty { return false; } } + } else if (property.equals("YourTeam")) { + if (player.isOpponentOf(sourceController)) { + return false; + } } else if (property.equals("Allies")) { if (player.equals(sourceController) || player.isOpponentOf(sourceController)) { return false; diff --git a/forge-gui/res/cardsfolder/upcoming/krav_the_unredeemed.txt b/forge-gui/res/cardsfolder/upcoming/krav_the_unredeemed.txt new file mode 100644 index 00000000000..c0d8d075ad4 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/krav_the_unredeemed.txt @@ -0,0 +1,12 @@ +Name:Krav, the Unredeemed +ManaCost:4 B +Types:Legendary Creature Demon +PT:3/3 +K:Partner:Regna, the Redeemer:Regna +K:Flying +A:AB$ Draw | Cost$ B Sac | ValidTgts$ Player | TgtPrompt$ Choose a player | NumCards$ ChosenX | References$ X | SubAbility$ DBGainLife | SpellDescription$ Target player draws X cards and gains X life. Put X +1/+1 counters on CARDNAME. +SVar:DBGainLife:DB$ GainLife | Defined$ Targeted | LifeAmount$ ChosenX | References$ X | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ ChosenX | References$ X +SVar:X:XChoice +DeckHints:Name$Regna, the Redeemer +Oracle:Partner with Regna, the Redeemer (When this creature enters the battlefield, target player may put Regna into their hand from their library, then shuffle.)\n{B}, Sacrifice X creatures: Target player draws X cards and gains X life. Put X +1/+1 counters on Krav, the Unredeemed. diff --git a/forge-gui/res/cardsfolder/upcoming/regna_the_redeemer.txt b/forge-gui/res/cardsfolder/upcoming/regna_the_redeemer.txt new file mode 100644 index 00000000000..f668a6a43d2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/regna_the_redeemer.txt @@ -0,0 +1,11 @@ +Name:Regna, the Redeemer +ManaCost:5 W +Types:Legendary Creature Angel +PT:4/4 +K:Partner:Krav, the Unredeemed:Krav +K:Flying +T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigToken | TriggerDescription$ At the beginning of each end step, if your team gained life this turn, create two 1/1 white Warrior creature tokens. +SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenName$ Warrior | TokenTypes$ Creature,Warrior | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenImage$ w 1 1 Warrior +SVar:X:PlayerCountYourTeam$HighestLifeGainedThisTurn +DeckHints:Name$Krav, the Unredeemed +Oracle:Partner with Krav, the Unredeemed (When this creature enters the battlefield, target player may put Krav into their hand from their library, then shuffle.)\nFlying\nAt the beginning of each end step, if your team gained life this turn, create two 1/1 white Warrior creature tokens.