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
|
no text
|
||||||
Comes into play tapped.
|
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
|
Cruel Edict
|
||||||
1 B
|
1 B
|
||||||
Sorcery
|
Sorcery
|
||||||
|
|||||||
@@ -5237,7 +5237,7 @@ public class CardFactory implements NewConstants {
|
|||||||
public void selectButtonCancel() {stop();}
|
public void selectButtonCancel() {stop();}
|
||||||
public void selectCard(Card c, PlayerZone zone)
|
public void selectCard(Card c, PlayerZone zone)
|
||||||
{
|
{
|
||||||
if(! CardUtil.getColor(c).equals(Constant.Color.Colorless) &&
|
if(! c.isArtifact() &&
|
||||||
c.isCreature() &&
|
c.isCreature() &&
|
||||||
zone.is(Constant.Zone.Play))
|
zone.is(Constant.Zone.Play))
|
||||||
{
|
{
|
||||||
@@ -16577,14 +16577,14 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
|||||||
card.clearSpellAbility();
|
card.clearSpellAbility();
|
||||||
card.addSpellAbility(spell);
|
card.addSpellAbility(spell);
|
||||||
}//*************** END ************ END **************************
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
|
||||||
//*************** START *********** START **************************
|
//*************** START *********** START **************************
|
||||||
else if (cardName.equals("Door to Nothingness"))
|
else if (cardName.equals("Door to Nothingness"))
|
||||||
{
|
{
|
||||||
Ability_Tap ab1 = new Ability_Tap(card, "G G R R B B U U W W")
|
Ability_Tap ab1 = new Ability_Tap(card, "G G R R B B U U W W")
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = 6665327569823149191L;
|
private static final long serialVersionUID = 6665327569823149191L;
|
||||||
public void resolve() {
|
public void resolve() {
|
||||||
AllZone.GameAction.getPlayerLife(getTargetPlayer()).setLife(0);
|
AllZone.GameAction.getPlayerLife(getTargetPlayer()).setLife(0);
|
||||||
|
|||||||
@@ -79,7 +79,9 @@ class CardFactory_Planeswalkers {
|
|||||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability2
|
};//SpellAbility ability2
|
||||||
@@ -142,7 +144,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -207,7 +210,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability1
|
};//SpellAbility ability1
|
||||||
|
|
||||||
@@ -312,7 +316,8 @@ class CardFactory_Planeswalkers {
|
|||||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability2
|
};//SpellAbility ability2
|
||||||
@@ -370,7 +375,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 7 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 7 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -455,7 +461,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability1
|
};//SpellAbility ability1
|
||||||
|
|
||||||
@@ -591,7 +598,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 9 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 9 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -697,7 +705,8 @@ class CardFactory_Planeswalkers {
|
|||||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability2
|
};//SpellAbility ability2
|
||||||
@@ -754,7 +763,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
|
|
||||||
public void chooseTargetAI()
|
public void chooseTargetAI()
|
||||||
@@ -926,7 +936,8 @@ class CardFactory_Planeswalkers {
|
|||||||
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability2
|
};//SpellAbility ability2
|
||||||
@@ -982,7 +993,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 6 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 6 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1033,7 +1045,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability1
|
};//SpellAbility ability1
|
||||||
|
|
||||||
@@ -1156,7 +1169,8 @@ class CardFactory_Planeswalkers {
|
|||||||
1 < library.size() &&
|
1 < library.size() &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability2
|
};//SpellAbility ability2
|
||||||
|
|
||||||
@@ -1212,7 +1226,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 8 <= card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1272,7 +1287,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return 0 < card2.getCounters(Counters.LOYALTY) && AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};//SpellAbility ability1
|
};//SpellAbility ability1
|
||||||
|
|
||||||
@@ -1376,7 +1392,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1446,7 +1463,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1538,7 +1556,8 @@ class CardFactory_Planeswalkers {
|
|||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
7 < card2.getCounters(Counters.LOYALTY) &&
|
7 < card2.getCounters(Counters.LOYALTY) &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1635,7 +1654,8 @@ class CardFactory_Planeswalkers {
|
|||||||
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
return AllZone.getZone(card2).is(Constant.Zone.Play) &&
|
||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
};
|
};
|
||||||
final Input targetLand = new Input()
|
final Input targetLand = new Input()
|
||||||
@@ -1722,7 +1742,8 @@ class CardFactory_Planeswalkers {
|
|||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
0 < card2.getCounters(Counters.LOYALTY) &&
|
0 < card2.getCounters(Counters.LOYALTY) &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
@@ -1808,7 +1829,8 @@ class CardFactory_Planeswalkers {
|
|||||||
turn[0] != AllZone.Phase.getTurn() &&
|
turn[0] != AllZone.Phase.getTurn() &&
|
||||||
3 < card2.getCounters(Counters.LOYALTY) &&
|
3 < card2.getCounters(Counters.LOYALTY) &&
|
||||||
AllZone.Phase.getActivePlayer().equals(card2.getController()) &&
|
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()
|
}//canPlay()
|
||||||
public boolean canPlayAI()
|
public boolean canPlayAI()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -155,7 +155,8 @@ public static void sortFlying(CardList list)
|
|||||||
int attack = 0;
|
int attack = 0;
|
||||||
|
|
||||||
for(int i = 0; i < c.size(); i++){
|
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())
|
if (!CombatUtil.isDoranInPlay())
|
||||||
attack += c.get(i).getNetAttack();
|
attack += c.get(i).getNetAttack();
|
||||||
else if(CombatUtil.isDoranInPlay())
|
else if(CombatUtil.isDoranInPlay())
|
||||||
|
|||||||
@@ -68,7 +68,8 @@ public class Combat
|
|||||||
damageDealt = att.get(i).getNetDefense();
|
damageDealt = att.get(i).getNetDefense();
|
||||||
|
|
||||||
//if the creature has first strike do not do damage in the normal combat phase
|
//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;
|
defendingDamage += damageDealt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,7 +269,8 @@ public class Combat
|
|||||||
CardList attacking = new CardList(getAttackers());
|
CardList attacking = new CardList(getAttackers());
|
||||||
for(int i = 0; i < attacking.size(); i++)
|
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));
|
block = getBlockers(attacking.get(i));
|
||||||
|
|
||||||
//attacker always gets all blockers' attack
|
//attacker always gets all blockers' attack
|
||||||
|
|||||||
@@ -982,12 +982,21 @@ public class GameActionUtil
|
|||||||
public static void executeAllyEffects(Card c)
|
public static void executeAllyEffects(Card c)
|
||||||
{
|
{
|
||||||
if (c.getName().equals("Kazandu Blademaster") || c.getName().equals("Makindi Shieldmate") ||
|
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("Nimana Sell-Sword") || c.getName().equals("Oran-Rief Survivalist") ||
|
||||||
c.getName().equals("Oran-Rief Survivalist") ||c.getName().equals("Tuktuk Grunts") ||
|
c.getName().equals("Tuktuk Grunts") || c.getName().equals("Umara Raptor"))
|
||||||
c.getName().equals("Umara Raptor"))
|
|
||||||
ally_Generic_P1P1(c);
|
ally_Generic_P1P1(c);
|
||||||
else if (c.getName().equals("Turntimber Ranger"))
|
else if (c.getName().equals("Turntimber Ranger"))
|
||||||
ally_Turntimber_Ranger(c);
|
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)
|
public static void executeDestroyCardEffects(Card c, Card destroyed)
|
||||||
{
|
{
|
||||||
if (destroyed.isCreature())
|
if (destroyed.isCreature())
|
||||||
|
|||||||
@@ -65,7 +65,9 @@ private void playerDamage(PlayerLife p)
|
|||||||
for(int j = 0; j < unblocked.size(); j++)
|
for(int j = 0; j < unblocked.size(); j++)
|
||||||
{
|
{
|
||||||
//System.out.println("Unblocked Creature: " +unblocked.get(j).getName());
|
//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));
|
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
|
//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"))
|
if (blockers.getCard(i).getKeyword().contains("Lifelink"))
|
||||||
@@ -199,7 +203,9 @@ private void playerDamage(PlayerLife p)
|
|||||||
}
|
}
|
||||||
for (int i=0; i < pwBlockers.size(); i++){
|
for (int i=0; i < pwBlockers.size(); i++){
|
||||||
//System.out.println("blocker #" + i + ": " + blockers.getCard(i).getName() +" " + blockers.getCard(i).getAttack());
|
//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"))
|
if (pwBlockers.getCard(i).getKeyword().contains("Lifelink"))
|
||||||
GameActionUtil.executeLifeLinkEffects(pwBlockers.getCard(i));
|
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",
|
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>();
|
final ArrayList<String> allyNamesList = new ArrayList<String>();
|
||||||
|
|
||||||
for (int i=0;i<allyNames.length;i++)
|
for (int i=0;i<allyNames.length;i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user