예제 #1
0
        private static void Drawing_OnDraw(EventArgs args)
        {
            WallQ.Drawing_OnDraw();

            if (DrawMenu["drawStacks"].Cast <CheckBox>().CurrentValue&& Events.AAedTarget != null)
            {
                var color = new [] { Color.White, Color.Aqua }[Events.AaStacks - 1];
                new Circle()
                {
                    Color = color, Radius = 200
                }.Draw(Events.AAedTarget.Position);
            }
            if (DrawMenu["drawERange"].Cast <CheckBox>().CurrentValue)
            {
                new Circle()
                {
                    Color = Color.White, Radius = E.Range
                }.Draw(_Player.Position);
            }
            if (DrawMenu["condemnVisualiser"].Cast <CheckBox>().CurrentValue)
            {
                var t = TargetSelector.GetTarget(E.Range + Q.Range, DamageType.Physical);
                if (t.IsValidTarget())
                {
                    var color = Color.Red;
                    for (var i = 1; i < 8; i++)
                    {
                        var targetBehind = t.Position +
                                           Vector3.Normalize(t.ServerPosition - ObjectManager.Player.Position) * i * 50;

                        if (!targetBehind.IsWall())
                        {
                            color = Color.Aqua;
                        }
                        else
                        {
                            color = Color.Red;
                        }
                    }

                    var tt = t.Position + Vector3.Normalize(t.ServerPosition - ObjectManager.Player.Position) * 8 * 50;

                    var startpos = t.Position;
                    var endpos   = tt;
                    var endpos1  = tt +
                                   (startpos - endpos).To2D().Normalized().Rotated(45 * (float)Math.PI / 180).To3D() *
                                   t.BoundingRadius;
                    var endpos2 = tt +
                                  (startpos - endpos).To2D().Normalized().Rotated(-45 * (float)Math.PI / 180).To3D() *
                                  t.BoundingRadius;

                    var width = 2;

                    var x = new Geometry.Polygon.Line(startpos, endpos);
                    {
                        x.Draw(color, width);
                    }

                    var y = new Geometry.Polygon.Line(endpos, endpos1);
                    {
                        y.Draw(color, width);
                    }

                    var z = new Geometry.Polygon.Line(endpos, endpos2);
                    {
                        z.Draw(color, width);
                    }
                }
            }
        }