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 void OnStart(GameObject target) { characterState = target.GetComponent <CharacterState>(); characterState.MovementState = CharacterMovementState.Stunned; characterState.gameObject.GetComponent <Rigidbody2D>().velocity = Vector2.zero; characterState.AddStatusEffect(this); }
public override void OnStart(GameObject target) { characterHealth = target.GetComponent <IHasHealth>(); characterState = target.GetComponent <CharacterState>(); spriteRenderer = target.GetComponent <SpriteRenderer>(); blinkOnHit = target.GetComponent <BlinkOnHit>(); blinkOnHit.SetRegularColor((Config as PoisonConfig).PoisonedEnemyColor); spriteRenderer.color = (Config as PoisonConfig).PoisonedEnemyColor; characterState.AddStatusEffect(this); }
public void SpawnPointModifier(CharacterState characterState) { if (effects.Length == 0) { return; } foreach (var effect in effects) { characterState.AddStatusEffect(effect.statusId, effect.count); } }
private void ApplyEffectInternal() { if (saveManager.PreviewMode) { _previewEnchantedTargets.Clear(); foreach (KeyValuePair <CharacterState, EnchantedState> primaryEnchantedTarget in _primaryEnchantedTargets) { _previewEnchantedTargets.Add(primaryEnchantedTarget.Key, new EnchantedState(primaryEnchantedTarget.Value)); } } foreach (CharacterState target in GetRoomTargets(Team.Type.Monsters)) { if (!EnchantedTargets.ContainsKey(target)) { EnchantedTargets.Add(target, new EnchantedState()); } } foreach (KeyValuePair <CharacterState, EnchantedState> enchantedTarget in EnchantedTargets) { CharacterState key = enchantedTarget.Key; enchantedTarget.Value.nextStateAction = (IsEnchantmentValidForTarget(key) ? EnchanterStateNextAction.AddStatusEffect : EnchanterStateNextAction.RemoveStatusEffect); } BalanceData.TimingData activeTiming = saveManager.GetActiveTiming(); foreach (KeyValuePair <CharacterState, EnchantedState> enchantedTarget2 in EnchantedTargets) { CharacterState key2 = enchantedTarget2.Key; EnchantedState value = enchantedTarget2.Value; if (!key2.IsDead && !key2.IsDestroyed) { if (value.nextStateAction == EnchanterStateNextAction.AddStatusEffect && !value.isEnchanted) { CharacterState.AddStatusEffectParams addStatusEffectParams = default(CharacterState.AddStatusEffectParams); addStatusEffectParams.fromEffectType = typeof(CardEffectEnchant); addStatusEffectParams.sourceIsHero = (key2.GetTeamType() == Team.Type.Heroes); CharacterState.AddStatusEffectParams addStatusEffectParams2 = addStatusEffectParams; key2.AddStatusEffect(statusEffect.statusId, statusEffect.count, addStatusEffectParams2); value.isEnchanted = true; } else if (value.nextStateAction == EnchanterStateNextAction.RemoveStatusEffect && value.isEnchanted) { key2.RemoveStatusEffect(statusEffect.statusId, removeAtEndOfTurn: false, statusEffect.count, !saveManager.PreviewMode, null, typeof(CardEffectEnchant)); value.isEnchanted = false; } value.nextStateAction = EnchanterStateNextAction.NoAction; } } }
public IEnumerator ApplyCharacterTriggerEffect(CharacterTriggerRelicEffectParams relicEffectParams) { CharacterState characterState = relicEffectParams.characterState; int num = RandomManager.Range(0, statusEffects.Length, RngId.Battle); int numStacks = (statusEffects[num].count <= 0) ? 1 : statusEffects[num].count; CharacterState.AddStatusEffectParams addStatusEffectParams = default(CharacterState.AddStatusEffectParams); addStatusEffectParams.sourceRelicState = _srcRelicState; CharacterState.AddStatusEffectParams addStatusEffectParams2 = addStatusEffectParams; characterState.AddStatusEffect(statusEffects[num].statusId, numStacks, addStatusEffectParams2); string activatedDescription = GetActivatedDescription(); activatedDescription = string.Format(activatedDescription, statusEffects[num]); if (_srcRelicData.CanShowNotifications) { relicEffectParams.relicManager.ShowRelicActivated(_srcRelicState.GetIcon(), activatedDescription, characterState.GetCharacterUI()); } yield break; }