feat: add player resource node harvesting
This commit is contained in:
@@ -208,24 +208,40 @@ func notify_npc_navigation_failed(npc_id: int) -> void:
|
||||
func notify_npc_target_unavailable(npc_id: int) -> void:
|
||||
notify_npc_navigation_failed(npc_id)
|
||||
|
||||
func harvest_resource_node(node: ResourceNode) -> float:
|
||||
if node == null or not node.can_player_use:
|
||||
return 0.0
|
||||
|
||||
var extracted := node.extract()
|
||||
if extracted <= 0.0:
|
||||
return 0.0
|
||||
|
||||
village.apply_resource_delta(node.resource_id, extracted)
|
||||
village_changed.emit(village)
|
||||
|
||||
if DEBUG_LOGS:
|
||||
print("[SimulationManager] Player extracted ", extracted, " ", node.resource_id, " from ", node.node_id)
|
||||
|
||||
return extracted
|
||||
|
||||
func eat_food(amount: float) -> void:
|
||||
village.food -= amount
|
||||
village.apply_resource_delta(&"food", -amount)
|
||||
village_changed.emit(village)
|
||||
|
||||
func add_food(amount: float) -> void:
|
||||
village.food += amount
|
||||
village.apply_resource_delta(&"food", amount)
|
||||
village_changed.emit(village)
|
||||
|
||||
func add_wood(amount: float) -> void:
|
||||
village.wood += amount
|
||||
village.apply_resource_delta(&"wood", amount)
|
||||
village_changed.emit(village)
|
||||
|
||||
func add_safety(amount: float) -> void:
|
||||
village.safety = clamp(village.safety + amount, 0.0, 100.0)
|
||||
village.apply_resource_delta(&"safety", amount)
|
||||
village_changed.emit(village)
|
||||
|
||||
func add_knowledge(amount: float) -> void:
|
||||
village.knowledge += amount
|
||||
village.apply_resource_delta(&"knowledge", amount)
|
||||
village_changed.emit(village)
|
||||
|
||||
func get_starving_count() -> int:
|
||||
|
||||
Reference in New Issue
Block a user