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) { 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) { 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) { 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 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) { 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) { 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) { //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) { 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.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) { 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) { 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); }