diff --git a/game/buildings.c b/game/buildings.c
index 5f33ded..8ee7156 100644
--- a/game/buildings.c
+++ b/game/buildings.c
@@ -161,6 +161,11 @@ void getBuildingCost(BuildingType type, i32 cost[RES_COUNT]) {
case BUILDING_WAREHOUSE:
cost[RES_WOOD] = 100;
break;
+ case BUILDING_TOWER:
+ cost[RES_WOOD] = 400;
+ cost[RES_FOOD] = 100;
+ cost[RES_GOLD] = 500;
+ break;
case BUILDING_NONE:
case BUILDING_KEEP:
case BUILDING_COUNT:
diff --git a/game/game_tileset.h b/game/game_tileset.h
index 3db5d1d..3ae4d49 100644
--- a/game/game_tileset.h
+++ b/game/game_tileset.h
@@ -331,6 +331,7 @@ typedef enum BuildingType {
BUILDING_KEEP,
BUILDING_MARKET,
BUILDING_MILL,
+ BUILDING_TOWER,
BUILDING_WAREHOUSE,
BUILDING_WHEAT_0,
BUILDING_WHEAT_1,
@@ -341,6 +342,8 @@ static BuildingType getTileBuilding(BzTileID tile) {
switch (tile) {
case 5638:
return BUILDING_BARRACKS;
+ case 5650:
+ return BUILDING_TOWER;
case 5654:
case 5655:
case 5910:
@@ -387,6 +390,7 @@ static BuildingType getTileBuilding(BzTileID tile) {
static BzTileID getBuildingTile(BuildingType type) {
switch (type) {
case BUILDING_BARRACKS: return 5638;
+ case BUILDING_TOWER: return 5650;
case BUILDING_KEEP: return 5654;
case BUILDING_WHEAT_1: return 6400;
case BUILDING_WHEAT_0: return 6401;
@@ -411,6 +415,7 @@ static BzTileID getBuildingTile(BuildingType type) {
static const char *getBuildingStr(BuildingType type) {
switch (type) {
case BUILDING_BARRACKS: return "barracks";
+ case BUILDING_TOWER: return "tower";
case BUILDING_KEEP: return "keep";
case BUILDING_WHEAT_1: return "wheat_1";
case BUILDING_WHEAT_0: return "wheat_0";
@@ -438,6 +443,10 @@ static BuildingType getBuildingSize(BuildingType type, i32 *outWidth, i32 *outHe
if (outWidth) *outWidth = 1;
if (outHeight) *outHeight = 1;
break;
+ case BUILDING_TOWER:
+ if (outWidth) *outWidth = 1;
+ if (outHeight) *outHeight = 1;
+ break;
case BUILDING_KEEP:
if (outWidth) *outWidth = 2;
if (outHeight) *outHeight = 2;
diff --git a/game/systems/s_ui.c b/game/systems/s_ui.c
index d94fb27..28ac300 100644
--- a/game/systems/s_ui.c
+++ b/game/systems/s_ui.c
@@ -54,24 +54,24 @@ void drawGameUI(Game *game, f32 dt) {
InputState *input = ecs_singleton_get_mut(ECS, InputState);
const BuildingType buildingOrder[] = {
- BUILDING_HOUSE_01,
+ BUILDING_WHEAT_0,
+ BUILDING_HOUSE_05,
BUILDING_GRANARY,
BUILDING_WAREHOUSE,
BUILDING_MARKET,
BUILDING_MILL,
- BUILDING_WHEAT_0,
BUILDING_BARRACKS,
- BUILDING_ARCHERY_RANGE
+ BUILDING_TOWER
};
const char *buildingNames[] = {
+ "Farm",
"House",
"Granary",
"Warehouse",
"Market",
"Mill",
- "Farm",
"Barracks",
- "Archery Range"
+ "Tower"
};
i32 numBuildings = sizeof(buildingOrder) / sizeof(*buildingOrder);
diff --git a/rawAssets/game.tsj b/rawAssets/game.tsj
index e356af0..d9f6cb6 100644
--- a/rawAssets/game.tsj
+++ b/rawAssets/game.tsj
@@ -6859,7 +6859,8 @@
"name":"player",
"type":"int",
"value":0
- }]
+ }],
+ "type":"tower"
},
{
"id":5651,
diff --git a/rawAssets/game.tsx b/rawAssets/game.tsx
index 635d5e6..99a74ca 100644
--- a/rawAssets/game.tsx
+++ b/rawAssets/game.tsx
@@ -2508,7 +2508,7 @@
-
+