feat: generate animal-care quests and render them in the journal

This commit is contained in:
2026-08-08 20:27:59 +02:00
parent 089fef9968
commit 6cdeea6e46
8 changed files with 314 additions and 38 deletions
+22
View File
@@ -77,6 +77,19 @@ func _refresh() -> void:
if quest == null:
quest_kicker.text = ""
quest_label.text = ""
elif quest.has_animal_target():
var requester_name := _get_npc_name(quest.get_requester_npc_id())
var animal_name := _get_animal_name(quest.get_animal_id())
quest_kicker.text = "ACTIVE QUEST"
quest_label.text = (
"%s · bring %.0f %s to %s"
% [
requester_name,
quest.get_target_amount(),
String(quest.get_resource_id()).replace("_", " "),
animal_name,
]
)
else:
var requester_name := _get_npc_name(quest.get_requester_npc_id())
quest_kicker.text = "ACTIVE QUEST"
@@ -141,3 +154,12 @@ func _get_npc_name(npc_id: int) -> String:
if npc.id == npc_id:
return npc.npc_name
return "Someone"
func _get_animal_name(animal_id: StringName) -> String:
if (
simulation_manager.has_method("get_animal_display_name")
and simulation_manager.get_animal_display_name(animal_id) != ""
):
return simulation_manager.get_animal_display_name(animal_id)
return String(animal_id).replace("_", " ").capitalize()