public virtual void cast(CharacterSlot caster, CharacterSlot target, StatusEffectSlot slot) { if (isCastValid(caster, target)) { skillEffects.cast(caster, target, slot); } }
public void cast(CharacterSlot caster, CharacterSlot target, StatusEffectSlot slot) { int len = calculations.Count; for (int i = 0; i < len; i++) { calculations[i].cast(caster, target); } len = status.Count; for (int i = 0; i < len; i++) { status[i].cast(caster, target); } }
public virtual bool addTemporaryStatusEffectSlot(StatusEffectSlot slot) { if (slot.unique) { var old = temporaryStatusEffectSlots .Find(s => s.statusEffect == slot.statusEffect); if (old != null) { var temp = old.compareNewSlot(slot); if (temp == old || temp == null) { return(false); } removeTemporaryStatusEffectSlot(old); } } slot.statusEffect.onAdd(this); events += slot.events; temporaryStatusEffectSlots.Add(slot); return(true); }
public StatusEffectSlot compareNewSlot(StatusEffectSlot _new) { return(statusEffect.compareStatusEffectSlots(this, _new)); }
public virtual StatusEffectSlot compareStatusEffectSlots(StatusEffectSlot _old, StatusEffectSlot _new) { return(null); }
public virtual void cast(CharacterSlot caster, CharacterSlot target, StatusEffectSlot slot) { }
public virtual void removeTemporaryStatusEffectSlot(StatusEffectSlot slot) { slot.onRemove(this); events -= slot.events; temporaryStatusEffectSlots.Remove(slot); }