Пример #1
0
        public void OnCardPlayed(CardState cardState, int roomIndex, List <CharacterState> targets)
        {
            // Perform the Rebate first
            if (cardState.HasTrait(typeof(CardTraitExhaustState)))
            {
                int refund       = refundAmount;
                int originalCost = cardState.GetCostWithoutAnyModifications();

                // Check if the exhausted card was X-cost
                if (cardState.IsConsumeRemainingEnergyCostType())
                {
                    CardStatistics.StatValueData statValueData = default(CardStatistics.StatValueData);
                    statValueData.cardState     = cardState;
                    statValueData.trackedValue  = CardStatistics.TrackedValueType.PlayedCost;
                    statValueData.entryDuration = CardStatistics.EntryDuration.ThisBattle;
                    originalCost = ProviderManager.CombatManager.GetCardManager().GetCardStatistics().GetStatValue(statValueData);
                }

                if (originalCost < refund)
                {
                    refund = originalCost;
                }

                playerManager.AddEnergy(refund);
            }

            // Check all cards in-hand and add any new entries to the tracked list
            foreach (var card in cardManager.GetHand())
            {
                cardManager.StartCoroutine(ApplyConsumeToCard(card));
            }
        }
Пример #2
0
        private int GetMultiplier(CardStatistics cardStatistics)
        {
            CardStatistics.StatValueData statValueData = default(CardStatistics.StatValueData);
            statValueData.cardState      = GetCard();
            statValueData.trackedValue   = GetParamTrackedValue();
            statValueData.entryDuration  = GetParamEntryDuration();
            statValueData.cardTypeTarget = GetParamCardType();
            statValueData.paramSubtype   = GetParamSubtype();
            CardStatistics.StatValueData statValueData2 = statValueData;
            int statValue = cardStatistics.GetStatValue(statValueData2);

            return(statValue);
        }
Пример #3
0
        public void OnCardPlayed(CardState cardState, int roomIndex, List <CharacterState> targets)
        {
            if (cardState.HasTrait(typeof(CardTraitExhaustState)))
            {
                int refund       = refundAmount;
                int originalCost = cardState.GetCostWithoutAnyModifications();

                if (cardState.IsConsumeRemainingEnergyCostType())
                {
                    CardStatistics.StatValueData statValueData = default(CardStatistics.StatValueData);
                    statValueData.cardState     = cardState;
                    statValueData.trackedValue  = CardStatistics.TrackedValueType.PlayedCost;
                    statValueData.entryDuration = CardStatistics.EntryDuration.ThisBattle;
                    originalCost = ProviderManager.CombatManager.GetCardManager().GetCardStatistics().GetStatValue(statValueData);
                }

                if (originalCost < refund)
                {
                    refund = originalCost;
                }

                playerManager.AddEnergy(refund);
            }
        }