feat: resource depletion events and village event feed

Record resource_depleted narrative events when NPC or player extraction exhausts a ResourceNode. Add get_recent_events() for cross-NPC event queries. Village panel now shows the last 3 village-wide events as a readable feed below the resource counters, making shortages and depletion visible without opening the inspector.
This commit is contained in:
2026-07-08 21:22:43 +02:00
parent 8a1913c5ae
commit 8094975094
2 changed files with 32 additions and 1 deletions
+14 -1
View File
@@ -52,6 +52,17 @@ func _unhandled_key_input(event: InputEvent) -> void:
func _on_village_changed(village: SimVillage) -> void:
var name_map := {}
for npc in simulation_manager.npcs:
name_map[npc.id] = npc.npc_name
var event_lines: Array[String] = []
for event in simulation_manager.get_recent_events(3):
event_lines.append(event.description(name_map))
var event_text := "\n".join(event_lines)
if event_text.is_empty():
event_text = ""
else:
event_text = "\n" + event_text
village_stats_label.text = (
"""
Village
@@ -65,6 +76,7 @@ func _on_village_changed(village: SimVillage) -> void:
Food Mod: %.2f
Safety Mod: %.2f
Knowledge Mod: %.2f
%s
"""
% [
round(village.food),
@@ -74,7 +86,8 @@ func _on_village_changed(village: SimVillage) -> void:
simulation_manager.get_starving_count(),
village.food_modifier,
village.safety_modifier,
village.knowledge_modifier
village.knowledge_modifier,
event_text
]
)