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