UnitsInRange() public method

public UnitsInRange ( CPos xy ) : IEnumerable
xy CPos
return IEnumerable
Exemplo n.º 1
0
 public IEnumerable <IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
 {
     foreach (var unit in power.UnitsInRange(sourceLocation))
     {
         if (manager.Self.Owner.CanTargetActor(unit))
         {
             yield return(new SelectionBoxRenderable(unit, Color.Red));
         }
     }
 }
Exemplo n.º 2
0
            public IEnumerable <IRenderable> RenderAboveShroud(WorldRenderer wr, World world)
            {
                var xy      = wr.Viewport.ViewToWorld(Viewport.LastMousePos);
                var palette = wr.Palette(power.Info.IconPalette);

                // Destination tiles
                foreach (var t in world.Map.FindTilesInCircle(xy, range))
                {
                    var tile = manager.Self.Owner.Shroud.IsExplored(t) ? validTile : invalidTile;
                    yield return(new SpriteRenderable(tile, wr.World.Map.CenterOfCell(t), WVec.Zero, -511, palette, 1f, true));
                }

                // Unit previews
                foreach (var unit in power.UnitsInRange(sourceLocation))
                {
                    if (manager.Self.Owner.CanTargetActor(unit))
                    {
                        var targetCell = unit.Location + (xy - sourceLocation);
                        var canEnter   = manager.Self.Owner.Shroud.IsExplored(targetCell) &&
                                         unit.Trait <Chronoshiftable>().CanChronoshiftTo(unit, targetCell);
                        var tile = canEnter ? validTile : invalidTile;
                        yield return(new SpriteRenderable(tile, wr.World.Map.CenterOfCell(targetCell), WVec.Zero, -511, palette, 1f, true));
                    }

                    var offset = world.Map.CenterOfCell(xy) - world.Map.CenterOfCell(sourceLocation);
                    if (manager.Self.Owner.CanTargetActor(unit))
                    {
                        foreach (var r in unit.Render(wr))
                        {
                            yield return(r.OffsetBy(offset));
                        }
                    }
                }

                foreach (var unit in power.UnitsInRange(sourceLocation))
                {
                    if (manager.Self.Owner.CanTargetActor(unit))
                    {
                        yield return(new SelectionBoxRenderable(unit, Color.Red));
                    }
                }
            }
Exemplo n.º 3
0
            public IEnumerable <IRenderable> RenderAfterWorld(WorldRenderer wr, World world)
            {
                var xy          = wr.Viewport.ViewToWorld(Viewport.LastMousePos);
                var targetUnits = power.UnitsInRange(xy).Where(a => !world.FogObscures(a));

                foreach (var unit in targetUnits)
                {
                    if (manager.Self.Owner.CanTargetActor(unit))
                    {
                        yield return(new SelectionBoxRenderable(unit, Color.Red));
                    }
                }
            }