public void Execute(Bot bot) { Position botCurrentPosition = bot.Position; int direction = bot.Direction; var(x, y) = CommandDirectionIds.IdToCoordinate[direction]; var newPosition = new Position( x: botCurrentPosition.X + x, y: botCurrentPosition.Y + y); if (!newPosition.IsValid()) { return; } var worldObject = map.Get(newPosition); if (IsBotCanMoveTo(worldObject)) { bot.Handle(worldObject); bot.SetNewPosition(newPosition); bot.Cursor = newPosition; } }
public void Execute(Bot bot) { var cursor = bot.Cursor; if (cursor is null) { return; } var worldObject = map.Get(cursor); bot.Handle(worldObject); }