mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Radiant, Archangel is a 3/3 now.
- Discarding when controlling Necropotence should exile the card. - Fixed a bug in the combat code where if a creature has received equal to its toughness, it will die no matter what. - Umezawa's Jitte should trigger now when attacking a planeswalker. - Added Pit Scorpion and Serpent Generator.
This commit is contained in:
@@ -18,6 +18,8 @@ forest.jpg http://resources.wizards.com/magic/cards/unh/en-us/card73946.jpg
|
|||||||
forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748
|
forest1.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=2748
|
||||||
forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587
|
forest2.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=587
|
||||||
forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586
|
forest3.jpg http://gatherer.wizards.com/handlers/image.ashx?type=card&multiverseid=586
|
||||||
|
serpent_generator.jpg http://www.wizards.com/global/images/magic/general/serpent_generator.jpg
|
||||||
|
pit_scorpion.jpg http://www.wizards.com/global/images/magic/general/pit_scorpion.jpg
|
||||||
bridge_from_below.jpg http://www.wizards.com/global/images/magic/general/bridge_from_below.jpg
|
bridge_from_below.jpg http://www.wizards.com/global/images/magic/general/bridge_from_below.jpg
|
||||||
swamp_mosquito.jpg http://www.wizards.com/global/images/magic/general/swamp_mosquito.jpg
|
swamp_mosquito.jpg http://www.wizards.com/global/images/magic/general/swamp_mosquito.jpg
|
||||||
suqata_assassin.jpg http://www.wizards.com/global/images/magic/general/suqata_assassin.jpg
|
suqata_assassin.jpg http://www.wizards.com/global/images/magic/general/suqata_assassin.jpg
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
Serpent Generator
|
||||||
|
6
|
||||||
|
Artifact
|
||||||
|
no text
|
||||||
|
|
||||||
|
Pit Scorpion
|
||||||
|
2 B
|
||||||
|
Creature Scorpion
|
||||||
|
Whenever this creature deals damage to a player, that player gets a poison counter.
|
||||||
|
1/1
|
||||||
|
|
||||||
Bridge from Below
|
Bridge from Below
|
||||||
B B B
|
B B B
|
||||||
Enchantment
|
Enchantment
|
||||||
@@ -13933,7 +13944,7 @@ Radiant, Archangel
|
|||||||
3 W W
|
3 W W
|
||||||
Legendary Creature Angel
|
Legendary Creature Angel
|
||||||
Radiant, Archangel gets +1/+1 for each creature with flying in play.
|
Radiant, Archangel gets +1/+1 for each creature with flying in play.
|
||||||
2/2
|
3/3
|
||||||
Flying
|
Flying
|
||||||
Vigilance
|
Vigilance
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<java version="1.6.0_16" class="java.beans.XMLDecoder">
|
<java version="1.6.0_17" class="java.beans.XMLDecoder">
|
||||||
<object id="MultiSplitLayout$Split0" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
<object id="MultiSplitLayout$Split0" class="org.jdesktop.swingx.MultiSplitLayout$Split">
|
||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>148</int>
|
<int>148</int>
|
||||||
<int>244</int>
|
<int>244</int>
|
||||||
<int>181</int>
|
<int>183</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>329</int>
|
<int>331</int>
|
||||||
<int>244</int>
|
<int>244</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -98,9 +98,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>339</int>
|
<int>341</int>
|
||||||
<int>244</int>
|
<int>244</int>
|
||||||
<int>115</int>
|
<int>113</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -339,7 +339,7 @@
|
|||||||
<int>254</int>
|
<int>254</int>
|
||||||
<int>512</int>
|
<int>512</int>
|
||||||
<int>902</int>
|
<int>902</int>
|
||||||
<int>137</int>
|
<int>146</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -358,7 +358,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>254</int>
|
<int>254</int>
|
||||||
<int>649</int>
|
<int>658</int>
|
||||||
<int>902</int>
|
<int>902</int>
|
||||||
<int>10</int>
|
<int>10</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -373,9 +373,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>254</int>
|
<int>254</int>
|
||||||
<int>659</int>
|
<int>668</int>
|
||||||
<int>902</int>
|
<int>902</int>
|
||||||
<int>168</int>
|
<int>159</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
|
|||||||
@@ -17801,8 +17801,46 @@ return land.size() > 1 && CardFactoryUtil.AI_isMainPhase();
|
|||||||
};
|
};
|
||||||
card.clearSpellAbility();
|
card.clearSpellAbility();
|
||||||
card.addSpellAbility(spell);
|
card.addSpellAbility(spell);
|
||||||
}
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*************** START *********** START **************************
|
||||||
|
if (cardName.equals("Serpent Generator"))
|
||||||
|
{
|
||||||
|
final SpellAbility ability = new Ability_Tap(card, "4")
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 8428205362391909464L;
|
||||||
|
|
||||||
|
public void resolve()
|
||||||
|
{
|
||||||
|
PlayerZone play = AllZone.getZone(card);
|
||||||
|
Card c = new Card();
|
||||||
|
|
||||||
|
c.setOwner(card.getController());
|
||||||
|
c.setController(card.getController());
|
||||||
|
|
||||||
|
c.setName("Snake");
|
||||||
|
c.setImageName("C 1 1 Snake");
|
||||||
|
c.setManaCost("");
|
||||||
|
c.setToken(true);
|
||||||
|
|
||||||
|
c.addType("Artifact");
|
||||||
|
c.addType("Creature");
|
||||||
|
c.addType("Snake");
|
||||||
|
c.setBaseAttack(1);
|
||||||
|
c.setBaseDefense(1);
|
||||||
|
|
||||||
|
c.addIntrinsicKeyword("Whenever this creature deals damage to a player, that player gets a poison counter.");
|
||||||
|
|
||||||
|
play.add(c);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ability.setStackDescription("Put a 1/1 colorless Snake artifact creature token onto the battlefield. This creature has \"Whenever this creature deals damage to a player, that player gets a poison counter.\"");
|
||||||
|
ability.setDescription("4, Tap: Put a 1/1 colorless Snake artifact creature token onto the battlefield. This creature has \"Whenever this creature deals damage to a player, that player gets a poison counter.\" (A player with ten or more poison counters loses the game.)");
|
||||||
|
card.addSpellAbility(ability);
|
||||||
|
|
||||||
|
}//*************** END ************ END **************************
|
||||||
|
|
||||||
// Cards with Cycling abilities
|
// Cards with Cycling abilities
|
||||||
// -1 means keyword "Cycling" not found
|
// -1 means keyword "Cycling" not found
|
||||||
|
|||||||
@@ -2916,6 +2916,14 @@ public class CardFactoryUtil
|
|||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean hasNecropotence(String player)
|
||||||
|
{
|
||||||
|
PlayerZone play = AllZone.getZone(Constant.Zone.Play, player);
|
||||||
|
CardList list = new CardList(play.getCards());
|
||||||
|
list = list.getName("Necropotence");
|
||||||
|
return list.size() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static int getCanPlayNumberOfLands(String player)
|
public static int getCanPlayNumberOfLands(String player)
|
||||||
{
|
{
|
||||||
@@ -2941,6 +2949,7 @@ public class CardFactoryUtil
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static CardList getFastbonds(String player)
|
public static CardList getFastbonds(String player)
|
||||||
{
|
{
|
||||||
CardList list = new CardList(AllZone.getZone(Constant.Zone.Play, player).getCards());
|
CardList list = new CardList(AllZone.getZone(Constant.Zone.Play, player).getCards());
|
||||||
|
|||||||
@@ -570,6 +570,25 @@ public class CombatUtil
|
|||||||
return display;
|
return display;
|
||||||
}//getPlaneswalkerBlockers()
|
}//getPlaneswalkerBlockers()
|
||||||
|
|
||||||
|
public static void executeCombatDamageEffects(Card c)
|
||||||
|
{
|
||||||
|
if (c.getKeyword().contains("Lifelink"))
|
||||||
|
GameActionUtil.executeLifeLinkEffects(c);
|
||||||
|
|
||||||
|
CardList cl = CardFactoryUtil.getAurasEnchanting(c, "Guilty Conscience");
|
||||||
|
for (Card crd : cl)
|
||||||
|
GameActionUtil.executeGuiltyConscienceEffects(c, crd);
|
||||||
|
|
||||||
|
if(CardFactoryUtil.hasNumberEquipments(c, "Umezawa's Jitte") == 1 && c.getNetAttack() > 0)
|
||||||
|
{
|
||||||
|
PlayerZone play = AllZone.getZone(c);
|
||||||
|
CardList clist = new CardList(play.getCards());
|
||||||
|
clist = clist.getName("Umezawa's Jitte");
|
||||||
|
Card jitte = clist.get(0);
|
||||||
|
jitte.addCounter(Counters.CHARGE, 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean canBlockProtection(Card attacker, Card blocker)
|
private static boolean canBlockProtection(Card attacker, Card blocker)
|
||||||
{
|
{
|
||||||
ArrayList<String> list = attacker.getKeyword();
|
ArrayList<String> list = attacker.getKeyword();
|
||||||
|
|||||||
@@ -99,6 +99,8 @@ private Card getCurrentCard(int ID)
|
|||||||
discard_nath(c);
|
discard_nath(c);
|
||||||
discard_megrim(c);
|
discard_megrim(c);
|
||||||
moveToGraveyard(c);
|
moveToGraveyard(c);
|
||||||
|
if (CardFactoryUtil.hasNecropotence(c.getOwner()))
|
||||||
|
removeFromGame(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void discardRandom(String player, int numDiscard)
|
public void discardRandom(String player, int numDiscard)
|
||||||
|
|||||||
@@ -3630,6 +3630,9 @@ public class GameActionUtil
|
|||||||
public static void executePlayerCombatDamageEffects(Card c)
|
public static void executePlayerCombatDamageEffects(Card c)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (c.getKeyword().contains("Whenever this creature deals damage to a player, that player gets a poison counter."))
|
||||||
|
playerCombatDamage_PoisonCounter(c);
|
||||||
|
|
||||||
if (c.getName().equals("Hypnotic Specter"))
|
if (c.getName().equals("Hypnotic Specter"))
|
||||||
playerCombatDamage_Hypnotic_Specter(c);
|
playerCombatDamage_Hypnotic_Specter(c);
|
||||||
else if (c.getName().equals("Dimir Cutpurse"))
|
else if (c.getName().equals("Dimir Cutpurse"))
|
||||||
@@ -3724,6 +3727,18 @@ public class GameActionUtil
|
|||||||
}//for
|
}//for
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
private static void playerCombatDamage_PoisonCounter(Card c)
|
||||||
|
{
|
||||||
|
final String player = c.getController();
|
||||||
|
final String opponent = AllZone.GameAction.getOpponent(player);
|
||||||
|
|
||||||
|
if (opponent.equals(Constant.Player.Human))
|
||||||
|
AllZone.Human_PoisonCounter.addPoisonCounters(1);
|
||||||
|
else
|
||||||
|
AllZone.Computer_PoisonCounter.addPoisonCounters(1);
|
||||||
|
}
|
||||||
|
|
||||||
private static void playerCombatDamage_Oros(Card c)
|
private static void playerCombatDamage_Oros(Card c)
|
||||||
{
|
{
|
||||||
SpellAbility[] sa = c.getSpellAbility();
|
SpellAbility[] sa = c.getSpellAbility();
|
||||||
@@ -13291,7 +13306,6 @@ public class GameActionUtil
|
|||||||
else k = countHand_Computer();
|
else k = countHand_Computer();
|
||||||
c.setBaseAttack(k);
|
c.setBaseAttack(k);
|
||||||
c.setBaseDefense(k);
|
c.setBaseDefense(k);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private int countHand_Human()
|
private int countHand_Human()
|
||||||
@@ -14036,7 +14050,7 @@ public class GameActionUtil
|
|||||||
{
|
{
|
||||||
public boolean addCard(Card c)
|
public boolean addCard(Card c)
|
||||||
{
|
{
|
||||||
return c.isCreature() && c.getKeyword().contains("Flying");
|
return c.isCreature() && c.getKeyword().contains("Flying") && !c.getName().equals("Radiant, Archangel");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return flying.size();
|
return flying.size();
|
||||||
|
|||||||
@@ -119,23 +119,7 @@ private void playerDamage(PlayerLife p)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (list.contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(attackers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(attackers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(attackers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(attackers.getCard(i), c);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(CardFactoryUtil.hasNumberEquipments(attackers.getCard(i), "Umezawa's Jitte") == 1 && attackers.get(i).getNetAttack() > 0)
|
|
||||||
{
|
|
||||||
PlayerZone play = AllZone.getZone(attackers.getCard(i));
|
|
||||||
CardList clist = new CardList(play.getCards());
|
|
||||||
clist = clist.getName("Umezawa's Jitte");
|
|
||||||
Card jitte = clist.get(0);
|
|
||||||
jitte.addCounter(Counters.CHARGE, 2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//not sure if this will work correctly with multiple blockers?
|
//not sure if this will work correctly with multiple blockers?
|
||||||
@@ -170,17 +154,7 @@ private void playerDamage(PlayerLife p)
|
|||||||
(blockers.getCard(i).hasFirstStrike() && blockers.getCard(i).hasDoubleStrike()))
|
(blockers.getCard(i).hasFirstStrike() && blockers.getCard(i).hasDoubleStrike()))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (blockers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(blockers.getCard(i));
|
||||||
{
|
|
||||||
GameActionUtil.executeLifeLinkEffects(blockers.getCard(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(blockers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(blockers.getCard(i), c);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ArrayList<String> list = blockers.getCard(i).getKeyword();
|
ArrayList<String> list = blockers.getCard(i).getKeyword();
|
||||||
for (int j=0; j < list.size(); j++)
|
for (int j=0; j < list.size(); j++)
|
||||||
@@ -213,31 +187,14 @@ private void playerDamage(PlayerLife p)
|
|||||||
//System.out.println("attacker #" + i + ": " + attackers.getCard(i).getName() +" " + attackers.getCard(i).getAttack());
|
//System.out.println("attacker #" + i + ": " + attackers.getCard(i).getName() +" " + attackers.getCard(i).getAttack());
|
||||||
if ( (!pwAttackers.getCard(i).hasFirstStrike() || (pwAttackers.getCard(i).hasFirstStrike() && pwAttackers.getCard(i).hasDoubleStrike()) ) )
|
if ( (!pwAttackers.getCard(i).hasFirstStrike() || (pwAttackers.getCard(i).hasFirstStrike() && pwAttackers.getCard(i).hasDoubleStrike()) ) )
|
||||||
{
|
{
|
||||||
if (pwAttackers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(pwAttackers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(pwAttackers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(pwAttackers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(pwAttackers.getCard(i), c);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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());
|
|
||||||
//if ( (pwBlockers.getCard(i).hasSecondStrike()) )
|
|
||||||
if ( (!pwBlockers.getCard(i).hasFirstStrike() || (pwBlockers.getCard(i).hasFirstStrike() &&
|
if ( (!pwBlockers.getCard(i).hasFirstStrike() || (pwBlockers.getCard(i).hasFirstStrike() &&
|
||||||
pwBlockers.getCard(i).hasDoubleStrike()) ) )
|
pwBlockers.getCard(i).hasDoubleStrike()) ) )
|
||||||
{
|
{
|
||||||
if (pwBlockers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(pwBlockers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(pwBlockers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(pwBlockers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(pwBlockers.getCard(i), c);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,9 +236,10 @@ private void playerDamage(PlayerLife p)
|
|||||||
//AllZone.GameAction.addDamage(c, crd , assignedDamageMap.get(crd));
|
//AllZone.GameAction.addDamage(c, crd , assignedDamageMap.get(crd));
|
||||||
damageMap.put(crd, assignedDamageMap.get(crd));
|
damageMap.put(crd, assignedDamageMap.get(crd));
|
||||||
}
|
}
|
||||||
|
|
||||||
AllZone.GameAction.addDamage(c, damageMap);
|
AllZone.GameAction.addDamage(c, damageMap);
|
||||||
|
|
||||||
|
AllZone.GameAction.checkStateEffects();
|
||||||
|
|
||||||
damageMap.clear();
|
damageMap.clear();
|
||||||
c.clearAssignedDamage();
|
c.clearAssignedDamage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,31 +95,7 @@ private void playerDamage(PlayerLife p)
|
|||||||
|
|
||||||
if ((attackers.getCard(i).hasFirstStrike() || attackers.getCard(i).hasDoubleStrike()))
|
if ((attackers.getCard(i).hasFirstStrike() || attackers.getCard(i).hasDoubleStrike()))
|
||||||
{
|
{
|
||||||
if (attackers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(attackers.getCard(i));
|
||||||
{
|
|
||||||
GameActionUtil.executeLifeLinkEffects(attackers.getCard(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
for(int j=0; j < CardFactoryUtil.hasNumberEnchantments(attackers.getCard(i), "Guilty Conscience"); j++)
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(attackers.getCard(i));
|
|
||||||
*/
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(attackers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(attackers.getCard(i), c);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(CardFactoryUtil.hasNumberEquipments(attackers.getCard(i), "Umezawa's Jitte") == 1 && attackers.get(i).getNetAttack() > 0)
|
|
||||||
{
|
|
||||||
PlayerZone play = AllZone.getZone(attackers.getCard(i));
|
|
||||||
CardList clist = new CardList(play.getCards());
|
|
||||||
clist = clist.getName("Umezawa's Jitte");
|
|
||||||
Card jitte = clist.get(0);
|
|
||||||
jitte.addCounter(Counters.CHARGE, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
@@ -150,14 +126,7 @@ private void playerDamage(PlayerLife p)
|
|||||||
//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 ( (blockers.getCard(i).hasFirstStrike() || blockers.getCard(i).hasDoubleStrike()))
|
if ( (blockers.getCard(i).hasFirstStrike() || blockers.getCard(i).hasDoubleStrike()))
|
||||||
{
|
{
|
||||||
if (blockers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(blockers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(blockers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(blockers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(blockers.getCard(i), c);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,31 +139,17 @@ private void playerDamage(PlayerLife p)
|
|||||||
//System.out.println("attacker #" + i + ": " + attackers.getCard(i).getName() +" " + attackers.getCard(i).getAttack());
|
//System.out.println("attacker #" + i + ": " + attackers.getCard(i).getName() +" " + attackers.getCard(i).getAttack());
|
||||||
if ( (pwAttackers.getCard(i).hasFirstStrike() || pwAttackers.getCard(i).hasDoubleStrike()))
|
if ( (pwAttackers.getCard(i).hasFirstStrike() || pwAttackers.getCard(i).hasDoubleStrike()))
|
||||||
{
|
{
|
||||||
if (pwAttackers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(pwAttackers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(pwAttackers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(pwAttackers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(pwAttackers.getCard(i), c);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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).hasFirstStrike() || pwBlockers.getCard(i).hasDoubleStrike()))
|
if ((pwBlockers.getCard(i).hasFirstStrike() || pwBlockers.getCard(i).hasDoubleStrike()))
|
||||||
{
|
{
|
||||||
if ( pwAttackers.getCard(i).getKeyword().contains("Lifelink"))
|
CombatUtil.executeCombatDamageEffects(pwBlockers.getCard(i));
|
||||||
GameActionUtil.executeLifeLinkEffects(pwBlockers.getCard(i));
|
|
||||||
|
|
||||||
CardList cl = CardFactoryUtil.getAurasEnchanting(pwBlockers.getCard(i), "Guilty Conscience");
|
|
||||||
for (Card c : cl)
|
|
||||||
{
|
|
||||||
GameActionUtil.executeGuiltyConscienceEffects(pwBlockers.getCard(i), c);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//get all attackers and blockers
|
//get all attackers and blockers
|
||||||
CardList check = new CardList();
|
CardList check = new CardList();
|
||||||
check.addAll(AllZone.Human_Play.getCards());
|
check.addAll(AllZone.Human_Play.getCards());
|
||||||
@@ -226,6 +181,8 @@ private void playerDamage(PlayerLife p)
|
|||||||
|
|
||||||
AllZone.GameAction.addDamage(c, damageMap);
|
AllZone.GameAction.addDamage(c, damageMap);
|
||||||
|
|
||||||
|
AllZone.GameAction.checkStateEffects();
|
||||||
|
|
||||||
damageMap.clear();
|
damageMap.clear();
|
||||||
c.clearAssignedDamage();
|
c.clearAssignedDamage();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user