diff --git a/scripts/resources/dialogue/branching_resource.gd b/scripts/resources/dialogue/branching_resource.gd new file mode 100644 index 0000000..a60dc62 --- /dev/null +++ b/scripts/resources/dialogue/branching_resource.gd @@ -0,0 +1,7 @@ +@tool +extends Resource + +class_name BranchingResource + +func get_next() -> Variant: + return null diff --git a/scripts/resources/dialogue/branching_resource.gd.uid b/scripts/resources/dialogue/branching_resource.gd.uid new file mode 100644 index 0000000..960c69f --- /dev/null +++ b/scripts/resources/dialogue/branching_resource.gd.uid @@ -0,0 +1 @@ +uid://bit3qw47h3q5c diff --git a/scripts/resources/dialogue/dialogue.gd b/scripts/resources/dialogue/dialogue.gd new file mode 100644 index 0000000..0f799ee --- /dev/null +++ b/scripts/resources/dialogue/dialogue.gd @@ -0,0 +1,32 @@ +@tool +extends BranchingResource + +## Ресурс для диалога. + +class_name Dialogue + +## Энум триггера для сюжета. Пример: опция "я ненавижу тебя", очевидно, должна +## заставить отношение персонажа ухудшится. +## TODO: Дополнять по возможности +enum TriggerType +{ + NONE = 0, + CHAT_END = 1, + REPUTATION = 2 +} + +## Уникальный идентификатор диалоговой опции +@export var id : StringName +## TODO: Заменить инт на класс/энум персонажа +@export var person : int +## Ключ в таблице локализаций +@export var text_key : StringName +## Следующий BranchingResource +@export var next_branch : BranchingResource +## Тип триггера, если есть +@export var trigger_type : TriggerType = TriggerType.NONE +## Опционально: данные для триггера. Чтобы узнать, какие ключи требуются, см. TriggerType +@export var trigger_data : Dictionary + +func get_next() -> Variant: + return next_branch diff --git a/scripts/resources/dialogue/dialogue.gd.uid b/scripts/resources/dialogue/dialogue.gd.uid new file mode 100644 index 0000000..4092701 --- /dev/null +++ b/scripts/resources/dialogue/dialogue.gd.uid @@ -0,0 +1 @@ +uid://bijvyonpnv4mp diff --git a/scripts/resources/dialogue/multi_option.gd b/scripts/resources/dialogue/multi_option.gd new file mode 100644 index 0000000..a2363ca --- /dev/null +++ b/scripts/resources/dialogue/multi_option.gd @@ -0,0 +1,9 @@ +@tool +extends BranchingResource + +class_name MultiOption + +@export var options : Array[BranchingResource] + +func get_next() -> Variant: + return options diff --git a/scripts/resources/dialogue/multi_option.gd.uid b/scripts/resources/dialogue/multi_option.gd.uid new file mode 100644 index 0000000..b6cae4b --- /dev/null +++ b/scripts/resources/dialogue/multi_option.gd.uid @@ -0,0 +1 @@ +uid://dwr4x3a1gnkt1 diff --git a/scripts/resources/dialogue/multi_trigger.gd b/scripts/resources/dialogue/multi_trigger.gd new file mode 100644 index 0000000..eb3badd --- /dev/null +++ b/scripts/resources/dialogue/multi_trigger.gd @@ -0,0 +1,8 @@ +@tool + +extends BranchingResource + +class_name MultiTrigger + +@export var triggers : Array[Dialogue.TriggerType] +@export var trigger_data : Array[Dictionary] diff --git a/scripts/resources/dialogue/multi_trigger.gd.uid b/scripts/resources/dialogue/multi_trigger.gd.uid new file mode 100644 index 0000000..17fb67e --- /dev/null +++ b/scripts/resources/dialogue/multi_trigger.gd.uid @@ -0,0 +1 @@ +uid://i84xirdqv5e1