//this is pseudo private public void AddStatusEffectFromTemplate(StatusEffectTemplate template) { StatusEffect effect = template.Create(entity); OldContext context = template.GetContext(entity); effect.Apply(entity, context); statusList.Add(effect); }
public static StatusEffectInstance NewStatus(StatusEffectTemplate template = null, Character caster = null, Character target = null) { StatusEffectInstance instance = GetNextInstance(); instance.Template = template; instance.Caster = caster; instance.Target = target; instance.Data.Reset(); instance.modifierList.Clear(); instance.persistentSfxList.Clear(); return(instance); }
public virtual void AddStatusComponentsFromTemplate(StatusEffectTemplate template) { if (template.additionalComponents == null) { return; } for (int i = 0; i < template.additionalComponents.Length; i++) { StatusEffectComponent component = template.additionalComponents[i]; components[i].caster = caster; components[i].target = target; components[i].context = context; components.Add(component); } }
public void ApplyStatus(StatusEffectTemplate statusTemplate, Character target) { if (!statusTemplate.AllowMultiple) { StatusEffectInstance preexistingStatus = target.StatusHandler.FindStatus(statusTemplate); if (preexistingStatus != null) { preexistingStatus.Reset(); preexistingStatus.AddStack(); Changed(); return; } } StatusEffectInstance status = StatusEffectInstance.NewStatus(statusTemplate, owner, target); target.StatusHandler.statuses.Add(status); status.OnApply(); Changed(); }
//this is pseudo private public void AddStatusEffectFromTemplate(StatusEffectTemplate template) { StatusEffect effect = template.Create(entity); OldContext context = template.GetContext(entity); effect.Apply(entity, context); statusList.Add(effect); }
public StatusEffectInstance FindStatus(StatusEffectTemplate statusTemplate) { return(statuses.FirstOrDefault(status => status.Template == statusTemplate)); }