diff --git a/src/forge/AbilityFactory_DealDamage.java b/src/forge/AbilityFactory_DealDamage.java index 90e6a17c218..b6743ea1ec1 100644 --- a/src/forge/AbilityFactory_DealDamage.java +++ b/src/forge/AbilityFactory_DealDamage.java @@ -38,6 +38,11 @@ public class AbilityFactory_DealDamage { } + @Override + public String getStackDescription(){ + return damageStackDescription(AF, this); + } + @Override public void resolve() { doResolve(this); @@ -73,6 +78,11 @@ public class AbilityFactory_DealDamage { } + @Override + public String getStackDescription(){ + return damageStackDescription(AF, this); + } + @Override public void resolve() { doResolve(this); @@ -221,6 +231,38 @@ public class AbilityFactory_DealDamage { } + private String damageStackDescription(AbilityFactory af, SpellAbility sa){ + // when damageStackDescription is called, just build exactly what is happening + StringBuilder sb = new StringBuilder(); + String name = af.getHostCard().getName(); + int damage = getNumDamage(sa); + + ArrayList tgts; + Target tgt = AF.getAbTgt(); + if (tgt != null) + tgts = tgt.getTargets(); + else{ + tgts = new ArrayList(); + if (TgtOpp) + tgts.add(AF.getHostCard().getController().getOpponent()); + } + + sb.append(name).append(" - "); + sb.append("Deals").append(damage).append(" damage to "); + for(int i = 0; i < tgts.size(); i++){ + Object o = tgts.get(0); + if (o instanceof Player){ + sb.append(((Player)o).getName()); + } + else{ + sb.append(((Card)o).getName()); + } + sb.append(" "); + } + + return sb.toString(); + } + private void doResolve(SpellAbility saMe) { int damage = getNumDamage(saMe); diff --git a/src/forge/AbilityFactory_Pump.java b/src/forge/AbilityFactory_Pump.java index b190a221794..56d1049741e 100644 --- a/src/forge/AbilityFactory_Pump.java +++ b/src/forge/AbilityFactory_Pump.java @@ -92,6 +92,11 @@ public class AbilityFactory_Pump { return doTgtAI(this); } + @Override + public String getStackDescription(){ + return pumpStackDescription(AF, this); + } + public void resolve() { doResolve(this); }//resolve @@ -166,6 +171,11 @@ public class AbilityFactory_Pump { return super.canPlay(); } + @Override + public String getStackDescription(){ + return pumpStackDescription(AF, this); + } + @Override public void resolve() { doResolve(this); @@ -314,6 +324,53 @@ public class AbilityFactory_Pump { } + private String pumpStackDescription(AbilityFactory af, SpellAbility sa){ + // when damageStackDescription is called, just build exactly what is happening + StringBuilder sb = new StringBuilder(); + String name = af.getHostCard().getName(); + + ArrayList tgtCards; + Target tgt = AF.getAbTgt(); + if (tgt != null) + tgtCards = tgt.getTargetCards(); + else{ + tgtCards = new ArrayList(); + tgtCards.add(hostCard); + } + + sb.append(name).append(" - "); + for(Card c : tgtCards){ + sb.append(c.getName()); + sb.append(" "); + } + final int atk = getNumAttack(); + final int def = getNumDefense(); + + sb.append("gains "); + if (atk != 0 || def != 0){ + if (atk >= 0) + sb.append("+"); + sb.append(atk); + sb.append("/"); + if (def >= 0) + sb.append("+"); + sb.append(def); + sb.append(" "); + } + + if(Keywords.size() > 0) + { + for (int i=0; i tgtCards; diff --git a/src/forge/Card.java b/src/forge/Card.java index 64da4609120..dd1b6077a3f 100644 --- a/src/forge/Card.java +++ b/src/forge/Card.java @@ -53,7 +53,6 @@ public class Card extends MyObservable { private boolean copiedSpell = false; private boolean SpellwithChoices = false; private boolean SpellCopyingCard = false; - private boolean checkedPropagandaThisTurn = false; private boolean creatureAttackedThisCombat = false; private boolean creatureBlockedThisCombat = false; private boolean creatureGotBlockedThisCombat = false; @@ -203,16 +202,6 @@ public class Card extends MyObservable { return xManaCostPaid; } - public void setCheckedPropagandaThisTurn(boolean b) - { - checkedPropagandaThisTurn = b; - } - - public boolean getCheckedPropagandaThisTurn() - { - return checkedPropagandaThisTurn; - } - //used to see if an attacking creature with a triggering attack ability triggered this phase: public void setCreatureAttackedThisCombat(boolean b) { creatureAttackedThisCombat = b; diff --git a/src/forge/CombatUtil.java b/src/forge/CombatUtil.java index 33ad6878178..27c6da3a161 100644 --- a/src/forge/CombatUtil.java +++ b/src/forge/CombatUtil.java @@ -831,7 +831,7 @@ public class CombatUtil { }; if(c.getController().isHuman()) { - AllZone.InputControl.setInput(new Input_PayManaCost_Ability("Propaganda " + c + "\r\n", + AllZone.InputControl.setInput(new Input_PayManaCost_Ability(c + " - Pay to Attack\r\n", ability.getManaCost(), paidCommand, unpaidCommand)); } else //computer { diff --git a/src/forge/GameActionUtil.java b/src/forge/GameActionUtil.java index 373a01a565e..0fe7231d514 100644 --- a/src/forge/GameActionUtil.java +++ b/src/forge/GameActionUtil.java @@ -4081,7 +4081,7 @@ public class GameActionUtil { } else //computer { if(ComputerUtil.canPayCost(ability)) { - + ComputerUtil.payManaCost(ability); StringBuilder sb = new StringBuilder(); sb.append(c.getName()).append(" - return 1 creature from your graveyard to your hand"); ability.setStackDescription(sb.toString()); @@ -4273,7 +4273,6 @@ public class GameActionUtil { for(int i = 0; i < list.size(); i++) { Card c = list.get(i); - if(c.getCheckedPropagandaThisTurn()) c.setCheckedPropagandaThisTurn(false); if(c.getCreatureAttackedThisCombat()) c.setCreatureAttackedThisCombat(false); if(c.getCreatureBlockedThisCombat()) c.setCreatureBlockedThisCombat(false);