mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
add new keyword: Split second
This commit is contained in:
@@ -22,7 +22,9 @@ abstract public class Ability extends SpellAbility {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlay() {
|
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);
|
CardList Pithing = AllZoneUtil.getPlayerCardsInPlay(AllZone.HumanPlayer);
|
||||||
Pithing.add(AllZoneUtil.getPlayerCardsInPlay(AllZone.ComputerPlayer));
|
Pithing.add(AllZoneUtil.getPlayerCardsInPlay(AllZone.ComputerPlayer));
|
||||||
Pithing = Pithing.getName("Pithing Needle");
|
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 AllZone.GameAction.isCardInPlay(getSourceCard()) && !getSourceCard().isFaceDown() && getSourceCard().getName().equals("Spreading Seas") == false && Pithing.size() == 0;
|
||||||
// return false;
|
// return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ abstract public class Ability_Activated extends SpellAbility implements java.io.
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlay() {
|
public boolean canPlay() {
|
||||||
|
if(AllZone.Stack.isSplitSecondOnStack()) return false;
|
||||||
|
|
||||||
Card c = getSourceCard();
|
Card c = getSourceCard();
|
||||||
if (c.isFaceDown() && isIntrinsic()) // Intrinsic abilities can't be activated by face down cards
|
if (c.isFaceDown() && isIntrinsic()) // Intrinsic abilities can't be activated by face down cards
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ public class MagicStack extends MyObservable {
|
|||||||
private ArrayList<SpellAbility> frozenStack = new ArrayList<SpellAbility>();
|
private ArrayList<SpellAbility> frozenStack = new ArrayList<SpellAbility>();
|
||||||
private boolean frozen = false;
|
private boolean frozen = false;
|
||||||
private boolean bResolving = false;
|
private boolean bResolving = false;
|
||||||
|
private boolean splitSecondOnStack = false;
|
||||||
|
|
||||||
private Object StormCount;
|
private Object StormCount;
|
||||||
private Object PlayerSpellCount;
|
private Object PlayerSpellCount;
|
||||||
@@ -19,10 +20,25 @@ public class MagicStack extends MyObservable {
|
|||||||
public void reset() {
|
public void reset() {
|
||||||
stack.clear();
|
stack.clear();
|
||||||
frozen = false;
|
frozen = false;
|
||||||
|
splitSecondOnStack = false;
|
||||||
frozenStack.clear();
|
frozenStack.clear();
|
||||||
this.updateObservers();
|
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() {
|
public void freezeStack() {
|
||||||
frozen = true;
|
frozen = true;
|
||||||
}
|
}
|
||||||
@@ -545,6 +561,7 @@ public class MagicStack extends MyObservable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stack.add(0, sp);
|
stack.add(0, sp);
|
||||||
|
setSplitSecondOnStack();
|
||||||
|
|
||||||
this.updateObservers();
|
this.updateObservers();
|
||||||
|
|
||||||
@@ -704,6 +721,7 @@ public class MagicStack extends MyObservable {
|
|||||||
public SpellAbility pop() {
|
public SpellAbility pop() {
|
||||||
SpellAbility sp = (SpellAbility) stack.remove(0);
|
SpellAbility sp = (SpellAbility) stack.remove(0);
|
||||||
this.updateObservers();
|
this.updateObservers();
|
||||||
|
setSplitSecondOnStack();
|
||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ abstract public class Spell extends SpellAbility implements java.io.Serializable
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlay() {
|
public boolean canPlay() {
|
||||||
|
if(AllZone.Stack.isSplitSecondOnStack()) return false;
|
||||||
|
|
||||||
Card card = getSourceCard();
|
Card card = getSourceCard();
|
||||||
|
|
||||||
if (card.isUnCastable())
|
if (card.isUnCastable())
|
||||||
|
|||||||
@@ -143,6 +143,8 @@ public class Spell_Permanent extends Spell {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canPlay() {
|
public boolean canPlay() {
|
||||||
|
if(AllZone.Stack.isSplitSecondOnStack()) return false;
|
||||||
|
|
||||||
Card perm = getSourceCard();
|
Card perm = getSourceCard();
|
||||||
Player turn = AllZone.Phase.getPlayerTurn();
|
Player turn = AllZone.Phase.getPlayerTurn();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user