add new keyword: Split second

This commit is contained in:
jendave
2011-08-06 14:59:59 +00:00
parent 01dc189adc
commit beebb2ad9d
5 changed files with 28 additions and 2 deletions

View File

@@ -22,7 +22,9 @@ abstract public class Ability extends SpellAbility {
@Override
public boolean canPlay() {
// if(getSourceCard().isCreature() && (!getSourceCard().hasSickness()))
if(AllZone.Stack.isSplitSecondOnStack()) return false;
// if(getSourceCard().isCreature() && (!getSourceCard().hasSickness()))
CardList Pithing = AllZoneUtil.getPlayerCardsInPlay(AllZone.HumanPlayer);
Pithing.add(AllZoneUtil.getPlayerCardsInPlay(AllZone.ComputerPlayer));
Pithing = Pithing.getName("Pithing Needle");
@@ -41,6 +43,6 @@ abstract public class Ability extends SpellAbility {
return AllZone.GameAction.isCardInPlay(getSourceCard()) && !getSourceCard().isFaceDown() && getSourceCard().getName().equals("Spreading Seas") == false && Pithing.size() == 0;
// return false;
// return false;
}
}

View File

@@ -15,6 +15,8 @@ abstract public class Ability_Activated extends SpellAbility implements java.io.
@Override
public boolean canPlay() {
if(AllZone.Stack.isSplitSecondOnStack()) return false;
Card c = getSourceCard();
if (c.isFaceDown() && isIntrinsic()) // Intrinsic abilities can't be activated by face down cards
return false;

View File

@@ -9,6 +9,7 @@ public class MagicStack extends MyObservable {
private ArrayList<SpellAbility> frozenStack = new ArrayList<SpellAbility>();
private boolean frozen = false;
private boolean bResolving = false;
private boolean splitSecondOnStack = false;
private Object StormCount;
private Object PlayerSpellCount;
@@ -19,10 +20,25 @@ public class MagicStack extends MyObservable {
public void reset() {
stack.clear();
frozen = false;
splitSecondOnStack = false;
frozenStack.clear();
this.updateObservers();
}
public boolean isSplitSecondOnStack() {
return splitSecondOnStack;
}
public void setSplitSecondOnStack() {
for(SpellAbility sa:stack) {
if(sa.getSourceCard().hasKeyword("Split second")) {
splitSecondOnStack = true;
return;
}
}
splitSecondOnStack = false;
}
public void freezeStack() {
frozen = true;
}
@@ -545,6 +561,7 @@ public class MagicStack extends MyObservable {
}
stack.add(0, sp);
setSplitSecondOnStack();
this.updateObservers();
@@ -704,6 +721,7 @@ public class MagicStack extends MyObservable {
public SpellAbility pop() {
SpellAbility sp = (SpellAbility) stack.remove(0);
this.updateObservers();
setSplitSecondOnStack();
return sp;
}

View File

@@ -27,6 +27,8 @@ abstract public class Spell extends SpellAbility implements java.io.Serializable
@Override
public boolean canPlay() {
if(AllZone.Stack.isSplitSecondOnStack()) return false;
Card card = getSourceCard();
if (card.isUnCastable())

View File

@@ -143,6 +143,8 @@ public class Spell_Permanent extends Spell {
@Override
public boolean canPlay() {
if(AllZone.Stack.isSplitSecondOnStack()) return false;
Card perm = getSourceCard();
Player turn = AllZone.Phase.getPlayerTurn();