diff --git a/res/card-pictures.txt b/res/card-pictures.txt index aead1f5780c..9abe7ef82de 100644 --- a/res/card-pictures.txt +++ b/res/card-pictures.txt @@ -38,6 +38,8 @@ snow_covered_mountain.jpg http://www.wizards.com/global/images/magic/gene snow_covered_mountain1.jpg http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg snow_covered_mountain2.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg snow_covered_mountain3.jpg http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg +abyssal_persecutor.jpg http://www.wizards.com/global/images/magic/general/abyssal_persecutor.jpg +platinum_angel.jpg http://www.wizards.com/global/images/magic/general/platinum_angel.jpg mayael_the_anima.jpg http://www.wizards.com/global/images/magic/general/mayael_the_anima.jpg momentous_fall.jpg http://www.wizards.com/global/images/magic/general/momentous_fall.jpg hammer_of_bogardan.jpg http://www.wizards.com/global/images/magic/general/hammer_of_bogardan.jpg diff --git a/res/cards.txt b/res/cards.txt index 641ea4ff20a..b1d4bf26423 100644 --- a/res/cards.txt +++ b/res/cards.txt @@ -1,3 +1,18 @@ +Abyssal Persecutor +B +Creature Demon +You can't win the game and your opponents can't lose the game. +6/6 +Flying +Trample + +Platinum Angel +1 +Artifact Creature Angel +You can't lose the game and your opponents can't win the game. +4/4 +Flying + Mayael the Anima R G W Legendary Creature Elf Shaman diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 85a3efad1b9..0f2c55b0836 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -16072,8 +16072,17 @@ public class CardFactory implements NewConstants { @Override public void resolve() { + // Win / Lose + final String player = getTargetPlayer(); + PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player); + PlayerZone OpplayZone = AllZone.getZone(Constant.Zone.Play, AllZone.GameAction.getOpponent(player)); + CardList Platinumlist = new CardList(OpplayZone.getCards()); + Platinumlist = Platinumlist.getName("Platinum Angel"); + CardList Abyssallist = new CardList(playZone.getCards()); + Abyssallist = Abyssallist.getName("Abyssal Persecutor"); + if(Platinumlist.size() == 0 && Abyssallist.size() == 0) { AllZone.GameAction.getPlayerLife(getTargetPlayer()).setLife(0); - + if (getTargetPlayer().equals(Constant.Player.Computer)) { int gameNumber = 0; if (Constant.Runtime.WinLose.getWin()==1) @@ -16081,6 +16090,7 @@ public class CardFactory implements NewConstants { Constant.Runtime.WinLose.setWinMethod(gameNumber,"Door to Nothingness"); } } + } @Override public boolean canPlayAI() { diff --git a/src/forge/GameAction.java b/src/forge/GameAction.java index 3d80fb40422..8ae1f49fb42 100644 --- a/src/forge/GameAction.java +++ b/src/forge/GameAction.java @@ -405,14 +405,18 @@ public class GameAction { if (AllZoneUtil.isCardInPlay("Ali from Cairo", Constant.Player.Human) && AllZone.Human_Life.getLife() < 1) AllZone.Human_Life.setLife(1); - if(AllZone.Computer_Life.getLife() <= 0 || AllZone.Computer_PoisonCounter.getPoisonCounters() >= 10) { - Constant.Runtime.WinLose.addWin(); - stop = true; + if(!AllZoneUtil.isCardInPlay("Platinum Angel", Constant.Player.Computer) && !AllZoneUtil.isCardInPlay("Abyssal Persecutor", Constant.Player.Human)) { + if(AllZone.Computer_Life.getLife() <= 0 || AllZone.Computer_PoisonCounter.getPoisonCounters() >= 10) { + Constant.Runtime.WinLose.addWin(); + stop = true; + } } + if(!AllZoneUtil.isCardInPlay("Platinum Angel", Constant.Player.Human) && !AllZoneUtil.isCardInPlay("Abyssal Persecutor", Constant.Player.Computer)) { if(AllZone.Human_Life.getLife() <= 0 || AllZone.Human_PoisonCounter.getPoisonCounters() >= 10) { Constant.Runtime.WinLose.addLose(); stop = true; } + } if(stop) { frame.dispose(); @@ -441,11 +445,13 @@ public class GameAction { if (AllZoneUtil.isCardInPlay("Ali from Cairo", Constant.Player.Human) && AllZone.Human_Life.getLife() < 1) AllZone.Human_Life.setLife(1); - + // Win / Lose + if(!AllZoneUtil.isCardInPlay("Platinum Angel", Constant.Player.Computer) && !AllZoneUtil.isCardInPlay("Abyssal Persecutor", Constant.Player.Human)) { if(AllZone.Computer_Life.getLife() <= 0 ) { Constant.Runtime.WinLose.addWin(); stop = true; } + if (AllZone.Computer_PoisonCounter.getPoisonCounters() >= 10) { int gameNumber = 0; @@ -456,11 +462,13 @@ public class GameAction { Constant.Runtime.WinLose.addWin(); stop = true; } + } // Win / Lose + if(!AllZoneUtil.isCardInPlay("Platinum Angel", Constant.Player.Human) && !AllZoneUtil.isCardInPlay("Abyssal Persecutor", Constant.Player.Computer)) { if(AllZone.Human_Life.getLife() <= 0 || AllZone.Human_PoisonCounter.getPoisonCounters() >= 10) { Constant.Runtime.WinLose.addLose(); stop = true; } - + } if(stop) { frame.dispose(); if (!Constant.Quest.fantasyQuest[0]) @@ -897,7 +905,7 @@ public class GameAction { //lose: else if(Constant.Runtime.Mill[0]) { PlayerLife life = AllZone.GameAction.getPlayerLife(player); - + if(!AllZoneUtil.isCardInPlay("Platinum Angel", player) && !AllZoneUtil.isCardInPlay("Abyssal Persecutor", getOpponent(player))) { if (player.equals(Constant.Player.Computer)) { int gameNumber = 0; if (Constant.Runtime.WinLose.getWin()==1) @@ -906,6 +914,7 @@ public class GameAction { } life.setLife(0); checkStateEffects(); + } } } diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 30f1a8f47e3..1273f81d63b 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -77,6 +77,16 @@ public class GameActionUtil { upkeep_Bitterblossom(); upkeep_Goblin_Assault(); upkeep_Awakening_Zone(); + + // Win / Lose + final String player = AllZone.Phase.getActivePlayer(); + PlayerZone playZone = AllZone.getZone(Constant.Zone.Play, player); + PlayerZone OpplayZone = AllZone.getZone(Constant.Zone.Play, AllZone.GameAction.getOpponent(player)); + CardList Platinumlist = new CardList(OpplayZone.getCards()); + Platinumlist = Platinumlist.getName("Platinum Angel"); + CardList Abyssallist = new CardList(playZone.getCards()); + Abyssallist = Abyssallist.getName("Abyssal Persecutor"); + if(Platinumlist.size() == 0 && Abyssallist.size() == 0) { upkeep_Battle_of_Wits(); upkeep_Epic_Struggle(); upkeep_Near_Death_Experience(); @@ -84,6 +94,9 @@ public class GameActionUtil { upkeep_Barren_Glory(); upkeep_Felidar_Sovereign(); upkeep_Klass(); + } + //Win / Lose + upkeep_Convalescence(); upkeep_Convalescent_Care(); upkeep_Karma();