abTgtPTPump

Permanents with the ability -
{manacost/tap cost}: Target creature gets +p/+t until end of turn.
Flowstone Overseer
2 R R R
Creature Beast
no text
4/4
abTgtPTPump R R:+/-1
Ghost Warden
1 W
Creature Spirit
no text
1/1
abTgtPTPump T:+1/+1
Nantuko Disciple
3 G
Creature Insect Druid
no text
2/2
abTgtPTPump G T:+2/+2
{manacost/tap cost}: Target creature gets +p/+t until end of turn.
Flowstone Overseer
2 R R R
Creature Beast
no text
4/4
abTgtPTPump R R:+/-1
Ghost Warden
1 W
Creature Spirit
no text
1/1
abTgtPTPump T:+1/+1
Nantuko Disciple
3 G
Creature Insect Druid
no text
2/2
abTgtPTPump G T:+2/+2
- Code: Select all
private final int shouldAbTgtPTPumpCard(Card c)
{
ArrayList<String> a = c.getKeyword();
for (int i = 0; i < a.size(); i++)
if (a.get(i).toString().startsWith("abTgtPTPump"))
return i;
return -1;
}
- Code: Select all
while (shouldAbTgtPTPumpCard(card) != -1)
{
int n = shouldAbTgtPTPumpCard(card);
if (n != -1)
{
String parse = card.getKeyword().get(n).toString();
card.removeIntrinsicKeyword(parse);
String k[] = parse.split(":");
String pt[] = k[1].split("/");
final int attack[] = new int[1];
final int defense[] = new int[1];
attack[0] = Integer.parseInt(pt[0].replace("+", ""));
defense[0] = Integer.parseInt(pt[1].replace("+", ""));
String tmpCost = k[0].substring(10);
boolean tapCost = false;
boolean tapOnlyCost = false;
if (tmpCost.contains("T"))
{
tapCost = true;
tmpCost = tmpCost.replace("T", "");
tmpCost = tmpCost.trim();
if (tmpCost.length() == 0)
tapOnlyCost = true;
}
final String manaCost = tmpCost;
String tmpDesc = new String();
tmpDesc = "Target creature gets ";
if (attack[0] > 0)
tmpDesc = tmpDesc + "+" + attack[0];
else
tmpDesc = tmpDesc + attack[0];
tmpDesc = tmpDesc + "/";
if (defense[0] > 0)
tmpDesc = tmpDesc + "+" + defense[0];
else
tmpDesc = tmpDesc + defense[0];
tmpDesc = tmpDesc + " until end of turn.";
final String Desc = tmpDesc;
if (!tapCost)
{
final SpellAbility ability = new Ability_Activated(card, manaCost)
{
private static final long serialVersionUID = -845173064437485113L;
public boolean canPlay()
{
if (CardFactoryUtil.canUseAbility(card) && AllZone.GameAction.isCardInPlay(card) &&
!card.isFaceDown())
return true;
else
return false;
}
public boolean canPlayAI()
{
CardList list = getAttackers();
if (list.isEmpty())
return false;
else
{
if (list.get(0).getNetDefense() + defense[0] < 1)
return false;
Random r = new Random();
if (r.nextFloat() <= Math.pow(.6667, card.getAbilityUsed()))
{
setTargetCard(list.get(0));
return true;
}
else
return false;
}
}//canPlayAI
public CardList getAttackers()
{
Card[] c = ComputerUtil.getAttackers().getAttackers();
CardList list = new CardList(c);
return list;
}//getAttacker
public void resolve()
{
if (AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()))
{
final Card[] creature = new Card[1];
creature[0] = getTargetCard();
creature[0].addTempAttackBoost(attack[0]);
creature[0].addTempDefenseBoost(defense[0]);
card.setAbilityUsed(card.getAbilityUsed()+1);
final Command EOT = new Command()
{
private static final long serialVersionUID = 122944434978198700L;
public void execute()
{
if (AllZone.GameAction.isCardInPlay(creature[0]))
{
creature[0].addTempAttackBoost(-attack[0]);
creature[0].addTempDefenseBoost(-defense[0]);
}
}
};//EOT
AllZone.EndOfTurn.addUntil(EOT);
}
}//resolve
};//ability
ability.setDescription(manaCost+": "+Desc);
ability.setStackDescription(Desc);
ability.setBeforePayMana(CardFactoryUtil.input_targetCreature(ability));
card.addSpellAbility(ability);
}//!tapCost
if (tapOnlyCost)
{
final SpellAbility ability = new Ability_Tap(card)
{
private static final long serialVersionUID = 6723777240105966031L;
public boolean canPlay()
{
boolean sick = true;
if (!card.hasSickness() || !card.isCreature())
sick = false;
if (card.isUntapped() && CardFactoryUtil.canUseAbility(card) &&
AllZone.GameAction.isCardInPlay(card) && !sick && !card.isFaceDown())
return true;
else
return false;
}//canPlay
public boolean canPlayAI()
{
CardList list = getAttackers();
if (list.isEmpty())
return false;
else
if (list.get(0).getNetDefense() + defense[0] < 1)
return false;
if (CardFactoryUtil.AI_doesCreatureAttack(card))
return false;
setTargetCard(list.get(0));
return true;
}//canPlayAI
public CardList getAttackers()
{
Card[] c = ComputerUtil.getAttackers().getAttackers();
CardList list = new CardList(c);
list.remove(card);
return list;
}
public void resolve()
{
if (AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()))
{
final Card[] creature = new Card[1];
creature[0] = getTargetCard();
creature[0].addTempAttackBoost(attack[0]);
creature[0].addTempDefenseBoost(defense[0]);
final Command EOT = new Command()
{
private static final long serialVersionUID = -852905560563053752L;
public void execute()
{
if (AllZone.GameAction.isCardInPlay(creature[0]))
{
creature[0].addTempAttackBoost(-attack[0]);
creature[0].addTempDefenseBoost(-defense[0]);
}
}
};//EOT
AllZone.EndOfTurn.addUntil(EOT);
}
}//resolve
};//ability
ability.setDescription("tap: "+Desc);
ability.setStackDescription(Desc);
ability.setBeforePayMana(CardFactoryUtil.input_targetCreature_NoCost_TapAbility((Ability_Tap)ability));
card.addSpellAbility(ability);
}//tapOnlyCost
if (!tapOnlyCost && tapCost)
{
final SpellAbility ability = new Ability_Tap(card, manaCost)
{
private static final long serialVersionUID = 2749576299299014851L;
public boolean canPlay()
{
boolean sick = true;
if (!card.hasSickness() || !card.isCreature())
sick = false;
if (card.isUntapped() && CardFactoryUtil.canUseAbility(card) &&
AllZone.GameAction.isCardInPlay(card) && !sick && !card.isFaceDown())
return true;
else
return false;
}//canPlay
public boolean canPlayAI()
{
CardList list = getAttackers();
if (list.isEmpty())
return false;
else
if (list.get(0).getNetDefense() + defense[0] < 1)
return false;
if (CardFactoryUtil.AI_doesCreatureAttack(card))
return false;
setTargetCard(list.get(0));
return true;
}//canPlayAI
public CardList getAttackers()
{
Card[] c = ComputerUtil.getAttackers().getAttackers();
CardList list = new CardList(c);
list.remove(card);
return list;
}//getAttackers
public void resolve()
{
if (AllZone.GameAction.isCardInPlay(getTargetCard()) && CardFactoryUtil.canTarget(card, getTargetCard()))
{
final Card[] creature = new Card[1];
creature[0] = getTargetCard();
creature[0].addTempAttackBoost(attack[0]);
creature[0].addTempDefenseBoost(defense[0]);
final Command EOT = new Command()
{
private static final long serialVersionUID = 8179097336678296338L;
public void execute()
{
if (AllZone.GameAction.isCardInPlay(creature[0]))
{
creature[0].addTempAttackBoost(-attack[0]);
creature[0].addTempDefenseBoost(-defense[0]);
}
}
};//EOT
AllZone.EndOfTurn.addUntil(EOT);
}
}//resolve
};//ability
ability.setDescription(manaCost+ ", tap: "+Desc);
ability.setStackDescription(Desc);
ability.setBeforePayMana(CardFactoryUtil.input_targetCreature(ability));
card.addSpellAbility(ability);
}//!tapCost
}
}//while