63 lines
1.6 KiB
Haskell
63 lines
1.6 KiB
Haskell
module PioneerTypes
|
|
where
|
|
|
|
data Structure = Flag -- Flag
|
|
| Woodcutter -- Huts
|
|
| Forester
|
|
| Stonemason
|
|
| Fisher
|
|
| Hunter
|
|
| Barracks
|
|
| Guardhouse
|
|
| LookoutTower
|
|
| Well
|
|
| Sawmill -- Houses
|
|
| Slaughterhouse
|
|
| Mill
|
|
| Bakery
|
|
| IronSmelter
|
|
| Metalworks
|
|
| Armory
|
|
| Mint
|
|
| Shipyard
|
|
| Brewery
|
|
| Storehouse
|
|
| Watchtower
|
|
| Catapult
|
|
| GoldMine -- Mines
|
|
| IronMine
|
|
| GraniteMine
|
|
| CoalMine
|
|
| Farm -- Castles
|
|
| PigFarm
|
|
| DonkeyBreeder
|
|
| Harbor
|
|
| Fortress
|
|
deriving (Show, Eq)
|
|
|
|
data Amount = Infinite -- Neverending supply
|
|
| Finite Int -- Finite supply
|
|
|
|
-- Extremely preliminary, expand when needed
|
|
data Commodity = WoodPlank
|
|
| Sword
|
|
| Fish
|
|
deriving Eq
|
|
|
|
data Resource = Coal
|
|
| Iron
|
|
| Gold
|
|
| Granite
|
|
| Water
|
|
| Fishes
|
|
deriving (Show, Eq)
|
|
|
|
instance Show Amount where
|
|
show (Infinite) = "inexhaustable supply"
|
|
show (Finite n) = (show n) ++ " left"
|
|
|
|
instance Show Commodity where
|
|
show WoodPlank = "wooden plank"
|
|
show Sword = "sword"
|
|
show Fish = "fish"
|