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) { 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); } }
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; }