From 84cdfcc107307d22f855fbd4825c52ca8b7b27cb Mon Sep 17 00:00:00 2001 From: swordshine Date: Mon, 18 Mar 2013 01:51:55 +0000 Subject: [PATCH] - Added Loxodon Peacekeeper --- .gitattributes | 1 + res/cardsfolder/l/loxodon_peacekeeper.txt | 12 ++++++++++++ res/cardsfolder/n/null_chamber.txt | 4 +++- .../ability/effects/ChoosePlayerEffect.java | 2 ++ src/main/java/forge/game/player/Player.java | 17 +++++++++++++++++ 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 res/cardsfolder/l/loxodon_peacekeeper.txt diff --git a/.gitattributes b/.gitattributes index 37c8ff8424c..c9b715c9742 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6181,6 +6181,7 @@ res/cardsfolder/l/loxodon_hierarch_avatar.txt -text res/cardsfolder/l/loxodon_mender.txt svneol=native#text/plain res/cardsfolder/l/loxodon_mystic.txt svneol=native#text/plain res/cardsfolder/l/loxodon_partisan.txt svneol=native#text/plain +res/cardsfolder/l/loxodon_peacekeeper.txt -text res/cardsfolder/l/loxodon_punisher.txt svneol=native#text/plain res/cardsfolder/l/loxodon_smiter.txt -text res/cardsfolder/l/loxodon_stalwart.txt svneol=native#text/plain diff --git a/res/cardsfolder/l/loxodon_peacekeeper.txt b/res/cardsfolder/l/loxodon_peacekeeper.txt new file mode 100644 index 00000000000..228c3a0dbb8 --- /dev/null +++ b/res/cardsfolder/l/loxodon_peacekeeper.txt @@ -0,0 +1,12 @@ +Name:Loxodon Peacekeeper +ManaCost:1 W +Types:Creature Elephant Soldier +PT:4/4 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainControl | TriggerDescription$ At the beginning of your upkeep, the player with the lowest life total gains control of CARDNAME. If two or more players are tied for lowest life total, you choose one of them, and that player gains control of CARDNAME. +SVar:TrigGainControl:AB$ ChoosePlayer | Cost$ 0 | Defined$ You | Choices$ Player.withLowestLife | ChoiceTitle$ Choose an player with lowest life total | AILogic$ Pump | SubAbility$ DBGainControl +SVar:DBGainControl:DB$ GainControl | Defined$ Self | NewController$ Player.Chosen +SVar:RemAIDeck:True +SVar:RemRandomDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/loxodon_peacekeeper.jpg +Oracle:At the beginning of your upkeep, the player with the lowest life total gains control of Loxodon Peacekeeper. If two or more players are tied for lowest life total, you choose one of them, and that player gains control of Loxodon Peacekeeper. +SetInfo:MRD Rare \ No newline at end of file diff --git a/res/cardsfolder/n/null_chamber.txt b/res/cardsfolder/n/null_chamber.txt index c27c2a67a04..42847334b5c 100644 --- a/res/cardsfolder/n/null_chamber.txt +++ b/res/cardsfolder/n/null_chamber.txt @@ -11,4 +11,6 @@ S:Mode$ CantBeCast | ValidCard$ Card.IsRemembered | Description$ The named card S:Mode$ CantPlayLand | ValidCard$ Land.IsRemembered T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Static$ True | ValidCard$ Card.Self | Execute$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:Picture:http://www.wizards.com/global/images/magic/general/null_chamber.jpg \ No newline at end of file +SVar:Picture:http://www.wizards.com/global/images/magic/general/null_chamber.jpg +Oracle:As Null Chamber enters the battlefield, you and an opponent each name a card other than a basic land card.\nThe named cards can't be played. +SetInfo:MIR Rare \ No newline at end of file diff --git a/src/main/java/forge/card/ability/effects/ChoosePlayerEffect.java b/src/main/java/forge/card/ability/effects/ChoosePlayerEffect.java index a48171d5b9c..97c8619374e 100644 --- a/src/main/java/forge/card/ability/effects/ChoosePlayerEffect.java +++ b/src/main/java/forge/card/ability/effects/ChoosePlayerEffect.java @@ -63,6 +63,8 @@ public class ChoosePlayerEffect extends SpellAbilityEffect { System.out.println("No good curse choices. Picking first available: " + choices.get(0)); card.setChosenPlayer(choices.get(0)); } + } else if ("Pump".equals(sa.getParam("AILogic"))) { + card.setChosenPlayer(choices.contains(p) ? p : choices.get(0)); } else { card.setChosenPlayer(p); } diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index bce0f2fb689..5da39b7bc01 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -2521,6 +2521,23 @@ public abstract class Player extends GameEntity implements Comparable { return false; } } + } else if (property.startsWith("withLowest")) { + if (property.substring(10).equals("Life")) { + int lowestLife = 1000; + List lowestlifep = new ArrayList(); + for (final Player p : Singletons.getModel().getGame().getPlayers()) { + if (p.getLife() == lowestLife) { + lowestlifep.add(p); + } else if (p.getLife() < lowestLife) { + lowestLife = p.getLife(); + lowestlifep.clear(); + lowestlifep.add(p); + } + } + if (!lowestlifep.contains(this)) { + return false; + } + } } return true;