diff --git a/CONTRIBUTIONS.txt b/CONTRIBUTIONS.txt index 4ea6e57..0d135dd 100644 --- a/CONTRIBUTIONS.txt +++ b/CONTRIBUTIONS.txt @@ -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 diff --git a/addons/dialogic/Core/DialogicGameHandler.gd b/addons/dialogic/Core/DialogicGameHandler.gd index 43c2557..4c976fb 100644 --- a/addons/dialogic/Core/DialogicGameHandler.gd +++ b/addons/dialogic/Core/DialogicGameHandler.gd @@ -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 diff --git a/addons/dialogic/Editor/Events/Fields/field_condition.gd b/addons/dialogic/Editor/Events/Fields/field_condition.gd index db40270..06090df 100644 --- a/addons/dialogic/Editor/Events/Fields/field_condition.gd +++ b/addons/dialogic/Editor/Events/Fields/field_condition.gd @@ -264,4 +264,3 @@ func _on_value_1_variable_value_changed(property_name: Variant, value: Variant) %Value2Type.index_pressed(1) something_changed() - diff --git a/addons/dialogic/Editor/Events/Fields/field_number.tscn b/addons/dialogic/Editor/Events/Fields/field_number.tscn index 5053a87..3556b7a 100644 --- a/addons/dialogic/Editor/Events/Fields/field_number.tscn +++ b/addons/dialogic/Editor/Events/Fields/field_number.tscn @@ -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") diff --git a/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd b/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd index ab6538b..927ec5f 100644 --- a/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd +++ b/addons/dialogic/Editor/TimelineEditor/timeline_editor.gd @@ -235,5 +235,3 @@ func _on_search_up_pressed() -> void: get_current_editor()._search_navigate_up() #endregion - - diff --git a/addons/dialogic/Modules/Visual/event_visual.gd b/addons/dialogic/Modules/Visual/event_visual.gd new file mode 100644 index 0000000..1933dce --- /dev/null +++ b/addons/dialogic/Modules/Visual/event_visual.gd @@ -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 diff --git a/addons/dialogic/Modules/Visual/event_visual.gd.uid b/addons/dialogic/Modules/Visual/event_visual.gd.uid new file mode 100644 index 0000000..7317392 --- /dev/null +++ b/addons/dialogic/Modules/Visual/event_visual.gd.uid @@ -0,0 +1 @@ +uid://bflq0peywpm2l diff --git a/addons/dialogic/Modules/Visual/icon.png b/addons/dialogic/Modules/Visual/icon.png new file mode 100644 index 0000000..449b581 Binary files /dev/null and b/addons/dialogic/Modules/Visual/icon.png differ diff --git a/addons/dialogic/Modules/Visual/icon.png.import b/addons/dialogic/Modules/Visual/icon.png.import new file mode 100644 index 0000000..d13306c --- /dev/null +++ b/addons/dialogic/Modules/Visual/icon.png.import @@ -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 diff --git a/addons/dialogic/Modules/Visual/index.gd b/addons/dialogic/Modules/Visual/index.gd new file mode 100644 index 0000000..f3e2d72 --- /dev/null +++ b/addons/dialogic/Modules/Visual/index.gd @@ -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')}] diff --git a/addons/dialogic/Modules/Visual/index.gd.uid b/addons/dialogic/Modules/Visual/index.gd.uid new file mode 100644 index 0000000..036c994 --- /dev/null +++ b/addons/dialogic/Modules/Visual/index.gd.uid @@ -0,0 +1 @@ +uid://dccv6ady6vp7t diff --git a/addons/dialogic/Modules/Visual/subsystem_visual.gd b/addons/dialogic/Modules/Visual/subsystem_visual.gd new file mode 100644 index 0000000..d2d8f17 --- /dev/null +++ b/addons/dialogic/Modules/Visual/subsystem_visual.gd @@ -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 diff --git a/addons/dialogic/Modules/Visual/subsystem_visual.gd.uid b/addons/dialogic/Modules/Visual/subsystem_visual.gd.uid new file mode 100644 index 0000000..7b9778b --- /dev/null +++ b/addons/dialogic/Modules/Visual/subsystem_visual.gd.uid @@ -0,0 +1 @@ +uid://digbgc8bv3bg6 diff --git a/data/items/accessory.gd b/data/items/accessory.gd index 36239bd..7afac7f 100644 --- a/data/items/accessory.gd +++ b/data/items/accessory.gd @@ -1 +1 @@ -extends Equipment +class_name Accessory extends Equipment diff --git a/data/items/armor.gd b/data/items/armor.gd index 36239bd..c18dc9f 100644 --- a/data/items/armor.gd +++ b/data/items/armor.gd @@ -1 +1 @@ -extends Equipment +class_name Armor extends Equipment diff --git a/data/items/item.gd b/data/items/item.gd index 73b210b..3d8d4a4 100644 --- a/data/items/item.gd +++ b/data/items/item.gd @@ -1 +1,5 @@ -class_name Item extends Object +class_name Item extends Resource + + +@export var image : Texture2D +@export var brief : String diff --git a/data/items/pitchfork.tres b/data/items/pitchfork.tres new file mode 100644 index 0000000..823700f --- /dev/null +++ b/data/items/pitchfork.tres @@ -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" diff --git a/data/items/weapon.gd b/data/items/weapon.gd index 36239bd..cc76fa4 100644 --- a/data/items/weapon.gd +++ b/data/items/weapon.gd @@ -1 +1,4 @@ -extends Equipment +class_name Weapon extends Equipment + +@export var min_damage : int +@export var max_damage : int diff --git a/dialogic/timelines/intro.dtl b/dialogic/timelines/intro.dtl index c83c29c..b205560 100644 --- a/dialogic/timelines/intro.dtl +++ b/dialogic/timelines/intro.dtl @@ -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! diff --git a/external/closed-shift-window.clip b/external/closed-shift-window.clip new file mode 100644 index 0000000..ebae41a Binary files /dev/null and b/external/closed-shift-window.clip differ diff --git a/external/first-guild.clip b/external/first-guild.clip new file mode 100644 index 0000000..511acac Binary files /dev/null and b/external/first-guild.clip differ diff --git a/external/guildwip.clip b/external/guildwip.clip new file mode 100644 index 0000000..7a6a64c Binary files /dev/null and b/external/guildwip.clip differ diff --git a/external/open-shift-window.clip b/external/open-shift-window.clip new file mode 100644 index 0000000..eef9280 Binary files /dev/null and b/external/open-shift-window.clip differ diff --git a/external/portrait.clip b/external/portrait.clip new file mode 100644 index 0000000..d48d453 Binary files /dev/null and b/external/portrait.clip differ diff --git a/external/profile-window.png b/external/profile-window.png new file mode 100644 index 0000000..99a8715 Binary files /dev/null and b/external/profile-window.png differ diff --git a/external/profile-window.png.import b/external/profile-window.png.import new file mode 100644 index 0000000..32ddf81 --- /dev/null +++ b/external/profile-window.png.import @@ -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 diff --git a/external/rags.clip b/external/rags.clip new file mode 100644 index 0000000..2903da5 Binary files /dev/null and b/external/rags.clip differ diff --git a/external/sketches.clip b/external/sketches.clip index 5432ae6..c3edbd2 100644 Binary files a/external/sketches.clip and b/external/sketches.clip differ diff --git a/external/tc/1.png b/external/tc/1.png new file mode 100644 index 0000000..490d265 Binary files /dev/null and b/external/tc/1.png differ diff --git a/external/tc/10.png b/external/tc/10.png new file mode 100644 index 0000000..9f4f135 Binary files /dev/null and b/external/tc/10.png differ diff --git a/external/tc/2.png b/external/tc/2.png new file mode 100644 index 0000000..613032d Binary files /dev/null and b/external/tc/2.png differ diff --git a/external/tc/3.png b/external/tc/3.png new file mode 100644 index 0000000..cf5abb9 Binary files /dev/null and b/external/tc/3.png differ diff --git a/external/tc/4.png b/external/tc/4.png new file mode 100644 index 0000000..7434a8c Binary files /dev/null and b/external/tc/4.png differ diff --git a/external/tc/5.png b/external/tc/5.png new file mode 100644 index 0000000..fbed16e Binary files /dev/null and b/external/tc/5.png differ diff --git a/external/tc/6.png b/external/tc/6.png new file mode 100644 index 0000000..31a783d Binary files /dev/null and b/external/tc/6.png differ diff --git a/external/tc/7.png b/external/tc/7.png new file mode 100644 index 0000000..1917ba8 Binary files /dev/null and b/external/tc/7.png differ diff --git a/external/tc/8.png b/external/tc/8.png new file mode 100644 index 0000000..e1d9256 Binary files /dev/null and b/external/tc/8.png differ diff --git a/external/tc/9.png b/external/tc/9.png new file mode 100644 index 0000000..b820bac Binary files /dev/null and b/external/tc/9.png differ diff --git a/external/test-qsvchar.clip b/external/test-qsvchar.clip new file mode 100644 index 0000000..2194679 Binary files /dev/null and b/external/test-qsvchar.clip differ diff --git a/external/test-qsvchar.png.import b/external/test-qsvchar.png.import new file mode 100644 index 0000000..2f22a32 --- /dev/null +++ b/external/test-qsvchar.png.import @@ -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 diff --git a/external/tome.clip b/external/tome.clip new file mode 100644 index 0000000..5a00a0e Binary files /dev/null and b/external/tome.clip differ diff --git a/fonts/Bagnard.otf b/fonts/Bagnard.otf new file mode 100644 index 0000000..ddbb6a3 Binary files /dev/null and b/fonts/Bagnard.otf differ diff --git a/fonts/Bagnard.otf.import b/fonts/Bagnard.otf.import new file mode 100644 index 0000000..fa4a2a4 --- /dev/null +++ b/fonts/Bagnard.otf.import @@ -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={} diff --git a/fonts/Bagnard.tres b/fonts/Bagnard.tres new file mode 100644 index 0000000..429d95b --- /dev/null +++ b/fonts/Bagnard.tres @@ -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 diff --git a/fonts/OFL.txt b/fonts/OFL.txt new file mode 100644 index 0000000..47ad45a --- /dev/null +++ b/fonts/OFL.txt @@ -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. \ No newline at end of file diff --git a/graphics/doorlight.png b/graphics/doorlight.png new file mode 100644 index 0000000..7a2fab1 Binary files /dev/null and b/graphics/doorlight.png differ diff --git a/graphics/doorlight.png.import b/graphics/doorlight.png.import new file mode 100644 index 0000000..7291cb9 --- /dev/null +++ b/graphics/doorlight.png.import @@ -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 diff --git a/graphics/first-guild.png b/graphics/first-guild.png new file mode 100644 index 0000000..6145b41 Binary files /dev/null and b/graphics/first-guild.png differ diff --git a/graphics/first-guild.png.import b/graphics/first-guild.png.import new file mode 100644 index 0000000..347cb09 --- /dev/null +++ b/graphics/first-guild.png.import @@ -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 diff --git a/graphics/items/pitchfork.png b/graphics/items/pitchfork.png new file mode 100644 index 0000000..766f412 Binary files /dev/null and b/graphics/items/pitchfork.png differ diff --git a/graphics/items/pitchfork.png.import b/graphics/items/pitchfork.png.import new file mode 100644 index 0000000..67044d7 --- /dev/null +++ b/graphics/items/pitchfork.png.import @@ -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 diff --git a/graphics/items/rags.png b/graphics/items/rags.png new file mode 100644 index 0000000..b366264 Binary files /dev/null and b/graphics/items/rags.png differ diff --git a/graphics/items/rags.png.import b/graphics/items/rags.png.import new file mode 100644 index 0000000..3c1f4cd --- /dev/null +++ b/graphics/items/rags.png.import @@ -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 diff --git a/graphics/portraits/farmer_f.png b/graphics/portraits/farmer_f.png index 3af4586..b269b4f 100644 Binary files a/graphics/portraits/farmer_f.png and b/graphics/portraits/farmer_f.png differ diff --git a/graphics/portraits/farmer_f.png.import b/graphics/portraits/farmer_f.png.import index 756f4b2..f217317 100644 --- a/graphics/portraits/farmer_f.png.import +++ b/graphics/portraits/farmer_f.png.import @@ -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 diff --git a/graphics/questview/forest-back.png b/graphics/questview/forest-back.png new file mode 100644 index 0000000..8a0df8a Binary files /dev/null and b/graphics/questview/forest-back.png differ diff --git a/graphics/questview/forest-back.png.import b/graphics/questview/forest-back.png.import new file mode 100644 index 0000000..8af1230 --- /dev/null +++ b/graphics/questview/forest-back.png.import @@ -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 diff --git a/graphics/questview/forest-back2.png b/graphics/questview/forest-back2.png new file mode 100644 index 0000000..39fc64a Binary files /dev/null and b/graphics/questview/forest-back2.png differ diff --git a/graphics/questview/forest-back2.png.import b/graphics/questview/forest-back2.png.import new file mode 100644 index 0000000..67438a4 --- /dev/null +++ b/graphics/questview/forest-back2.png.import @@ -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 diff --git a/graphics/questview/forest-mid.png b/graphics/questview/forest-mid.png new file mode 100644 index 0000000..fb918b6 Binary files /dev/null and b/graphics/questview/forest-mid.png differ diff --git a/graphics/questview/forest-mid.png.import b/graphics/questview/forest-mid.png.import new file mode 100644 index 0000000..57c63cb --- /dev/null +++ b/graphics/questview/forest-mid.png.import @@ -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 diff --git a/graphics/questview/ground.png b/graphics/questview/ground.png new file mode 100644 index 0000000..f5e497d Binary files /dev/null and b/graphics/questview/ground.png differ diff --git a/graphics/questview/ground.png.import b/graphics/questview/ground.png.import new file mode 100644 index 0000000..d9fe873 --- /dev/null +++ b/graphics/questview/ground.png.import @@ -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 diff --git a/graphics/questview/test-char.png b/graphics/questview/test-char.png new file mode 100644 index 0000000..8002b0a Binary files /dev/null and b/graphics/questview/test-char.png differ diff --git a/graphics/questview/test-char.png.import b/graphics/questview/test-char.png.import new file mode 100644 index 0000000..c903119 --- /dev/null +++ b/graphics/questview/test-char.png.import @@ -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 diff --git a/graphics/ui/closed-shift-window.png b/graphics/ui/closed-shift-window.png new file mode 100644 index 0000000..abbd842 Binary files /dev/null and b/graphics/ui/closed-shift-window.png differ diff --git a/graphics/ui/closed-shift-window.png.import b/graphics/ui/closed-shift-window.png.import new file mode 100644 index 0000000..6863a21 --- /dev/null +++ b/graphics/ui/closed-shift-window.png.import @@ -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 diff --git a/graphics/ui/gear-heading.png b/graphics/ui/gear-heading.png new file mode 100644 index 0000000..e98e337 Binary files /dev/null and b/graphics/ui/gear-heading.png differ diff --git a/graphics/ui/gear-heading.png.import b/graphics/ui/gear-heading.png.import new file mode 100644 index 0000000..73907dd --- /dev/null +++ b/graphics/ui/gear-heading.png.import @@ -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 diff --git a/graphics/ui/inventory-heading.png b/graphics/ui/inventory-heading.png new file mode 100644 index 0000000..48bb16f Binary files /dev/null and b/graphics/ui/inventory-heading.png differ diff --git a/graphics/ui/inventory-heading.png.import b/graphics/ui/inventory-heading.png.import new file mode 100644 index 0000000..c3d50c4 --- /dev/null +++ b/graphics/ui/inventory-heading.png.import @@ -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 diff --git a/graphics/ui/item-slot.png b/graphics/ui/item-slot.png new file mode 100644 index 0000000..aee9be6 Binary files /dev/null and b/graphics/ui/item-slot.png differ diff --git a/graphics/ui/item-slot.png.import b/graphics/ui/item-slot.png.import new file mode 100644 index 0000000..853c91c --- /dev/null +++ b/graphics/ui/item-slot.png.import @@ -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 diff --git a/graphics/ui/open-shift-window.png b/graphics/ui/open-shift-window.png new file mode 100644 index 0000000..27d798e Binary files /dev/null and b/graphics/ui/open-shift-window.png differ diff --git a/graphics/ui/open-shift-window.png.import b/graphics/ui/open-shift-window.png.import new file mode 100644 index 0000000..de4380f --- /dev/null +++ b/graphics/ui/open-shift-window.png.import @@ -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 diff --git a/graphics/ui/options.png b/graphics/ui/options.png new file mode 100644 index 0000000..cba78ee Binary files /dev/null and b/graphics/ui/options.png differ diff --git a/graphics/ui/options.png.import b/graphics/ui/options.png.import new file mode 100644 index 0000000..b8e2608 --- /dev/null +++ b/graphics/ui/options.png.import @@ -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 diff --git a/scenes/active_scene.tscn b/scenes/active_scene.tscn index be201b3..dad6736 100644 --- a/scenes/active_scene.tscn +++ b/scenes/active_scene.tscn @@ -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"] diff --git a/scripts/adventurer_data.gd b/scripts/adventurer_data.gd index 2de68c7..a8a2288 100644 --- a/scripts/adventurer_data.gd +++ b/scripts/adventurer_data.gd @@ -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() diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 555259f..a8ae14f 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -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: diff --git a/scripts/item_slot.gd b/scripts/item_slot.gd new file mode 100644 index 0000000..df8168a --- /dev/null +++ b/scripts/item_slot.gd @@ -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. diff --git a/scripts/item_slot.gd.uid b/scripts/item_slot.gd.uid new file mode 100644 index 0000000..c713507 --- /dev/null +++ b/scripts/item_slot.gd.uid @@ -0,0 +1 @@ +uid://cw6yo5opbrpr8 diff --git a/scripts/main_panel.gd b/scripts/main_panel.gd index 22ef1ff..5f21ed4 100644 --- a/scripts/main_panel.gd +++ b/scripts/main_panel.gd @@ -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 diff --git a/scripts/npc_profile_window.gd b/scripts/npc_profile_window.gd index 469f282..a55213a 100644 --- a/scripts/npc_profile_window.gd +++ b/scripts/npc_profile_window.gd @@ -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) + diff --git a/scripts/profile_window.gd b/scripts/profile_window.gd index d248fb8..77820dc 100644 --- a/scripts/profile_window.gd +++ b/scripts/profile_window.gd @@ -1 +1,5 @@ extends Window + + +func _on_close_button_pressed() -> void: + queue_free() diff --git a/scripts/quest.gd b/scripts/quest.gd index c025e69..5d1e652 100644 --- a/scripts/quest.gd +++ b/scripts/quest.gd @@ -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 diff --git a/scripts/test_scene.gd b/scripts/test_scene.gd index a354568..8b2991a 100644 --- a/scripts/test_scene.gd +++ b/scripts/test_scene.gd @@ -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() diff --git a/sounds/Door Hinge Creaking Door.wav b/sounds/Door Hinge Creaking Door.wav new file mode 100644 index 0000000..cb5d49e Binary files /dev/null and b/sounds/Door Hinge Creaking Door.wav differ diff --git a/sounds/Door Hinge Creaking Door.wav.import b/sounds/Door Hinge Creaking Door.wav.import new file mode 100644 index 0000000..48d0fe7 --- /dev/null +++ b/sounds/Door Hinge Creaking Door.wav.import @@ -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 diff --git a/sounds/ORGANIC Paper Book Page Turn Short 02.wav b/sounds/ORGANIC Paper Book Page Turn Short 02.wav new file mode 100644 index 0000000..ddfde28 Binary files /dev/null and b/sounds/ORGANIC Paper Book Page Turn Short 02.wav differ diff --git a/sounds/ORGANIC Paper Book Page Turn Short 02.wav.import b/sounds/ORGANIC Paper Book Page Turn Short 02.wav.import new file mode 100644 index 0000000..e03b08c --- /dev/null +++ b/sounds/ORGANIC Paper Book Page Turn Short 02.wav.import @@ -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 diff --git a/sounds/Paper Turn.wav b/sounds/Paper Turn.wav new file mode 100644 index 0000000..4a09531 Binary files /dev/null and b/sounds/Paper Turn.wav differ diff --git a/sounds/Paper Turn.wav.import b/sounds/Paper Turn.wav.import new file mode 100644 index 0000000..183dae1 --- /dev/null +++ b/sounds/Paper Turn.wav.import @@ -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 diff --git a/sounds/owl_notification_005.wav b/sounds/owl_notification_005.wav new file mode 100644 index 0000000..2b383a1 Binary files /dev/null and b/sounds/owl_notification_005.wav differ diff --git a/sounds/owl_notification_005.wav.import b/sounds/owl_notification_005.wav.import new file mode 100644 index 0000000..f2bef6e --- /dev/null +++ b/sounds/owl_notification_005.wav.import @@ -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 diff --git a/styles/open_shift_panel.tres b/styles/open_shift_panel.tres index cc67c05..16e4c53 100644 --- a/styles/open_shift_panel.tres +++ b/styles/open_shift_panel.tres @@ -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") diff --git a/styles/stat_font.tres b/styles/stat_font.tres new file mode 100644 index 0000000..261b01e --- /dev/null +++ b/styles/stat_font.tres @@ -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") diff --git a/styles/working_shift_panel.tres b/styles/working_shift_panel.tres index 7d763e9..413a088 100644 --- a/styles/working_shift_panel.tres +++ b/styles/working_shift_panel.tres @@ -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 diff --git a/templates/guildhall.tscn b/templates/guildhall.tscn index 0ab08dc..414de0e 100644 --- a/templates/guildhall.tscn +++ b/templates/guildhall.tscn @@ -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" diff --git a/templates/main_panel.tscn b/templates/main_panel.tscn index 9bcdcf9..996f546 100644 --- a/templates/main_panel.tscn +++ b/templates/main_panel.tscn @@ -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"] diff --git a/templates/npc_profile_window.tscn b/templates/npc_profile_window.tscn index 69b7f43..2f29331 100644 --- a/templates/npc_profile_window.tscn +++ b/templates/npc_profile_window.tscn @@ -1,160 +1,587 @@ -[gd_scene load_steps=3 format=3 uid="uid://bktxswsjql86p"] +[gd_scene load_steps=15 format=3 uid="uid://bktxswsjql86p"] [ext_resource type="Script" uid="uid://ccsiubi5y75qg" path="res://scripts/npc_profile_window.gd" id="1_4xbne"] -[ext_resource type="Texture2D" uid="uid://biir7hjo6b4nl" path="res://graphics/adventurer-profile-pic.png" id="2_ffbu2"] +[ext_resource type="Texture2D" uid="uid://cbt6po52ad37x" path="res://external/profile-window.png" id="2_s0l16"] +[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="3_wy4e0"] +[ext_resource type="Texture2D" uid="uid://bblr27slj6ap0" path="res://graphics/portraits/farmer_f.png" id="4_wafq0"] +[ext_resource type="Theme" uid="uid://dlobmn4esosk3" path="res://styles/stat_font.tres" id="5_wafq0"] +[ext_resource type="FontFile" uid="uid://cju0vb3cw5qoj" path="res://fonts/Bagnard.otf" id="6_ktflt"] +[ext_resource type="Texture2D" uid="uid://bnyl6eaynixm5" path="res://graphics/ui/gear-heading.png" id="6_tiew1"] +[ext_resource type="Texture2D" uid="uid://cjjtgrr56guj0" path="res://graphics/ui/item-slot.png" id="7_ktflt"] +[ext_resource type="Texture2D" uid="uid://d1btg2hfnjx6r" path="res://graphics/ui/inventory-heading.png" id="8_1nmd1"] +[ext_resource type="Texture2D" uid="uid://blt2b7f6iqb8j" path="res://graphics/questview/test-char.png" id="10_tiew1"] +[ext_resource type="Script" uid="uid://cw6yo5opbrpr8" path="res://scripts/item_slot.gd" id="11_tiew1"] + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_ktflt"] +blend_mode = 3 + +[sub_resource type="Gradient" id="Gradient_1nmd1"] +offsets = PackedFloat32Array(0.2754717, 0.36226416, 0.43773586) +colors = PackedColorArray(1, 1, 1, 1, 0.46274376, 0.4643005, 0.5605066, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_bj16a"] +gradient = SubResource("Gradient_1nmd1") +width = 100 +height = 49 +fill_to = Vector2(0, 1) [node name="Profile Window" type="Window"] +transparent_bg = true oversampling_override = 1.0 initial_position = 1 -size = Vector2i(210, 265) +size = Vector2i(707, 857) wrap_controls = true unresizable = true +borderless = true always_on_top = true +transparent = true popup_window = true script = ExtResource("1_4xbne") -[node name="MarginContainer" type="MarginContainer" parent="."] +[node name="CloseButton" type="Button" parent="."] +modulate = Color(1, 1, 1, 0) anchors_preset = -1 -offset_right = 40.0 -offset_bottom = 50.0 -theme_override_constants/margin_left = 3 -theme_override_constants/margin_top = 4 +offset_left = 586.0 +offset_top = 15.0 +offset_right = 625.0 +offset_bottom = 54.0 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] -layout_mode = 2 -theme_override_constants/separation = 0 +[node name="DragRegion" type="Control" parent="."] +layout_mode = 3 +offset_left = 2.0 +offset_top = 11.0 +offset_right = 584.0 +offset_bottom = 56.0 -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="TextureRect" type="TextureRect" parent="."] +anchors_preset = -1 +offset_right = 635.0 +offset_bottom = 843.0 +texture = ExtResource("2_s0l16") -[node name="Sprite2D" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -texture = ExtResource("2_ffbu2") +[node name="HSeparator" type="Control" parent="."] +custom_minimum_size = Vector2(0, 100) +layout_mode = 3 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -theme_override_constants/separation = -4 +[node name="TextureRect2" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 -[node name="JobLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="PortraitFrame" type="TextureRect" parent="."] +self_modulate = Color(1, 1, 1, 0) +clip_contents = true +custom_minimum_size = Vector2(153, 153) +anchors_preset = -1 +offset_left = 27.0 +offset_top = 103.0 +offset_right = 180.0 +offset_bottom = 256.0 +texture = ExtResource("3_wy4e0") +expand_mode = 1 + +[node name="Portrait" type="TextureRect" parent="PortraitFrame"] unique_name_in_owner = true -layout_mode = 2 +layout_mode = 0 +offset_right = 76.5 +offset_bottom = 76.5 +scale = Vector2(2, 2) +texture = ExtResource("4_wafq0") +expand_mode = 1 + +[node name="NameLabel" type="Label" parent="."] +unique_name_in_owner = true +anchors_preset = -1 +offset_left = 74.0 +offset_top = 54.0 +offset_right = 178.0 +offset_bottom = 104.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 36 +text = "Name" + +[node name="JobLabel" type="Label" parent="."] +unique_name_in_owner = true +anchors_preset = -1 +offset_left = 188.0 +offset_top = 100.0 +offset_right = 272.0 +offset_bottom = 134.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Class" -[node name="LevelLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="LevelLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 +anchors_preset = -1 +offset_left = 188.0 +offset_top = 127.0 +offset_right = 272.0 +offset_bottom = 161.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) +theme_override_font_sizes/font_size = 24 text = "Lv ##" -[node name="ExpLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="ExpLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 +anchors_preset = -1 +offset_left = 188.0 +offset_top = 156.0 +offset_right = 314.0 +offset_bottom = 190.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Exp: ##/##" -[node name="LifeLabel" type="Label" parent="MarginContainer/VBoxContainer"] +[node name="LifeLabel" type="Label" parent="."] unique_name_in_owner = true custom_minimum_size = Vector2(100, 0) -layout_mode = 2 +anchors_preset = -1 +offset_left = 26.0 +offset_top = 273.0 +offset_right = 652.0 +offset_bottom = 307.0 +theme_override_font_sizes/font_size = 24 text = "Life: ####/####" -[node name="EnergyLabel" type="Label" parent="MarginContainer/VBoxContainer"] +[node name="EnergyLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 +anchors_preset = -1 +offset_left = 234.0 +offset_top = 273.0 +offset_right = 860.0 +offset_bottom = 307.0 theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Energy: ####/####" -[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer2"] -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -theme_override_constants/separation = -8 - -[node name="STRLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] +[node name="STRLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 110.0 +offset_top = 302.0 +offset_right = 210.0 +offset_bottom = 346.0 +theme = ExtResource("5_wafq0") +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 1 +theme_override_constants/shadow_offset_y = 1 +theme_override_constants/outline_size = 1 +theme_override_fonts/font = ExtResource("6_ktflt") +theme_override_font_sizes/font_size = 32 +text = "457" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="INTLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] +[node name="TextureRect" type="TextureRect" parent="STRLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") + +[node name="INTLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 110.0 +offset_top = 364.0 +offset_right = 210.0 +offset_bottom = 408.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="DEXLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] +[node name="TextureRect" type="TextureRect" parent="INTLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") + +[node name="Label" type="Label" parent="."] +modulate = Color(0.4, 0.22666667, 0, 1) +anchors_preset = -1 +offset_left = 65.0 +offset_top = 405.0 +offset_right = 139.0 +offset_bottom = 450.0 +theme_override_constants/outline_size = 2 +theme_override_font_sizes/font_size = 32 +text = "ATK" + +[node name="Label2" type="Label" parent="."] +modulate = Color(0.4, 0.22666667, 0, 1) +anchors_preset = -1 +offset_left = 201.0 +offset_top = 405.0 +offset_right = 275.0 +offset_bottom = 450.0 +theme_override_constants/outline_size = 2 +theme_override_font_sizes/font_size = 32 +text = "MAG" + +[node name="Label3" type="Label" parent="."] +modulate = Color(0.4, 0.22666667, 0, 1) +anchors_preset = -1 +offset_left = 330.0 +offset_top = 405.0 +offset_right = 408.0 +offset_bottom = 450.0 +theme_override_constants/outline_size = 2 +theme_override_font_sizes/font_size = 32 +text = "PDEF" + +[node name="Label4" type="Label" parent="."] +modulate = Color(0.4, 0.22666667, 0, 1) +anchors_preset = -1 +offset_left = 481.0 +offset_top = 405.0 +offset_right = 569.0 +offset_bottom = 450.0 +theme_override_constants/outline_size = 2 +theme_override_font_sizes/font_size = 32 +text = "MDEF" + +[node name="ATKLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 43.0 +offset_top = 436.0 +offset_right = 143.0 +offset_bottom = 480.0 +theme = ExtResource("5_wafq0") +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 1 +theme_override_constants/shadow_offset_y = 1 +theme_override_constants/outline_size = 1 +theme_override_fonts/font = ExtResource("6_ktflt") +theme_override_font_sizes/font_size = 32 +text = "457" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer2"] -custom_minimum_size = Vector2(100, 0) -layout_mode = 2 -theme_override_constants/separation = -8 +[node name="TextureRect" type="TextureRect" parent="ATKLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="CHALabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] +[node name="MAGLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 188.0 +offset_top = 435.0 +offset_right = 288.0 +offset_bottom = 479.0 +theme = ExtResource("5_wafq0") +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 1 +theme_override_constants/shadow_offset_y = 1 +theme_override_constants/outline_size = 1 +theme_override_fonts/font = ExtResource("6_ktflt") +theme_override_font_sizes/font_size = 32 +text = "457" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="FAILabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] +[node name="TextureRect" type="TextureRect" parent="MAGLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") + +[node name="PDEFLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 316.0 +offset_top = 435.0 +offset_right = 416.0 +offset_bottom = 479.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="LUKLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] +[node name="TextureRect" type="TextureRect" parent="PDEFLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") + +[node name="MDEFLabel" type="Label" parent="."] unique_name_in_owner = true -layout_mode = 2 -text = "Stat: ##" +clip_children = 2 +anchors_preset = -1 +offset_left = 471.0 +offset_top = 435.0 +offset_right = 571.0 +offset_bottom = 479.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="HBoxContainer3" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="TextureRect" type="TextureRect" parent="MDEFLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="WeaponIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] -layout_mode = 2 -texture = ExtResource("2_ffbu2") +[node name="DEXLabel" type="Label" parent="."] +unique_name_in_owner = true +clip_children = 2 +anchors_preset = -1 +offset_left = 111.0 +offset_top = 333.0 +offset_right = 211.0 +offset_bottom = 377.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="ArmorIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] -layout_mode = 2 -texture = ExtResource("2_ffbu2") +[node name="TextureRect" type="TextureRect" parent="DEXLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="AccessoryIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] -layout_mode = 2 -texture = ExtResource("2_ffbu2") +[node name="CHALabel" type="Label" parent="."] +unique_name_in_owner = true +clip_children = 2 +anchors_preset = -1 +offset_left = 254.0 +offset_top = 302.0 +offset_right = 354.0 +offset_bottom = 346.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="ConsumableList" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 -alignment = 1 +[node name="TextureRect" type="TextureRect" parent="CHALabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="Sprite2D" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] -custom_minimum_size = Vector2(32, 32) -layout_mode = 2 -texture = ExtResource("2_ffbu2") -expand_mode = 1 +[node name="FAILabel" type="Label" parent="."] +unique_name_in_owner = true +clip_children = 2 +anchors_preset = -1 +offset_left = 254.0 +offset_top = 333.0 +offset_right = 354.0 +offset_bottom = 377.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="Sprite2D2" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] -custom_minimum_size = Vector2(32, 32) -layout_mode = 2 -texture = ExtResource("2_ffbu2") -expand_mode = 1 +[node name="TextureRect" type="TextureRect" parent="FAILabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="Sprite2D3" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] -custom_minimum_size = Vector2(32, 32) -layout_mode = 2 -texture = ExtResource("2_ffbu2") -expand_mode = 1 +[node name="LUKLabel" type="Label" parent="."] +unique_name_in_owner = true +clip_children = 2 +anchors_preset = -1 +offset_left = 254.0 +offset_top = 364.0 +offset_right = 354.0 +offset_bottom = 408.0 +theme = ExtResource("5_wafq0") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="Sprite2D4" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] -custom_minimum_size = Vector2(32, 32) -layout_mode = 2 -texture = ExtResource("2_ffbu2") -expand_mode = 1 +[node name="TextureRect" type="TextureRect" parent="LUKLabel"] +material = SubResource("CanvasItemMaterial_ktflt") +layout_mode = 1 +anchors_preset = -1 +offset_right = 100.0 +offset_bottom = 64.0 +texture = SubResource("GradientTexture2D_bj16a") -[node name="Sprite2D5" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] -custom_minimum_size = Vector2(32, 32) +[node name="GearBanner" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = -89.0 +offset_top = 485.0 +offset_right = 382.0 +offset_bottom = 509.0 +texture = ExtResource("6_tiew1") + +[node name="Sideview" type="NinePatchRect" parent="."] +anchors_preset = -1 +offset_left = 13.0 +offset_top = 543.0 +offset_right = 238.0 +offset_bottom = 768.0 +texture = ExtResource("7_ktflt") +patch_margin_left = 6 +patch_margin_top = 6 +patch_margin_right = 6 +patch_margin_bottom = 6 + +[node name="TempChar" type="TextureRect" parent="Sideview"] +layout_mode = 0 +offset_left = 47.0 +offset_top = 55.0 +offset_right = 175.0 +offset_bottom = 183.0 +texture = ExtResource("10_tiew1") + +[node name="GearGrid" type="GridContainer" parent="."] +anchors_preset = -1 +offset_left = 241.0 +offset_top = 545.0 +offset_right = 462.0 +offset_bottom = 766.0 + +[node name="TextureRect" type="TextureRect" parent="GearGrid"] layout_mode = 2 -texture = ExtResource("2_ffbu2") -expand_mode = 1 +texture = ExtResource("7_ktflt") + +[node name="TextureRect2" type="TextureRect" parent="GearGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect3" type="TextureRect" parent="GearGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="VSeparator" type="VSeparator" parent="."] +modulate = Color(1.2044971, 0.7664488, 0.43147072, 1) +custom_minimum_size = Vector2(0, 275) +anchors_preset = -1 +offset_left = 314.0 +offset_top = 512.0 +offset_right = 318.0 +offset_bottom = 812.0 +scale = Vector2(2, 1) + +[node name="InventoryBanner" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = 236.0 +offset_top = 485.0 +offset_right = 707.0 +offset_bottom = 509.0 +texture = ExtResource("8_1nmd1") + +[node name="InventoryGrid" type="GridContainer" parent="."] +anchors_preset = -1 +offset_left = 325.0 +offset_top = 513.0 +offset_right = 621.0 +offset_bottom = 809.0 +columns = 4 + +[node name="ItemSlot" type="Control" parent="InventoryGrid"] +custom_minimum_size = Vector2(71, 71) +layout_mode = 2 +script = ExtResource("11_tiew1") + +[node name="TextureRect" type="TextureRect" parent="InventoryGrid/ItemSlot"] +layout_mode = 0 +offset_right = 71.0 +offset_bottom = 71.0 +texture = ExtResource("7_ktflt") + +[node name="TextureRect2" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect3" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect4" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect5" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect6" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect7" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect8" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect9" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect10" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect11" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect12" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect13" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect14" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect15" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") + +[node name="TextureRect16" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("7_ktflt") [connection signal="close_requested" from="." to="." method="_on_close_requested"] [connection signal="focus_exited" from="." to="." method="_on_close_requested"] +[connection signal="pressed" from="CloseButton" to="." method="_on_close_requested"] +[connection signal="gui_input" from="DragRegion" to="." method="_on_drag_region_gui_input"] +[connection signal="gui_input" from="InventoryGrid/ItemSlot" to="InventoryGrid/ItemSlot" method="_on_gui_input"] diff --git a/templates/profile_window.tscn b/templates/profile_window.tscn index 8d18d8d..69fcd15 100644 --- a/templates/profile_window.tscn +++ b/templates/profile_window.tscn @@ -1,159 +1,430 @@ -[gd_scene load_steps=4 format=3 uid="uid://djhq68y24p5px"] +[gd_scene load_steps=11 format=3 uid="uid://djhq68y24p5px"] [ext_resource type="Texture2D" uid="uid://biir7hjo6b4nl" path="res://graphics/adventurer-profile-pic.png" id="1_4aa5t"] [ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="1_h0ett"] +[ext_resource type="Script" uid="uid://dpws8rq811nt8" path="res://scripts/profile_window.gd" id="1_ldy3k"] +[ext_resource type="Texture2D" uid="uid://cbt6po52ad37x" path="res://external/profile-window.png" id="1_sdlbe"] [ext_resource type="Texture2D" uid="uid://bblr27slj6ap0" path="res://graphics/portraits/farmer_f.png" id="2_uhag7"] +[ext_resource type="Texture2D" uid="uid://bnyl6eaynixm5" path="res://graphics/ui/gear-heading.png" id="5_ldy3k"] +[ext_resource type="Theme" uid="uid://dlobmn4esosk3" path="res://styles/stat_font.tres" id="5_ycvrv"] +[ext_resource type="Texture2D" uid="uid://cjjtgrr56guj0" path="res://graphics/ui/item-slot.png" id="6_qu58s"] +[ext_resource type="FontFile" uid="uid://cju0vb3cw5qoj" path="res://fonts/Bagnard.otf" id="6_ye5k7"] +[ext_resource type="Texture2D" uid="uid://d1btg2hfnjx6r" path="res://graphics/ui/inventory-heading.png" id="7_ycvrv"] [node name="Profile Window" type="Window"] oversampling_override = 1.0 -position = Vector2i(0, 36) -size = Vector2i(223, 265) +initial_position = 1 +size = Vector2i(707, 843) wrap_controls = true unresizable = true +borderless = true popup_window = true +script = ExtResource("1_ldy3k") -[node name="MarginContainer" type="MarginContainer" parent="."] +[node name="TextureRect" type="TextureRect" parent="."] anchors_preset = -1 -offset_right = 40.0 -offset_bottom = 50.0 -theme_override_constants/margin_left = 3 -theme_override_constants/margin_top = 4 +offset_right = 635.0 +offset_bottom = 843.0 +texture = ExtResource("1_sdlbe") -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] -layout_mode = 2 -theme_override_constants/separation = 0 +[node name="HSeparator" type="Control" parent="."] +custom_minimum_size = Vector2(0, 100) +layout_mode = 3 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="TextureRect2" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 -[node name="PortraitFrame" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer"] +[node name="PortraitFrame" type="TextureRect" parent="."] self_modulate = Color(1, 1, 1, 0) clip_contents = true -custom_minimum_size = Vector2(64, 64) -layout_mode = 2 +custom_minimum_size = Vector2(153, 153) +anchors_preset = -1 +offset_left = 27.0 +offset_top = 103.0 +offset_right = 180.0 +offset_bottom = 256.0 texture = ExtResource("1_h0ett") expand_mode = 1 -[node name="Portrait" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer/PortraitFrame"] +[node name="Portrait" type="TextureRect" parent="PortraitFrame"] unique_name_in_owner = true layout_mode = 0 -offset_left = -34.0 -offset_top = -8.0 -offset_right = 94.0 -offset_bottom = 120.0 +offset_left = -49.0 +offset_top = 7.0 +offset_right = 79.0 +offset_bottom = 135.0 +scale = Vector2(2, 2) texture = ExtResource("2_uhag7") expand_mode = 1 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 -theme_override_constants/separation = -4 - -[node name="ClassLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] -layout_mode = 2 +[node name="NameLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 68.0 +offset_top = 66.0 +offset_right = 172.0 +offset_bottom = 116.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) theme_override_constants/line_spacing = 0 +theme_override_fonts/font = ExtResource("6_ye5k7") +theme_override_font_sizes/font_size = 36 +text = "Name" + +[node name="ClassLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 198.0 +offset_top = 126.0 +offset_right = 282.0 +offset_bottom = 149.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) +theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Class" -[node name="LevelLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] -layout_mode = 2 +[node name="LevelLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 198.0 +offset_top = 145.0 +offset_right = 282.0 +offset_bottom = 168.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) +theme_override_font_sizes/font_size = 24 text = "Lv ##" -[node name="ExpLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] -layout_mode = 2 +[node name="ExpLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 198.0 +offset_top = 164.0 +offset_right = 282.0 +offset_bottom = 187.0 +theme_override_colors/font_color = Color(0.33, 0.17600001, 0, 1) theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Exp: ##/##" -[node name="LifeLabel" type="Label" parent="MarginContainer/VBoxContainer"] +[node name="LifeLabel" type="Label" parent="."] custom_minimum_size = Vector2(100, 0) -layout_mode = 2 +anchors_preset = -1 +offset_left = 26.0 +offset_top = 273.0 +offset_right = 652.0 +offset_bottom = 296.0 +theme_override_font_sizes/font_size = 24 text = "Life: ####/####" -[node name="EnergyLabel" type="Label" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="EnergyLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 234.0 +offset_top = 273.0 +offset_right = 860.0 +offset_bottom = 296.0 theme_override_constants/line_spacing = 0 +theme_override_font_sizes/font_size = 24 text = "Energy: ####/####" -[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="STRLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 109.0 +offset_top = 297.0 +offset_right = 209.0 +offset_bottom = 346.0 +theme = ExtResource("5_ycvrv") +theme_override_colors/font_shadow_color = Color(0, 0, 0, 1) +theme_override_constants/shadow_offset_x = 1 +theme_override_constants/shadow_offset_y = 1 +theme_override_constants/outline_size = 1 +theme_override_fonts/font = ExtResource("6_ye5k7") +theme_override_font_sizes/font_size = 32 +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer2"] +[node name="INTLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 109.0 +offset_top = 364.0 +offset_right = 209.0 +offset_bottom = 408.0 +theme = ExtResource("5_ycvrv") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="DEXLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 110.0 +offset_top = 333.0 +offset_right = 210.0 +offset_bottom = 377.0 +theme = ExtResource("5_ycvrv") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="CHALabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 253.0 +offset_top = 302.0 +offset_right = 353.0 +offset_bottom = 346.0 +theme = ExtResource("5_ycvrv") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="FAILabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 253.0 +offset_top = 333.0 +offset_right = 353.0 +offset_bottom = 377.0 +theme = ExtResource("5_ycvrv") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="LUKLabel" type="Label" parent="."] +anchors_preset = -1 +offset_left = 253.0 +offset_top = 364.0 +offset_right = 353.0 +offset_bottom = 408.0 +theme = ExtResource("5_ycvrv") +text = "9999" +horizontal_alignment = 1 +vertical_alignment = 2 + +[node name="HBoxContainer2" type="HBoxContainer" parent="."] +anchors_preset = -1 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 + +[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer2"] custom_minimum_size = Vector2(100, 0) layout_mode = 2 theme_override_constants/separation = -8 -[node name="STRLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] -layout_mode = 2 -text = "Stat: ##" - -[node name="INTLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] -layout_mode = 2 -text = "Stat: ##" - -[node name="DEXLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer"] -layout_mode = 2 -text = "Stat: ##" - -[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/VBoxContainer/HBoxContainer2"] +[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer2"] custom_minimum_size = Vector2(100, 0) layout_mode = 2 theme_override_constants/separation = -8 -[node name="CHALabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] -layout_mode = 2 -text = "Stat: ##" +[node name="HBoxContainer3" type="HBoxContainer" parent="."] +visible = false +anchors_preset = -1 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 -[node name="FAILabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] -layout_mode = 2 -text = "Stat: ##" - -[node name="LUKLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2/VBoxContainer2"] -layout_mode = 2 -text = "Stat: ##" - -[node name="HBoxContainer3" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="WeaponIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] +[node name="WeaponIcon" type="TextureRect" parent="HBoxContainer3"] layout_mode = 2 texture = ExtResource("1_4aa5t") -[node name="ArmorIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] +[node name="ArmorIcon" type="TextureRect" parent="HBoxContainer3"] layout_mode = 2 texture = ExtResource("1_4aa5t") -[node name="AccessoryIcon" type="TextureRect" parent="MarginContainer/VBoxContainer/HBoxContainer3"] +[node name="AccessoryIcon" type="TextureRect" parent="HBoxContainer3"] layout_mode = 2 texture = ExtResource("1_4aa5t") -[node name="ConsumableList" type="HBoxContainer" parent="MarginContainer/VBoxContainer"] -layout_mode = 2 +[node name="ConsumableList" type="HBoxContainer" parent="."] +visible = false +anchors_preset = -1 +offset_left = 3.0 +offset_top = 4.0 +offset_right = 629.0 +offset_bottom = 839.0 alignment = 1 -[node name="Sprite2D" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] +[node name="Sprite2D" type="TextureRect" parent="ConsumableList"] custom_minimum_size = Vector2(32, 32) layout_mode = 2 texture = ExtResource("1_4aa5t") expand_mode = 1 -[node name="Sprite2D2" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] +[node name="Sprite2D2" type="TextureRect" parent="ConsumableList"] custom_minimum_size = Vector2(32, 32) layout_mode = 2 texture = ExtResource("1_4aa5t") expand_mode = 1 -[node name="Sprite2D3" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] +[node name="Sprite2D3" type="TextureRect" parent="ConsumableList"] custom_minimum_size = Vector2(32, 32) layout_mode = 2 texture = ExtResource("1_4aa5t") expand_mode = 1 -[node name="Sprite2D4" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] +[node name="Sprite2D4" type="TextureRect" parent="ConsumableList"] custom_minimum_size = Vector2(32, 32) layout_mode = 2 texture = ExtResource("1_4aa5t") expand_mode = 1 -[node name="Sprite2D5" type="TextureRect" parent="MarginContainer/VBoxContainer/ConsumableList"] +[node name="Sprite2D5" type="TextureRect" parent="ConsumableList"] custom_minimum_size = Vector2(32, 32) layout_mode = 2 texture = ExtResource("1_4aa5t") expand_mode = 1 + +[node name="TextureRect3" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = -89.0 +offset_top = 466.0 +offset_right = 382.0 +offset_bottom = 490.0 +texture = ExtResource("5_ldy3k") + +[node name="TextureRect5" type="NinePatchRect" parent="."] +anchors_preset = -1 +offset_left = 13.0 +offset_top = 524.0 +offset_right = 238.0 +offset_bottom = 749.0 +texture = ExtResource("6_qu58s") +patch_margin_left = 6 +patch_margin_top = 6 +patch_margin_right = 6 +patch_margin_bottom = 6 + +[node name="GearGrid" type="GridContainer" parent="."] +anchors_preset = -1 +offset_left = 241.0 +offset_top = 526.0 +offset_right = 462.0 +offset_bottom = 747.0 + +[node name="TextureRect" type="TextureRect" parent="GearGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect2" type="TextureRect" parent="GearGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect3" type="TextureRect" parent="GearGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect4" type="TextureRect" parent="."] +anchors_preset = -1 +offset_left = 236.0 +offset_top = 466.0 +offset_right = 707.0 +offset_bottom = 490.0 +texture = ExtResource("7_ycvrv") + +[node name="VSeparator" type="VSeparator" parent="TextureRect4"] +custom_minimum_size = Vector2(0, 325) +layout_mode = 0 +offset_left = 80.0 +offset_top = 32.0 +offset_right = 84.0 +offset_bottom = 72.0 + +[node name="InventoryGrid" type="GridContainer" parent="."] +anchors_preset = -1 +offset_left = 325.0 +offset_top = 494.0 +offset_right = 771.0 +offset_bottom = 640.0 +columns = 4 + +[node name="TextureRect" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect2" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect3" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect4" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect5" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect6" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect7" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect8" type="TextureRect" parent="InventoryGrid"] +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect9" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect10" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect11" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect12" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect13" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect14" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect15" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="TextureRect16" type="TextureRect" parent="InventoryGrid"] +visible = false +layout_mode = 2 +texture = ExtResource("6_qu58s") + +[node name="CloseButton" type="Button" parent="."] +modulate = Color(1, 1, 1, 0) +anchors_preset = -1 +offset_left = 586.0 +offset_top = 15.0 +offset_right = 625.0 +offset_bottom = 54.0 + +[node name="DragRegion" type="Control" parent="."] +layout_mode = 3 +offset_left = 2.0 +offset_top = 11.0 +offset_right = 584.0 +offset_bottom = 56.0 + +[connection signal="pressed" from="CloseButton" to="." method="_on_close_button_pressed"] diff --git a/templates/quest_view_window.tscn b/templates/quest_view_window.tscn new file mode 100644 index 0000000..4981b0d --- /dev/null +++ b/templates/quest_view_window.tscn @@ -0,0 +1,90 @@ +[gd_scene load_steps=6 format=3 uid="uid://du4hyv7egc7ny"] + +[ext_resource type="Texture2D" uid="uid://b7jry0kqho7y7" path="res://graphics/questview/forest-back.png" id="1_pphhk"] +[ext_resource type="Texture2D" uid="uid://bu18dxqnd3hf6" path="res://graphics/questview/forest-back2.png" id="2_4qpsm"] +[ext_resource type="Texture2D" uid="uid://cr0sb3p1r7bdq" path="res://graphics/questview/forest-mid.png" id="2_mburs"] +[ext_resource type="Texture2D" uid="uid://ci7ngqo1sh7ao" path="res://graphics/questview/ground.png" id="2_rcl5q"] +[ext_resource type="Texture2D" uid="uid://blt2b7f6iqb8j" path="res://graphics/questview/test-char.png" id="4_4qpsm"] + +[node name="QuestViewWindow" type="Panel"] +anchors_preset = -1 +offset_left = 1.0 +offset_right = 401.0 +offset_bottom = 325.0 + +[node name="Panel" type="Panel" parent="."] +custom_minimum_size = Vector2(375, 325) +layout_mode = 1 +anchors_preset = -1 +offset_left = 12.0 +offset_right = 387.0 +offset_bottom = 325.0 + +[node name="Setting" type="Control" parent="Panel"] +clip_contents = true +layout_mode = 1 +offset_right = 375.0 +offset_bottom = 325.0 + +[node name="Control" type="Control" parent="Panel/Setting"] +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="StageParallax" type="Parallax2D" parent="Panel/Setting/Control"] +repeat_size = Vector2(750, 0) +autoscroll = Vector2(-20, 0) +ignore_camera_scroll = true + +[node name="Background" type="TextureRect" parent="Panel/Setting/Control/StageParallax"] +anchors_preset = -1 +offset_top = -50.0 +offset_right = 750.0 +offset_bottom = 375.0 +texture = ExtResource("1_pphhk") + +[node name="StageParallax3" type="Parallax2D" parent="Panel/Setting/Control"] +scale = Vector2(0.8, 0.8) +repeat_size = Vector2(750, 0) +autoscroll = Vector2(-25, 0) +ignore_camera_scroll = true + +[node name="Background" type="TextureRect" parent="Panel/Setting/Control/StageParallax3"] +modulate = Color(1.179842, 1.179842, 1.179842, 1) +anchors_preset = -1 +offset_right = 750.0 +offset_bottom = 425.0 +texture = ExtResource("2_4qpsm") + +[node name="BackgroundParallax" type="Parallax2D" parent="Panel/Setting/Control"] +repeat_size = Vector2(475, 0) +autoscroll = Vector2(-40, 0) +ignore_camera_scroll = true + +[node name="TextureRect" type="TextureRect" parent="Panel/Setting/Control/BackgroundParallax"] +anchors_preset = -1 +offset_top = -50.0 +offset_right = 475.0 +offset_bottom = 375.0 +texture = ExtResource("2_rcl5q") + +[node name="StageParallax2" type="Parallax2D" parent="Panel/Setting/Control"] +repeat_size = Vector2(750, 0) +autoscroll = Vector2(-40, 0) +ignore_camera_scroll = true + +[node name="Foreground" type="TextureRect" parent="Panel/Setting/Control/StageParallax2"] +anchors_preset = -1 +offset_top = -50.0 +offset_right = 750.0 +offset_bottom = 375.0 +texture = ExtResource("2_mburs") + +[node name="Adventurer" type="TextureRect" parent="Panel"] +layout_mode = 1 +anchors_preset = -1 +offset_left = 2.0 +offset_top = 152.0 +offset_right = 130.0 +offset_bottom = 280.0 +texture = ExtResource("4_4qpsm")