diff --git a/res/cardsfolder/mogg_fanatic.txt b/res/cardsfolder/mogg_fanatic.txt index 7cdbd73b968..ce9c67a1250 100644 --- a/res/cardsfolder/mogg_fanatic.txt +++ b/res/cardsfolder/mogg_fanatic.txt @@ -3,6 +3,7 @@ ManaCost:R Types:Creature Goblin Text:no text PT:1/1 +K:abDamageTgtCP Sac<1/CARDNAME>:1 SVar:Rarity:Uncommon SVar:Picture:http://www.wizards.com/global/images/magic/general/mogg_fanatic.jpg End diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 7dfc682cee8..c3e8d78a080 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -5540,8 +5540,9 @@ public class CardFactory implements NewConstants { @Override public void resolve() { - AllZone.GameAction.getPlayerLife(getController()).subtractLife(amountHurt,card); - super.resolve(); + //AllZone.GameAction.getPlayerLife(getController()).subtractLife(amountHurt,card); + AllZone.GameAction.addDamage(card.getController(), card, amountHurt); + super.resolve(); } @Override @@ -6184,8 +6185,10 @@ public class CardFactory implements NewConstants { if(CardFactoryUtil.canDamage(card, list.get(i))) list.get(i).addDamage(1, card); } - AllZone.Human_Life.subtractLife(1,card); - AllZone.Computer_Life.subtractLife(1,card); + //AllZone.Human_Life.subtractLife(1,card); + AllZone.GameAction.addDamage(Constant.Player.Human, card, 1); + //AllZone.Computer_Life.subtractLife(1,card); + AllZone.GameAction.addDamage(Constant.Player.Computer, card, 1); }//resolve() };//SpellAbility ability.setDescription("R: Pyrohemia deals 1 damage to each creature and each player."); @@ -6240,8 +6243,10 @@ public class CardFactory implements NewConstants { if(CardFactoryUtil.canDamage(card, list.get(i))) list.get(i).addDamage(1, card); } - AllZone.Human_Life.subtractLife(1,card); - AllZone.Computer_Life.subtractLife(1,card); + //AllZone.Human_Life.subtractLife(1,card); + //AllZone.Computer_Life.subtractLife(1,card); + AllZone.GameAction.addDamage(Constant.Player.Human, card, 1); + AllZone.GameAction.addDamage(Constant.Player.Computer, card, 1); }//resolve() };//SpellAbility ability.setDescription("B: Pestilence deals 1 damage to each creature and each player."); @@ -9011,9 +9016,9 @@ public class CardFactory implements NewConstants { public void resolve() { if(getTargetCard() != null) { if(AllZone.GameAction.isCardInPlay(getTargetCard()) - && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(2, - card); - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(2,card); + && CardFactoryUtil.canTarget(card, getTargetCard())) + getTargetCard().addDamage(2, card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, 2); }//resolve() };//SpellAbility @@ -9306,7 +9311,7 @@ public class CardFactory implements NewConstants { && CardFactoryUtil.canTarget(card, getTargetCard())) { getTargetCard().addDamage(damage, card); } - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(damage,card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, damage); } }; ability.setDescription("3, tap: Reveal cards from the top of your library until you reveal a land card. Goblin Charbelcher deals damage equal to the number of nonland cards revealed this way to target creature or player. If the revealed land card was a Mountain, Goblin Charbelcher deals double that damage instead. Put the revealed cards on the bottom of your library in any order."); diff --git a/src/forge/CardFactory_Creatures.java b/src/forge/CardFactory_Creatures.java index 62239f5ca37..4a2ba2ad8dc 100644 --- a/src/forge/CardFactory_Creatures.java +++ b/src/forge/CardFactory_Creatures.java @@ -69,7 +69,7 @@ public class CardFactory_Creatures { AllZone.GameAction.getPlayerLife(getController()).subtractLife(n,card); } }; - ability.setStackDescription("Filthy Cur - causes " + n + " damage to " + getController()); + ability.setStackDescription("Filthy Cur - "+getController()+" loses " + n + " life."); AllZone.Stack.add(ability); }//addDamage() };//Card @@ -319,7 +319,8 @@ public class CardFactory_Creatures { SpellAbility ability = new Ability(card, "0") { @Override public void resolve() { - AllZone.GameAction.getPlayerLife(getController()).subtractLife(n,card); + //AllZone.GameAction.getPlayerLife(getController()).subtractLife(n,card); + AllZone.GameAction.addDamage(getController(), card, n); } }; ability.setStackDescription("Shinka Gatekeeper - causes " + n + " damage to " @@ -357,7 +358,8 @@ public class CardFactory_Creatures { SpellAbility ability = new Ability(card, "0") { @Override public void resolve() { - AllZone.GameAction.getPlayerLife(getController()).subtractLife(n,card); + //AllZone.GameAction.getPlayerLife(getController()).subtractLife(n,card); + AllZone.GameAction.addDamage(getController(), card, n); } }; ability.setStackDescription("Jackal Pup - causes " + n + " damage to " + getController()); @@ -1736,7 +1738,7 @@ public class CardFactory_Creatures { public void resolve() { if(getTargetCard() != null && CardFactoryUtil.canDamage(card, getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(3, card); - else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(3,card); + else AllZone.GameAction.addDamage(getTargetPlayer(), card, 3); } }; Command leavesPlay = new Command() { @@ -2800,7 +2802,7 @@ public class CardFactory_Creatures { @Override public void resolve() { String opponent = AllZone.GameAction.getOpponent(card.getController()); - AllZone.GameAction.getPlayerLife(opponent).subtractLife(4,card); + AllZone.GameAction.addDamage(opponent, card, 4); } }; Command intoPlay = new Command() { @@ -5004,7 +5006,7 @@ public class CardFactory_Creatures { Card c = getTargetCard(); c.addDamage(damage, card); } - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(damage,card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, damage); } }//resolve() };//SpellAbility @@ -5038,7 +5040,7 @@ public class CardFactory_Creatures { @Override public void selectPlayer(String player) { int damage = ((Integer) countZubera.execute()).intValue(); - AllZone.GameAction.getPlayerLife(player).subtractLife(damage,card); + AllZone.GameAction.addDamage(player, card, damage); stop(); }//selectPlayer() };//Input @@ -8285,7 +8287,7 @@ public class CardFactory_Creatures { card.addLeavesPlayCommand(leavesBattlefield); }//*************** END ************ END ************************** - + /* //*************** START *********** START ************************** else if(cardName.equals("Mogg Fanatic")) { final Ability ability = new Ability(card, "0") { @@ -8337,6 +8339,7 @@ public class CardFactory_Creatures { } }, true, false)); }//*************** END ************ END ************************** + */ //*************** START *********** START ************************** else if(cardName.equals("Bloodfire Colossus")) { @@ -8802,8 +8805,10 @@ public class CardFactory_Creatures { for(int i = 0; i < list.size(); i++) list.get(i).addDamage(4, card); - AllZone.Human_Life.subtractLife(4,card); - AllZone.Computer_Life.subtractLife(4,card); + //AllZone.Human_Life.subtractLife(4,card); + //AllZone.Computer_Life.subtractLife(4,card); + AllZone.GameAction.addDamage(Constant.Player.Human, card, 4); + AllZone.GameAction.addDamage(Constant.Player.Computer, card, 4); }//resolve() };//SpellAbility card.addSpellAbility(ability); @@ -10514,9 +10519,11 @@ public class CardFactory_Creatures { AllZone.GameAction.sacrifice(c); String opponent = AllZone.GameAction.getOpponent(player); - PlayerLife life = AllZone.GameAction.getPlayerLife(opponent); - life.subtractLife(power,card); + //PlayerLife life = AllZone.GameAction.getPlayerLife(opponent); + //life.subtractLife(power,card); + AllZone.GameAction.addDamage(opponent, card, power); + //TODO: this may not be needed GameActionUtil.executeLifeLinkEffects(card, power); CardList cl = CardFactoryUtil.getAurasEnchanting(card, "Guilty Conscience"); @@ -15183,7 +15190,7 @@ public class CardFactory_Creatures { if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(1, card); - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(1,card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, 1); }//resolve() };//SpellAbility @@ -15490,7 +15497,7 @@ public class CardFactory_Creatures { if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(total, card); - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(total,card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, total); card.subtractCounter(Counters.P1P1,total); }//resolve() };//SpellAbility @@ -16494,7 +16501,7 @@ public class CardFactory_Creatures { if(AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard())) getTargetCard().addDamage(1, card); - } else AllZone.GameAction.getPlayerLife(getTargetPlayer()).subtractLife(1,card); + } else AllZone.GameAction.addDamage(getTargetPlayer(), card, 1); }//resolve() };//SpellAbility @@ -19418,8 +19425,10 @@ public class CardFactory_Creatures { if(CardFactoryUtil.canDamage(card, list.get(i))) list.get(i).addDamage(1, card); } - AllZone.Human_Life.subtractLife(1,card); - AllZone.Computer_Life.subtractLife(1,card); + //AllZone.Human_Life.subtractLife(1,card); + //AllZone.Computer_Life.subtractLife(1,card); + AllZone.GameAction.addDamage(Constant.Player.Human, card, 1); + AllZone.GameAction.addDamage(Constant.Player.Computer, card, 1); }//resolve() };//SpellAbility ability.setDescription("B: Pestilence Demon deals 1 damage to each creature and each player."); @@ -19490,8 +19499,10 @@ public class CardFactory_Creatures { if(CardFactoryUtil.canDamage(card, list.get(i))) list.get(i).addDamage(1, card); } - AllZone.Human_Life.subtractLife(1,card); - AllZone.Computer_Life.subtractLife(1,card); + //AllZone.Human_Life.subtractLife(1,card); + //AllZone.Computer_Life.subtractLife(1,card); + AllZone.GameAction.addDamage(Constant.Player.Human, card, 1); + AllZone.GameAction.addDamage(Constant.Player.Computer, card, 1); }//resolve() };//SpellAbility ability.setDescription("G: Ifh-B�ff Efreet deals 1 damage to each creature with flying and each player. Any player may activate this ability");