From 5bb12364a16e2c0ac7847c97eb997d2c25d05bd6 Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 04:42:00 +0000 Subject: [PATCH] Bug Fix for Dauntless Escort --- src/forge/CardFactory_Creatures.java | 20 ++++++++-- src/forge/GameActionUtil.java | 56 +++++++++++++++------------- 2 files changed, 48 insertions(+), 28 deletions(-) diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 5100bfabb21..41a7e82e18d 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -5929,14 +5929,28 @@ public class CardFactory_Creatures { private static final long serialVersionUID = 2701248867610L; public void execute() { - if(card.getController() == "Human") Phase.Sac_Dauntless_Escort = false; - else Phase.Sac_Dauntless_Escort_Comp = false; + if(card.getController() == "Human") { + Phase.Sac_Dauntless_Escort = false; + } else { + Phase.Sac_Dauntless_Escort_Comp = false; + } + PlayerZone PlayerPlayZone = AllZone.getZone(Constant.Zone.Play, card.getController()); + CardList PlayerCreatureList = new CardList(PlayerPlayZone.getCards()); + PlayerCreatureList = PlayerCreatureList.getType("Creature"); + if(PlayerCreatureList.size() != 0) { + for(int i = 0; i < PlayerCreatureList.size(); i++) { + Card c = PlayerCreatureList.get(i); + c.removeExtrinsicKeyword("Indestructible"); + } + } } }; @Override public void resolve() { AllZone.GameAction.sacrifice(card); - if(card.getController() == "Human") Phase.Sac_Dauntless_Escort = true; + if(card.getController() == "Human") { + Phase.Sac_Dauntless_Escort = true; + } else Phase.Sac_Dauntless_Escort_Comp = true; AllZone.EndOfTurn.addUntil(untilEOT); diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index e3eeabba0ce..71ef7f0c1ee 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -12253,8 +12253,9 @@ public class GameActionUtil { public static Command Dauntless_Escort = new Command() { private static final long serialVersionUID = -2201201455269804L; - + CardList old = new CardList(); public void execute() { + // Human Activates Dauntless Escort PlayerZone PlayerPlayZone = AllZone.getZone(Constant.Zone.Play,"Human"); CardList PlayerCreatureList = new CardList(PlayerPlayZone.getCards()); @@ -12274,18 +12275,22 @@ public class GameActionUtil { for(int i = 0; i < opponentCreatureList.size(); i++) { Card c = opponentCreatureList.get(i); if(c.getOwner() == "Human") { - c.removeExtrinsicKeyword("Indestructible"); + if(old.size() == 0) { + c.removeExtrinsicKeyword("Indestructible"); + old.add(c); + } + for(int x = 0; x < old.size(); x++) { + if(old.get(x) == c) break; + c.removeExtrinsicKeyword("Indestructible"); + old.add(c); + } + } } } } - } else { - if(PlayerCreatureList.size() != 0) { - for(int i = 0; i < PlayerCreatureList.size(); i++) { - Card c = PlayerCreatureList.get(i); - c.removeExtrinsicKeyword("Indestructible"); - } - } - } + + + // Computer Activates Dauntless Escort PlayerPlayZone = AllZone.getZone(Constant.Zone.Play,"Computer"); PlayerCreatureList = new CardList(PlayerPlayZone.getCards()); @@ -12302,21 +12307,22 @@ public class GameActionUtil { } } if(opponentCreatureList.size() != 0) { - for(int i = 0; i < opponentCreatureList.size(); i++) { - Card c = opponentCreatureList.get(i); - if(c.getOwner() == "Computer") { - c.removeExtrinsicKeyword("Indestructible"); - } - } - } - } else { - if(PlayerCreatureList.size() != 0) { - for(int i = 0; i < PlayerCreatureList.size(); i++) { - Card c = PlayerCreatureList.get(i); - c.removeExtrinsicKeyword("Indestructible"); - } - } - } + for(int i = 0; i < opponentCreatureList.size(); i++) { + Card c = opponentCreatureList.get(i); + if(c.getOwner() == "Computer") { + if(old.size() == 0) { + c.removeExtrinsicKeyword("Indestructible"); + old.add(c); + } + for(int x = 0; x < old.size(); x++) { + if(old.get(x) == c) break; + c.removeExtrinsicKeyword("Indestructible"); + old.add(c); + } + } + } + } + } }// execute() };