diff --git a/locale/en_AU.mo b/locale/en_AU.mo deleted file mode 100644 index 92e7316..0000000 Binary files a/locale/en_AU.mo and /dev/null differ diff --git a/locale/en_AU.po b/locale/en_AU.po index 3582474..f578fa0 100644 --- a/locale/en_AU.po +++ b/locale/en_AU.po @@ -64,8 +64,11 @@ msgstr[1] "Received {quantity} {item}." msgid "quest.test_quest.title" msgstr "Test Quest" -msgid "quest.test_quest.objective_onion.title" -msgstr "Savenge an Onion" +msgid "quest.test_quest.onion.title" +msgstr "Scavenge Onions" + +msgid "quest.test_quest.onion.description" +msgstr "Find and collect {quantity} {item} and bring them back to {npc}." # # ITEMS diff --git a/project.godot b/project.godot index 928243a..0417f43 100644 --- a/project.godot +++ b/project.godot @@ -116,7 +116,7 @@ run={ [internationalization] -locale/translations=PackedStringArray("res://locale/en_AU.mo") +locale/translations=PackedStringArray("res://locale/en_AU.po") locale/language_filter=["ja"] locale/country_filter=["JP"] diff --git a/scenes/Singletons/Quest.tscn b/scenes/Singletons/Quest.tscn index 3869432..a0b6347 100644 --- a/scenes/Singletons/Quest.tscn +++ b/scenes/Singletons/Quest.tscn @@ -17,5 +17,9 @@ metadata/_custom_type_script = "uid://dn0kxbe85n40f" [node name="Find Onion" type="Node" parent="Quests/Test Quest"] script = ExtResource("3_l8p7p") -title = "quest.test_quest.objective_onion.title" +title = "quest.test_quest.onion.title" +description = "quest.test_quest.onion.description" +objectiveType = null +itemType = 2 +quantity = 2 metadata/_custom_type_script = "uid://de1ao4huhy0hm" diff --git a/scenes/UI/QuestMenu.tscn b/scenes/UI/QuestMenu.tscn index 0f227d9..0e5a59d 100644 --- a/scenes/UI/QuestMenu.tscn +++ b/scenes/UI/QuestMenu.tscn @@ -81,3 +81,4 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 1 text = "Quest Objective Information" +autowrap_mode = 2 diff --git a/scripts/Quest/Quest.gd b/scripts/Quest/Quest.gd index b068831..fc1f63d 100644 --- a/scripts/Quest/Quest.gd +++ b/scripts/Quest/Quest.gd @@ -1,6 +1,6 @@ class_name Quest extends Node -@export var title:String = "" +@export_multiline var title:String = "" @export var questKey:QuestSystem.QuestKey = QuestSystem.QuestKey.TEST_QUEST var questStarted:bool = false @@ -28,4 +28,8 @@ func isStarted() -> bool: return questStarted func objectiveUpdated(objective:QuestObjective) -> void: - QUEST.questUpdated.emit(self) \ No newline at end of file + QUEST.questUpdated.emit(self) + +func getLocaleData() -> Dictionary[String, String]: + var dict: Dictionary[String, String] = {} + return dict diff --git a/scripts/Quest/QuestObjective.gd b/scripts/Quest/QuestObjective.gd index bb6a50e..d708d07 100644 --- a/scripts/Quest/QuestObjective.gd +++ b/scripts/Quest/QuestObjective.gd @@ -4,7 +4,8 @@ enum Type { Item, } -@export var title:String = "" +@export_multiline var title:String = "" +@export_multiline var description:String = "" @export var objectiveType:Type = Type.Item @export var itemType:Item.Type = Item.Type.POTION @@ -38,3 +39,9 @@ func _onPlayerInventoryUpdated() -> void: func isCompleted() -> bool: return completed + +func getLocaleData() -> Dictionary[String, String]: + var dict:Dictionary[String, String] = {} + dict.item = ITEM.getItemName(itemType, quantity) + dict.quantity = LOCALE.formatInteger(quantity) + return dict diff --git a/scripts/Singleton/Locale.gd b/scripts/Singleton/Locale.gd index 5c6bda8..3629b57 100644 --- a/scripts/Singleton/Locale.gd +++ b/scripts/Singleton/Locale.gd @@ -104,3 +104,6 @@ func setLocale(language:Language, region:Region) -> void: TranslationServer.set_locale(l) localeChanged.emit(l) print("Locale set to: " + l) + +func formatInteger(integer:int) -> String: + return TextServerManager.get_primary_interface().format_number(str(integer)) diff --git a/scripts/UI/QuestMenu.gd b/scripts/UI/QuestMenu.gd index b5dfd0b..90de31c 100644 --- a/scripts/UI/QuestMenu.gd +++ b/scripts/UI/QuestMenu.gd @@ -61,8 +61,11 @@ func setQuestObjective(objective = null): var quest = QUEST.quests[currentQuestKey]; var questObjective = quest.objectives[objective] questObjectiveList.select(objective) - - questObjectiveInfo.text = questObjective.title + "\n" + + # Setup Description + var data = quest.getLocaleData() + data.merge(questObjective.getLocaleData()) + questObjectiveInfo.text = tr(questObjective.description).format(data) func open(questKey = null) -> void: @@ -77,19 +80,13 @@ func close() -> void: func isOpen() -> bool: return self.visible - # Private methods func _updateQuestList(): questList.clear() questList.deselect_all() for questKey in QUEST.quests: var q = QUEST.quests[questKey] - var n = q.title; - if q.isCompleted(): - n += " (Complete)" - elif q.isStarted(): - n += " (Started)" - questList.add_item(n) + questList.add_item(q.title) # Event handlers