feat: surface player routes for village needs

This commit is contained in:
Rijad Zuzo
2026-07-16 12:36:50 +02:00
parent d6e6a63048
commit 4f88d15e12
15 changed files with 417 additions and 47 deletions
+14 -16
View File
@@ -782,24 +782,14 @@ func get_relationship_cause(relationship: RelationshipStateRecord) -> EconomicEv
func get_known_events(npc_id: int, max_count: int = 3) -> Array[EconomicEventRecord]:
var known: Array[EconomicEventRecord] = []
for event_id in event_knowledge_system.get_known_event_ids(npc_id, max_count):
var event := event_log.get_by_id(event_id)
if event != null:
known.append(event)
return known
return event_log.get_by_ids(event_knowledge_system.get_known_event_ids(npc_id, max_count))
func get_retained_memory_events(npc_id: int, max_count: int = 4) -> Array[EconomicEventRecord]:
var retained: Array[EconomicEventRecord] = []
var event_ids := event_knowledge_system.get_retained_event_ids(
npc_id, _get_lasting_event_ids(npc_id), max_count
)
for event_id in event_ids:
var event := event_log.get_by_id(event_id)
if event != null:
retained.append(event)
return retained
return event_log.get_by_ids(event_ids)
func get_active_opportunity() -> OpportunityStateRecord:
@@ -820,18 +810,26 @@ func get_active_opportunity_helper() -> OpportunityHelperResult:
)
func get_active_opportunity_player_response() -> OpportunityPlayerResponseResult:
var active := get_active_opportunity()
if active == null:
return null
var helper := get_active_opportunity_helper()
return opportunity_system.find_player_response(
active, economy.get_storage(active.get_target_id()), resource_states, helper != null
)
func get_latest_opportunity_for_npc(npc_id: int) -> OpportunityStateRecord:
return opportunity_system.get_latest_for_npc(npc_id)
func get_opportunity_trigger_event(opportunity: OpportunityStateRecord) -> EconomicEventRecord:
var event_id := opportunity.get_trigger_event_id() if opportunity != null else -1
return event_log.get_by_id(event_id)
return event_log.get_by_id(opportunity.get_trigger_event_id() if opportunity != null else -1)
func get_opportunity_resolution_event(opportunity: OpportunityStateRecord) -> EconomicEventRecord:
var event_id := opportunity.get_resolution_event_id() if opportunity != null else -1
return event_log.get_by_id(event_id)
return event_log.get_by_id(opportunity.get_resolution_event_id() if opportunity != null else -1)
func npc_knows_event(npc_id: int, event_id: int) -> bool: