public void UpdateView(StatusEffectRef statusEffectRef) { view.SetActive(true); icon.gameObject.SetActive(true); fillImage.gameObject.SetActive(true); icon.sprite = statusEffectRef.Effect.Icon; float startTime = statusEffectRef.DurationTimer; float currentTime = Time.time - startTime; fillImage.fillAmount = currentTime / Mathf.Max(statusEffectRef.Effect.Duration, 1f); }
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; } } }