public void AddModifier(EntityModifier modifier, float duration = Mathf.Infinity) { Type type = modifier.GetType(); if (!modifiers.ContainsKey(type)) { ModifierList list = new ModifierList(type); modifiers.Add(type, list); } modifiers[type].Add(modifier, duration); CallEvent(type); }
public bool ContainsModifier(EntityModifier modifier) { Type type = modifier.GetType(); if (modifiers.ContainsKey(type)) { for (int i = 0; i < modifiers[type].Count; i++) { if (modifiers[type][i] == modifier) { return(true); } } } return(false); }
public int GetModifierCount(EntityModifier modifier) => GetModifierCount(modifier.GetType());
public void SetModifierAsDirty(EntityModifier modifier) => SetModifierAsDirty(modifier.GetType());
public void RemoveModifierListener(UnityAction call, EntityModifier modifier) => RemoveModifierListener(call, modifier.GetType());
public ModifierList(EntityModifier modifier) { modifierType = modifier.GetType(); }
public void RemoveModifier(EntityModifier modifier) { modifiers[modifier.GetType()].Remove(modifier); }