Beispiel #1
0
        public void Render(WorldRenderer wr, World w, ActorInfo ai, WPos centerPosition)
        {
            var armaments = ai.Traits.WithInterface <ArmamentInfo>();
            var range     = FallbackRange;

            if (armaments.Any())
            {
                range = armaments.Select(a => w.Map.Rules.Weapons[a.Weapon.ToLowerInvariant()].Range).Max();
            }

            if (range == WRange.Zero)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                centerPosition,
                range,
                Color.FromArgb(128, Color.Yellow),
                Color.FromArgb(96, Color.Black)
                );

            foreach (var a in w.ActorsWithTrait <RenderRangeCircle>())
            {
                if (a.Actor.Owner == a.Actor.World.LocalPlayer)
                {
                    if (a.Actor.Info.Traits.Get <RenderRangeCircleInfo>().RangeCircleType == RangeCircleType)
                    {
                        a.Trait.RenderAfterWorld(wr);
                    }
                }
            }
        }
Beispiel #2
0
 public static void DrawRangeCircle(WorldRenderer wr, WPos pos, int range, Color color)
 {
     wr.DrawRangeCircleWithContrast(
         Color.FromArgb(128, color),
         wr.ScreenPxPosition(pos),
         range,
         Color.FromArgb(96, Color.Black));
 }
Beispiel #3
0
 public static void DrawRangeCircle(WorldRenderer wr, float2 location, int range, Color color)
 {
     wr.DrawRangeCircleWithContrast(
         Color.FromArgb(128, color),
         location,
         range,
         Color.FromArgb(96, Color.Black),
         1);
 }
 public static void DrawRangeCircle(WorldRenderer wr, WPos pos, int range, Color color)
 {
     wr.DrawRangeCircleWithContrast(
         pos,
         WRange.FromCells(range),
         Color.FromArgb(128, color),
         Color.FromArgb(96, Color.Black)
         );
 }
Beispiel #5
0
        public void RenderAfterWorld(WorldRenderer wr)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.LimeGreen),
                wr.ScreenPxPosition(self.CenterPosition), self.Info.Traits.Get <DetectCloakedInfo>().Range,
                Color.FromArgb(96, Color.Black));
        }
        public void RenderBeforeWorld(WorldRenderer wr, Actor self)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.LimeGreen),
                self.CenterLocation.ToFloat2(), self.Info.Traits.Get <DetectCloakedInfo>().Range,
                Color.FromArgb(96, Color.Black),
                1);
        }
Beispiel #7
0
        // Range circle
        public void RenderBeforeWorld(WorldRenderer wr, Actor self)
        {
            // Visible to player and allies
            if (!self.Owner.IsAlliedWith(self.World.RenderPlayer))
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Ready() ? Color.White : Color.Red),
                self.CenterLocation.ToFloat2(), Info.Range,
                Color.FromArgb(96, Color.Black), 1);
        }
Beispiel #8
0
        // Range circle
        public void RenderAfterWorld(WorldRenderer wr)
        {
            // Visible to player and allies
            if (!ValidRenderPlayer())
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Ready() ? Color.White : Color.Red),
                wr.ScreenPxPosition(self.CenterPosition), Info.Range,
                Color.FromArgb(96, Color.Black), 1);
        }
Beispiel #9
0
        public void RenderBeforeWorld(WorldRenderer wr, Actor self)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.Yellow),
                self.CenterLocation.ToFloat2(), self.Trait <AttackBase>().GetMaximumRange(),
                Color.FromArgb(96, Color.Black),
                1);
        }
Beispiel #10
0
        public void RenderAfterWorld(WorldRenderer wr)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                self.CenterPosition,
                attack.GetMaximumRange(),
                Color.FromArgb(128, Color.Yellow),
                Color.FromArgb(96, Color.Black)
                );
        }
Beispiel #11
0
        public void RenderAfterWorld(WorldRenderer wr)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                self.CenterPosition,
                self.Info.Traits.Get <CreatesShroudInfo>().Range,
                Color.FromArgb(128, Color.Cyan),
                Color.FromArgb(96, Color.Black)
                );
        }
Beispiel #12
0
        public void RenderAfterWorld(WorldRenderer wr)
        {
            if (self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            // Hack: Convert world coords to cells
            var pxRange = self.Trait <AttackBase>().GetMaximumRange().Range / 1024f;

            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.Yellow),
                wr.ScreenPxPosition(self.CenterPosition), pxRange,
                Color.FromArgb(96, Color.Black));
        }
Beispiel #13
0
        public void Render(WorldRenderer wr, World w, ActorInfo ai, WPos centerPosition)
        {
            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.Cyan),
                wr.ScreenPxPosition(centerPosition),
                ai.Traits.Get <CreatesShroudInfo>().Range,
                Color.FromArgb(96, Color.Black));

            foreach (var a in w.ActorsWithTrait <RenderShroudCircle>())
            {
                if (a.Actor.Owner == a.Actor.World.LocalPlayer)
                {
                    a.Trait.RenderAfterWorld(wr);
                }
            }
        }
Beispiel #14
0
        public void Render(WorldRenderer wr, World w, ActorInfo ai, PPos centerLocation)
        {
            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.Cyan),
                centerLocation.ToFloat2(),
                ai.Traits.Get <CreatesShroudInfo>().Range,
                Color.FromArgb(96, Color.Black),
                1);

            foreach (var a in w.ActorsWithTrait <RenderShroudCircle>())
            {
                if (a.Actor.Owner == a.Actor.World.LocalPlayer)
                {
                    a.Trait.RenderBeforeWorld(wr, a.Actor);
                }
            }
        }
Beispiel #15
0
        public void Render(WorldRenderer wr, World w, ActorInfo ai, WPos centerPosition)
        {
            wr.DrawRangeCircleWithContrast(
                Color.FromArgb(128, Color.Yellow), wr.ScreenPxPosition(centerPosition),
                ai.Traits.WithInterface <ArmamentInfo>()
                .Select(a => Rules.Weapons[a.Weapon.ToLowerInvariant()].Range).Max(),
                Color.FromArgb(96, Color.Black));

            foreach (var a in w.ActorsWithTrait <RenderRangeCircle>())
            {
                if (a.Actor.Owner == a.Actor.World.LocalPlayer)
                {
                    if (a.Actor.Info.Traits.Get <RenderRangeCircleInfo>().RangeCircleType == RangeCircleType)
                    {
                        a.Trait.RenderAfterWorld(wr);
                    }
                }
            }
        }
        public void RenderAfterWorld(WorldRenderer wr, World world)
        {
            if (!self.IsInWorld || self.Owner != self.World.LocalPlayer)
            {
                return;
            }

            if (!self.Trait <PortableChrono>().Info.HasDistanceLimit)
            {
                return;
            }

            wr.DrawRangeCircleWithContrast(
                self.CenterPosition,
                WRange.FromCells(self.Trait <PortableChrono>().Info.MaxDistance),
                Color.FromArgb(128, Color.LawnGreen),
                Color.FromArgb(96, Color.Black)
                );
        }