Example #1
0
        protected void RefreshPrefabs()
        {
            /*
             * public List<Restoration> Restorations ;
             */

            foreach (var auraEffect in Character.AuraEffects)
            {
                DestroyHelper destroyCondition;
                Character.AddEffectPrefabs(auraEffect.PassiveEffect, out destroyCondition);
                if (destroyCondition != null)
                {
                    destroyCondition.Init(DestroyCondition.AuraEffectNotActive, Controller, auraEffect.SkillId);
                }
            }

            foreach (var friendlyAuraEffect in Character.FriendlyAuras)
            {
                DestroyHelper destroyCondition;
                Character.AddEffectPrefabs(friendlyAuraEffect.AuraEffect.PassiveEffect, out destroyCondition);
                if (destroyCondition != null)
                {
                    destroyCondition.Init(DestroyCondition.FriendlyAuraNotAvailable, Controller, friendlyAuraEffect.AuraEffect.SkillId);
                }
            }

            foreach (var timedPassiveEffect in Character.TimedPassiveEffects)
            {
                DestroyHelper destroyCondition;
                Character.AddEffectPrefabs(timedPassiveEffect, out destroyCondition);
                if (destroyCondition != null)
                {
                    destroyCondition.Init(DestroyCondition.TimedPassiveNotActive, Controller, timedPassiveEffect.ID);
                }
            }

            foreach (var statusEffect in Character.StatusEffects)
            {
                DestroyHelper destroyCondition;
                Character.AddEffectPrefabs(statusEffect.Effect, out destroyCondition);
                if (destroyCondition != null)
                {
                    destroyCondition.Init(DestroyCondition.StatusEffectNotActive, Controller, statusEffect.ID);
                }
            }

            foreach (var damageOverTime in Character.CurrentDoTs)
            {
                if (!string.IsNullOrEmpty(damageOverTime.ActivePrefab))
                {
                    var o = Character.SpawnPrefab(damageOverTime.ActivePrefab, transform.position, Quaternion.identity, transform);
                    o.GetComponent <DestroyHelper>().Init(DestroyCondition.Time, damageOverTime.Duration);
                    var secondCondition = o.AddComponent <DestroyHelper>();
                    secondCondition.Init(DestroyCondition.DoTNotActive, Controller, damageOverTime.InstanceID);
                }
            }
        }