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 @@ - +