mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
restrict Sylvan Library to cards drawn this turn.
This commit is contained in:
@@ -46,6 +46,7 @@ public class Card extends MyObservable {
|
||||
private HashMap<Card, Integer> assignedDamageHashMap = new HashMap<Card, Integer>();
|
||||
|
||||
private boolean unCastable;
|
||||
private boolean drawnThisTurn = false;
|
||||
private boolean tapped;
|
||||
private boolean sickness = true; //summoning sickness
|
||||
private boolean token = false;
|
||||
@@ -648,6 +649,14 @@ public class Card extends MyObservable {
|
||||
topCardName = s;
|
||||
}
|
||||
|
||||
public void setDrawnThisTurn(boolean b) {
|
||||
drawnThisTurn = b;
|
||||
}
|
||||
|
||||
public boolean getDrawnThisTurn() {
|
||||
return drawnThisTurn;
|
||||
}
|
||||
|
||||
public String getReflectableMana() {
|
||||
return reflectableMana;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ public class GameActionUtil {
|
||||
draw_Font_of_Mythos(player);
|
||||
draw_Overbeing_of_Myth(player);
|
||||
draw_Mana_Vault(player);
|
||||
draw_Sylvan_Library();
|
||||
draw_Sylvan_Library(player);
|
||||
AllZone.Stack.unfreezeStack();
|
||||
}
|
||||
|
||||
@@ -9732,14 +9732,13 @@ public class GameActionUtil {
|
||||
player.drawCards(list.size());
|
||||
}// Spiteful_Visions()
|
||||
|
||||
private static void draw_Sylvan_Library() {
|
||||
private static void draw_Sylvan_Library(final Player player) {
|
||||
/*
|
||||
* At the beginning of your draw step, you may draw two additional
|
||||
* cards. If you do, choose two cards in your hand drawn this turn.
|
||||
* For each of those cards, pay 4 life or put the card on top of
|
||||
* your library.
|
||||
*/
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
final CardList cards = AllZoneUtil.getPlayerCardsInPlay(player, "Sylvan Library");
|
||||
|
||||
for(final Card source:cards) {
|
||||
@@ -9767,7 +9766,7 @@ public class GameActionUtil {
|
||||
|
||||
@Override
|
||||
public void selectCard(Card card, PlayerZone zone) {
|
||||
if(zone.is(Constant.Zone.Hand)) {
|
||||
if(zone.is(Constant.Zone.Hand) && true == card.getDrawnThisTurn()) {
|
||||
/////////////////////////////////////////
|
||||
if (GameActionUtil.showYesNoDialog(source, cardQuestion)) {
|
||||
player.payLife(4);
|
||||
|
||||
@@ -272,6 +272,10 @@ public class Phase extends MyObservable
|
||||
|
||||
else if(phase.equals(Constant.Phase.Cleanup)){
|
||||
AllZone.EndOfTurn.executeUntil();
|
||||
CardList cHand = AllZoneUtil.getPlayerHand(AllZone.ComputerPlayer);
|
||||
CardList hHand = AllZoneUtil.getPlayerHand(AllZone.HumanPlayer);
|
||||
for(Card c:cHand) c.setDrawnThisTurn(false);
|
||||
for(Card c:hHand) c.setDrawnThisTurn(false);
|
||||
}
|
||||
|
||||
resetPriority();
|
||||
|
||||
@@ -303,6 +303,7 @@ public abstract class Player extends MyObservable{
|
||||
library.remove(0);
|
||||
hand.add(c);
|
||||
setLastDrawnCard(c);
|
||||
c.setDrawnThisTurn(true);
|
||||
|
||||
GameActionUtil.executeDrawCardTriggeredEffects(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user