adding farms
This commit is contained in:
@@ -28,7 +28,7 @@ var escape_panel: PanelContainer
|
||||
var gold_label: Label
|
||||
var tick_bar: ProgressBar
|
||||
var tick_label: Label
|
||||
var resource_text := "Gold: --\nWood: --\nOre: --"
|
||||
var resource_text := "Gold: --\nWood: --\nOre: --\nFood: --"
|
||||
var gold_tick_anchor_unix := 0.0
|
||||
var gold_tick_seconds := 60.0
|
||||
var train_button: Button
|
||||
@@ -53,6 +53,7 @@ var active_training_label := "Training"
|
||||
var claim_button: Button
|
||||
var build_log_camp_button: Button
|
||||
var build_mine_button: Button
|
||||
var build_farm_button: Button
|
||||
var build_barracks_button: Button
|
||||
var unit_action_popup: PopupPanel
|
||||
var unit_action_move_button: Button
|
||||
@@ -61,6 +62,7 @@ var selected_r := 0
|
||||
var selected_can_claim := false
|
||||
var selected_can_build_log_camp := false
|
||||
var selected_can_build_mine := false
|
||||
var selected_can_build_farm := false
|
||||
var selected_can_build_barracks := false
|
||||
var selected_can_train_archer := false
|
||||
var selected_is_home := false
|
||||
@@ -236,6 +238,11 @@ func _build_ui() -> void:
|
||||
build_mine_button.pressed.connect(_build_mine)
|
||||
action_buttons.add_child(build_mine_button)
|
||||
|
||||
build_farm_button = _small_button("Build Farm")
|
||||
build_farm_button.visible = false
|
||||
build_farm_button.pressed.connect(_build_farm)
|
||||
action_buttons.add_child(build_farm_button)
|
||||
|
||||
build_barracks_button = _small_button("Build Barracks")
|
||||
build_barracks_button.visible = false
|
||||
build_barracks_button.pressed.connect(_build_barracks)
|
||||
@@ -455,6 +462,7 @@ func _on_tile_selected(q: int, r: int, terrain: String) -> void:
|
||||
selected_is_home = _selected_tile_is_home()
|
||||
selected_can_build_log_camp = _can_build_log_camp_on_selected_tile()
|
||||
selected_can_build_mine = _can_build_mine_on_selected_tile()
|
||||
selected_can_build_farm = _can_build_farm_on_selected_tile()
|
||||
selected_can_build_barracks = _can_build_barracks_on_selected_tile()
|
||||
selected_can_train_archer = _selected_tile_has_built_barracks()
|
||||
_update_action_buttons()
|
||||
@@ -532,6 +540,10 @@ func _can_build_mine_on_selected_tile() -> bool:
|
||||
return _can_build_on_selected_tile("Ore")
|
||||
|
||||
|
||||
func _can_build_farm_on_selected_tile() -> bool:
|
||||
return _can_build_on_selected_tile("Field")
|
||||
|
||||
|
||||
func _can_build_barracks_on_selected_tile() -> bool:
|
||||
if not _can_build_on_selected_tile(""):
|
||||
return false
|
||||
@@ -577,6 +589,9 @@ func _update_action_buttons() -> void:
|
||||
if build_mine_button:
|
||||
build_mine_button.visible = selected_can_build_mine
|
||||
build_mine_button.disabled = false
|
||||
if build_farm_button:
|
||||
build_farm_button.visible = selected_can_build_farm
|
||||
build_farm_button.disabled = false
|
||||
if build_barracks_button:
|
||||
build_barracks_button.visible = selected_can_build_barracks
|
||||
build_barracks_button.disabled = false
|
||||
@@ -832,7 +847,7 @@ func _refresh_player_state() -> void:
|
||||
func _load_resources() -> void:
|
||||
var access_token: String = str(session.get("accessToken", ""))
|
||||
if access_token.is_empty():
|
||||
resource_text = "Gold: --\nWood: --\nOre: --"
|
||||
resource_text = "Gold: --\nWood: --\nOre: --\nFood: --"
|
||||
gold_label.text = resource_text
|
||||
return
|
||||
|
||||
@@ -873,7 +888,10 @@ func _on_resources_request_completed(result: int, response_code: int, _headers:
|
||||
var ore: int = int(resources.get("ore", 0))
|
||||
var ore_per_minute: int = int(resources.get("orePerMinute", 0))
|
||||
var ore_capacity: int = int(resources.get("oreCapacity", 100))
|
||||
resource_text = "Gold: %d/%d (+%d/min)\nWood: %d/%d (+%d/min)\nOre: %d/%d (+%d/min)" % [
|
||||
var food: int = int(resources.get("food", 0))
|
||||
var food_per_minute: int = int(resources.get("foodPerMinute", 0))
|
||||
var food_capacity: int = int(resources.get("foodCapacity", 100))
|
||||
resource_text = "Gold: %d/%d (+%d/min)\nWood: %d/%d (+%d/min)\nOre: %d/%d (+%d/min)\nFood: %d/%d (+%d/min)" % [
|
||||
gold,
|
||||
gold_capacity,
|
||||
gold_per_minute,
|
||||
@@ -882,7 +900,10 @@ func _on_resources_request_completed(result: int, response_code: int, _headers:
|
||||
wood_per_minute,
|
||||
ore,
|
||||
ore_capacity,
|
||||
ore_per_minute
|
||||
ore_per_minute,
|
||||
food,
|
||||
food_capacity,
|
||||
food_per_minute
|
||||
]
|
||||
gold_label.text = resource_text
|
||||
|
||||
@@ -1156,6 +1177,14 @@ func _build_mine() -> void:
|
||||
_request_building("Mine")
|
||||
|
||||
|
||||
func _build_farm() -> void:
|
||||
if not selected_can_build_farm:
|
||||
coordinate_label.text = "Select controlled Field territory without a building."
|
||||
return
|
||||
|
||||
_request_building("Farm")
|
||||
|
||||
|
||||
func _build_barracks() -> void:
|
||||
if not selected_can_build_barracks:
|
||||
coordinate_label.text = "Select controlled territory without a building."
|
||||
@@ -1176,6 +1205,8 @@ func _request_building(building_type: String) -> void:
|
||||
match building_type:
|
||||
"Mine":
|
||||
build_mine_button.disabled = true
|
||||
"Farm":
|
||||
build_farm_button.disabled = true
|
||||
"Barracks":
|
||||
build_barracks_button.disabled = true
|
||||
_:
|
||||
@@ -1348,6 +1379,8 @@ func _building_display_name(building_type: String) -> String:
|
||||
return "Log Camp"
|
||||
"Mine":
|
||||
return "Mine"
|
||||
"Farm":
|
||||
return "Farm"
|
||||
"Barracks":
|
||||
return "Barracks"
|
||||
_:
|
||||
|
||||
@@ -184,6 +184,8 @@ func _draw_tile(tile: Dictionary) -> void:
|
||||
_draw_log_camp_marker(center, height)
|
||||
elif building_type == "Mine" and (building_status == "Built" or building_status.is_empty()):
|
||||
_draw_mine_marker(center, height)
|
||||
elif building_type == "Farm" and (building_status == "Built" or building_status.is_empty()):
|
||||
_draw_farm_marker(center, height)
|
||||
elif building_type == "Barracks" and (building_status == "Built" or building_status.is_empty()):
|
||||
_draw_barracks_marker(center, height)
|
||||
elif not building_type.is_empty():
|
||||
@@ -356,6 +358,33 @@ func _draw_mine_marker(center: Vector2, height: float) -> void:
|
||||
draw_circle(marker_center + Vector2(width * 0.34, -marker_height * 0.1), 2.0 * zoom, ore_color)
|
||||
|
||||
|
||||
func _draw_farm_marker(center: Vector2, height: float) -> void:
|
||||
var marker_center: Vector2 = center + Vector2(0, -height * zoom - 2.0)
|
||||
var width: float = 22.0 * zoom
|
||||
var crop_color := Color(0.76, 0.67, 0.28)
|
||||
var soil_color := Color(0.34, 0.22, 0.12)
|
||||
var fence_color := Color(0.70, 0.52, 0.30)
|
||||
var shadow_color := Color(0.08, 0.06, 0.04)
|
||||
|
||||
var plot := PackedVector2Array([
|
||||
marker_center + Vector2(-width * 0.55, width * 0.18),
|
||||
marker_center + Vector2(-width * 0.18, -width * 0.24),
|
||||
marker_center + Vector2(width * 0.55, -width * 0.03),
|
||||
marker_center + Vector2(width * 0.18, width * 0.34)
|
||||
])
|
||||
draw_colored_polygon(plot, soil_color)
|
||||
draw_polyline(_closed_points(plot), fence_color, 1.5 * zoom)
|
||||
for offset in [-0.28, 0.0, 0.28]:
|
||||
draw_line(
|
||||
marker_center + Vector2((-0.36 + offset) * width, width * 0.13),
|
||||
marker_center + Vector2((-0.08 + offset) * width, -width * 0.16),
|
||||
crop_color,
|
||||
1.8 * zoom
|
||||
)
|
||||
draw_circle(marker_center + Vector2(width * 0.26, -width * 0.16), 2.2 * zoom, crop_color.lightened(0.18))
|
||||
draw_line(marker_center + Vector2(-width * 0.52, width * 0.25), marker_center + Vector2(width * 0.5, width * 0.0), shadow_color, 1.0 * zoom)
|
||||
|
||||
|
||||
func _draw_barracks_marker(center: Vector2, height: float) -> void:
|
||||
var marker_center: Vector2 = center + Vector2(0, -height * zoom - 3.0)
|
||||
var width: float = 22.0 * zoom
|
||||
@@ -667,6 +696,8 @@ func _tile_display_label(key: String, data: Dictionary) -> String:
|
||||
building_label = " | Log Camp" if building_status == "Built" or building_status.is_empty() else " | Log Camp building"
|
||||
elif building_type == "Mine":
|
||||
building_label = " | Mine" if building_status == "Built" or building_status.is_empty() else " | Mine building"
|
||||
elif building_type == "Farm":
|
||||
building_label = " | Farm" if building_status == "Built" or building_status.is_empty() else " | Farm building"
|
||||
elif building_type == "Barracks":
|
||||
building_label = " | Barracks" if building_status == "Built" or building_status.is_empty() else " | Barracks building"
|
||||
var archer_count := _archer_count_at(int(data.get("q", 0)), int(data.get("r", 0)))
|
||||
|
||||
Reference in New Issue
Block a user