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); } } } }
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)); }
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) ); }
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); }
// 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); }
// 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); }
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); }
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) ); }
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) ); }
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)); }
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); } } }
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); } } }
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) ); }