internal void OnSerializing() { List <SaveLoadEffect> list = new List <SaveLoadEffect>(); foreach (EffectInstance effect in effects) { if (effect.shouldSave) { SaveLoadEffect saveLoadEffect = default(SaveLoadEffect); saveLoadEffect.id = effect.effect.Id; saveLoadEffect.timeRemaining = effect.timeRemaining; SaveLoadEffect item = saveLoadEffect; list.Add(item); } } saveLoadEffects = list.ToArray(); }
protected override void OnSpawn() { if (saveLoadEffects != null) { SaveLoadEffect[] array = saveLoadEffects; for (int i = 0; i < array.Length; i++) { SaveLoadEffect saveLoadEffect = array[i]; if (Db.Get().effects.Exists(saveLoadEffect.id)) { Effect effect = Db.Get().effects.Get(saveLoadEffect.id); EffectInstance effectInstance = Add(effect, true); if (effectInstance != null) { effectInstance.timeRemaining = saveLoadEffect.timeRemaining; } } } } if (effectsThatExpire.Count > 0) { SimAndRenderScheduler.instance.Add(this, simRenderLoadBalance); } }