public void AddStatusEffectToContaine(StatusEffect statusEffect) { GameObject statusEffectGameObject = ObjectPooler.Instance.SpawnFromPool(ImagePrefab, Vector3.zero, Quaternion.identity, StatusBarContain); StatusEffectImage statusEffectImage = statusEffectGameObject.GetComponent <StatusEffectImage>(); StatusEffectObject newStatusEffectObject = new StatusEffectObject(statusEffectGameObject, statusEffectImage); statusEffectObjects.Add(statusEffect, newStatusEffectObject); if (statusEffect is ActiveEffect activeStatusEffect) { activeStatusEffect.onChangeDurationStatusEffect += ChangeFillingOutline; } statusEffectImage.Set(statusEffect.StatusEffectData.GetStatusEffectSprite(), statusEffect.StatusEffectData.StatusEffectType); }
public void AddStatusEffect(StatusEffect statusEffect) { StatusEffectRef foundEffect = statusEffects.Find((effectRef) => { return(effectRef.Effect.IsEqual(statusEffect)); }); if (foundEffect == null) { StatusEffectRef effectRef = new StatusEffectRef(statusEffect); if (effectRef.CanEffect(self)) { effectRef.Enter(self); statusEffects.Add(effectRef); self.OnUpdateStatusEffects(new StatusEffectRefList(statusEffects)); StatusEffectObject effectObject = Instantiate(statusEffect.EffectObject, statusEffectSpawnHolder.position, statusEffectSpawnHolder.rotation, statusEffectSpawnHolder); effectRef.EffectObject = effectObject; } } }