protected virtual void RemoveCallback(StatusEffectInstance effect) { if (IsValidCondition(ActivationCondition.OnRemove)) { Process(effect, ActivationCondition.OnRemove); } }
protected virtual void ApplyCallback(StatusEffectInstance effect) { if (IsValidCondition(ActivationCondition.OnApply)) { Process(effect, ActivationCondition.OnApply); } }
protected virtual void OnAdd(StatusEffectInstance effect) { if (effect.Type == this.type) { this.Effect = effect; } }
protected virtual void OnRemove(StatusEffectInstance effect) { if (effect.Type == this.type) { this.Effect = null; } }
public virtual void Set(StatusEffectInstance effect) { this.Effect = effect; icon.color = effect.Type.Color; icon.sprite = effect.Type.Icon; }
protected virtual void ApplyCallback(StatusEffectInstance effect) { if (OnApply != null) { OnApply(effect); } }
protected virtual void Modify(ref StatusEffectInstance instance, StatusEffectData data, Entity affector) { instance.Stack(data, affector); if (OnModify != null) { OnModify(instance); } }
protected virtual EntityStatusEffectUITemplate Create(StatusEffectInstance effect) { var instance = Instantiate(template, transform); var script = instance.GetComponent <EntityStatusEffectUITemplate>(); script.Init(); script.Set(effect); return(script); }
void RemoveCallback(StatusEffectInstance effect) { for (int i = Templates.Count - 1; i >= 0; i--) { if (Templates[i].Effect.Type == effect.Type) { Destroy(Templates[i].gameObject); Templates.RemoveAt(i); } } }
void OnApply(StatusEffectInstance instance) { if (instance.Type == type) { if (Entity.IsAlive) { if (coroutine != null) { StopCoroutine(coroutine); } coroutine = StartCoroutine(Procedure()); } } }
protected virtual StatusEffectInstance Add(StatusEffectData data, Entity affector) { var target = new StatusEffectInstance(this.Entity, data, affector); RemoveConflicts(data.Type); target.OnApply += ApplyCallback; target.OnFinish += InstanceFinishedDelegate; if (OnAdd != null) { OnAdd(target); } return(target); }
protected override void Process(StatusEffectInstance effect, EntityStatusEffects.ActivationCondition condition) { if (effect.Type == type) { if (conditions.IsPlayCondition(condition)) { Play(); } if (conditions.IsStopCondition(condition)) { Stop(); } } else { } }
void InstanceFinishedDelegate(StatusEffectInstance instance) { Remove(instance.Type); }
public override void Apply(StatusEffectInstance effect) { }
public override void Apply(StatusEffectInstance effect) { effect.Affector.DoDamage(effect.Data.Potency, Damage.Method.Effect, effect.Target); }
public virtual void OnAdd(StatusEffectInstance effect) { }
public abstract void Apply(StatusEffectInstance effect);
protected abstract void Process(StatusEffectInstance effect, ActivationCondition condition);
public virtual void OnRemove(StatusEffectInstance effect) { }
void AddCallback(StatusEffectInstance effect) { var instance = Create(effect); Templates.Add(instance); }