public override bool applyEffects(Gamestate gs) { bool returnValue = true; int numCardsinDiscard = gs.performingPlayer.pFateDiscard.numberOfCardsDiscarded(); FateCard fCard = (FateCard)gs.pickTarget(this.effectTarget.returnTargetList(gs, this.effectCondition), gs.performingPlayer); try { gs.performingPlayer.pHand.discardCard(fCard); this.effectOwner.focusValueDiscard = fCard.focusValue; gs.performingPlayer.pFateDiscard.addCardToDiscard(fCard); } catch { } if (gs.performingPlayer.pFateDiscard.numberOfCardsDiscarded() > numCardsinDiscard) { returnValue = true; } else { returnValue = false; } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(returnValue); }
public override bool applyEffects(Gamestate gs) { FateCard chosenCard = (FateCard)gs.pickTarget(new TargetACardInHand().returnTargetList(gs, new ConditionNull()), gs.performingPlayer); this.cardOwner.tempforceModifier += chosenCard.focusValue; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { int focusValue = this.effectOwner.focusValueDiscard; Card selectedCard = gs.pickTarget(this.effectTarget.returnTargetList(gs, this.effectCondition), gs.performingPlayer); if (selectedCard.currentForce < focusValue) { selectedCard.IsBowed = true; } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { try { Card selectedCard = gs.pickTarget(new TargetACardInYourProvince().returnTargetList(gs, this.effectCondition), gs.performingPlayer); foreach (Province pv in gs.performingPlayer.playerProvinces) { if (pv.purchasableCard.Equals(selectedCard)) { gs.performingPlayer.pDynastyDiscard.addCardToDiscard(pv.purchasableCard); pv.purchasableCard = gs.performingPlayer.pDynastyDeck.drawTopCard(); } } } catch { Console.WriteLine("Invalid gamestate: ERefillProvince"); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { if (valueSetByPrevious) { // only set the first time, otherwise the recursion would never end this.effectValue = this.effectOwner.previousEffectValue; valueSetByPrevious = false; } if (this.effectOwner.targetsSelected) { foreach (Card crd in this.effectOwner.selectedTargets) { crd.destroyCard(); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { this.effectOwner.selectedTargets.Clear(); this.effectOwner.selectedTargets.Add(gs.pickTarget(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectOwner.actionOwner.playerOwner)); this.effectValue -= this.effectOwner.selectedTargets.Last().currentForce; //There was no valid targets left, so it jumps to executing the effect if (this.effectOwner.selectedTargets.Count == 0) { this.effectOwner.targetsSelected = true; this.applyEffects(gs); } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); }