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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }