Add tower

This commit is contained in:
2024-02-05 09:26:04 +01:00
parent d55ed29f97
commit ba293b15d9
5 changed files with 22 additions and 7 deletions

View File

@@ -161,6 +161,11 @@ void getBuildingCost(BuildingType type, i32 cost[RES_COUNT]) {
case BUILDING_WAREHOUSE: case BUILDING_WAREHOUSE:
cost[RES_WOOD] = 100; cost[RES_WOOD] = 100;
break; break;
case BUILDING_TOWER:
cost[RES_WOOD] = 400;
cost[RES_FOOD] = 100;
cost[RES_GOLD] = 500;
break;
case BUILDING_NONE: case BUILDING_NONE:
case BUILDING_KEEP: case BUILDING_KEEP:
case BUILDING_COUNT: case BUILDING_COUNT:

View File

@@ -331,6 +331,7 @@ typedef enum BuildingType {
BUILDING_KEEP, BUILDING_KEEP,
BUILDING_MARKET, BUILDING_MARKET,
BUILDING_MILL, BUILDING_MILL,
BUILDING_TOWER,
BUILDING_WAREHOUSE, BUILDING_WAREHOUSE,
BUILDING_WHEAT_0, BUILDING_WHEAT_0,
BUILDING_WHEAT_1, BUILDING_WHEAT_1,
@@ -341,6 +342,8 @@ static BuildingType getTileBuilding(BzTileID tile) {
switch (tile) { switch (tile) {
case 5638: case 5638:
return BUILDING_BARRACKS; return BUILDING_BARRACKS;
case 5650:
return BUILDING_TOWER;
case 5654: case 5654:
case 5655: case 5655:
case 5910: case 5910:
@@ -387,6 +390,7 @@ static BuildingType getTileBuilding(BzTileID tile) {
static BzTileID getBuildingTile(BuildingType type) { static BzTileID getBuildingTile(BuildingType type) {
switch (type) { switch (type) {
case BUILDING_BARRACKS: return 5638; case BUILDING_BARRACKS: return 5638;
case BUILDING_TOWER: return 5650;
case BUILDING_KEEP: return 5654; case BUILDING_KEEP: return 5654;
case BUILDING_WHEAT_1: return 6400; case BUILDING_WHEAT_1: return 6400;
case BUILDING_WHEAT_0: return 6401; case BUILDING_WHEAT_0: return 6401;
@@ -411,6 +415,7 @@ static BzTileID getBuildingTile(BuildingType type) {
static const char *getBuildingStr(BuildingType type) { static const char *getBuildingStr(BuildingType type) {
switch (type) { switch (type) {
case BUILDING_BARRACKS: return "barracks"; case BUILDING_BARRACKS: return "barracks";
case BUILDING_TOWER: return "tower";
case BUILDING_KEEP: return "keep"; case BUILDING_KEEP: return "keep";
case BUILDING_WHEAT_1: return "wheat_1"; case BUILDING_WHEAT_1: return "wheat_1";
case BUILDING_WHEAT_0: return "wheat_0"; 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 (outWidth) *outWidth = 1;
if (outHeight) *outHeight = 1; if (outHeight) *outHeight = 1;
break; break;
case BUILDING_TOWER:
if (outWidth) *outWidth = 1;
if (outHeight) *outHeight = 1;
break;
case BUILDING_KEEP: case BUILDING_KEEP:
if (outWidth) *outWidth = 2; if (outWidth) *outWidth = 2;
if (outHeight) *outHeight = 2; if (outHeight) *outHeight = 2;

View File

@@ -54,24 +54,24 @@ void drawGameUI(Game *game, f32 dt) {
InputState *input = ecs_singleton_get_mut(ECS, InputState); InputState *input = ecs_singleton_get_mut(ECS, InputState);
const BuildingType buildingOrder[] = { const BuildingType buildingOrder[] = {
BUILDING_HOUSE_01, BUILDING_WHEAT_0,
BUILDING_HOUSE_05,
BUILDING_GRANARY, BUILDING_GRANARY,
BUILDING_WAREHOUSE, BUILDING_WAREHOUSE,
BUILDING_MARKET, BUILDING_MARKET,
BUILDING_MILL, BUILDING_MILL,
BUILDING_WHEAT_0,
BUILDING_BARRACKS, BUILDING_BARRACKS,
BUILDING_ARCHERY_RANGE BUILDING_TOWER
}; };
const char *buildingNames[] = { const char *buildingNames[] = {
"Farm",
"House", "House",
"Granary", "Granary",
"Warehouse", "Warehouse",
"Market", "Market",
"Mill", "Mill",
"Farm",
"Barracks", "Barracks",
"Archery Range" "Tower"
}; };
i32 numBuildings = sizeof(buildingOrder) / sizeof(*buildingOrder); i32 numBuildings = sizeof(buildingOrder) / sizeof(*buildingOrder);

View File

@@ -6859,7 +6859,8 @@
"name":"player", "name":"player",
"type":"int", "type":"int",
"value":0 "value":0
}] }],
"type":"tower"
}, },
{ {
"id":5651, "id":5651,

View File

@@ -2508,7 +2508,7 @@
<property name="player" type="int" value="0"/> <property name="player" type="int" value="0"/>
</properties> </properties>
</tile> </tile>
<tile id="5650"> <tile id="5650" type="tower">
<properties> <properties>
<property name="building" value=""/> <property name="building" value=""/>
<property name="player" type="int" value="0"/> <property name="player" type="int" value="0"/>