Example #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);
        }
Example #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);
            }
        }
Example #3
0
 public override void OnStart(GameObject target)
 {
     characterState = target.GetComponent <CharacterState>();
     characterState.MovementState = CharacterMovementState.Stunned;
     characterState.gameObject.GetComponent <Rigidbody2D>().velocity = Vector2.zero;
     characterState.AddStatusEffect(this);
 }
Example #4
0
 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);
            }
        }
Example #6
0
 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;
         }
     }
 }
Example #7
0
        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;
        }