module Game class BuildingList def initialize @items = [] of NamedTuple(t: Building::Type, b: Building) add( Building.new Building::Type::StartPoint, "Start Point", storage: 100 ) add( Building.new Building::Type::CrystalMiner, "Crystal Miner", **{ production: Production.new( ts: 20, input: Resources.new, output: Resources.new({ Resources::Type::Crystals => 100, }) ), } ) add( Building.new Building::Type::CrystalRestorer, **{ cost: Resources.new({ Resources::Type::Crystals => 100, }), restoration: Restoration.new( ts: 30, type: Resources::Type::Crystals, cap: 50 ), } ) end private def add(building : Building) t = building.type @items << {t: t, b: building} end end end