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); }
private static bool Saveior(SheildsDatabase.Shield sh) { return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.SelfSaveior) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.AllySaveior)); }
private static bool Self(SheildsDatabase.Shield sh) { return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.Self) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.CastOnEnemy)); }
private static bool SpellBlock(SheildsDatabase.Shield sh) { return(sh.Type.Equals(SheildsDatabase.Shield.SheildType.SpellBlock) || sh.Type.Equals(SheildsDatabase.Shield.SheildType.Wall)); }
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)); }