Actor GetFiringActor(World world, CPos cell) { var pos = world.Map.CenterOfCell(cell); var range = attack.GetMaximumRange().LengthSquared; return(instance.Instances.Where(i => !i.Self.IsDisabled()).MinByOrDefault(a => (a.Self.CenterPosition - pos).HorizontalLengthSquared).Self); }
bool IsValidTarget(World world, CPos cell) { var pos = world.Map.CenterOfCell(cell); var range = attack.GetMaximumRange().LengthSquared; return(world.Map.Contains(cell) && instance.Instances.Any(a => !a.IsTraitPaused && (a.Self.CenterPosition - pos).HorizontalLengthSquared < range)); }
public IEnumerable <IRenderable> RangeCircleRenderables(WorldRenderer wr) { if (!self.Owner.IsAlliedWith(self.World.RenderPlayer)) { yield break; } var range = attack.GetMaximumRange(); if (range == WDist.Zero) { yield break; } yield return(new RangeCircleRenderable( self.CenterPosition, range, 0, Color.FromArgb(128, Color.Yellow), Color.FromArgb(96, Color.Black))); }
public IEnumerable <IRenderable> RangeCircleRenderables(WorldRenderer wr) { if (!self.Owner.IsAlliedWith(self.World.RenderPlayer)) { yield break; } var range = Info.RangeCircleMode == RangeCircleMode.Minimum ? attack.GetMinimumRange() : attack.GetMaximumRange(); if (range == WDist.Zero) { yield break; } yield return(new RangeCircleRenderable( self.CenterPosition, range, 0, Info.Color, Info.BorderColor)); }