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);
        }
Beispiel #2
0
        public override IEnumerator ApplyEffect(CardEffectState cardEffectState, CardEffectParams cardEffectParams)
        {
            StatusEffectStackData statusEffectStack = GetStatusEffectStack(cardEffectState);

            if (statusEffectStack == null)
            {
                yield break;
            }
            if (statusEffectStack.statusId == Burnout)
            {
                if (cardEffectParams.targets[0].IsMiniboss() || cardEffectParams.targets[0].IsOuterTrainBoss())
                {
                    yield break;
                }
            }
            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;
            for (int num = cardEffectParams.targets.Count - 1; num >= 0; num--)
            {
                CharacterState characterState = cardEffectParams.targets[num];
                int            count          = statusEffectStack.count;
                characterState.AddStatusEffect(statusEffectStack.statusId, count, addStatusEffectParams2);
            }
        }
Beispiel #3
0
        public override IEnumerator ApplyEffect(CardEffectState cardEffectState, CardEffectParams cardEffectParams)
        {
            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;

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


                // True flips buffs into debuffs, false flips debuffs into buffs
                foreach (var status in statusEffectStacks)
                {
                    if (cardEffectState.GetParamBool())
                    {
                        if (StatusFlips.ContainsKey(status.State.GetStatusId()))
                        {
                            int count = status.Count;
                            character.RemoveStatusEffect(status.State.GetStatusId(), false, count);

                            string debuff = StatusFlips.GetValueSafe(status.State.GetStatusId());
                            Trainworks.Trainworks.Log(BepInEx.Logging.LogLevel.All, "Flipping " + status.State.GetStatusId() + " to " + debuff + " - " + count);
                            character.AddStatusEffect(debuff, count);
                        }
                    }
                    else
                    {
                        if (StatusFlips.ContainsValue(status.State.GetStatusId()))
                        {
                            int count = status.Count;
                            character.RemoveStatusEffect(status.State.GetStatusId(), false, count);

                            string buff = StatusFlips.FirstOrDefault(x => x.Value == status.State.GetStatusId()).Key;
                            Trainworks.Trainworks.Log(BepInEx.Logging.LogLevel.All, "Flipping " + status.State.GetStatusId() + " to " + buff + " - " + count);
                            character.AddStatusEffect(buff, count);
                        }
                    }
                }
            }
            yield break;
        }