- Fixed Time counters not showing up.

- Fixed a bug where creatures wouldn't trigger on attacking a planeswalker.
- Made Exalted a real triggered ability, checked only once after attackers are declared.
This commit is contained in:
jendave
2011-08-06 03:24:11 +00:00
parent 37bd16e366
commit c30bef2564
7 changed files with 146 additions and 11 deletions

View File

@@ -14080,7 +14080,6 @@ public class CardFactory implements NewConstants {
}//*************** END ************ END **************************
*/
//*************** START *********** START **************************
else if(cardName.equals("Nameless Inversion"))
{

View File

@@ -1983,7 +1983,7 @@ class CardFactory_Planeswalkers {
card2.addSpellAbility(new Spell_Permanent(card2));
card2.addComesIntoPlayCommand(CardFactoryUtil.entersBattleFieldWithCounters(card2, Counters.LOYALTY, 3));
//ability 1: destroy target noncreature permanent
final SpellAbility ability1 = new Ability(card2, "0")
{
public void resolve()

View File

@@ -504,7 +504,7 @@ public class CombatUtil
//loop through attackers
for(int i = 0; i < attack.length; i++)
{
GameActionUtil.executeExaltedEffects2(attack[i], AllZone.Combat);
//GameActionUtil.executeExaltedEffects2(attack[i], AllZone.Combat);
//checkDeclareAttackers(attack[i]);
attackerName = attack[i].getName();
if (attack[i].isFaceDown())
@@ -559,7 +559,8 @@ public class CombatUtil
//loop through attackers
for(int i = 0; i < attack.length; i++)
{
GameActionUtil.executeExaltedEffects2(attack[i], AllZone.pwCombat);
//GameActionUtil.executeExaltedEffects2(attack[i], AllZone.pwCombat);
//checkDeclareAttackers(attack[i]);
attackerName = attack[i].getName();
if (attack[i].isFaceDown())
@@ -2004,4 +2005,99 @@ public class CombatUtil
a.setCreatureGotBlockedThisTurn(true);
}
public static void executeExaltedAbility(Card c, int magnitude)
{
final Card crd = c;
final int n = magnitude;
Ability ability = new Ability(c,"0")
{
public void resolve()
{
final Command untilEOT = new Command()
{
private static final long serialVersionUID = 1497565871061029469L;
public void execute()
{
if(AllZone.GameAction.isCardInPlay(crd))
{
crd.addTempAttackBoost(-n);
crd.addTempDefenseBoost(-n);
}
}
};//Command
if(AllZone.GameAction.isCardInPlay(crd))
{
crd.addTempAttackBoost(n);
crd.addTempDefenseBoost(n);
AllZone.EndOfTurn.addUntil(untilEOT);
}
}//resolve
};//ability
ability.setStackDescription(c +" - (Exalted) gets +" +n +"/+" +n +" until EOT.");
AllZone.Stack.add(ability);
if (GameActionUtil.isRafiqInPlay(c.getController()))
{
Ability ability2 = new Ability(c,"0")
{
public void resolve()
{
final Command untilEOT = new Command()
{
private static final long serialVersionUID = -8943526706248389725L;
public void execute()
{
if(AllZone.GameAction.isCardInPlay(crd))
crd.removeExtrinsicKeyword("Double Strike");
}
};//Command
if(AllZone.GameAction.isCardInPlay(crd))
{
crd.addExtrinsicKeyword("Double Strike");
AllZone.EndOfTurn.addUntil(untilEOT);
}
}//resolve
};//ability2
ability2.setStackDescription(c +" - (Exalted) gets Double Strike until EOT.");
AllZone.Stack.add(ability2);
}
if (GameActionUtil.getBattleGraceAngels(c.getController()) > 0)
{
Ability ability3 = new Ability(c,"0")
{
public void resolve()
{
final Command untilEOT = new Command()
{
private static final long serialVersionUID = -8154692281049657338L;
public void execute()
{
if(AllZone.GameAction.isCardInPlay(crd))
crd.removeExtrinsicKeyword("Lifelink");
}
};//Command
if(AllZone.GameAction.isCardInPlay(crd))
{
crd.addExtrinsicKeyword("Lifelink");
AllZone.EndOfTurn.addUntil(untilEOT);
}
}//resolve
};//ability2
ability3.setStackDescription(c +" - (Exalted) gets Lifelink until EOT.");
AllZone.Stack.add(ability3);
}
}
}//Class CombatUtil

View File

@@ -33,7 +33,7 @@ public class EndOfTurn implements java.io.Serializable
AllZone.GameAction.sacrifice(sacrifice.get(i));
}
GameActionUtil.removeExaltedEffects();
//GameActionUtil.removeExaltedEffects();
GameActionUtil.removeAttackedBlockedThisTurn();
AllZone.StaticEffects.rePopulateStateBasedList();

View File

@@ -2995,6 +2995,8 @@ public class GameActionUtil
}
}
/*
public static void executeExaltedEffects2(Card c, Combat combats)
{
boolean exalted = false;
@@ -3101,7 +3103,8 @@ public class GameActionUtil
}
}
*/
/*
public static void removeExaltedEffects() // at EOT
{
PlayerZone playerZone = AllZone.getZone(Constant.Zone.Play,
@@ -3138,7 +3141,7 @@ public class GameActionUtil
}
}
}
*/
public static boolean isRafiqInPlay(String player)
{
PlayerZone playerZone = AllZone.getZone(Constant.Zone.Play, player);
@@ -16141,7 +16144,7 @@ public class GameActionUtil
commands.put("Meddling_Mage", Meddling_Mage);
commands.put("Gaddock_Teeg", Gaddock_Teeg);
commands.put("Iona_Shield_of_Emeria", Iona_Shield_of_Emeria);
System.out.println("size of commands: " + commands.size());
//System.out.println("size of commands: " + commands.size());
}

View File

@@ -570,6 +570,11 @@ public class GuiDisplay3 extends JFrame implements Display, NewConstants, NewCon
counterText.append(c.getCounters(Counters.SPORE));
counterText.append("\r\n");
}
if(c.getCounters(Counters.TIME) != 0) {
counterText.append("Time counters: ");
counterText.append(c.getCounters(Counters.TIME));
counterText.append("\r\n");
}
String chosenTypeText = "";
if(c.getChosenType() != "") chosenTypeText = "(chosen type: " + c.getChosenType() + ")";
@@ -1259,7 +1264,7 @@ public class GuiDisplay3 extends JFrame implements Display, NewConstants, NewCon
*/
cardImagePanel.setScalingBlur(false); //use blured image if scaling down more than 50%
cardImagePanel.setScaleLarger(false); //upscale if needed true
//cardImagePanel.setScaleLarger(false); //upscale if needed true
cardImagePanel.setScalingType(ScalingType.bicubic); // type of scaling bicubic has good quality / speed ratio
cardImagePanel.setScalingMultiPassType(MultipassType.none);

View File

@@ -88,7 +88,23 @@ import java.util.*;
{
CardList list = new CardList();
list.addAll(AllZone.Combat.getAttackers());
//list.addAll(AllZone.pwCombat.getAttackers());
list.addAll(AllZone.pwCombat.getAttackers());
//check for exalted:
if (list.size() == 1)
{
String attackingPlayer = AllZone.Combat.getAttackingPlayer();
PlayerZone play = AllZone.getZone(Constant.Zone.Play, attackingPlayer);
CardList exalted = new CardList(play.getCards());
exalted = exalted.filter(new CardListFilter(){
public boolean addCard(Card c)
{
return c.getKeyword().contains("Exalted");
}
});
if (exalted.size() > 0)
CombatUtil.executeExaltedAbility(list.get(0), exalted.size());
}
for (Card c : list)
CombatUtil.checkPropagandaEffects(c);
@@ -301,7 +317,23 @@ import java.util.*;
{
CardList list = new CardList();
list.addAll(AllZone.Combat.getAttackers());
//list.addAll(AllZone.pwCombat.getAttackers());
list.addAll(AllZone.pwCombat.getAttackers());
//check for exalted:
if (list.size() == 1)
{
String attackingPlayer = AllZone.Combat.getAttackingPlayer();
PlayerZone play = AllZone.getZone(Constant.Zone.Play, attackingPlayer);
CardList exalted = new CardList(play.getCards());
exalted = exalted.filter(new CardListFilter(){
public boolean addCard(Card c)
{
return c.getKeyword().contains("Exalted");
}
});
if (exalted.size() > 0)
CombatUtil.executeExaltedAbility(list.get(0), exalted.size());
}
for (Card c : list)
{