mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
-Reverted hasSecondStrike() for now, even though I'm still not sure why it doesn't work.
-Fixed some issues with Planeswalker's abilities. -Added a few Ally cards. -Fixed Ashes to Ashes. -Fixed some issues with Archon of Justice.
This commit is contained in:
@@ -4,6 +4,36 @@ Artifact
|
||||
no text
|
||||
Comes into play tapped.
|
||||
|
||||
Kazuul Warlord
|
||||
4 R
|
||||
Creature Minotaur Warrior Ally
|
||||
Whenever Kazuul Warlord or another Ally enters the battlefield under your control, you may put a +1/+1 counter on each Ally creature you control.
|
||||
3/3
|
||||
|
||||
Seascape Aerialist
|
||||
4 U
|
||||
Creature Merfolk Wizard Ally
|
||||
Whenever Seascape Aerialist or another Ally enters the battlefield under your control, you may have Ally creatures you control gain flying until end of turn.
|
||||
2/3
|
||||
|
||||
Ondu Cleric
|
||||
1 W
|
||||
Creature Kor Cleric Ally
|
||||
Whenever Ondu Cleric or another Ally enters the battlefield under your control, you may gain life equal to the number of Allies you control.
|
||||
1/1
|
||||
|
||||
Joraga Bard
|
||||
3 G
|
||||
Creature Elf Rogue Ally
|
||||
Whenever Joraga Bard or another Ally enters the battlefield under your control, you may have Ally creatures you control gain vigilance until end of turn.
|
||||
1/4
|
||||
|
||||
Highland Berserker
|
||||
1 R
|
||||
Creature Human Berserker Ally
|
||||
Whenever Highland Berserker or another Ally enters the battlefield under your control, you may have Ally creatures you control gain first strike until end of turn.
|
||||
2/1
|
||||
|
||||
Cruel Edict
|
||||
1 B
|
||||
Sorcery
|
||||
|
||||
@@ -5237,8 +5237,8 @@ public class CardFactory implements NewConstants {
|
||||
public void selectButtonCancel() {stop();}
|
||||
public void selectCard(Card c, PlayerZone zone)
|
||||
{
|
||||
if(! CardUtil.getColor(c).equals(Constant.Color.Colorless) &&
|
||||
c.isCreature() &&
|
||||
if(! c.isArtifact() &&
|
||||
c.isCreature() &&
|
||||
zone.is(Constant.Zone.Play))
|
||||
{
|
||||
target[index[0]] = c;
|
||||
@@ -16577,14 +16577,14 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
||||
card.clearSpellAbility();
|
||||
card.addSpellAbility(spell);
|
||||
}//*************** END ************ END **************************
|
||||
//*************** START *********** START **************************
|
||||
|
||||
|
||||
//*************** START *********** START **************************
|
||||
else if (cardName.equals("Door to Nothingness"))
|
||||
{
|
||||
Ability_Tap ab1 = new Ability_Tap(card, "G G R R B B U U W W")
|
||||
{
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
private static final long serialVersionUID = 6665327569823149191L;
|
||||
public void resolve() {
|
||||
AllZone.GameAction.getPlayerLife(getTargetPlayer()).setLife(0);
|
||||
|
||||
@@ -79,7 +79,9 @@ class CardFactory_Planeswalkers {
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
|
||||
|
||||
}//canPlay()
|
||||
};//SpellAbility ability2
|
||||
@@ -142,7 +144,8 @@ class CardFactory_Planeswalkers {
|
||||
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -207,7 +210,8 @@ class CardFactory_Planeswalkers {
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};//SpellAbility ability1
|
||||
|
||||
@@ -312,7 +316,8 @@ class CardFactory_Planeswalkers {
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
|
||||
}//canPlay()
|
||||
};//SpellAbility ability2
|
||||
@@ -370,7 +375,8 @@ class CardFactory_Planeswalkers {
|
||||
return 7 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -455,7 +461,8 @@ class CardFactory_Planeswalkers {
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};//SpellAbility ability1
|
||||
|
||||
@@ -591,7 +598,8 @@ class CardFactory_Planeswalkers {
|
||||
return 9 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -697,7 +705,8 @@ class CardFactory_Planeswalkers {
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
|
||||
}//canPlay()
|
||||
};//SpellAbility ability2
|
||||
@@ -754,7 +763,8 @@ class CardFactory_Planeswalkers {
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
|
||||
public void chooseTargetAI()
|
||||
@@ -926,7 +936,8 @@ class CardFactory_Planeswalkers {
|
||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
|
||||
}//canPlay()
|
||||
};//SpellAbility ability2
|
||||
@@ -982,7 +993,8 @@ class CardFactory_Planeswalkers {
|
||||
return 6 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1033,7 +1045,8 @@ class CardFactory_Planeswalkers {
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};//SpellAbility ability1
|
||||
|
||||
@@ -1156,7 +1169,8 @@ class CardFactory_Planeswalkers {
|
||||
1 < library.size() &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};//SpellAbility ability2
|
||||
|
||||
@@ -1212,7 +1226,8 @@ class CardFactory_Planeswalkers {
|
||||
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1272,7 +1287,8 @@ class CardFactory_Planeswalkers {
|
||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};//SpellAbility ability1
|
||||
|
||||
@@ -1376,7 +1392,8 @@ class CardFactory_Planeswalkers {
|
||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1446,7 +1463,8 @@ class CardFactory_Planeswalkers {
|
||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1538,7 +1556,8 @@ class CardFactory_Planeswalkers {
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
7 < card2.getCounters(Counters.LOYALTY) &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1635,7 +1654,8 @@ class CardFactory_Planeswalkers {
|
||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
};
|
||||
final Input targetLand = new Input()
|
||||
@@ -1722,7 +1742,8 @@ class CardFactory_Planeswalkers {
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
0 < card2.getCounters(Counters.LOYALTY) &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
@@ -1808,7 +1829,8 @@ class CardFactory_Planeswalkers {
|
||||
turn[0] != AllZone.Phase.getTurn() &&
|
||||
3 < card2.getCounters(Counters.LOYALTY) &&
|
||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
||||
!AllZone.Phase.getPhase().equals("End of Turn");
|
||||
!AllZone.Phase.getPhase().equals("End of Turn") &&
|
||||
(AllZone.Phase.getPhase().equals("Main1") || AllZone.Phase.getPhase().equals("Main2"));
|
||||
}//canPlay()
|
||||
public boolean canPlayAI()
|
||||
{
|
||||
|
||||
@@ -155,7 +155,8 @@ public static void sortFlying(CardList list)
|
||||
int attack = 0;
|
||||
|
||||
for(int i = 0; i < c.size(); i++){
|
||||
if(c.get(i).isCreature() && c.get(i).hasSecondStrike()) {
|
||||
//if(c.get(i).isCreature() && c.get(i).hasSecondStrike()) {
|
||||
if(c.get(i).isCreature() && (!c.get(i).hasFirstStrike() || (c.get(i).hasDoubleStrike() && c.get(i).hasFirstStrike())) ) {
|
||||
if (!CombatUtil.isDoranInPlay())
|
||||
attack += c.get(i).getNetAttack();
|
||||
else if(CombatUtil.isDoranInPlay())
|
||||
|
||||
@@ -68,7 +68,8 @@ public class Combat
|
||||
damageDealt = att.get(i).getNetDefense();
|
||||
|
||||
//if the creature has first strike do not do damage in the normal combat phase
|
||||
if(att.get(i).hasSecondStrike())
|
||||
//if(att.get(i).hasSecondStrike())
|
||||
if(!att.get(i).hasFirstStrike() || (att.get(i).hasFirstStrike() && att.get(i).hasDoubleStrike()) )
|
||||
defendingDamage += damageDealt;
|
||||
}
|
||||
}
|
||||
@@ -268,7 +269,8 @@ public class Combat
|
||||
CardList attacking = new CardList(getAttackers());
|
||||
for(int i = 0; i < attacking.size(); i++)
|
||||
{
|
||||
if(!attacking.get(i).hasSecondStrike() ){
|
||||
//if(!attacking.get(i).hasSecondStrike() ){
|
||||
if(!attacking.get(i).hasFirstStrike() || (attacking.get(i).hasFirstStrike() && attacking.get(i).hasDoubleStrike() )){
|
||||
block = getBlockers(attacking.get(i));
|
||||
|
||||
//attacker always gets all blockers' attack
|
||||
|
||||
@@ -982,12 +982,21 @@ public class GameActionUtil
|
||||
public static void executeAllyEffects(Card c)
|
||||
{
|
||||
if (c.getName().equals("Kazandu Blademaster") || c.getName().equals("Makindi Shieldmate") ||
|
||||
c.getName().equals("Nimana Sell-Sword") || c.getName().equals("Ondu Cleric") ||
|
||||
c.getName().equals("Oran-Rief Survivalist") ||c.getName().equals("Tuktuk Grunts") ||
|
||||
c.getName().equals("Umara Raptor"))
|
||||
c.getName().equals("Nimana Sell-Sword") || c.getName().equals("Oran-Rief Survivalist") ||
|
||||
c.getName().equals("Tuktuk Grunts") || c.getName().equals("Umara Raptor"))
|
||||
ally_Generic_P1P1(c);
|
||||
else if (c.getName().equals("Turntimber Ranger"))
|
||||
ally_Turntimber_Ranger(c);
|
||||
else if (c.getName().equals("Highland Berserker"))
|
||||
ally_BoostUntilEOT(c, "First Strike");
|
||||
else if (c.getName().equals("Joraga Bard"))
|
||||
ally_BoostUntilEOT(c, "Vigilance");
|
||||
else if (c.getName().equals("Seascape Aerialist"))
|
||||
ally_BoostUntilEOT(c, "Flying");
|
||||
else if (c.getName().equals("Ondu Cleric"))
|
||||
ally_Ondu_Cleric(c);
|
||||
else if (c.getName().equals("Kazuul Warlord"))
|
||||
ally_Kazuul_Warlord(c);
|
||||
|
||||
}
|
||||
|
||||
@@ -1086,6 +1095,118 @@ public class GameActionUtil
|
||||
}
|
||||
}
|
||||
|
||||
private static void ally_BoostUntilEOT(Card c, String k)
|
||||
{
|
||||
final Card crd = c;
|
||||
final String keyword = k;
|
||||
|
||||
Ability ability = new Ability(c, "0")
|
||||
{
|
||||
public void resolve()
|
||||
{
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play, crd.getController());
|
||||
CardList list = new CardList(play.getCards());
|
||||
list = list.getType("Ally");
|
||||
|
||||
final CardList allies = list;
|
||||
|
||||
final Command untilEOT = new Command()
|
||||
{
|
||||
|
||||
private static final long serialVersionUID = -8434529949884582940L;
|
||||
|
||||
public void execute()
|
||||
{
|
||||
for (Card creat:allies){
|
||||
if(AllZone.GameAction.isCardInPlay(creat))
|
||||
{
|
||||
creat.removeExtrinsicKeyword(keyword);
|
||||
}
|
||||
}
|
||||
}
|
||||
};//Command
|
||||
|
||||
for (Card creat:allies){
|
||||
if(AllZone.GameAction.isCardInPlay(creat) )
|
||||
{
|
||||
creat.addExtrinsicKeyword(keyword);
|
||||
}
|
||||
}
|
||||
AllZone.EndOfTurn.addUntil(untilEOT);
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
ability.setStackDescription(c.getName() + " - Ally: Ally creatures you control gain " +keyword +" until end of turn.");
|
||||
|
||||
if (c.getController().equals(Constant.Player.Human)){
|
||||
if (showAllyDialog(c))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
else if (c.getController().equals(Constant.Player.Computer))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
private static void ally_Ondu_Cleric(Card c)
|
||||
{
|
||||
final Card crd = c;
|
||||
|
||||
Ability ability = new Ability(c, "0")
|
||||
{
|
||||
public void resolve()
|
||||
{
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play ,crd.getController());
|
||||
CardList allies = new CardList(play.getCards());
|
||||
allies = allies.getType("Ally");
|
||||
PlayerLife life = AllZone.GameAction.getPlayerLife(crd.getController());
|
||||
life.addLife(allies.size());
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
ability.setStackDescription(c.getName() + " - Ally: gain life equal to the number of allies you control.");
|
||||
|
||||
if (c.getController().equals(Constant.Player.Human)){
|
||||
if (showAllyDialog(c))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
else if (c.getController().equals(Constant.Player.Computer))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
private static void ally_Kazuul_Warlord(Card c)
|
||||
{
|
||||
final Card crd = c;
|
||||
|
||||
Ability ability = new Ability(c, "0")
|
||||
{
|
||||
public void resolve()
|
||||
{
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Play, crd.getController());
|
||||
CardList list = new CardList(play.getCards());
|
||||
list = list.getType("Ally");
|
||||
|
||||
for (Card ally:list)
|
||||
{
|
||||
ally.addCounter(Counters.P1P1, 1);
|
||||
}
|
||||
}
|
||||
};
|
||||
ability.setStackDescription(c.getName() + " - Ally: put a +1/+1 counter on each Ally creature you control.");
|
||||
|
||||
if (c.getController().equals(Constant.Player.Human)) {
|
||||
if (showAllyDialog(c))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
else if (c.getController().equals(Constant.Player.Computer))
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
|
||||
|
||||
public static void executeDestroyCardEffects(Card c, Card destroyed)
|
||||
{
|
||||
if (destroyed.isCreature())
|
||||
|
||||
@@ -65,7 +65,9 @@ private void playerDamage(PlayerLife p)
|
||||
for(int j = 0; j < unblocked.size(); j++)
|
||||
{
|
||||
//System.out.println("Unblocked Creature: " +unblocked.get(j).getName());
|
||||
if (unblocked.getCard(j).hasSecondStrike()) {
|
||||
//if (unblocked.getCard(j).hasSecondStrike()) {
|
||||
if (!unblocked.getCard(j).hasFirstStrike() ||
|
||||
(unblocked.getCard(j).hasFirstStrike() && unblocked.getCard(j).hasDoubleStrike())) {
|
||||
GameActionUtil.executePlayerCombatDamageEffects(unblocked.get(j));
|
||||
}
|
||||
|
||||
@@ -146,7 +148,9 @@ private void playerDamage(PlayerLife p)
|
||||
//this shouldn't trigger if creature has first strike, only if it also has double strike
|
||||
|
||||
|
||||
if (blockers.get(i).hasSecondStrike())
|
||||
//if (blockers.get(i).hasSecondStrike())
|
||||
if (!blockers.getCard(i).hasFirstStrike() ||
|
||||
(blockers.getCard(i).hasFirstStrike() && blockers.getCard(i).hasDoubleStrike()))
|
||||
{
|
||||
|
||||
if (blockers.getCard(i).getKeyword().contains("Lifelink"))
|
||||
@@ -199,7 +203,9 @@ private void playerDamage(PlayerLife p)
|
||||
}
|
||||
for (int i=0; i < pwBlockers.size(); i++){
|
||||
//System.out.println("blocker #" + i + ": " + blockers.getCard(i).getName() +" " + blockers.getCard(i).getAttack());
|
||||
if ( (pwBlockers.getCard(i).hasSecondStrike()) )
|
||||
//if ( (pwBlockers.getCard(i).hasSecondStrike()) )
|
||||
if ( (!pwBlockers.getCard(i).hasFirstStrike() || (pwBlockers.getCard(i).hasFirstStrike() &&
|
||||
pwBlockers.getCard(i).hasDoubleStrike()) ) )
|
||||
{
|
||||
if (pwBlockers.getCard(i).getKeyword().contains("Lifelink"))
|
||||
GameActionUtil.executeLifeLinkEffects(pwBlockers.getCard(i));
|
||||
|
||||
@@ -74,7 +74,7 @@ public class PlayerZone_ComesIntoPlay extends DefaultPlayerZone
|
||||
});
|
||||
|
||||
String[] allyNames = {"Umara Raptor", "Tuktuk Grunts", "Oran-Rief Survivalist", "Nimana Sell-Sword", "Makindi Shieldmate",
|
||||
"Kazandu Blademaster","Turntimber Ranger"};
|
||||
"Kazandu Blademaster","Turntimber Ranger", "Highland Berserker", "Joraga Bard"};
|
||||
final ArrayList<String> allyNamesList = new ArrayList<String>();
|
||||
|
||||
for (int i=0;i<allyNames.length;i++)
|
||||
|
||||
Reference in New Issue
Block a user