Beispiel #1
0
 public override void OnCreate(GameObject obj)
 {
     if (obj == null)
     {
         _castStartPos = Caster.Position;
         _castEndPos = _castStartPos.ExtendVector3(CastArgs.End, SpellData.Range);
     }
     else
     {
     }
 }
 public override void OnSpellDetection(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
 {
     _startPos = Caster.ServerPosition;
     _endPos = _startPos.ExtendVector3(CastArgs.End, SpellData.Range);
 }
Beispiel #3
0
        private static void CastW(Obj_AI_Base target, Vector3 from, Vector3 to)
        {
            var positions = new List<Vector3>();

            for (var i = 1; i < 11; i++)
            {
                positions.Add(from.ExtendVector3(to, 42 * i));
            }
            var best =
                positions.OrderByDescending(p => p.Distance(target.Position))
                    .FirstOrDefault(
                        p => !p.IsWall() && p.Distance(Player.Position) < W.Range && p.Distance(target.Position) > 350);
            if (best != null && best.IsValid())
            {
                W.Cast(best);
            }
        }