This commit is contained in:
2025-08-21 11:41:16 -04:00
parent a5d5a05369
commit 906f761041
103 changed files with 2670 additions and 250 deletions

View File

@@ -9,3 +9,11 @@ res://sounds/ui_menu_button_confirm_01.wav
****************************************************************************************************
res://sounds/No Button.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

View File

@@ -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():
get: return get_subsystem("Voice")
var Visual := preload("res://addons/dialogic/Modules/Visual/subsystem_visual.gd").new():
get: return get_subsystem("Visual")
#endregion

View File

@@ -264,4 +264,3 @@ func _on_value_1_variable_value_changed(property_name: Variant, value: Variant)
%Value2Type.index_pressed(1)
something_changed()

View File

@@ -1,6 +1,6 @@
[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://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)
[node name="Field_Number" type="HBoxContainer"]
anchors_preset = 15
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -1102.0
@@ -60,8 +60,8 @@ size_flags_vertical = 4
mouse_filter = 1
mouse_default_cursor_shape = 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/focus = SubResource("StyleBoxEmpty_sj3oj")
bbcode_enabled = true
fit_content = true
scroll_active = false
@@ -78,8 +78,8 @@ size_flags_horizontal = 3
focus_mode = 1
theme_override_constants/minimum_character_width = 0
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/focus = SubResource("StyleBoxEmpty_8yqsu")
text = "0"
alignment = 1
expand_to_text_length = true
@@ -95,8 +95,8 @@ size_flags_horizontal = 8
size_flags_vertical = 4
mouse_default_cursor_shape = 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/focus = SubResource("StyleBoxEmpty_smq50")
bbcode_enabled = true
fit_content = true
scroll_active = false
@@ -113,17 +113,17 @@ theme_override_constants/separation = 0
alignment = 1
[node name="Increment" type="Button" parent="Value_Panel/Layout/Spin"]
auto_translate_mode = 2
layout_mode = 2
size_flags_vertical = 3
auto_translate = false
focus_neighbor_left = NodePath("../../Value")
focus_neighbor_top = NodePath(".")
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_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_increment")
theme_override_styles/hover = 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/focus = SubResource("StyleBoxFlat_increment")
icon = ExtResource("3_v5cne")
@@ -131,17 +131,17 @@ flat = true
vertical_icon_alignment = 2
[node name="Decrement" type="Button" parent="Value_Panel/Layout/Spin"]
auto_translate_mode = 2
layout_mode = 2
size_flags_vertical = 3
auto_translate = false
focus_neighbor_left = NodePath("../../Value")
focus_neighbor_top = NodePath("../Increment")
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_hover_color = Color(0.412738, 0.550094, 0.760917, 1)
theme_override_styles/normal = SubResource("StyleBoxFlat_decrement")
theme_override_styles/hover = 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/focus = SubResource("StyleBoxFlat_decrement")
icon = ExtResource("4_ph52o")

View File

@@ -235,5 +235,3 @@ func _on_search_up_pressed() -> void:
get_current_editor()._search_navigate_up()
#endregion

View 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

View File

@@ -0,0 +1 @@
uid://bflq0peywpm2l

Binary file not shown.

After

Width:  |  Height:  |  Size: 846 B

View 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

View 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')}]

View File

@@ -0,0 +1 @@
uid://dccv6ady6vp7t

View 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

View File

@@ -0,0 +1 @@
uid://digbgc8bv3bg6

View File

@@ -1 +1 @@
extends Equipment
class_name Accessory extends Equipment

View File

@@ -1 +1 @@
extends Equipment
class_name Armor extends Equipment

View File

@@ -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
View 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"

View File

@@ -1 +1,4 @@
extends Equipment
class_name Weapon extends Equipment
@export var min_damage : int
@export var max_damage : int

View File

@@ -1,8 +1,10 @@
player: Wow, nobody's been here in a while.\
I should...
player: (Wow this is a mess... nobody's been here for a while. I should...)
- set up some lights.
Hey, no touching! This isn't your home! Get out!
- clean it out.
Hey, no touching! This isn't your home! Get out!
- get an exorcist.
An exorcist won't save you from MeEeEe!
- burn it down.
BEwArEe BrI--Wait, did you say BURN IT DOWN? Burn. It. Down?!? ARE YOU INSANE?!?
- Who is that?!?
@@ -22,3 +24,8 @@ player: Well...
- I don't believe you.
And who cares what you believe? Begone, you do not belong here!
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

Binary file not shown.

BIN
external/first-guild.clip vendored Normal file

Binary file not shown.

BIN
external/guildwip.clip vendored Normal file

Binary file not shown.

BIN
external/open-shift-window.clip vendored Normal file

Binary file not shown.

BIN
external/portrait.clip vendored Normal file

Binary file not shown.

BIN
external/profile-window.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 478 KiB

40
external/profile-window.png.import vendored Normal file
View 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

Binary file not shown.

BIN
external/sketches.clip vendored

Binary file not shown.

BIN
external/tc/1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/tc/10.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
external/tc/2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
external/tc/3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/tc/4.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/tc/5.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
external/tc/6.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

BIN
external/tc/7.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
external/tc/8.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
external/tc/9.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/test-qsvchar.clip vendored Normal file

Binary file not shown.

40
external/test-qsvchar.png.import vendored Normal file
View 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

Binary file not shown.

BIN
fonts/Bagnard.otf Normal file

Binary file not shown.

41
fonts/Bagnard.otf.import Normal file
View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 B

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -23,7 +23,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -31,10 +31,10 @@ 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/fix_alpha_border=false
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
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View 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

View File

@@ -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="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="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://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"]
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"]
script = ExtResource("1_752n1")
[node name="Guildhall" parent="." instance=ExtResource("2_rma72")]
position = Vector2(421, 161)
[node name="ColorRect" type="ColorRect" parent="Guildhall"]
[node name="ColorRect" type="ColorRect" parent="."]
visible = false
z_index = 100
material = SubResource("CanvasItemMaterial_752n1")
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -418.0
offset_top = -158.0
offset_right = 1502.0
offset_bottom = 922.0
offset_left = 3.0
offset_top = 5.0
offset_right = 1923.0
offset_bottom = 1085.0
grow_horizontal = 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"]
position = Vector2(505, 870)
script = ExtResource("3_oi1nh")
total_visitors = 3
total_visitors = 1
[node name="Timer" type="Timer" parent="Guildhall/VisitorSpawner"]
@@ -40,10 +107,10 @@ total_visitors = 3
[node name="VBoxContainer" type="VBoxContainer" parent="UI"]
anchors_preset = -1
offset_left = 1567.0
offset_left = 1485.0
offset_top = 23.0
offset_right = 1903.0
offset_bottom = 185.0
offset_right = 1886.0
offset_bottom = 351.0
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("4_4k18p")]
layout_mode = 2
@@ -53,4 +120,8 @@ layout_mode = 2
[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"]

View File

@@ -27,8 +27,11 @@ var job : JobData
var stats : StatBlock
var gold : int = 0
var quest : Quest
var weapon : Weapon
var armor : Armor
var accessory : Accessory
var inventory : Dictionary[Vector2, Item] = {}
var inventory_size : Vector2i = Vector2i(6,1)
func _init() -> void:
stats = StatBlock.new()

View File

@@ -32,17 +32,18 @@ func end_shift() -> void:
var window = get_window()
window.mode = Window.MODE_WINDOWED
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()
window.position = Vector2i(size.x - 345, 25)
window.transparent = true
window.transparent_bg = true
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_BORDERLESS, true)
DisplayServer.window_set_flag(DisplayServer.WINDOW_FLAG_TRANSPARENT, true)
window.per
Guild.hall.process_mode = Node.PROCESS_MODE_DISABLED
top_menu.hide()
panel.get_parent().global_position = Vector2i(5,5)
window.size = Vector2i(345,500)
window.size = Vector2i(415,700)
panel.populate_quest_bars()
func notice(msg : String, time : float = 1) -> void:

14
scripts/item_slot.gd Normal file
View 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
View File

@@ -0,0 +1 @@
uid://cw6yo5opbrpr8

View File

@@ -6,6 +6,7 @@ const quest_progress_bar_template = preload("res://templates/quest_progress_bar.
signal time_changed(time : float)
@onready var timer : Timer = $Timer
@onready var audioplayer : AudioStreamPlayer = $AudioStreamPlayer
func _ready() -> void:
Game.panel = self
@@ -26,7 +27,9 @@ func add_quest_progress_bar(quest : Quest) -> void:
func switch_panel(active : bool) -> void:
%OpenShift.visible = active
%WorkingShift.visible = !active
%QuestView.visible = !active
%Timer.start(300 if active else 1500)
audioplayer.play()
func _on_show_quests_pressed() -> void:
%QuestProgressList.visible = !%QuestProgressList.visible
@@ -58,4 +61,22 @@ func notice(msg : String, time : float) -> void:
%Notices.add_child(ntc)
ntc.message = msg
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

View File

@@ -1,6 +1,8 @@
extends Window
var dragging : bool = false
var data : AdventurerData
@onready var nameLabel = %NameLabel
@onready var jobLabel = %JobLabel
@onready var expLabel : Label = %ExpLabel
@onready var levelLabel :Label = %LevelLabel
@@ -17,7 +19,7 @@ var data : AdventurerData
func setup(adv : AdventurerData) -> void:
data = adv
title = data.full_name()
nameLabel.text = data.full_name()
if data.job:
jobLabel.text = data.job.name
else:
@@ -26,13 +28,22 @@ func setup(adv : AdventurerData) -> void:
expLabel.text = "Exp: %d/%d" % [data.exp, data.get_tnl()]
lifeLabel.text = "Life: " + str(data.life) + "/" + str(data.max_life)
energyLabel.text = "Energy: " + str(data.energy) + "/" + str(data.max_energy)
strLabel.text = "STR: " + str(data.stats.STR)
dexLabel.text = "DEX: " + str(data.stats.DEX)
intLabel.text = "INT: " + str(data.stats.INT)
chaLabel.text = "CHA: " + str(data.stats.CHA)
faiLabel.text = "FAI: " + str(data.stats.FAI)
lukLabel.text = "LUK: " + str(data.stats.LUK)
strLabel.text = str(data.stats.STR)
dexLabel.text = str(data.stats.DEX)
intLabel.text = str(data.stats.INT)
chaLabel.text = str(data.stats.CHA)
faiLabel.text = str(data.stats.FAI)
lukLabel.text = str(data.stats.LUK)
#TODO: Show equipment
func _on_close_requested() -> void:
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)

View File

@@ -1 +1,5 @@
extends Window
func _on_close_button_pressed() -> void:
queue_free()

View File

@@ -22,8 +22,67 @@ class Event:
var time_elapsed
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:
#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
if time_elapsed >= time:
completed.emit()
@@ -74,6 +133,7 @@ func complete() -> void:
func num_events() -> int:
return len(events)
#TODO: Put in quest requirements
func is_eligible(member : AdventurerData) -> bool:
return !taken

View File

@@ -1,6 +1,6 @@
extends Node2D
var test_adv = preload("res://templates/test_adventurer.tscn")
@onready var door_player : AudioStreamPlayer = $AudioStreamPlayer
func _ready() -> void:
#var adv : AdventurerData = test_adv.instantiate() as AdventurerData
#Guild.register_guild_member(adv)
@@ -9,3 +9,14 @@ func _ready() -> void:
evt.time = 10
quest.events.append(evt)
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()

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

Binary file not shown.

View 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

View File

@@ -1,6 +1,6 @@
[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]
texture = ExtResource("1_vv6wn")

21
styles/stat_font.tres Normal file
View 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")

View File

@@ -1,10 +1,10 @@
[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]
texture = ExtResource("1_tfsob")
texture_margin_left = 117.0
texture_margin_top = 48.0
texture_margin_left = 48.0
texture_margin_top = 70.0
texture_margin_right = 48.0
texture_margin_bottom = 35.0

View File

@@ -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="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="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="Texture2D" uid="uid://cg42wsmb3ocfq" path="res://graphics/first-guild.png" id="11_4bidn"]
[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)
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)])
outlines = Array[PackedVector2Array]([PackedVector2Array(315, 60, 337, 113, 415, 152, 530, 152, 604, 119, 628, 91, 634, 39, 706, 40, 708, -15, 317, -19)])
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(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, 330, 93, 399, 122, 520, 122, 580, 95, 610, 64, 618, 15, 695, 15, 695, -18, 317, -19)])
border_size = 250.0
agent_radius = 15.0
@@ -23,9 +24,9 @@ radius = 15.0
height = 54.0
[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)])
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"]
script = ExtResource("1_lsinl")
@@ -34,6 +35,7 @@ script = ExtResource("1_lsinl")
navigation_polygon = SubResource("NavigationPolygon_w7eqs")
[node name="TileMapLayer" type="TileMapLayer" parent="RoomRegion"]
visible = false
tile_map_data = PackedByteArray("AAAFAAIAAAAOAAEAAAAGAAIAAAAOAAEAAAAHAAIAAAAOAAEAAAAIAAIAAAAOAAEAAAAJAAIAAAAOAAEAAAAKAAIAAAAOAAEAAAAHAAEAAAAOAAEAAAAGAAEAAAAOAAEAAAAFAAEAAAAOAAEAAAAKAAEAAAAOAAEAAAAJAAEAAAAOAAEAAAAIAAEAAAAOAAEAAAALAAIAAAACAAUAAAALAAEAAAACAAUAAAAKAAAAAAAOAAEAAAAJAAAAAAAOAAEAAAAIAAAAAAAOAAEAAAAHAAAAAAAOAAEAAAAGAAAAAAAOAAEAAAAFAAAAAAAOAAEAAAALAAAAAAACAAUAAAAFAP//AAACAAQAAAAGAP//AAACAAQAAAAHAP//AAACAAQAAAAIAP//AAACAAQAAAAJAP//AAACAAQAAAAKAP//AAACAAQAAAALAP//AAABAAQAAAAEAP//AAAAAAQAAAAEAAAAAAACAAUAAAAEAAEAAAACAAUAAAAEAAIAAAACAAUAAAAEAAMAAAACAAUAAAAFAAMAAAAOAAEAAAAGAAMAAAAOAAEAAAAHAAMAAAAOAAEAAAAIAAMAAAAOAAEAAAAJAAMAAAAOAAEAAAAKAAMAAAAOAAEAAAALAAMAAAACAAUAAAAEAAQAAAAAAAUAAAAKAAQAAAACAAQAAAALAAQAAAABAAUAAAAFAAQAAAACAAQAAAAHAAQAAAAOAAEAAAAIAAQAAAACAAQAAAAGAAQAAAAOAAEAAAAJAAQAAAACAAQAAAA=")
tile_set = ExtResource("1_qel1r")
@@ -42,12 +44,16 @@ visible = false
tile_map_data = PackedByteArray("AAANAAAAAAAKABEAAAAOAAAAAAAKABEAAAAPAAAAAAAKABEAAAAQAAAAAAAKABEAAAA=")
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="."]
z_index = 1
y_sort_enabled = true
[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"]
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)
[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"]
position = Vector2(0, 97)
[node name="Player" type="CharacterBody2D" parent="Sprites"]
position = Vector2(451, 311)
visible = false
position = Vector2(451, 430)
script = ExtResource("2_5n4iw")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprites/Player"]
@@ -79,15 +87,15 @@ path_desired_distance = 30.0
avoidance_enabled = true
[node name="EntranceRegion" type="NavigationRegion2D" parent="."]
position = Vector2(385, 305)
position = Vector2(385, 374)
navigation_polygon = SubResource("NavigationPolygon_l3mu1")
[node name="Quest Board" parent="." instance=ExtResource("7_hph4e")]
position = Vector2(670, 32)
position = Vector2(654, -2)
[node name="Npc" type="CharacterBody2D" parent="."]
z_index = 1
position = Vector2(365, 39)
position = Vector2(347, 3)
script = ExtResource("8_nhrwr")
metadata/_custom_type_script = "uid://bh54wpqgau8hc"

View File

@@ -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://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://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"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 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_right = 3
corner_radius_bottom_right = 3
@@ -19,8 +22,8 @@ corner_detail = 5
[node name="MainPanel" type="MarginContainer"]
anchors_preset = -1
offset_right = 319.0
offset_bottom = 189.0
offset_right = 401.0
offset_bottom = 853.0
theme_override_constants/margin_left = 0
theme_override_constants/margin_top = 0
theme_override_constants/margin_right = 0
@@ -34,13 +37,18 @@ autostart = true
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="OpenShift" type="PanelContainer" parent="VBoxContainer"]
[node name="OpenShift" type="Panel" parent="VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(401, 216)
layout_mode = 2
theme_override_styles/panel = ExtResource("2_b7y1i")
[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_right = -80
@@ -50,12 +58,14 @@ layout_mode = 2
alignment = 1
[node name="Label" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
modulate = Color(0.4209763, 0.2318669, 0, 1)
layout_mode = 2
theme_override_font_sizes/font_size = 28
text = "Time til Next Shift"
horizontal_alignment = 1
[node name="TimerLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
modulate = Color(0.4209763, 0.2318669, 0, 1)
layout_mode = 2
theme_override_font_sizes/font_size = 28
text = "00:00:00.00"
@@ -63,9 +73,10 @@ horizontal_alignment = 1
script = ExtResource("2_5rs2c")
[node name="VisitorsLabel" type="Label" parent="VBoxContainer/OpenShift/Margin/OpenList"]
modulate = Color(0.4209763, 0.2318669, 0, 1)
layout_mode = 2
theme_override_font_sizes/font_size = 28
text = "000:00:00.00"
text = "Visitors"
script = ExtResource("2_5rs2c")
[node name="Button" type="Button" parent="VBoxContainer/OpenShift/Margin/OpenList"]
@@ -73,16 +84,34 @@ layout_mode = 2
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
text = "CLOSE GUILD"
[node name="WorkingShift" type="PanelContainer" parent="VBoxContainer"]
[node name="WorkingShift" type="Panel" parent="VBoxContainer"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(401, 216)
layout_mode = 2
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"]
layout_mode = 2
theme_override_constants/margin_left = -80
theme_override_constants/margin_top = -20
layout_mode = 0
offset_left = 13.0
offset_top = 45.0
offset_right = 388.0
offset_bottom = 205.0
[node name="WorkingList" type="VBoxContainer" parent="VBoxContainer/WorkingShift/MarginContainer"]
unique_name_in_owner = true
@@ -98,15 +127,38 @@ horizontal_alignment = 1
layout_mode = 2
theme_override_font_sizes/font_size = 28
text = "000:00:00.00"
horizontal_alignment = 1
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
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
theme_override_styles/normal = SubResource("StyleBoxFlat_q6wja")
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"]
custom_minimum_size = Vector2(400, 100)
layout_mode = 2
[node name="QuestProgressList" type="ScrollContainer" parent="VBoxContainer/Panel"]
@@ -124,9 +176,16 @@ size_flags_horizontal = 3
[node name="Notices" type="VBoxContainer" parent="VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 200)
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/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/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"]

Some files were not shown because too many files have changed in this diff Show More