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:
+14
-1
@@ -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
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user