Move to tile roles

This commit is contained in:
Anton Vakhrushev 2019-09-20 18:27:33 +03:00
parent 6df32784a8
commit 24d0eb4b81
2 changed files with 15 additions and 15 deletions

View File

@ -51,13 +51,13 @@ class HarvestCrystalCommand < Command
private def nearest_deposit(world : World) private def nearest_deposit(world : World)
world.map.nearest_tile @point do |tile| world.map.nearest_tile @point do |tile|
tile.type == TileType::CrystalDeposits && tile.cur > 0 tile.has_role(TileRole::CrystalDeposits) && tile.cur > 0
end end
end end
private def nearest_stock(world : World) private def nearest_stock(world : World)
world.map.nearest_tile @point do |tile| world.map.nearest_tile @point do |tile|
tile.type == TileType::Warehouse tile.has_role(TileRole::Warehouse)
end end
end end
end end
@ -108,7 +108,7 @@ class RestoreCrystalCommand < Command
private def nearest_deposit(world : World) private def nearest_deposit(world : World)
world.map.nearest_tile @point do |tile| world.map.nearest_tile @point do |tile|
tile.type == TileType::CrystalDeposits && tile.cur < tile.cap tile.has_role(TileRole::CrystalDeposits) && tile.cur < tile.cap
end end
end end
end end

View File

@ -1,4 +1,4 @@
enum TileType enum TileRole
CrystalDeposits CrystalDeposits
CrystalHarvester CrystalHarvester
CrystalRestorer CrystalRestorer
@ -18,7 +18,7 @@ abstract class Tile
getter cur getter cur
abstract def letter : Char abstract def letter : Char
abstract def type : TileType abstract def has_role(role : TileRole) : Bool
def withdraw(value) def withdraw(value)
if value >= @cur if value >= @cur
@ -42,8 +42,8 @@ class PlateauTile < Tile
'.' '.'
end end
def type : TileType def has_role(role : TileRole) : Bool
TileType::Plateau role == TileRole::Plateau
end end
end end
@ -52,8 +52,8 @@ class MainBaseTile < Tile
'H' 'H'
end end
def type : TileType def has_role(role : TileRole) : Bool
TileType::Warehouse role == TileRole::Warehouse
end end
end end
@ -67,8 +67,8 @@ class CrystalTile < Tile
'f' 'f'
end end
def type : TileType def has_role(role : TileRole) : Bool
TileType::CrystalDeposits role == TileRole::CrystalDeposits
end end
end end
@ -77,8 +77,8 @@ class CrystalHarvesterTile < Tile
'm' 'm'
end end
def type : TileType def has_role(role : TileRole) : Bool
TileType::CrystalHarvester role == TileRole::CrystalHarvester
end end
end end
@ -87,7 +87,7 @@ class CrystalRestorerTile < Tile
'h' 'h'
end end
def type : TileType def has_role(role : TileRole) : Bool
TileType::CrystalRestorer role == TileRole::CrystalRestorer
end end
end end