Move to tile roles
This commit is contained in:
parent
6df32784a8
commit
24d0eb4b81
@ -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
|
||||||
|
24
src/tile.cr
24
src/tile.cr
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user