Beispiel #1
0
        public override IEnumerator ApplyEffect(CardEffectState cardEffectState, CardEffectParams cardEffectParams)
        {
            ProviderManager.TryGetProvider <RoomManager>(out RoomManager roomManager);
            CharacterState target = roomManager.GetPyreRoom().GetPyreHeart();

            if (cardEffectParams.saveManager.PreviewMode)
            {
                yield break;
            }

            StatusEffectStackData statusEffectStack = GetStatusEffectStack(cardEffectState);

            if (statusEffectStack == null)
            {
                yield break;
            }
            int intInRange = cardEffectState.GetIntInRange();

            CharacterState.AddStatusEffectParams addStatusEffectParams = default(CharacterState.AddStatusEffectParams);
            addStatusEffectParams.sourceRelicState = cardEffectParams.sourceRelic;
            addStatusEffectParams.sourceCardState  = cardEffectParams.playedCard;
            addStatusEffectParams.cardManager      = cardEffectParams.cardManager;
            addStatusEffectParams.sourceIsHero     = (cardEffectState.GetSourceTeamType() == Team.Type.Heroes);
            CharacterState.AddStatusEffectParams addStatusEffectParams2 = addStatusEffectParams;

            RngId         rngId = cardEffectParams.saveManager.PreviewMode ? RngId.BattleTest : RngId.Battle;
            PlayerManager playerManager;

            ProviderManager.TryGetProvider <PlayerManager>(out playerManager);

            target.AddStatusEffect(statusEffectStack.statusId, playerManager.GetEnergy(), addStatusEffectParams2);
        }
        public override IEnumerator ApplyEffect(CardEffectState cardEffectState, CardEffectParams cardEffectParams)
        {
            int intInRange = cardEffectState.GetIntInRange();

            CharacterState.AddStatusEffectParams addStatusEffectParams = default(CharacterState.AddStatusEffectParams);
            addStatusEffectParams.sourceRelicState = cardEffectParams.sourceRelic;
            addStatusEffectParams.sourceCardState  = cardEffectParams.playedCard;
            addStatusEffectParams.cardManager      = cardEffectParams.cardManager;
            addStatusEffectParams.sourceIsHero     = false;
            CharacterState.AddStatusEffectParams addStatusEffectParams2 = addStatusEffectParams;

            StatusEffectData.DisplayCategory buffOrDebuff = StatusEffectData.DisplayCategory.Negative;
            if (cardEffectState.GetParamBool())
            {
                buffOrDebuff = StatusEffectData.DisplayCategory.Positive;
            }

            foreach (CharacterState character in cardEffectParams.targets)
            {
                List <CharacterState.StatusEffectStack> statusEffectStacks;
                character.GetStatusEffects(out statusEffectStacks);

                foreach (var status in statusEffectStacks)
                {
                    if (status.State.GetDisplayCategory() == buffOrDebuff)
                    {
                        character.AddStatusEffect(status.State.GetStatusId(), 0, addStatusEffectParams2);
                    }
                }
            }
            yield break;
        }
        public override IEnumerator ApplyEffect(
            CardEffectState cardEffectState,
            CardEffectParams cardEffectParams)
        {
            int damageAmount = this.GetDamageAmount(cardEffectState);

            if (cardEffectState.GetTargetMode() == TargetMode.Room)
            {
                cardEffectParams.combatManager.IgnoreDuplicateSounds(true);
            }
            for (int i = 0; i < cardEffectParams.targets.Count; ++i)
            {
                CharacterState target = cardEffectParams.targets[i];

                for (int j = 0; j < cardEffectParams.playerManager.GetEnergy(); j++)
                {
                    yield return((object)cardEffectParams.combatManager.ApplyDamageToTarget(cardEffectState.GetIntInRange(), target, new CombatManager.ApplyDamageToTargetParameters()
                    {
                        playedCard = cardEffectParams.playedCard,
                        finalEffectInSequence = cardEffectParams.finalEffectInSequence,
                        relicState = cardEffectParams.sourceRelic,
                        selfTarget = cardEffectParams.selfTarget,
                        vfxAtLoc = cardEffectState.GetAppliedVFX(),
                        showDamageVfx = cardEffectParams.allowPlayingDamageVfx
                    }));
                }
            }
            cardEffectParams.combatManager.IgnoreDuplicateSounds(false);
        }