Esempio n. 1
0
        internal static bool On(this SheildsDatabase.Shield shield, Obj_AI_Base target)
        {
            if (target == null)
            {
                return(false);
            }

            switch (shield.Type)
            {
            case SheildsDatabase.Shield.SheildType.Wall:
                return(shield.Spell.Cast(Player.Instance.ServerPosition.Extend(target, shield.Spell.Range - 15).To3D()));

            case SheildsDatabase.Shield.SheildType.SpellBlock:
                return(shield.Spell.Cast());

            case SheildsDatabase.Shield.SheildType.CastOnEnemy:
                target = TargetSelector.GetTarget(shield.Spell.Range, DamageType.True);
                break;
            }

            if (target == null || !target.IsKillable())
            {
                return(false);
            }

            if (target.IsInRange(Player.Instance, shield.Spell.Range) || shield.Spell.Range == 0)
            {
                if (shield.Spell is Spell.Targeted || shield.Spell is Spell.Skillshot)
                {
                    return(shield.Spell.Cast(target));
                }

                if (shield.Spell is Spell.Active)
                {
                    return(shield.Spell.Cast());
                }
            }

            return(false);
        }
Esempio n. 2
0
 private static bool Saveior(SheildsDatabase.Shield sh)
 {
     return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.SelfSaveior) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.AllySaveior));
 }
Esempio n. 3
0
 private static bool Self(SheildsDatabase.Shield sh)
 {
     return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.Self) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.CastOnEnemy));
 }
Esempio n. 4
0
 private static bool SpellBlock(SheildsDatabase.Shield sh)
 {
     return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.SpellBlock) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.Wall));
 }
Esempio n. 5
0
 private static bool ForAllies(SheildsDatabase.Shield sh)
 {
     return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.AllyShield) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.AllySaveior) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.AllyHeal));
 }