Beispiel #1
0
 public virtual void cast(CharacterSlot caster, CharacterSlot target, StatusEffectSlot slot)
 {
     if (isCastValid(caster, target))
     {
         skillEffects.cast(caster, target, slot);
     }
 }
Beispiel #2
0
    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);
    }
Beispiel #4
0
 public StatusEffectSlot compareNewSlot(StatusEffectSlot _new)
 {
     return(statusEffect.compareStatusEffectSlots(this, _new));
 }
Beispiel #5
0
 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);
 }