public override bool canBePlayed(Gamestate gs) { try { foreach (Personality per in gs.performingPlayer.cardsInPlay) { if (per.isHonourable && per.personalHonor > 0 && gs.performingPlayer.familyHonour > gs.performingPlayer.opposingPlayer.familyHonour) { gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); } } } catch { //Personalities not in play } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); }
public override bool applyEffects(Gamestate gs) { if (this.effectOwner.targetsSelected) { foreach (Card crd in this.effectOwner.selectedTargets) { Personality per = (Personality)crd; //Move the card from home per.playerOwner.pHome.removeCardFromPlay(per); //Move the card from a battlefield foreach (Battlefield bf in gs.allBattlefields) { bf.removeUnitFromBattlefield(per); } //To the current battlefield gs.currentBattlefield.moveUnitToBattleField(per); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { this.effectOwner.selectedTargets = gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, this.effectOwner.actionOwner.playerOwner); this.effectOwner.targetsSelected = true; this.applyEffects(gs); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); }
public override bool applyEffects(Gamestate gs) { if (this.cardOwner.playerOwner.hasImperialFavour) { this.cardOwner.playerOwner.hasImperialFavour = false; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); } }
public override bool applyEffects(Gamestate gs) { if (effectOwner.willDestroy == true) { effectOwner.actionOwner.destroyCard(); gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); } }
public override bool applyEffects(Gamestate gs) { bool returnValue = true; int numCardsinDiscard = gs.performingPlayer.pFateDiscard.numberOfCardsDiscarded(); foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { try { gs.performingPlayer.pHand.discardCard((FateCard)crd); gs.performingPlayer.pFateDiscard.addCardToDiscard((FateCard)crd); } 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) { List <Card> selectedCards = new List <Card>(); selectedCards = gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), 4, gs.performingPlayer); foreach (DynastyCard crd in selectedCards) { Console.WriteLine("Selected target: " + crd.name); foreach (Province pv in gs.performingPlayer.playerProvinces) { if (pv.purchasableCard.Equals(crd)) { pv.refillProvince(); gs.performingPlayer.pDynastyDeck.addCardsToDeck(crd); pv.purchasableCard.IsFaceDown = false; } } } foreach (Province pv in gs.performingPlayer.playerProvinces) { Console.WriteLine("Card Name:" + pv.purchasableCard.name); Console.WriteLine("Is Face down:" + pv.purchasableCard.IsFaceDown.ToString()); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
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) { if (this.effectOwner.targetsSelected) { this.effectOwner.targetsSelected = false; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); } else { this.effectOwner.selectedTargets.AddRange(gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, this.effectOwner.actionOwner.playerOwner)); this.effectOwner.targetsSelected = true; this.applyEffects(gs); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); }
public override bool applyEffects(Gamestate gs) { foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { crd.tempforceModifier += this.effectValue; } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { crd.tempTraits.Add(Gamestate.Conqueror); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { foreach (Card crd in this.effectOwner.selectedTargets) { Personality per = (Personality)crd; per.straightenUnit(); } 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) { foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { if (crd.currentForce <= this.effectValue) { crd.IsBowed = true; } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { TargetEnemyPersonalityFollower tar = new TargetEnemyPersonalityFollower(); List <Card> chosenTar = gs.pickTargets(tar.returnTargetList(gs, new ConditionStatusUnbowed()), this.effectTarget.numOfTargets, gs.performingPlayer.opposingPlayer); foreach (Card crd in chosenTar) { crd.IsBowed = true; } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { bool returnValue = true; if (this.effectOwner.actionOwner.IsBowed == true) { returnValue = false; } this.effectOwner.actionOwner.IsBowed = true; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(returnValue); }
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); }
public override bool applyEffects(Gamestate gs) { bool returnValue = true; foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { if (crd.IsBowed == true) { returnValue = false; } crd.IsBowed = true; } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(returnValue); }
public override bool applyEffects(Gamestate gs) { foreach (Province prov in gs.performingPlayer.playerProvinces) { foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { if (crd.Equals(prov.purchasableCard)) { gs.performingPlayer.pDynastyDeck.addCardsToDeck(prov.purchasableCard); prov.purchasableCard = gs.performingPlayer.pDynastyDeck.drawTopCard(); prov.purchasableCard.IsFaceDown = false; } } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { if (this.effectOwner is ActionInterrupt || this.effectOwner is ActionRecruitInterrupt) { gs.performingPlayer.InterruptHasPassed = true; this.effectOwner.actionOwner.playerOwner.InterruptHasPassed = true; Console.WriteLine(gs.performingPlayer.aLabel + " Interrupt pass"); } else { gs.performingPlayer.InterruptHasPassed = true; this.effectOwner.actionOwner.playerOwner.hasPassed = true; Console.WriteLine(gs.performingPlayer.aLabel + " Action Pass"); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { bool returnValue = true; foreach (Personality per in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { if (this.effectOwner.willMove == true) { per.playerOwner.cardsInPlay.Add(per); gs.currentBattlefield.myCards(per.playerOwner).Remove(per); returnValue = true; } else { returnValue = false; } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(returnValue); }
public override bool applyEffects(Gamestate gs) { bool returnValue = true; foreach (Card crd in gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)) { if (crd.currentForce <= this.effectValue + this.effectOwner.modifyRanged) { if (this.effectOwner.willDestroy == true) { crd.destroyCard(); } else { returnValue = false; } } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(returnValue); }
public override bool applyEffects(Gamestate gs) { List <Card> selectedTargets = gs.pickTargets(new TargetYourCardInHandOrProvince().returnTargetList(gs, new ConditionTypeKharmic()), 1, gs.performingPlayer); foreach (Card crd in selectedTargets) { if (crd is FateCard) { try { gs.performingPlayer.pFateDiscard.addCardToDiscard(gs.performingPlayer.pHand.discardCard((FateCard)crd)); gs.performingPlayer.pHand.addCardToHand(gs.performingPlayer.pFateDeck.drawTopCard()); } catch { } } else { // Card is a dynasty Deck foreach (Province pv in gs.performingPlayer.playerProvinces) { if (pv.purchasableCard.Equals(crd)) { try { gs.performingPlayer.pDynastyDiscard.addCardToDiscard((DynastyCard)crd); pv.purchasableCard = gs.performingPlayer.pDynastyDeck.drawTopCard(); pv.purchasableCard.IsFaceDown = false; } catch { } } } } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { //This is horrible. it will work. But it is not ideal //What I really want is Attachment att=selectedTarget.Find(Where type is Attachment) or something along those lines try { Personality targetPersonality = (Personality)gs.pickTargets(new TargetYourPersonality().returnTargetList(gs, new ConditionNull()), 1, gs.performingPlayer)[0]; Attachment targetAttachment = (Attachment)gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, gs.performingPlayer)[0]; if (targetAttachment.canBeRecruitedBy(gs.performingPlayer) && targetPersonality.canAttachAttachment(targetAttachment)) { gs.performingPlayer.pHand.discardCard(targetAttachment); targetPersonality.addAttachment(targetAttachment); } } catch { Console.WriteLine("No legal targets"); } 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 (this.effectOwner.targetsSelected) { this.effectOwner.targetsSelected = false; foreach (Card crd in this.effectOwner.selectedTargets) { this.effectValue += crd.currentForce; } this.effectOwner.previousEffectValue = this.effectValue; return(true); } else { this.effectOwner.selectedTargets.AddRange(gs.pickTargets(this.effectTarget.returnTargetList(gs, this.effectCondition), this.effectTarget.numOfTargets, this.effectOwner.actionOwner.playerOwner)); this.effectOwner.targetsSelected = true; this.applyEffects(gs); } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(false); }
public override bool applyEffects(Gamestate gs) { // Province targetProv = gs.pickProvince(this.canBePurchasedFromProvince(gs), gs.activePlayer); //Check loyalist restrictions/family honour requirments in the canBeRecruitedBy(this) // if (targetProv.purchasableCard.canBeRecruitedBy(gs.activePlayer)) { int goldCostModifier = 0; if (targetProv.purchasableCard.traits.Contains(gs.performingPlayer.stronghold.family)) { goldCostModifier = 2; } if (targetProv.purchasableCard.getCardCost() + goldCostModifier <= gs.activePlayer.goldPool) { gs.activePlayer.goldPool -= targetProv.purchasableCard.getCardCost() + goldCostModifier; targetProv.purchasableCard.enteringPlay(); gs.activePlayer.cardsInPlay.Add(targetProv.purchasableCard); //refill province try { targetProv.purchasableCard = gs.performingPlayer.pDynastyDeck.drawTopCard(); targetProv.purchasableCard.IsFaceDown = true; } catch { Console.WriteLine("No cards left in dynasty deck"); } } } gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { gs.currentActionBeingPlayed.willMove = false; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { gs.currentBattlefield.battlefieldProvince.currentProvinceStrength += this.effectValue; gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }
public override bool applyEffects(Gamestate gs) { this.playerEffected.payGoldCost(this.effectValue); gs.performingPlayer = gs.getOpposingPlayer(gs.performingPlayer); return(true); }