Stuff
@@ -9,3 +9,11 @@ res://sounds/ui_menu_button_confirm_01.wav
|
|||||||
****************************************************************************************************
|
****************************************************************************************************
|
||||||
res://sounds/No Button.wav
|
res://sounds/No Button.wav
|
||||||
res://sounds/achievment_01.wav
|
res://sounds/achievment_01.wav
|
||||||
|
res://sounds/Door Hinge Creaking Door.wav
|
||||||
|
|
||||||
|
|
||||||
|
****************************************************************************************************
|
||||||
|
** Sonniss **
|
||||||
|
****************************************************************************************************
|
||||||
|
3maze - res://sounds/owl_notification_005.wav
|
||||||
|
SmartSoundFX - res://sounds/ORGANIC Paper Book Page Turn Short 02.wav
|
||||||
|
|||||||
@@ -149,6 +149,9 @@ var VAR := preload("res://addons/dialogic/Modules/Variable/subsystem_variables.g
|
|||||||
var Voice := preload("res://addons/dialogic/Modules/Voice/subsystem_voice.gd").new():
|
var Voice := preload("res://addons/dialogic/Modules/Voice/subsystem_voice.gd").new():
|
||||||
get: return get_subsystem("Voice")
|
get: return get_subsystem("Voice")
|
||||||
|
|
||||||
|
var Visual := preload("res://addons/dialogic/Modules/Visual/subsystem_visual.gd").new():
|
||||||
|
get: return get_subsystem("Visual")
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -264,4 +264,3 @@ func _on_value_1_variable_value_changed(property_name: Variant, value: Variant)
|
|||||||
%Value2Type.index_pressed(1)
|
%Value2Type.index_pressed(1)
|
||||||
|
|
||||||
something_changed()
|
something_changed()
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=9 format=3 uid="uid://kdpp3mibml33"]
|
[gd_scene load_steps=9 format=3 uid="uid://kdpp3mibml33"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://addons/dialogic/Editor/Events/Fields/field_number.gd" id="1_0jdnn"]
|
[ext_resource type="Script" uid="uid://deg8fblljuxmf" path="res://addons/dialogic/Editor/Events/Fields/field_number.gd" id="1_0jdnn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dh1ycbmw8anqh" path="res://addons/dialogic/Editor/Images/Interactable/increment_icon.svg" id="3_v5cne"]
|
[ext_resource type="Texture2D" uid="uid://dh1ycbmw8anqh" path="res://addons/dialogic/Editor/Images/Interactable/increment_icon.svg" id="3_v5cne"]
|
||||||
[ext_resource type="Texture2D" uid="uid://brjikovneb63n" path="res://addons/dialogic/Editor/Images/Interactable/decrement_icon.svg" id="4_ph52o"]
|
[ext_resource type="Texture2D" uid="uid://brjikovneb63n" path="res://addons/dialogic/Editor/Images/Interactable/decrement_icon.svg" id="4_ph52o"]
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ bg_color = Color(0.94, 0.94, 0.94, 0)
|
|||||||
border_color = Color(0, 0, 0, 0)
|
border_color = Color(0, 0, 0, 0)
|
||||||
|
|
||||||
[node name="Field_Number" type="HBoxContainer"]
|
[node name="Field_Number" type="HBoxContainer"]
|
||||||
anchors_preset = 15
|
anchors_preset = -1
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_right = -1102.0
|
offset_right = -1102.0
|
||||||
@@ -60,8 +60,8 @@ size_flags_vertical = 4
|
|||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
mouse_default_cursor_shape = 1
|
mouse_default_cursor_shape = 1
|
||||||
theme_override_colors/default_color = Color(0.54099, 0.540991, 0.54099, 1)
|
theme_override_colors/default_color = Color(0.54099, 0.540991, 0.54099, 1)
|
||||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_sj3oj")
|
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_sj3oj")
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_sj3oj")
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_sj3oj")
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
fit_content = true
|
fit_content = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@@ -78,8 +78,8 @@ size_flags_horizontal = 3
|
|||||||
focus_mode = 1
|
focus_mode = 1
|
||||||
theme_override_constants/minimum_character_width = 0
|
theme_override_constants/minimum_character_width = 0
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_8yqsu")
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_8yqsu")
|
||||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_8yqsu")
|
|
||||||
theme_override_styles/read_only = SubResource("StyleBoxEmpty_8yqsu")
|
theme_override_styles/read_only = SubResource("StyleBoxEmpty_8yqsu")
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_8yqsu")
|
||||||
text = "0"
|
text = "0"
|
||||||
alignment = 1
|
alignment = 1
|
||||||
expand_to_text_length = true
|
expand_to_text_length = true
|
||||||
@@ -95,8 +95,8 @@ size_flags_horizontal = 8
|
|||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
mouse_default_cursor_shape = 1
|
mouse_default_cursor_shape = 1
|
||||||
theme_override_colors/default_color = Color(0.435192, 0.435192, 0.435192, 1)
|
theme_override_colors/default_color = Color(0.435192, 0.435192, 0.435192, 1)
|
||||||
theme_override_styles/focus = SubResource("StyleBoxEmpty_smq50")
|
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_smq50")
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_smq50")
|
||||||
|
theme_override_styles/focus = SubResource("StyleBoxEmpty_smq50")
|
||||||
bbcode_enabled = true
|
bbcode_enabled = true
|
||||||
fit_content = true
|
fit_content = true
|
||||||
scroll_active = false
|
scroll_active = false
|
||||||
@@ -113,17 +113,17 @@ theme_override_constants/separation = 0
|
|||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Increment" type="Button" parent="Value_Panel/Layout/Spin"]
|
[node name="Increment" type="Button" parent="Value_Panel/Layout/Spin"]
|
||||||
|
auto_translate_mode = 2
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
auto_translate = false
|
|
||||||
focus_neighbor_left = NodePath("../../Value")
|
focus_neighbor_left = NodePath("../../Value")
|
||||||
focus_neighbor_top = NodePath(".")
|
focus_neighbor_top = NodePath(".")
|
||||||
focus_neighbor_bottom = NodePath("../Decrement")
|
focus_neighbor_bottom = NodePath("../Decrement")
|
||||||
theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
|
|
||||||
theme_override_colors/icon_focus_color = Color(0.412738, 0.550094, 0.760917, 1)
|
theme_override_colors/icon_focus_color = Color(0.412738, 0.550094, 0.760917, 1)
|
||||||
|
theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
|
||||||
theme_override_styles/normal = SubResource("StyleBoxFlat_increment")
|
theme_override_styles/normal = SubResource("StyleBoxFlat_increment")
|
||||||
theme_override_styles/hover = SubResource("StyleBoxFlat_increment")
|
|
||||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_increment")
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_increment")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_increment")
|
||||||
theme_override_styles/disabled = SubResource("StyleBoxFlat_increment")
|
theme_override_styles/disabled = SubResource("StyleBoxFlat_increment")
|
||||||
theme_override_styles/focus = SubResource("StyleBoxFlat_increment")
|
theme_override_styles/focus = SubResource("StyleBoxFlat_increment")
|
||||||
icon = ExtResource("3_v5cne")
|
icon = ExtResource("3_v5cne")
|
||||||
@@ -131,17 +131,17 @@ flat = true
|
|||||||
vertical_icon_alignment = 2
|
vertical_icon_alignment = 2
|
||||||
|
|
||||||
[node name="Decrement" type="Button" parent="Value_Panel/Layout/Spin"]
|
[node name="Decrement" type="Button" parent="Value_Panel/Layout/Spin"]
|
||||||
|
auto_translate_mode = 2
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 3
|
size_flags_vertical = 3
|
||||||
auto_translate = false
|
|
||||||
focus_neighbor_left = NodePath("../../Value")
|
focus_neighbor_left = NodePath("../../Value")
|
||||||
focus_neighbor_top = NodePath("../Increment")
|
focus_neighbor_top = NodePath("../Increment")
|
||||||
focus_neighbor_bottom = NodePath(".")
|
focus_neighbor_bottom = NodePath(".")
|
||||||
theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
|
|
||||||
theme_override_colors/icon_focus_color = Color(0.412738, 0.550094, 0.760917, 1)
|
theme_override_colors/icon_focus_color = Color(0.412738, 0.550094, 0.760917, 1)
|
||||||
|
theme_override_colors/icon_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
|
||||||
theme_override_styles/normal = SubResource("StyleBoxFlat_decrement")
|
theme_override_styles/normal = SubResource("StyleBoxFlat_decrement")
|
||||||
theme_override_styles/hover = SubResource("StyleBoxFlat_decrement")
|
|
||||||
theme_override_styles/pressed = SubResource("StyleBoxFlat_decrement")
|
theme_override_styles/pressed = SubResource("StyleBoxFlat_decrement")
|
||||||
|
theme_override_styles/hover = SubResource("StyleBoxFlat_decrement")
|
||||||
theme_override_styles/disabled = SubResource("StyleBoxFlat_decrement")
|
theme_override_styles/disabled = SubResource("StyleBoxFlat_decrement")
|
||||||
theme_override_styles/focus = SubResource("StyleBoxFlat_decrement")
|
theme_override_styles/focus = SubResource("StyleBoxFlat_decrement")
|
||||||
icon = ExtResource("4_ph52o")
|
icon = ExtResource("4_ph52o")
|
||||||
|
|||||||
@@ -235,5 +235,3 @@ func _on_search_up_pressed() -> void:
|
|||||||
get_current_editor()._search_navigate_up()
|
get_current_editor()._search_navigate_up()
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
156
addons/dialogic/Modules/Visual/event_visual.gd
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
@tool
|
||||||
|
class_name DialogicVisualEvent
|
||||||
|
extends DialogicEvent
|
||||||
|
|
||||||
|
## Event to show pictures in the foreground and switch between them.
|
||||||
|
|
||||||
|
### Settings
|
||||||
|
|
||||||
|
## The scene to use. If empty, this will default to the DefaultVisual.gd scene.
|
||||||
|
## This scene supports images and fading.
|
||||||
|
## If you set it to a scene path, then that scene will be instanced.
|
||||||
|
## Learn more about custom visuals in the Subsystem_Visual.gd docs.
|
||||||
|
var scene := ""
|
||||||
|
## The argument that is passed to the visual scene.
|
||||||
|
## For the default scene it's the path to the image to show.
|
||||||
|
var argument := ""
|
||||||
|
## The time the fade animation will take. Leave at 0 for instant change.
|
||||||
|
var fade: float = 0.0
|
||||||
|
## Name of the transition to use.
|
||||||
|
var transition := ""
|
||||||
|
|
||||||
|
## Helpers for visual editor
|
||||||
|
enum ArgumentTypes {IMAGE, CUSTOM}
|
||||||
|
var _arg_type := ArgumentTypes.IMAGE :
|
||||||
|
get:
|
||||||
|
if argument.begins_with("res://"):
|
||||||
|
return ArgumentTypes.IMAGE
|
||||||
|
else:
|
||||||
|
return _arg_type
|
||||||
|
set(value):
|
||||||
|
if value == ArgumentTypes.CUSTOM:
|
||||||
|
if argument.begins_with("res://"):
|
||||||
|
argument = " "+argument
|
||||||
|
_arg_type = value
|
||||||
|
|
||||||
|
enum SceneTypes {DEFAULT, CUSTOM}
|
||||||
|
var _scene_type := SceneTypes.DEFAULT :
|
||||||
|
get:
|
||||||
|
if scene.is_empty():
|
||||||
|
return _scene_type
|
||||||
|
else:
|
||||||
|
return SceneTypes.CUSTOM
|
||||||
|
set(value):
|
||||||
|
if value == SceneTypes.DEFAULT:
|
||||||
|
scene = ""
|
||||||
|
_scene_type = value
|
||||||
|
|
||||||
|
#region EXECUTION
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
func _execute() -> void:
|
||||||
|
var final_fade_duration := fade
|
||||||
|
|
||||||
|
if dialogic.Inputs.auto_skip.enabled:
|
||||||
|
var time_per_event: float = dialogic.Inputs.auto_skip.time_per_event
|
||||||
|
final_fade_duration = min(fade, time_per_event)
|
||||||
|
|
||||||
|
dialogic.Visual.update_visual(scene, argument, final_fade_duration, transition)
|
||||||
|
|
||||||
|
finish()
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region INITIALIZE
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
event_name = "Visual"
|
||||||
|
set_default_color('Color8')
|
||||||
|
event_category = "Visuals"
|
||||||
|
event_sorting_index = 2
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region SAVE & LOAD
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
func get_shortcode() -> String:
|
||||||
|
return "visual"
|
||||||
|
|
||||||
|
|
||||||
|
func get_shortcode_parameters() -> Dictionary:
|
||||||
|
return {
|
||||||
|
#param_name : property_info
|
||||||
|
"scene" : {"property": "scene", "default": ""},
|
||||||
|
"arg" : {"property": "argument", "default": ""},
|
||||||
|
"fade" : {"property": "fade", "default": 0},
|
||||||
|
"transition" : {"property": "transition", "default": "",
|
||||||
|
"suggestions": get_transition_suggestions},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region EDITOR REPRESENTATION
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
func build_event_editor() -> void:
|
||||||
|
add_header_edit('_scene_type', ValueType.FIXED_OPTIONS, {
|
||||||
|
'left_text' :'Show',
|
||||||
|
'options': [
|
||||||
|
{
|
||||||
|
'label': 'Visual',
|
||||||
|
'value': SceneTypes.DEFAULT,
|
||||||
|
'icon': ["GuiRadioUnchecked", "EditorIcons"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': 'Custom Scene',
|
||||||
|
'value': SceneTypes.CUSTOM,
|
||||||
|
'icon': ["PackedScene", "EditorIcons"]
|
||||||
|
}
|
||||||
|
]})
|
||||||
|
add_header_label("with image", "_scene_type == SceneTypes.DEFAULT")
|
||||||
|
add_header_edit("scene", ValueType.FILE,
|
||||||
|
{'file_filter':'*.tscn, *.scn; Scene Files',
|
||||||
|
'placeholder': "Custom scene",
|
||||||
|
'editor_icon': ["PackedScene", "EditorIcons"],
|
||||||
|
}, '_scene_type == SceneTypes.CUSTOM')
|
||||||
|
add_header_edit('_arg_type', ValueType.FIXED_OPTIONS, {
|
||||||
|
'left_text' : 'with',
|
||||||
|
'options': [
|
||||||
|
{
|
||||||
|
'label': 'Image',
|
||||||
|
'value': ArgumentTypes.IMAGE,
|
||||||
|
'icon': ["Image", "EditorIcons"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': 'Custom Argument',
|
||||||
|
'value': ArgumentTypes.CUSTOM,
|
||||||
|
'icon': ["String", "EditorIcons"]
|
||||||
|
}
|
||||||
|
], "symbol_only": true}, "_scene_type == SceneTypes.CUSTOM")
|
||||||
|
add_header_edit('argument', ValueType.FILE,
|
||||||
|
{'file_filter':'*.jpg, *.jpeg, *.png, *.webp, *.tga, *svg, *.bmp, *.dds, *.exr, *.hdr; Supported Image Files',
|
||||||
|
'placeholder': "No Image",
|
||||||
|
'editor_icon': ["Image", "EditorIcons"],
|
||||||
|
},
|
||||||
|
'_arg_type == ArgumentTypes.IMAGE or _scene_type == SceneTypes.DEFAULT')
|
||||||
|
add_header_edit('argument', ValueType.SINGLELINE_TEXT, {}, '_arg_type == ArgumentTypes.CUSTOM')
|
||||||
|
|
||||||
|
add_body_edit("transition", ValueType.DYNAMIC_OPTIONS,
|
||||||
|
{'left_text':'Transition:',
|
||||||
|
'empty_text':'Simple Fade',
|
||||||
|
'suggestions_func':get_transition_suggestions,
|
||||||
|
'editor_icon':["PopupMenu", "EditorIcons"]})
|
||||||
|
add_body_edit("fade", ValueType.NUMBER, {'left_text':'Fade time:'})
|
||||||
|
|
||||||
|
|
||||||
|
func get_transition_suggestions(_filter:String="") -> Dictionary:
|
||||||
|
var transitions := DialogicResourceUtil.list_special_resources("BackgroundTransition")
|
||||||
|
var suggestions := {}
|
||||||
|
for i in transitions:
|
||||||
|
suggestions[DialogicUtil.pretty_name(i)] = {'value': DialogicUtil.pretty_name(i), 'editor_icon': ["PopupMenu", "EditorIcons"]}
|
||||||
|
return suggestions
|
||||||
|
|
||||||
|
#endregion
|
||||||
1
addons/dialogic/Modules/Visual/event_visual.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bflq0peywpm2l
|
||||||
BIN
addons/dialogic/Modules/Visual/icon.png
Normal file
|
After Width: | Height: | Size: 846 B |
40
addons/dialogic/Modules/Visual/icon.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b72ikmdpt6dme"
|
||||||
|
path="res://.godot/imported/icon.png-f5a2e1d70773a06808be10747d898c4d.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://addons/dialogic/Modules/Visual/icon.png"
|
||||||
|
dest_files=["res://.godot/imported/icon.png-f5a2e1d70773a06808be10747d898c4d.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
10
addons/dialogic/Modules/Visual/index.gd
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
@tool
|
||||||
|
extends DialogicIndexer
|
||||||
|
|
||||||
|
|
||||||
|
func _get_events() -> Array:
|
||||||
|
return [this_folder.path_join('event_visual.gd')]
|
||||||
|
|
||||||
|
|
||||||
|
func _get_subsystems() -> Array:
|
||||||
|
return [{'name':'Visual', 'script':this_folder.path_join('subsystem_visual.gd')}]
|
||||||
1
addons/dialogic/Modules/Visual/index.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dccv6ady6vp7t
|
||||||
186
addons/dialogic/Modules/Visual/subsystem_visual.gd
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
extends DialogicSubsystem
|
||||||
|
## Subsystem for managing visuals.
|
||||||
|
##
|
||||||
|
## This subsystem has many different helper methods for managing backgrounds.
|
||||||
|
## For instance, you can listen to background changes via
|
||||||
|
## [signal background_changed].
|
||||||
|
|
||||||
|
|
||||||
|
## Whenever a new background is set, this signal is emitted and contains a
|
||||||
|
## dictionary with the following keys: [br]
|
||||||
|
## [br]
|
||||||
|
## Key | Value Type | Value [br]
|
||||||
|
## ----------- | ------------- | ----- [br]
|
||||||
|
## `scene` | [type String] | The scene path of the new background. [br]
|
||||||
|
## `argument` | [type String] | Information given to the background on its update routine. [br]
|
||||||
|
## `fade_time` | [type float] | The time the background may take to transition in. [br]
|
||||||
|
## `same_scene`| [type bool] | If the new background uses the same Godot scene. [br]
|
||||||
|
signal background_changed(info: Dictionary)
|
||||||
|
|
||||||
|
## The default background scene Dialogic will use.
|
||||||
|
var default_background_scene: PackedScene = load(get_script().resource_path.get_base_dir().path_join('DefaultBackgroundScene/default_background.tscn'))
|
||||||
|
## The default transition Dialogic will use.
|
||||||
|
var default_transition: String = get_script().resource_path.get_base_dir().path_join("Transitions/Defaults/simple_fade.gd")
|
||||||
|
|
||||||
|
|
||||||
|
#region STATE
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
## Empties the current background state.
|
||||||
|
func clear_game_state(_clear_flag := DialogicGameHandler.ClearFlags.FULL_CLEAR) -> void:
|
||||||
|
update_visual()
|
||||||
|
|
||||||
|
## Loads the background state from the current state info.
|
||||||
|
func load_game_state(_load_flag := LoadFlags.FULL_LOAD) -> void:
|
||||||
|
update_visual(dialogic.current_state_info.get('background_scene', ''), dialogic.current_state_info.get('background_argument', ''), 0.0, default_transition, true)
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region MAIN METHODS
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
## Method that adds a given scene as child of the DialogicNode_BackgroundHolder.
|
||||||
|
## It will call [_update_background()] on that scene with the given argument [argument].
|
||||||
|
## It will call [_fade_in()] on that scene with the given fade time.
|
||||||
|
## Will call fade_out on previous backgrounds scene.
|
||||||
|
##
|
||||||
|
## If the scene is the same as the last background you can bypass another instantiating
|
||||||
|
## and use the same scene.
|
||||||
|
## To do so implement [_should_do_background_update()] on the custom background scene.
|
||||||
|
## Then [_update_background()] will be called directly on that previous scene.
|
||||||
|
func update_visual(scene := "", argument := "", fade_time := 0.0, transition_path:=default_transition, force := false) -> void:
|
||||||
|
var background_holder: DialogicNode_BackgroundHolder
|
||||||
|
if dialogic.has_subsystem('Styles'):
|
||||||
|
background_holder = dialogic.Styles.get_first_node_in_layout('dialogic_background_holders')
|
||||||
|
else:
|
||||||
|
background_holder = get_tree().get_first_node_in_group('dialogic_background_holders')
|
||||||
|
|
||||||
|
var info := {'scene':scene, 'argument':argument, 'fade_time':fade_time, 'same_scene':false}
|
||||||
|
if background_holder == null:
|
||||||
|
background_changed.emit(info)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
var bg_set := false
|
||||||
|
|
||||||
|
# First try just updating the existing scene.
|
||||||
|
if scene == dialogic.current_state_info.get('visual_scene', ''):
|
||||||
|
|
||||||
|
if not force and argument == dialogic.current_state_info.get('visual_argument', ''):
|
||||||
|
return
|
||||||
|
|
||||||
|
for old_bg in background_holder.get_children():
|
||||||
|
if !old_bg.has_meta('node') or not old_bg.get_meta('node') is DialogicBackground:
|
||||||
|
continue
|
||||||
|
|
||||||
|
var prev_bg_node: DialogicBackground = old_bg.get_meta('node')
|
||||||
|
if prev_bg_node._should_do_background_update(argument):
|
||||||
|
prev_bg_node._update_background(argument, fade_time)
|
||||||
|
bg_set = true
|
||||||
|
info['same_scene'] = true
|
||||||
|
|
||||||
|
dialogic.current_state_info['visual_scene'] = scene
|
||||||
|
dialogic.current_state_info['visual_argument'] = argument
|
||||||
|
|
||||||
|
if bg_set:
|
||||||
|
background_changed.emit(info)
|
||||||
|
return
|
||||||
|
|
||||||
|
var old_viewport: SubViewportContainer = null
|
||||||
|
if background_holder.has_meta('current_viewport'):
|
||||||
|
old_viewport = background_holder.get_meta('current_viewport', null)
|
||||||
|
|
||||||
|
var new_viewport: SubViewportContainer
|
||||||
|
if scene.ends_with('.tscn') and ResourceLoader.exists(scene):
|
||||||
|
new_viewport = add_background_node(load(scene), background_holder)
|
||||||
|
elif argument:
|
||||||
|
new_viewport = add_background_node(default_background_scene, background_holder)
|
||||||
|
else:
|
||||||
|
new_viewport = null
|
||||||
|
|
||||||
|
var trans_script: Script = load(DialogicResourceUtil.guess_special_resource("BackgroundTransition", transition_path, {"path":default_transition}).path)
|
||||||
|
var trans_node := Node.new()
|
||||||
|
trans_node.set_script(trans_script)
|
||||||
|
trans_node = (trans_node as DialogicBackgroundTransition)
|
||||||
|
trans_node.bg_holder = background_holder
|
||||||
|
trans_node.time = fade_time
|
||||||
|
|
||||||
|
if old_viewport:
|
||||||
|
trans_node.prev_scene = old_viewport.get_meta('node', null)
|
||||||
|
trans_node.prev_texture = old_viewport.get_child(0).get_texture()
|
||||||
|
old_viewport.get_meta('node')._custom_fade_out(fade_time)
|
||||||
|
old_viewport.hide()
|
||||||
|
# TODO We have to call this again here because of https://github.com/godotengine/godot/issues/23729
|
||||||
|
old_viewport.get_child(0).render_target_update_mode = SubViewport.UPDATE_ALWAYS
|
||||||
|
trans_node.transition_finished.connect(old_viewport.queue_free)
|
||||||
|
if new_viewport:
|
||||||
|
trans_node.next_scene = new_viewport.get_meta('node', null)
|
||||||
|
trans_node.next_texture = new_viewport.get_child(0).get_texture()
|
||||||
|
new_viewport.get_meta('node')._update_background(argument, fade_time)
|
||||||
|
new_viewport.get_meta('node')._custom_fade_in(fade_time)
|
||||||
|
else:
|
||||||
|
background_holder.remove_meta('current_viewport')
|
||||||
|
|
||||||
|
add_child(trans_node)
|
||||||
|
if fade_time == 0:
|
||||||
|
trans_node.transition_finished.emit()
|
||||||
|
_on_transition_finished(background_holder, trans_node)
|
||||||
|
else:
|
||||||
|
trans_node.transition_finished.connect(_on_transition_finished.bind(background_holder, trans_node))
|
||||||
|
# We need to break this connection if the background_holder get's removed during the transition
|
||||||
|
background_holder.tree_exited.connect(trans_node.disconnect.bind("transition_finished", _on_transition_finished))
|
||||||
|
trans_node._fade()
|
||||||
|
|
||||||
|
background_changed.emit(info)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_transition_finished(background_node:DialogicNode_BackgroundHolder, transition_node:DialogicBackgroundTransition) -> void:
|
||||||
|
if background_node.has_meta("current_viewport"):
|
||||||
|
if background_node.get_meta("current_viewport").get_meta("node", null) == transition_node.next_scene:
|
||||||
|
background_node.get_meta("current_viewport").show()
|
||||||
|
background_node.material = null
|
||||||
|
background_node.color = Color.TRANSPARENT
|
||||||
|
transition_node.queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
## Adds sub-viewport with the given background scene as child to
|
||||||
|
## Dialogic scene.
|
||||||
|
func add_background_node(scene:PackedScene, parent:DialogicNode_BackgroundHolder) -> SubViewportContainer:
|
||||||
|
var v_con := SubViewportContainer.new()
|
||||||
|
var viewport := SubViewport.new()
|
||||||
|
var b_scene := scene.instantiate()
|
||||||
|
if not b_scene is DialogicBackground:
|
||||||
|
printerr("[Dialogic] Given background scene was not of type DialogicBackground! Make sure the scene has a script that extends DialogicBackground.")
|
||||||
|
v_con.queue_free()
|
||||||
|
viewport.queue_free()
|
||||||
|
b_scene.queue_free()
|
||||||
|
return null
|
||||||
|
|
||||||
|
parent.add_child(v_con)
|
||||||
|
v_con.hide()
|
||||||
|
v_con.stretch = true
|
||||||
|
v_con.size = parent.size
|
||||||
|
v_con.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||||
|
|
||||||
|
v_con.add_child(viewport)
|
||||||
|
viewport.transparent_bg = true
|
||||||
|
viewport.disable_3d = true
|
||||||
|
viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS
|
||||||
|
viewport.canvas_item_default_texture_filter = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter")
|
||||||
|
|
||||||
|
viewport.add_child(b_scene)
|
||||||
|
b_scene.viewport = viewport
|
||||||
|
b_scene.viewport_container = v_con
|
||||||
|
|
||||||
|
parent.set_meta('current_viewport', v_con)
|
||||||
|
v_con.set_meta('node', b_scene)
|
||||||
|
|
||||||
|
return v_con
|
||||||
|
|
||||||
|
|
||||||
|
## Whether a visual is set.
|
||||||
|
func has_visual() -> bool:
|
||||||
|
return !dialogic.current_state_info.get('visual_scene', '').is_empty() or !dialogic.current_state_info.get('visual_argument','').is_empty()
|
||||||
|
|
||||||
|
#endregion
|
||||||
1
addons/dialogic/Modules/Visual/subsystem_visual.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://digbgc8bv3bg6
|
||||||
@@ -1 +1 @@
|
|||||||
extends Equipment
|
class_name Accessory extends Equipment
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
extends Equipment
|
class_name Armor extends Equipment
|
||||||
|
|||||||
@@ -1 +1,5 @@
|
|||||||
class_name Item extends Object
|
class_name Item extends Resource
|
||||||
|
|
||||||
|
|
||||||
|
@export var image : Texture2D
|
||||||
|
@export var brief : String
|
||||||
|
|||||||
12
data/items/pitchfork.tres
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[gd_resource type="Resource" script_class="Weapon" load_steps=3 format=3 uid="uid://8k1lnfoi4xww"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://clrvwaqb61lpv" path="res://graphics/items/pitchfork.png" id="1_fpnr6"]
|
||||||
|
[ext_resource type="Script" uid="uid://bgn8ipx38g28o" path="res://data/items/weapon.gd" id="1_qoils"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_qoils")
|
||||||
|
min_damage = 1
|
||||||
|
max_damage = 2
|
||||||
|
image = ExtResource("1_fpnr6")
|
||||||
|
brief = "A humble weapon for a humble beginning."
|
||||||
|
metadata/_custom_type_script = "uid://bgn8ipx38g28o"
|
||||||
@@ -1 +1,4 @@
|
|||||||
extends Equipment
|
class_name Weapon extends Equipment
|
||||||
|
|
||||||
|
@export var min_damage : int
|
||||||
|
@export var max_damage : int
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
player: Wow, nobody's been here in a while.\
|
player: (Wow this is a mess... nobody's been here for a while. I should...)
|
||||||
I should...
|
|
||||||
- set up some lights.
|
- set up some lights.
|
||||||
|
Hey, no touching! This isn't your home! Get out!
|
||||||
- clean it out.
|
- clean it out.
|
||||||
|
Hey, no touching! This isn't your home! Get out!
|
||||||
- get an exorcist.
|
- get an exorcist.
|
||||||
|
An exorcist won't save you from MeEeEe!
|
||||||
- burn it down.
|
- burn it down.
|
||||||
BEwArEe BrI--Wait, did you say BURN IT DOWN? Burn. It. Down?!? ARE YOU INSANE?!?
|
BEwArEe BrI--Wait, did you say BURN IT DOWN? Burn. It. Down?!? ARE YOU INSANE?!?
|
||||||
- Who is that?!?
|
- Who is that?!?
|
||||||
@@ -22,3 +24,8 @@ player: Well...
|
|||||||
- I don't believe you.
|
- I don't believe you.
|
||||||
And who cares what you believe? Begone, you do not belong here!
|
And who cares what you believe? Begone, you do not belong here!
|
||||||
join pom center
|
join pom center
|
||||||
|
pom: This is amazing! Extraordinary! More words I can't spell! But wait, this place... is kind of a mess!
|
||||||
|
pom: Nobody told me you were coming, and I've been saving every drop of energy I had waiting! No, this won't do! You can't see me this way! Come back tomorrow morning.
|
||||||
|
- Okay, I guess.
|
||||||
|
- No way, I just got here!
|
||||||
|
I insist! You just wait. I can already feel my energy coming back. We're going to fix everything!
|
||||||
|
|||||||
BIN
external/closed-shift-window.clip
vendored
Normal file
BIN
external/first-guild.clip
vendored
Normal file
BIN
external/guildwip.clip
vendored
Normal file
BIN
external/open-shift-window.clip
vendored
Normal file
BIN
external/portrait.clip
vendored
Normal file
BIN
external/profile-window.png
vendored
Normal file
|
After Width: | Height: | Size: 478 KiB |
40
external/profile-window.png.import
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cbt6po52ad37x"
|
||||||
|
path="res://.godot/imported/profile-window.png-2b96fa2f3b8c387adf029a5a1450d671.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://external/profile-window.png"
|
||||||
|
dest_files=["res://.godot/imported/profile-window.png-2b96fa2f3b8c387adf029a5a1450d671.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
external/rags.clip
vendored
Normal file
BIN
external/sketches.clip
vendored
BIN
external/tc/1.png
vendored
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
external/tc/10.png
vendored
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
external/tc/2.png
vendored
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
external/tc/3.png
vendored
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
external/tc/4.png
vendored
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
external/tc/5.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
external/tc/6.png
vendored
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
external/tc/7.png
vendored
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
external/tc/8.png
vendored
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
external/tc/9.png
vendored
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
external/test-qsvchar.clip
vendored
Normal file
40
external/test-qsvchar.png.import
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://blb2xof5vrlqq"
|
||||||
|
path="res://.godot/imported/test-qsvchar.png-3a3b9f279c1b3ee3841abeb70ab39dce.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://external/test-qsvchar.png"
|
||||||
|
dest_files=["res://.godot/imported/test-qsvchar.png-3a3b9f279c1b3ee3841abeb70ab39dce.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
external/tome.clip
vendored
Normal file
BIN
fonts/Bagnard.otf
Normal file
41
fonts/Bagnard.otf.import
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cju0vb3cw5qoj"
|
||||||
|
path="res://.godot/imported/Bagnard.otf-8806f81a1e57c3939a6c2c876624f91f.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://fonts/Bagnard.otf"
|
||||||
|
dest_files=["res://.godot/imported/Bagnard.otf-8806f81a1e57c3939a6c2c876624f91f.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=true
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
modulate_color_glyphs=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[{
|
||||||
|
"chars": [],
|
||||||
|
"glyphs": [],
|
||||||
|
"name": "New Configuration",
|
||||||
|
"size": Vector2i(16, 0)
|
||||||
|
}]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
8
fonts/Bagnard.tres
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[gd_resource type="FontFile" format=3 uid="uid://bfkgcmorncykx"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
cache/0/16/0/ascent = 0.0
|
||||||
|
cache/0/16/0/descent = 0.0
|
||||||
|
cache/0/16/0/underline_position = 0.0
|
||||||
|
cache/0/16/0/underline_thickness = 0.0
|
||||||
|
cache/0/16/0/scale = 1.0
|
||||||
93
fonts/OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
Copyright (c) 2015 Sebastien Sanfilippo (www.love-letters.be)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
graphics/doorlight.png
Normal file
|
After Width: | Height: | Size: 649 B |
40
graphics/doorlight.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://c5yxq22ao1oyf"
|
||||||
|
path="res://.godot/imported/doorlight.png-ad97658dd3aeaa92ee6ac7a6ba7d8799.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/doorlight.png"
|
||||||
|
dest_files=["res://.godot/imported/doorlight.png-ad97658dd3aeaa92ee6ac7a6ba7d8799.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/first-guild.png
Normal file
|
After Width: | Height: | Size: 112 KiB |
40
graphics/first-guild.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cg42wsmb3ocfq"
|
||||||
|
path="res://.godot/imported/first-guild.png-b69089f8a0eea993132351d2e33000a5.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/first-guild.png"
|
||||||
|
dest_files=["res://.godot/imported/first-guild.png-b69089f8a0eea993132351d2e33000a5.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/items/pitchfork.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
40
graphics/items/pitchfork.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://clrvwaqb61lpv"
|
||||||
|
path="res://.godot/imported/pitchfork.png-e3863b88445f492a6f56d6891aa9ed09.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/items/pitchfork.png"
|
||||||
|
dest_files=["res://.godot/imported/pitchfork.png-e3863b88445f492a6f56d6891aa9ed09.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/items/rags.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
40
graphics/items/rags.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bgjiahbc4jpwd"
|
||||||
|
path="res://.godot/imported/rags.png-7a2a75cc5db974ac505063ecc4d13260.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/items/rags.png"
|
||||||
|
dest_files=["res://.godot/imported/rags.png-7a2a75cc5db974ac505063ecc4d13260.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
@@ -23,7 +23,7 @@ compress/rdo_quality_loss=0.0
|
|||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=false
|
mipmaps/generate=true
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
@@ -31,10 +31,10 @@ process/channel_remap/red=0
|
|||||||
process/channel_remap/green=1
|
process/channel_remap/green=1
|
||||||
process/channel_remap/blue=2
|
process/channel_remap/blue=2
|
||||||
process/channel_remap/alpha=3
|
process/channel_remap/alpha=3
|
||||||
process/fix_alpha_border=true
|
process/fix_alpha_border=false
|
||||||
process/premult_alpha=false
|
process/premult_alpha=false
|
||||||
process/normal_map_invert_y=false
|
process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=1
|
detect_3d/compress_to=0
|
||||||
|
|||||||
BIN
graphics/questview/forest-back.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
40
graphics/questview/forest-back.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b7jry0kqho7y7"
|
||||||
|
path="res://.godot/imported/forest-back.png-ac324a35b86ea3b754c3e06feafe59f4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/questview/forest-back.png"
|
||||||
|
dest_files=["res://.godot/imported/forest-back.png-ac324a35b86ea3b754c3e06feafe59f4.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/questview/forest-back2.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
40
graphics/questview/forest-back2.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bu18dxqnd3hf6"
|
||||||
|
path="res://.godot/imported/forest-back2.png-8effe2bb64d5b8620e0644deca33e714.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/questview/forest-back2.png"
|
||||||
|
dest_files=["res://.godot/imported/forest-back2.png-8effe2bb64d5b8620e0644deca33e714.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/questview/forest-mid.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
40
graphics/questview/forest-mid.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cr0sb3p1r7bdq"
|
||||||
|
path="res://.godot/imported/forest-mid.png-3922eab340f2fd2b714f35067149e0c4.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/questview/forest-mid.png"
|
||||||
|
dest_files=["res://.godot/imported/forest-mid.png-3922eab340f2fd2b714f35067149e0c4.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/questview/ground.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
40
graphics/questview/ground.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://ci7ngqo1sh7ao"
|
||||||
|
path="res://.godot/imported/ground.png-8e009aa27f0ebcf79421878b50679d82.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/questview/ground.png"
|
||||||
|
dest_files=["res://.godot/imported/ground.png-8e009aa27f0ebcf79421878b50679d82.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/questview/test-char.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
40
graphics/questview/test-char.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://blt2b7f6iqb8j"
|
||||||
|
path="res://.godot/imported/test-char.png-01981d518b2d035cd443fbd221d0f168.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/questview/test-char.png"
|
||||||
|
dest_files=["res://.godot/imported/test-char.png-01981d518b2d035cd443fbd221d0f168.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/closed-shift-window.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
40
graphics/ui/closed-shift-window.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://h64620t06o2o"
|
||||||
|
path="res://.godot/imported/closed-shift-window.png-f1815996ab182b0e37c3314d5216061b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/closed-shift-window.png"
|
||||||
|
dest_files=["res://.godot/imported/closed-shift-window.png-f1815996ab182b0e37c3314d5216061b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/gear-heading.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
40
graphics/ui/gear-heading.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bnyl6eaynixm5"
|
||||||
|
path="res://.godot/imported/gear-heading.png-292ad7b9cfa8f34dcbc860fd9b927e51.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/gear-heading.png"
|
||||||
|
dest_files=["res://.godot/imported/gear-heading.png-292ad7b9cfa8f34dcbc860fd9b927e51.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/inventory-heading.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
40
graphics/ui/inventory-heading.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d1btg2hfnjx6r"
|
||||||
|
path="res://.godot/imported/inventory-heading.png-b34ec7fd61d50888b3527efa1733ca6e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/inventory-heading.png"
|
||||||
|
dest_files=["res://.godot/imported/inventory-heading.png-b34ec7fd61d50888b3527efa1733ca6e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/item-slot.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
40
graphics/ui/item-slot.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cjjtgrr56guj0"
|
||||||
|
path="res://.godot/imported/item-slot.png-d130a6e7b761fa3a2fdab671d7153299.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/item-slot.png"
|
||||||
|
dest_files=["res://.godot/imported/item-slot.png-d130a6e7b761fa3a2fdab671d7153299.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/open-shift-window.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
40
graphics/ui/open-shift-window.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bk0u7lxc26r2h"
|
||||||
|
path="res://.godot/imported/open-shift-window.png-767371ce665714bcadc0322db6a82865.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/open-shift-window.png"
|
||||||
|
dest_files=["res://.godot/imported/open-shift-window.png-767371ce665714bcadc0322db6a82865.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
graphics/ui/options.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
40
graphics/ui/options.png.import
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cs7bvpn6jgofn"
|
||||||
|
path="res://.godot/imported/options.png-62860e203fedba521be937324d52b5ec.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://graphics/ui/options.png"
|
||||||
|
dest_files=["res://.godot/imported/options.png-62860e203fedba521be937324d52b5ec.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
@@ -1,38 +1,105 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://dfa6ep4o53s08"]
|
[gd_scene load_steps=12 format=3 uid="uid://dfa6ep4o53s08"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_752n1"]
|
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_752n1"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_oi1nh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cd08dp16bixfv" path="res://templates/guildhall.tscn" id="2_rma72"]
|
[ext_resource type="PackedScene" uid="uid://cd08dp16bixfv" path="res://templates/guildhall.tscn" id="2_rma72"]
|
||||||
[ext_resource type="Script" uid="uid://bnbljf6u2d3kh" path="res://scripts/visitor_spawner.gd" id="3_oi1nh"]
|
[ext_resource type="Script" uid="uid://bnbljf6u2d3kh" path="res://scripts/visitor_spawner.gd" id="3_oi1nh"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="4_4k18p"]
|
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="4_4k18p"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="5_p1w2f"]
|
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="5_p1w2f"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_oi1nh"]
|
||||||
|
|
||||||
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"]
|
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"]
|
||||||
blend_mode = 3
|
blend_mode = 3
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_p1w2f"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:visible")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_4k18p"]
|
||||||
|
resource_name = "open"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath(".:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0.099999994, 0.13333333, 0.16666667, 0.2, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0, 1, 2, 3, 4]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".:visible")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.09737283),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [false, true]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dtjin"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_p1w2f"),
|
||||||
|
&"open": SubResource("Animation_4k18p")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="Active Scene" type="Node2D"]
|
[node name="Active Scene" type="Node2D"]
|
||||||
script = ExtResource("1_752n1")
|
script = ExtResource("1_752n1")
|
||||||
|
|
||||||
[node name="Guildhall" parent="." instance=ExtResource("2_rma72")]
|
[node name="ColorRect" type="ColorRect" parent="."]
|
||||||
position = Vector2(421, 161)
|
visible = false
|
||||||
|
|
||||||
[node name="ColorRect" type="ColorRect" parent="Guildhall"]
|
|
||||||
z_index = 100
|
z_index = 100
|
||||||
material = SubResource("CanvasItemMaterial_752n1")
|
material = SubResource("CanvasItemMaterial_752n1")
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
offset_left = -418.0
|
offset_left = 3.0
|
||||||
offset_top = -158.0
|
offset_top = 5.0
|
||||||
offset_right = 1502.0
|
offset_right = 1923.0
|
||||||
offset_bottom = 922.0
|
offset_bottom = 1085.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
color = Color(0.2922103, 0.3017197, 0.9388465, 1)
|
mouse_filter = 2
|
||||||
|
color = Color(0.2925, 0.29512504, 0.45, 1)
|
||||||
|
|
||||||
|
[node name="DoorLight" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
self_modulate = Color(2.5713813, 2.5713813, 2.5713813, 0.36078432)
|
||||||
|
z_index = 100
|
||||||
|
position = Vector2(866, 654)
|
||||||
|
scale = Vector2(2, 2)
|
||||||
|
texture = ExtResource("2_oi1nh")
|
||||||
|
hframes = 5
|
||||||
|
frame = 1
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="DoorLight"]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_dtjin")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Guildhall" parent="." instance=ExtResource("2_rma72")]
|
||||||
|
position = Vector2(421, 289)
|
||||||
|
|
||||||
[node name="VisitorSpawner" type="Node2D" parent="Guildhall"]
|
[node name="VisitorSpawner" type="Node2D" parent="Guildhall"]
|
||||||
position = Vector2(505, 870)
|
position = Vector2(505, 870)
|
||||||
script = ExtResource("3_oi1nh")
|
script = ExtResource("3_oi1nh")
|
||||||
total_visitors = 3
|
total_visitors = 1
|
||||||
|
|
||||||
[node name="Timer" type="Timer" parent="Guildhall/VisitorSpawner"]
|
[node name="Timer" type="Timer" parent="Guildhall/VisitorSpawner"]
|
||||||
|
|
||||||
@@ -40,10 +107,10 @@ total_visitors = 3
|
|||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="UI"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="UI"]
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
offset_left = 1567.0
|
offset_left = 1485.0
|
||||||
offset_top = 23.0
|
offset_top = 23.0
|
||||||
offset_right = 1903.0
|
offset_right = 1886.0
|
||||||
offset_bottom = 185.0
|
offset_bottom = 351.0
|
||||||
|
|
||||||
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("4_4k18p")]
|
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("4_4k18p")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -53,4 +120,8 @@ layout_mode = 2
|
|||||||
|
|
||||||
[node name="Control" parent="UI" instance=ExtResource("5_p1w2f")]
|
[node name="Control" parent="UI" instance=ExtResource("5_p1w2f")]
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("7_oi1nh")
|
||||||
|
volume_db = -24.535
|
||||||
|
|
||||||
[connection signal="timeout" from="Guildhall/VisitorSpawner/Timer" to="Guildhall/VisitorSpawner" method="_on_timer_timeout"]
|
[connection signal="timeout" from="Guildhall/VisitorSpawner/Timer" to="Guildhall/VisitorSpawner" method="_on_timer_timeout"]
|
||||||
|
|||||||
@@ -27,8 +27,11 @@ var job : JobData
|
|||||||
var stats : StatBlock
|
var stats : StatBlock
|
||||||
var gold : int = 0
|
var gold : int = 0
|
||||||
var quest : Quest
|
var quest : Quest
|
||||||
|
var weapon : Weapon
|
||||||
|
var armor : Armor
|
||||||
|
var accessory : Accessory
|
||||||
var inventory : Dictionary[Vector2, Item] = {}
|
var inventory : Dictionary[Vector2, Item] = {}
|
||||||
|
var inventory_size : Vector2i = Vector2i(6,1)
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
stats = StatBlock.new()
|
stats = StatBlock.new()
|
||||||
|
|
||||||
|
|||||||
@@ -32,17 +32,18 @@ func end_shift() -> void:
|
|||||||
var window = get_window()
|
var window = get_window()
|
||||||
window.mode = Window.MODE_WINDOWED
|
window.mode = Window.MODE_WINDOWED
|
||||||
var size = DisplayServer.screen_get_size()
|
var size = DisplayServer.screen_get_size()
|
||||||
window.content_scale_size = Vector2i(345,500)
|
window.content_scale_size = Vector2i(415,700)
|
||||||
var wsize = window.get_size_with_decorations()
|
var wsize = window.get_size_with_decorations()
|
||||||
window.position = Vector2i(size.x - 345, 25)
|
window.position = Vector2i(size.x - 345, 25)
|
||||||
window.transparent = true
|
window.transparent = true
|
||||||
window.transparent_bg = true
|
window.transparent_bg = true
|
||||||
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
|
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
|
||||||
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_TRANSPARENT, true)
|
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_TRANSPARENT, true)
|
||||||
|
window.per
|
||||||
Guild.hall.process_mode = Node.PROCESS_MODE_DISABLED
|
Guild.hall.process_mode = Node.PROCESS_MODE_DISABLED
|
||||||
top_menu.hide()
|
top_menu.hide()
|
||||||
panel.get_parent().global_position = Vector2i(5,5)
|
panel.get_parent().global_position = Vector2i(5,5)
|
||||||
window.size = Vector2i(345,500)
|
window.size = Vector2i(415,700)
|
||||||
panel.populate_quest_bars()
|
panel.populate_quest_bars()
|
||||||
|
|
||||||
func notice(msg : String, time : float = 1) -> void:
|
func notice(msg : String, time : float = 1) -> void:
|
||||||
|
|||||||
14
scripts/item_slot.gd
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
var item_display_window_template = preload("res://templates/item_display_window.tscn")
|
||||||
|
var dragging : bool = false
|
||||||
|
var last_click : int = 0
|
||||||
|
|
||||||
|
func _on_gui_input(event: InputEvent) -> void:
|
||||||
|
var mmevt = event as InputEventMouseMotion
|
||||||
|
var mbevt = event as InputEventMouseButton
|
||||||
|
if mbevt and mbevt.button_index == MOUSE_BUTTON_MASK_LEFT:
|
||||||
|
if !mbevt.pressed:
|
||||||
|
if dragging and
|
||||||
|
#Press, drag, double click
|
||||||
|
pass # Replace with function body.
|
||||||
1
scripts/item_slot.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://cw6yo5opbrpr8
|
||||||
@@ -6,6 +6,7 @@ const quest_progress_bar_template = preload("res://templates/quest_progress_bar.
|
|||||||
signal time_changed(time : float)
|
signal time_changed(time : float)
|
||||||
|
|
||||||
@onready var timer : Timer = $Timer
|
@onready var timer : Timer = $Timer
|
||||||
|
@onready var audioplayer : AudioStreamPlayer = $AudioStreamPlayer
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
Game.panel = self
|
Game.panel = self
|
||||||
@@ -26,7 +27,9 @@ func add_quest_progress_bar(quest : Quest) -> void:
|
|||||||
func switch_panel(active : bool) -> void:
|
func switch_panel(active : bool) -> void:
|
||||||
%OpenShift.visible = active
|
%OpenShift.visible = active
|
||||||
%WorkingShift.visible = !active
|
%WorkingShift.visible = !active
|
||||||
|
%QuestView.visible = !active
|
||||||
%Timer.start(300 if active else 1500)
|
%Timer.start(300 if active else 1500)
|
||||||
|
audioplayer.play()
|
||||||
|
|
||||||
func _on_show_quests_pressed() -> void:
|
func _on_show_quests_pressed() -> void:
|
||||||
%QuestProgressList.visible = !%QuestProgressList.visible
|
%QuestProgressList.visible = !%QuestProgressList.visible
|
||||||
@@ -58,4 +61,22 @@ func notice(msg : String, time : float) -> void:
|
|||||||
%Notices.add_child(ntc)
|
%Notices.add_child(ntc)
|
||||||
ntc.message = msg
|
ntc.message = msg
|
||||||
ntc.duration = time
|
ntc.duration = time
|
||||||
|
|
||||||
|
var dragging : bool = false
|
||||||
|
var drag_pos : Vector2
|
||||||
|
func _on_drag_region_gui_input(event: InputEvent) -> void:
|
||||||
|
if event is InputEventMouseButton:
|
||||||
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
|
dragging = event.pressed
|
||||||
|
if dragging:
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
drag_pos = event.global_position
|
||||||
|
else:
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
|
Input.warp_mouse(drag_pos)
|
||||||
|
elif dragging and event is InputEventMouseMotion:
|
||||||
|
var window = get_window()
|
||||||
|
window.position += Vector2i(event.screen_relative)
|
||||||
|
|
||||||
|
func _on_quest_viewer_button_pressed() -> void:
|
||||||
|
%QuestView.visible = !%QuestView.visible
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
extends Window
|
extends Window
|
||||||
|
|
||||||
|
var dragging : bool = false
|
||||||
var data : AdventurerData
|
var data : AdventurerData
|
||||||
|
@onready var nameLabel = %NameLabel
|
||||||
@onready var jobLabel = %JobLabel
|
@onready var jobLabel = %JobLabel
|
||||||
@onready var expLabel : Label = %ExpLabel
|
@onready var expLabel : Label = %ExpLabel
|
||||||
@onready var levelLabel :Label = %LevelLabel
|
@onready var levelLabel :Label = %LevelLabel
|
||||||
@@ -17,7 +19,7 @@ var data : AdventurerData
|
|||||||
|
|
||||||
func setup(adv : AdventurerData) -> void:
|
func setup(adv : AdventurerData) -> void:
|
||||||
data = adv
|
data = adv
|
||||||
title = data.full_name()
|
nameLabel.text = data.full_name()
|
||||||
if data.job:
|
if data.job:
|
||||||
jobLabel.text = data.job.name
|
jobLabel.text = data.job.name
|
||||||
else:
|
else:
|
||||||
@@ -26,13 +28,22 @@ func setup(adv : AdventurerData) -> void:
|
|||||||
expLabel.text = "Exp: %d/%d" % [data.exp, data.get_tnl()]
|
expLabel.text = "Exp: %d/%d" % [data.exp, data.get_tnl()]
|
||||||
lifeLabel.text = "Life: " + str(data.life) + "/" + str(data.max_life)
|
lifeLabel.text = "Life: " + str(data.life) + "/" + str(data.max_life)
|
||||||
energyLabel.text = "Energy: " + str(data.energy) + "/" + str(data.max_energy)
|
energyLabel.text = "Energy: " + str(data.energy) + "/" + str(data.max_energy)
|
||||||
strLabel.text = "STR: " + str(data.stats.STR)
|
strLabel.text = str(data.stats.STR)
|
||||||
dexLabel.text = "DEX: " + str(data.stats.DEX)
|
dexLabel.text = str(data.stats.DEX)
|
||||||
intLabel.text = "INT: " + str(data.stats.INT)
|
intLabel.text = str(data.stats.INT)
|
||||||
chaLabel.text = "CHA: " + str(data.stats.CHA)
|
chaLabel.text = str(data.stats.CHA)
|
||||||
faiLabel.text = "FAI: " + str(data.stats.FAI)
|
faiLabel.text = str(data.stats.FAI)
|
||||||
lukLabel.text = "LUK: " + str(data.stats.LUK)
|
lukLabel.text = str(data.stats.LUK)
|
||||||
#TODO: Show equipment
|
#TODO: Show equipment
|
||||||
|
|
||||||
func _on_close_requested() -> void:
|
func _on_close_requested() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_drag_region_gui_input(event: InputEvent) -> void:
|
||||||
|
if event is InputEventMouseButton:
|
||||||
|
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||||
|
dragging = event.pressed
|
||||||
|
elif dragging and event is InputEventMouseMotion:
|
||||||
|
position += Vector2i(event.screen_relative)
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,5 @@
|
|||||||
extends Window
|
extends Window
|
||||||
|
|
||||||
|
|
||||||
|
func _on_close_button_pressed() -> void:
|
||||||
|
queue_free()
|
||||||
|
|||||||
@@ -22,8 +22,67 @@ class Event:
|
|||||||
var time_elapsed
|
var time_elapsed
|
||||||
signal completed()
|
signal completed()
|
||||||
|
|
||||||
|
var participants : Array = []
|
||||||
|
var turn_queue : Array = []
|
||||||
|
var busy_list : Array = []
|
||||||
|
var dex_speed : int
|
||||||
|
|
||||||
|
func start_combat(adventurers : Array, enemies : Array) -> void:
|
||||||
|
participants = []
|
||||||
|
participants.append_array(adventurers)
|
||||||
|
participants.append_array(enemies)
|
||||||
|
|
||||||
|
var c_order : Array = []
|
||||||
|
var dex_speed = 0
|
||||||
|
for p in participants:
|
||||||
|
c_order.append([p, p.stats.dex])
|
||||||
|
if p.stats.dex > dex_speed:
|
||||||
|
dex_speed = p.stats.dex
|
||||||
|
|
||||||
|
c_order.sort_custom(func(a,b): return a[1] > b[1])
|
||||||
|
var delay = 5
|
||||||
|
var last_time = 0
|
||||||
|
for c in c_order:
|
||||||
|
var time = delay * dex_speed / c[1]
|
||||||
|
turn_queue.append({"combatant":c[0], "time": time - last_time})
|
||||||
|
last_time = time
|
||||||
|
|
||||||
|
func execute_attack(combatant, target) -> void:
|
||||||
|
busy_list.append(target)
|
||||||
|
#TODO: Make the combatant execute an attack
|
||||||
|
#TODO: Make the target take damage
|
||||||
|
|
||||||
|
func execute_action(combatant) -> void:
|
||||||
|
busy_list = [combatant]
|
||||||
|
#TODO: Come up with other options than just swinging at each other
|
||||||
|
var enemies : Array = get_enemy_list(combatant)
|
||||||
|
var target = enemies.pick_random()
|
||||||
|
execute_attack(combatant, target)
|
||||||
|
|
||||||
|
func get_enemy_list(combatant) -> Array:
|
||||||
|
var lst = []
|
||||||
|
for p in participants:
|
||||||
|
if p != combatant:
|
||||||
|
lst.append(p)
|
||||||
|
return lst
|
||||||
|
|
||||||
|
func resolve_combat() -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
func process(delta : float) -> void:
|
func process(delta : float) -> void:
|
||||||
#TODO: Make quest combat work
|
#TODO: Make quest combat work
|
||||||
|
if type == Type.COMBAT:
|
||||||
|
if len(busy_list) < 1:
|
||||||
|
if len(turn_queue) > 0:
|
||||||
|
turn_queue[0].time -= delta
|
||||||
|
if turn_queue[0].time <= 0:
|
||||||
|
var c = turn_queue.pop_front()
|
||||||
|
if len(turn_queue) > 0:
|
||||||
|
turn_queue[0].time += c.time
|
||||||
|
execute_action(c.combatant)
|
||||||
|
else:
|
||||||
|
resolve_combat()
|
||||||
|
|
||||||
time_elapsed += delta
|
time_elapsed += delta
|
||||||
if time_elapsed >= time:
|
if time_elapsed >= time:
|
||||||
completed.emit()
|
completed.emit()
|
||||||
@@ -74,6 +133,7 @@ func complete() -> void:
|
|||||||
|
|
||||||
func num_events() -> int:
|
func num_events() -> int:
|
||||||
return len(events)
|
return len(events)
|
||||||
|
|
||||||
#TODO: Put in quest requirements
|
#TODO: Put in quest requirements
|
||||||
func is_eligible(member : AdventurerData) -> bool:
|
func is_eligible(member : AdventurerData) -> bool:
|
||||||
return !taken
|
return !taken
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
var test_adv = preload("res://templates/test_adventurer.tscn")
|
var test_adv = preload("res://templates/test_adventurer.tscn")
|
||||||
|
@onready var door_player : AudioStreamPlayer = $AudioStreamPlayer
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
#var adv : AdventurerData = test_adv.instantiate() as AdventurerData
|
#var adv : AdventurerData = test_adv.instantiate() as AdventurerData
|
||||||
#Guild.register_guild_member(adv)
|
#Guild.register_guild_member(adv)
|
||||||
@@ -9,3 +9,14 @@ func _ready() -> void:
|
|||||||
evt.time = 10
|
evt.time = 10
|
||||||
quest.events.append(evt)
|
quest.events.append(evt)
|
||||||
Guild.add_quest(quest)
|
Guild.add_quest(quest)
|
||||||
|
#var tween = create_tween()
|
||||||
|
#tween.tween_interval(3)
|
||||||
|
#tween.tween_callback(Callable($DoorLight/AnimationPlayer.play).bind("open"))
|
||||||
|
#tween.tween_callback(play_door)
|
||||||
|
#tween.tween_interval(.25)
|
||||||
|
#tween.tween_property(Game.player, "visible", true, 0)
|
||||||
|
#tween.tween_interval(.5)
|
||||||
|
#tween.tween_callback(Dialogic.start.bind("res://dialogic/timelines/intro.dtl"))
|
||||||
|
|
||||||
|
func play_door() -> void:
|
||||||
|
door_player.play()
|
||||||
|
|||||||
BIN
sounds/Door Hinge Creaking Door.wav
Normal file
24
sounds/Door Hinge Creaking Door.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://cmray2frojcd"
|
||||||
|
path="res://.godot/imported/Door Hinge Creaking Door.wav-0303a8c2d6a1f5e9380e7100eb7832b7.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/Door Hinge Creaking Door.wav"
|
||||||
|
dest_files=["res://.godot/imported/Door Hinge Creaking Door.wav-0303a8c2d6a1f5e9380e7100eb7832b7.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
BIN
sounds/ORGANIC Paper Book Page Turn Short 02.wav
Normal file
24
sounds/ORGANIC Paper Book Page Turn Short 02.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://jrwbhh4srvyd"
|
||||||
|
path="res://.godot/imported/ORGANIC Paper Book Page Turn Short 02.wav-f6fc28b12bc7db4d9c5eb014856393b6.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/ORGANIC Paper Book Page Turn Short 02.wav"
|
||||||
|
dest_files=["res://.godot/imported/ORGANIC Paper Book Page Turn Short 02.wav-f6fc28b12bc7db4d9c5eb014856393b6.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=true
|
||||||
|
edit/normalize=true
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
BIN
sounds/Paper Turn.wav
Normal file
24
sounds/Paper Turn.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://dq7e5u8j14atb"
|
||||||
|
path="res://.godot/imported/Paper Turn.wav-122265f9703ce6fa56daafcf33629e8a.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/Paper Turn.wav"
|
||||||
|
dest_files=["res://.godot/imported/Paper Turn.wav-122265f9703ce6fa56daafcf33629e8a.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
BIN
sounds/owl_notification_005.wav
Normal file
24
sounds/owl_notification_005.wav.import
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wav"
|
||||||
|
type="AudioStreamWAV"
|
||||||
|
uid="uid://nkesdium6jvq"
|
||||||
|
path="res://.godot/imported/owl_notification_005.wav-870b2416e20f32f94095b69be253a661.sample"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sounds/owl_notification_005.wav"
|
||||||
|
dest_files=["res://.godot/imported/owl_notification_005.wav-870b2416e20f32f94095b69be253a661.sample"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
force/8_bit=false
|
||||||
|
force/mono=false
|
||||||
|
force/max_rate=false
|
||||||
|
force/max_rate_hz=44100
|
||||||
|
edit/trim=false
|
||||||
|
edit/normalize=false
|
||||||
|
edit/loop_mode=0
|
||||||
|
edit/loop_begin=0
|
||||||
|
edit/loop_end=-1
|
||||||
|
compress/mode=2
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://by1jk8r2avjp4"]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://by1jk8r2avjp4"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bgf0ow1t18yqf" path="res://graphics/open_shift_panel.png" id="1_vv6wn"]
|
[ext_resource type="Texture2D" uid="uid://bk0u7lxc26r2h" path="res://graphics/ui/open-shift-window.png" id="1_vv6wn"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource("1_vv6wn")
|
texture = ExtResource("1_vv6wn")
|
||||||
|
|||||||
21
styles/stat_font.tres
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
[gd_resource type="Theme" load_steps=5 format=3 uid="uid://dlobmn4esosk3"]
|
||||||
|
|
||||||
|
[ext_resource type="FontFile" uid="uid://cju0vb3cw5qoj" path="res://fonts/Bagnard.otf" id="1_2tgdq"]
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_3wiiu"]
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture2D" id="GradientTexture2D_q3o2i"]
|
||||||
|
gradient = SubResource("Gradient_3wiiu")
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_q74nj"]
|
||||||
|
texture = SubResource("GradientTexture2D_q3o2i")
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
default_font = ExtResource("1_2tgdq")
|
||||||
|
default_font_size = 32
|
||||||
|
Label/colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||||
|
Label/constants/line_spacing = 0
|
||||||
|
Label/constants/outline_size = 1
|
||||||
|
Label/constants/shadow_offset_x = 1
|
||||||
|
Label/constants/shadow_offset_y = 1
|
||||||
|
Label/styles/gradient = SubResource("StyleBoxTexture_q74nj")
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://b7vjpwageyi6m"]
|
[gd_resource type="StyleBoxTexture" load_steps=2 format=3 uid="uid://b7vjpwageyi6m"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://uhovyed0br4e" path="res://graphics/working_shift_panel.png" id="1_tfsob"]
|
[ext_resource type="Texture2D" uid="uid://h64620t06o2o" path="res://graphics/ui/closed-shift-window.png" id="1_tfsob"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
texture = ExtResource("1_tfsob")
|
texture = ExtResource("1_tfsob")
|
||||||
texture_margin_left = 117.0
|
texture_margin_left = 48.0
|
||||||
texture_margin_top = 48.0
|
texture_margin_top = 70.0
|
||||||
texture_margin_right = 48.0
|
texture_margin_right = 48.0
|
||||||
texture_margin_bottom = 35.0
|
texture_margin_bottom = 35.0
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=14 format=4 uid="uid://cd08dp16bixfv"]
|
[gd_scene load_steps=15 format=4 uid="uid://cd08dp16bixfv"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://ccorfvcfa84gf" path="res://scripts/guildhall.gd" id="1_lsinl"]
|
[ext_resource type="Script" uid="uid://ccorfvcfa84gf" path="res://scripts/guildhall.gd" id="1_lsinl"]
|
||||||
[ext_resource type="TileSet" uid="uid://6im0g3eg6sr4" path="res://test_tiles.tres" id="1_qel1r"]
|
[ext_resource type="TileSet" uid="uid://6im0g3eg6sr4" path="res://test_tiles.tres" id="1_qel1r"]
|
||||||
@@ -10,11 +10,12 @@
|
|||||||
[ext_resource type="Script" uid="uid://bh54wpqgau8hc" path="res://scripts/npc.gd" id="8_nhrwr"]
|
[ext_resource type="Script" uid="uid://bh54wpqgau8hc" path="res://scripts/npc.gd" id="8_nhrwr"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dcrhry67g00vk" path="res://graphics/pom.png" id="9_4bidn"]
|
[ext_resource type="Texture2D" uid="uid://dcrhry67g00vk" path="res://graphics/pom.png" id="9_4bidn"]
|
||||||
[ext_resource type="PackedScene" uid="uid://jbqw0n6dlj08" path="res://templates/speech_bubble.tscn" id="10_6hdsl"]
|
[ext_resource type="PackedScene" uid="uid://jbqw0n6dlj08" path="res://templates/speech_bubble.tscn" id="10_6hdsl"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cg42wsmb3ocfq" path="res://graphics/first-guild.png" id="11_4bidn"]
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_w7eqs"]
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_w7eqs"]
|
||||||
vertices = PackedVector2Array(335, 241, 335, 128.77344, 360.28906, 141.42188, 399, 241, 582.1094, 145.17969, 582.10156, 145.17188, 589.9219, 141.70313, 689, 241, 377.28906, 149.92188, 411.46094, 167, 497, 241, 497, 305, 399, 305, 533.1875, 167, 613.1875, 131.32031, 689, 54.757813, 642.3672, 97.28125, 646.02344, 65.71875, 647.34375, 54.179688)
|
vertices = PackedVector2Array(335, 241, 335, 111.36719, 378.1875, 129.53125, 399, 241, 395.97656, 137, 523.21875, 137, 497, 241, 624.0469, 71.046875, 689, 30, 689, 241, 588.78125, 107.5, 497, 305, 399, 305, 630.75, 30, 582.15625, 110.47656)
|
||||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6, 7), PackedInt32Array(3, 2, 8), PackedInt32Array(3, 8, 9, 10), PackedInt32Array(10, 11, 12, 3), PackedInt32Array(10, 9, 13, 7), PackedInt32Array(7, 13, 4), PackedInt32Array(7, 6, 14), PackedInt32Array(15, 7, 14, 16), PackedInt32Array(15, 16, 17), PackedInt32Array(18, 15, 17)])
|
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3), PackedInt32Array(3, 2, 4), PackedInt32Array(3, 4, 5, 6), PackedInt32Array(7, 8, 9, 6, 10), PackedInt32Array(6, 11, 12, 3), PackedInt32Array(7, 13, 8), PackedInt32Array(10, 6, 5, 14)])
|
||||||
outlines = Array[PackedVector2Array]([PackedVector2Array(315, 60, 337, 113, 415, 152, 530, 152, 604, 119, 628, 91, 634, 39, 706, 40, 708, -15, 317, -19)])
|
outlines = Array[PackedVector2Array]([PackedVector2Array(315, 60, 330, 93, 399, 122, 520, 122, 580, 95, 610, 64, 618, 15, 695, 15, 695, -18, 317, -19)])
|
||||||
border_size = 250.0
|
border_size = 250.0
|
||||||
agent_radius = 15.0
|
agent_radius = 15.0
|
||||||
|
|
||||||
@@ -23,9 +24,9 @@ radius = 15.0
|
|||||||
height = 54.0
|
height = 54.0
|
||||||
|
|
||||||
[sub_resource type="NavigationPolygon" id="NavigationPolygon_l3mu1"]
|
[sub_resource type="NavigationPolygon" id="NavigationPolygon_l3mu1"]
|
||||||
vertices = PackedVector2Array(112, 144, 14, 144, 14, 0, 112, 0)
|
vertices = PackedVector2Array(112, 144, 14, 144, 14, -69, 112, -69)
|
||||||
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)])
|
||||||
outlines = Array[PackedVector2Array]([PackedVector2Array(4, -10, 122, -10, 122, 154, 4, 154)])
|
outlines = Array[PackedVector2Array]([PackedVector2Array(4, -79, 122, -79, 122, 154, 4, 154)])
|
||||||
|
|
||||||
[node name="Guildhall" type="Node2D"]
|
[node name="Guildhall" type="Node2D"]
|
||||||
script = ExtResource("1_lsinl")
|
script = ExtResource("1_lsinl")
|
||||||
@@ -34,6 +35,7 @@ script = ExtResource("1_lsinl")
|
|||||||
navigation_polygon = SubResource("NavigationPolygon_w7eqs")
|
navigation_polygon = SubResource("NavigationPolygon_w7eqs")
|
||||||
|
|
||||||
[node name="TileMapLayer" type="TileMapLayer" parent="RoomRegion"]
|
[node name="TileMapLayer" type="TileMapLayer" parent="RoomRegion"]
|
||||||
|
visible = false
|
||||||
tile_map_data = PackedByteArray("AAAFAAIAAAAOAAEAAAAGAAIAAAAOAAEAAAAHAAIAAAAOAAEAAAAIAAIAAAAOAAEAAAAJAAIAAAAOAAEAAAAKAAIAAAAOAAEAAAAHAAEAAAAOAAEAAAAGAAEAAAAOAAEAAAAFAAEAAAAOAAEAAAAKAAEAAAAOAAEAAAAJAAEAAAAOAAEAAAAIAAEAAAAOAAEAAAALAAIAAAACAAUAAAALAAEAAAACAAUAAAAKAAAAAAAOAAEAAAAJAAAAAAAOAAEAAAAIAAAAAAAOAAEAAAAHAAAAAAAOAAEAAAAGAAAAAAAOAAEAAAAFAAAAAAAOAAEAAAALAAAAAAACAAUAAAAFAP//AAACAAQAAAAGAP//AAACAAQAAAAHAP//AAACAAQAAAAIAP//AAACAAQAAAAJAP//AAACAAQAAAAKAP//AAACAAQAAAALAP//AAABAAQAAAAEAP//AAAAAAQAAAAEAAAAAAACAAUAAAAEAAEAAAACAAUAAAAEAAIAAAACAAUAAAAEAAMAAAACAAUAAAAFAAMAAAAOAAEAAAAGAAMAAAAOAAEAAAAHAAMAAAAOAAEAAAAIAAMAAAAOAAEAAAAJAAMAAAAOAAEAAAAKAAMAAAAOAAEAAAALAAMAAAACAAUAAAAEAAQAAAAAAAUAAAAKAAQAAAACAAQAAAALAAQAAAABAAUAAAAFAAQAAAACAAQAAAAHAAQAAAAOAAEAAAAIAAQAAAACAAQAAAAGAAQAAAAOAAEAAAAJAAQAAAACAAQAAAA=")
|
tile_map_data = PackedByteArray("AAAFAAIAAAAOAAEAAAAGAAIAAAAOAAEAAAAHAAIAAAAOAAEAAAAIAAIAAAAOAAEAAAAJAAIAAAAOAAEAAAAKAAIAAAAOAAEAAAAHAAEAAAAOAAEAAAAGAAEAAAAOAAEAAAAFAAEAAAAOAAEAAAAKAAEAAAAOAAEAAAAJAAEAAAAOAAEAAAAIAAEAAAAOAAEAAAALAAIAAAACAAUAAAALAAEAAAACAAUAAAAKAAAAAAAOAAEAAAAJAAAAAAAOAAEAAAAIAAAAAAAOAAEAAAAHAAAAAAAOAAEAAAAGAAAAAAAOAAEAAAAFAAAAAAAOAAEAAAALAAAAAAACAAUAAAAFAP//AAACAAQAAAAGAP//AAACAAQAAAAHAP//AAACAAQAAAAIAP//AAACAAQAAAAJAP//AAACAAQAAAAKAP//AAACAAQAAAALAP//AAABAAQAAAAEAP//AAAAAAQAAAAEAAAAAAACAAUAAAAEAAEAAAACAAUAAAAEAAIAAAACAAUAAAAEAAMAAAACAAUAAAAFAAMAAAAOAAEAAAAGAAMAAAAOAAEAAAAHAAMAAAAOAAEAAAAIAAMAAAAOAAEAAAAJAAMAAAAOAAEAAAAKAAMAAAAOAAEAAAALAAMAAAACAAUAAAAEAAQAAAAAAAUAAAAKAAQAAAACAAQAAAALAAQAAAABAAUAAAAFAAQAAAACAAQAAAAHAAQAAAAOAAEAAAAIAAQAAAACAAQAAAAGAAQAAAAOAAEAAAAJAAQAAAACAAQAAAA=")
|
||||||
tile_set = ExtResource("1_qel1r")
|
tile_set = ExtResource("1_qel1r")
|
||||||
|
|
||||||
@@ -42,12 +44,16 @@ visible = false
|
|||||||
tile_map_data = PackedByteArray("AAANAAAAAAAKABEAAAAOAAAAAAAKABEAAAAPAAAAAAAKABEAAAAQAAAAAAAKABEAAAA=")
|
tile_map_data = PackedByteArray("AAANAAAAAAAKABEAAAAOAAAAAAAKABEAAAAPAAAAAAAKABEAAAAQAAAAAAAKABEAAAA=")
|
||||||
tile_set = ExtResource("1_qel1r")
|
tile_set = ExtResource("1_qel1r")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
position = Vector2(497, 136)
|
||||||
|
texture = ExtResource("11_4bidn")
|
||||||
|
|
||||||
[node name="Sprites" type="Node2D" parent="."]
|
[node name="Sprites" type="Node2D" parent="."]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
y_sort_enabled = true
|
y_sort_enabled = true
|
||||||
|
|
||||||
[node name="Reception Desk" type="StaticBody2D" parent="Sprites"]
|
[node name="Reception Desk" type="StaticBody2D" parent="Sprites"]
|
||||||
position = Vector2(472, 142)
|
position = Vector2(457, 112)
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="Sprites/Reception Desk"]
|
[node name="Sprite2D" type="Sprite2D" parent="Sprites/Reception Desk"]
|
||||||
texture = ExtResource("3_13vc8")
|
texture = ExtResource("3_13vc8")
|
||||||
@@ -57,13 +63,15 @@ offset = Vector2(0, -80)
|
|||||||
polygon = PackedVector2Array(-86, -160, -152, -160, -152, -107, -148, -75, -128, -35, -57, 0, 56, 0, 127, -34, 148, -75, 152, -107, 152, -160, 86, -160, 86, -115, 75, -93, 52, -81, -51, -81, -75, -92, -86, -114)
|
polygon = PackedVector2Array(-86, -160, -152, -160, -152, -107, -148, -75, -128, -35, -57, 0, 56, 0, 127, -34, 148, -75, 152, -107, 152, -160, 86, -160, 86, -115, 75, -93, 52, -81, -51, -81, -75, -92, -86, -114)
|
||||||
|
|
||||||
[node name="Receptionist" parent="Sprites" instance=ExtResource("5_l3mu1")]
|
[node name="Receptionist" parent="Sprites" instance=ExtResource("5_l3mu1")]
|
||||||
position = Vector2(473, 71)
|
visible = false
|
||||||
|
position = Vector2(457, 32)
|
||||||
|
|
||||||
[node name="Queue" parent="Sprites/Receptionist" index="3"]
|
[node name="Queue" parent="Sprites/Receptionist" index="3"]
|
||||||
position = Vector2(0, 97)
|
position = Vector2(0, 97)
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody2D" parent="Sprites"]
|
[node name="Player" type="CharacterBody2D" parent="Sprites"]
|
||||||
position = Vector2(451, 311)
|
visible = false
|
||||||
|
position = Vector2(451, 430)
|
||||||
script = ExtResource("2_5n4iw")
|
script = ExtResource("2_5n4iw")
|
||||||
|
|
||||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprites/Player"]
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprites/Player"]
|
||||||
@@ -79,15 +87,15 @@ path_desired_distance = 30.0
|
|||||||
avoidance_enabled = true
|
avoidance_enabled = true
|
||||||
|
|
||||||
[node name="EntranceRegion" type="NavigationRegion2D" parent="."]
|
[node name="EntranceRegion" type="NavigationRegion2D" parent="."]
|
||||||
position = Vector2(385, 305)
|
position = Vector2(385, 374)
|
||||||
navigation_polygon = SubResource("NavigationPolygon_l3mu1")
|
navigation_polygon = SubResource("NavigationPolygon_l3mu1")
|
||||||
|
|
||||||
[node name="Quest Board" parent="." instance=ExtResource("7_hph4e")]
|
[node name="Quest Board" parent="." instance=ExtResource("7_hph4e")]
|
||||||
position = Vector2(670, 32)
|
position = Vector2(654, -2)
|
||||||
|
|
||||||
[node name="Npc" type="CharacterBody2D" parent="."]
|
[node name="Npc" type="CharacterBody2D" parent="."]
|
||||||
z_index = 1
|
z_index = 1
|
||||||
position = Vector2(365, 39)
|
position = Vector2(347, 3)
|
||||||
script = ExtResource("8_nhrwr")
|
script = ExtResource("8_nhrwr")
|
||||||
metadata/_custom_type_script = "uid://bh54wpqgau8hc"
|
metadata/_custom_type_script = "uid://bh54wpqgau8hc"
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://c8ofw6na082gv"]
|
[gd_scene load_steps=9 format=3 uid="uid://c8ofw6na082gv"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/main_panel.gd" id="1_pdekv"]
|
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/main_panel.gd" id="1_pdekv"]
|
||||||
[ext_resource type="Script" uid="uid://4jrp67ckp7vt" path="res://scripts/timer_label.gd" id="2_5rs2c"]
|
[ext_resource type="Script" uid="uid://4jrp67ckp7vt" path="res://scripts/timer_label.gd" id="2_5rs2c"]
|
||||||
[ext_resource type="StyleBox" uid="uid://by1jk8r2avjp4" path="res://styles/open_shift_panel.tres" id="2_b7y1i"]
|
[ext_resource type="StyleBox" uid="uid://by1jk8r2avjp4" path="res://styles/open_shift_panel.tres" id="2_b7y1i"]
|
||||||
[ext_resource type="StyleBox" uid="uid://b7vjpwageyi6m" path="res://styles/working_shift_panel.tres" id="4_b7y1i"]
|
[ext_resource type="StyleBox" uid="uid://b7vjpwageyi6m" path="res://styles/working_shift_panel.tres" id="4_b7y1i"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cs7bvpn6jgofn" path="res://graphics/ui/options.png" id="5_6vw8v"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://du4hyv7egc7ny" path="res://templates/quest_view_window.tscn" id="6_er2tk"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dq7e5u8j14atb" path="res://sounds/Paper Turn.wav" id="6_osxme"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q6wja"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q6wja"]
|
||||||
content_margin_left = 4.0
|
content_margin_left = 4.0
|
||||||
content_margin_top = 4.0
|
content_margin_top = 4.0
|
||||||
content_margin_right = 4.0
|
content_margin_right = 4.0
|
||||||
content_margin_bottom = 4.0
|
content_margin_bottom = 4.0
|
||||||
bg_color = Color(0.32774815, 0.3295362, 0.561609, 0.6)
|
bg_color = Color(0.36, 0.2256, 0.1584, 1)
|
||||||
corner_radius_top_left = 3
|
corner_radius_top_left = 3
|
||||||
corner_radius_top_right = 3
|
corner_radius_top_right = 3
|
||||||
corner_radius_bottom_right = 3
|
corner_radius_bottom_right = 3
|
||||||
@@ -19,8 +22,8 @@ corner_detail = 5
|
|||||||
|
|
||||||
[node name="MainPanel" type="MarginContainer"]
|
[node name="MainPanel" type="MarginContainer"]
|
||||||
anchors_preset = -1
|
anchors_preset = -1
|
||||||
offset_right = 319.0
|
offset_right = 401.0
|
||||||
offset_bottom = 189.0
|
offset_bottom = 853.0
|
||||||
theme_override_constants/margin_left = 0
|
theme_override_constants/margin_left = 0
|
||||||
theme_override_constants/margin_top = 0
|
theme_override_constants/margin_top = 0
|
||||||
theme_override_constants/margin_right = 0
|
theme_override_constants/margin_right = 0
|
||||||
@@ -34,13 +37,18 @@ autostart = true
|
|||||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="OpenShift" type="PanelContainer" parent="VBoxContainer"]
|
[node name="OpenShift" type="Panel" parent="VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(401, 216)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/panel = ExtResource("2_b7y1i")
|
theme_override_styles/panel = ExtResource("2_b7y1i")
|
||||||
|
|
||||||
[node name="Margin" type="MarginContainer" parent="VBoxContainer/OpenShift"]
|
[node name="Margin" type="MarginContainer" parent="VBoxContainer/OpenShift"]
|
||||||
layout_mode = 2
|
layout_mode = 0
|
||||||
|
offset_left = 74.0
|
||||||
|
offset_top = 34.0
|
||||||
|
offset_right = 236.0
|
||||||
|
offset_bottom = 174.0
|
||||||
theme_override_constants/margin_top = -20
|
theme_override_constants/margin_top = -20
|
||||||
theme_override_constants/margin_right = -80
|
theme_override_constants/margin_right = -80
|
||||||
|
|
||||||
@@ -50,12 +58,14 @@ layout_mode = 2
|
|||||||
alignment = 1
|
alignment = 1
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
[node name="Label" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
||||||
|
modulate = Color(0.4209763, 0.2318669, 0, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 28
|
theme_override_font_sizes/font_size = 28
|
||||||
text = "Time til Next Shift"
|
text = "Time til Next Shift"
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
|
|
||||||
[node name="TimerLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
[node name="TimerLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
||||||
|
modulate = Color(0.4209763, 0.2318669, 0, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 28
|
theme_override_font_sizes/font_size = 28
|
||||||
text = "00:00:00.00"
|
text = "00:00:00.00"
|
||||||
@@ -63,9 +73,10 @@ horizontal_alignment = 1
|
|||||||
script = ExtResource("2_5rs2c")
|
script = ExtResource("2_5rs2c")
|
||||||
|
|
||||||
[node name="VisitorsLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
[node name="VisitorsLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
||||||
|
modulate = Color(0.4209763, 0.2318669, 0, 1)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 28
|
theme_override_font_sizes/font_size = 28
|
||||||
text = "000:00:00.00"
|
text = "Visitors"
|
||||||
script = ExtResource("2_5rs2c")
|
script = ExtResource("2_5rs2c")
|
||||||
|
|
||||||
[node name="Button" type="Button" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
[node name="Button" type="Button" parent="VBoxContainer/OpenShift/Margin/OpenList"]
|
||||||
@@ -73,16 +84,34 @@ layout_mode = 2
|
|||||||
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
|
||||||
text = "CLOSE GUILD"
|
text = "CLOSE GUILD"
|
||||||
|
|
||||||
[node name="WorkingShift" type="PanelContainer" parent="VBoxContainer"]
|
[node name="WorkingShift" type="Panel" parent="VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
|
custom_minimum_size = Vector2(401, 216)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/panel = ExtResource("4_b7y1i")
|
theme_override_styles/panel = ExtResource("4_b7y1i")
|
||||||
|
|
||||||
|
[node name="DragRegion" type="Control" parent="VBoxContainer/WorkingShift"]
|
||||||
|
layout_mode = 1
|
||||||
|
offset_left = 4.0
|
||||||
|
offset_top = 3.0
|
||||||
|
offset_right = 399.0
|
||||||
|
offset_bottom = 43.0
|
||||||
|
|
||||||
|
[node name="TextureButton" type="TextureButton" parent="VBoxContainer/WorkingShift"]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 352.0
|
||||||
|
offset_top = 5.0
|
||||||
|
offset_right = 391.0
|
||||||
|
offset_bottom = 44.0
|
||||||
|
texture_normal = ExtResource("5_6vw8v")
|
||||||
|
|
||||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/WorkingShift"]
|
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/WorkingShift"]
|
||||||
layout_mode = 2
|
layout_mode = 0
|
||||||
theme_override_constants/margin_left = -80
|
offset_left = 13.0
|
||||||
theme_override_constants/margin_top = -20
|
offset_top = 45.0
|
||||||
|
offset_right = 388.0
|
||||||
|
offset_bottom = 205.0
|
||||||
|
|
||||||
[node name="WorkingList" type="VBoxContainer" parent="VBoxContainer/WorkingShift/MarginContainer"]
|
[node name="WorkingList" type="VBoxContainer" parent="VBoxContainer/WorkingShift/MarginContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
@@ -98,15 +127,38 @@ horizontal_alignment = 1
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_font_sizes/font_size = 28
|
theme_override_font_sizes/font_size = 28
|
||||||
text = "000:00:00.00"
|
text = "000:00:00.00"
|
||||||
|
horizontal_alignment = 1
|
||||||
script = ExtResource("2_5rs2c")
|
script = ExtResource("2_5rs2c")
|
||||||
|
|
||||||
[node name="ShowQuestsButton" type="Button" parent="VBoxContainer/WorkingShift/MarginContainer/WorkingList"]
|
[node name="Control" type="Control" parent="VBoxContainer/WorkingShift/MarginContainer/WorkingList"]
|
||||||
|
custom_minimum_size = Vector2(0, 30)
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/WorkingShift/MarginContainer/WorkingList"]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="QuestViewerButton" type="Button" parent="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(175, 0)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
|
||||||
|
text = "Quest Viewer"
|
||||||
|
|
||||||
|
[node name="ShowQuestsButton" type="Button" parent="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(175, 0)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
|
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
|
||||||
text = "Show Quests"
|
text = "Show Quests"
|
||||||
|
|
||||||
|
[node name="QuestView" parent="VBoxContainer" instance=ExtResource("6_er2tk")]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(375, 325)
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Panel" type="PanelContainer" parent="VBoxContainer"]
|
[node name="Panel" type="PanelContainer" parent="VBoxContainer"]
|
||||||
|
custom_minimum_size = Vector2(400, 100)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="QuestProgressList" type="ScrollContainer" parent="VBoxContainer/Panel"]
|
[node name="QuestProgressList" type="ScrollContainer" parent="VBoxContainer/Panel"]
|
||||||
@@ -124,9 +176,16 @@ size_flags_horizontal = 3
|
|||||||
|
|
||||||
[node name="Notices" type="VBoxContainer" parent="VBoxContainer"]
|
[node name="Notices" type="VBoxContainer" parent="VBoxContainer"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
custom_minimum_size = Vector2(0, 200)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||||
|
stream = ExtResource("6_osxme")
|
||||||
|
volume_db = -10.31
|
||||||
|
|
||||||
[connection signal="time_changed" from="." to="VBoxContainer/OpenShift/Margin/OpenList/TimerLabel" method="_on_time_changed"]
|
[connection signal="time_changed" from="." to="VBoxContainer/OpenShift/Margin/OpenList/TimerLabel" method="_on_time_changed"]
|
||||||
[connection signal="time_changed" from="." to="VBoxContainer/WorkingShift/MarginContainer/WorkingList/TimerLabel" method="_on_time_changed"]
|
[connection signal="time_changed" from="." to="VBoxContainer/WorkingShift/MarginContainer/WorkingList/TimerLabel" method="_on_time_changed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/OpenShift/Margin/OpenList/Button" to="." method="_on_end_shift_pressed"]
|
[connection signal="pressed" from="VBoxContainer/OpenShift/Margin/OpenList/Button" to="." method="_on_end_shift_pressed"]
|
||||||
[connection signal="pressed" from="VBoxContainer/WorkingShift/MarginContainer/WorkingList/ShowQuestsButton" to="." method="_on_show_quests_pressed"]
|
[connection signal="gui_input" from="VBoxContainer/WorkingShift/DragRegion" to="." method="_on_drag_region_gui_input"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer/QuestViewerButton" to="." method="_on_quest_viewer_button_pressed"]
|
||||||
|
[connection signal="pressed" from="VBoxContainer/WorkingShift/MarginContainer/WorkingList/HBoxContainer/ShowQuestsButton" to="." method="_on_show_quests_pressed"]
|
||||||
|
|||||||