示例#1
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
 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);
 }
示例#5
0
 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);
 }
示例#6
0
        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);
        }
示例#7
0
 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);
 }
示例#8
0
        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);
        }
示例#9
0
        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);
        }
示例#10
0
 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);
 }
示例#11
0
 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);
 }
示例#12
0
        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);
        }
示例#13
0
        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);
        }
示例#14
0
        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);
        }
示例#15
0
        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);
        }