diff --git a/CONTRIBUTIONS.txt b/CONTRIBUTIONS.txt index 0d135dd..94411dc 100644 --- a/CONTRIBUTIONS.txt +++ b/CONTRIBUTIONS.txt @@ -17,3 +17,16 @@ res://sounds/Door Hinge Creaking Door.wav **************************************************************************************************** 3maze - res://sounds/owl_notification_005.wav SmartSoundFX - res://sounds/ORGANIC Paper Book Page Turn Short 02.wav + + +**************************************************************************************************** +** Miotto Sounds ** +**************************************************************************************************** +res://sounds/Paper_Scraping_1.wav + +**************************************************************************************************** +** Deed? Check back ** +**************************************************************************************************** +res://sounds/Writing in paper 19.wav +res://sounds/Various Sounds 06.wav +res://sounds/Turning Books Pages 52.wav diff --git a/addons/ReorderableContainer/Icon/reorderable_container_icon.svg b/addons/ReorderableContainer/Icon/reorderable_container_icon.svg new file mode 100644 index 0000000..2b74119 --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_container_icon.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/addons/ReorderableContainer/Icon/reorderable_container_icon.svg.import b/addons/ReorderableContainer/Icon/reorderable_container_icon.svg.import new file mode 100644 index 0000000..0ce7f91 --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_container_icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4kg0ekxkw2lb" +path="res://.godot/imported/reorderable_container_icon.svg-b137036dec781405c9f5977df10d510b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/ReorderableContainer/Icon/reorderable_container_icon.svg" +dest_files=["res://.godot/imported/reorderable_container_icon.svg-b137036dec781405c9f5977df10d510b.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg b/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg new file mode 100644 index 0000000..e5266a3 --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg.import b/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg.import new file mode 100644 index 0000000..311f071 --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bc35o8q35l74" +path="res://.godot/imported/reorderable_hbox_icon.svg-b8929c984930c1cf79a5dffb0a9bff85.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/ReorderableContainer/Icon/reorderable_hbox_icon.svg" +dest_files=["res://.godot/imported/reorderable_hbox_icon.svg-b8929c984930c1cf79a5dffb0a9bff85.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg b/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg new file mode 100644 index 0000000..e938e23 --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + diff --git a/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg.import b/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg.import new file mode 100644 index 0000000..ec6b21c --- /dev/null +++ b/addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c1rxcwal2patu" +path="res://.godot/imported/reorderable_vbox_icon.svg-6c0163d38628f550aff9f4fbed5c8a1d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/ReorderableContainer/Icon/reorderable_vbox_icon.svg" +dest_files=["res://.godot/imported/reorderable_vbox_icon.svg-6c0163d38628f550aff9f4fbed5c8a1d.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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/addons/ReorderableContainer/plugin.cfg b/addons/ReorderableContainer/plugin.cfg new file mode 100644 index 0000000..87b3b3b --- /dev/null +++ b/addons/ReorderableContainer/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="ReorderableContainer" +description="A container similar to BoxContainer but extended with drag-and-drop style reordering functionality, and auto-scroll functionality when placed under ScrollContainer." +author="FoolLin" +version="1.2.4" +script="plugin.gd" diff --git a/addons/ReorderableContainer/plugin.gd b/addons/ReorderableContainer/plugin.gd new file mode 100644 index 0000000..a8c7997 --- /dev/null +++ b/addons/ReorderableContainer/plugin.gd @@ -0,0 +1,14 @@ +@tool +extends EditorPlugin + + +func _enter_tree(): + add_custom_type("ReorderableContainer", "Container", preload("reorderable_container.gd"), preload("Icon/reorderable_container_icon.svg")) + add_custom_type("ReorderableVBox", "ReorderableContainer", preload("reorderable_vbox.gd"), preload("Icon/reorderable_vbox_icon.svg")) + add_custom_type("ReorderableHBox", "ReorderableContainer", preload("reorderable_hbox.gd"), preload("Icon/reorderable_hbox_icon.svg")) + + +func _exit_tree(): + remove_custom_type("ReorderableContainer") + remove_custom_type("ReorderableVBox") + remove_custom_type("ReorderableHBox") diff --git a/addons/ReorderableContainer/plugin.gd.uid b/addons/ReorderableContainer/plugin.gd.uid new file mode 100644 index 0000000..398ab06 --- /dev/null +++ b/addons/ReorderableContainer/plugin.gd.uid @@ -0,0 +1 @@ +uid://0uea0ywilkmu diff --git a/addons/ReorderableContainer/reorderable_container.gd b/addons/ReorderableContainer/reorderable_container.gd new file mode 100644 index 0000000..cb6f73a --- /dev/null +++ b/addons/ReorderableContainer/reorderable_container.gd @@ -0,0 +1,357 @@ +@tool +@icon("Icon/reorderable_container_icon.svg") +class_name ReorderableContainer +extends Container +## A container that allows its child to be reorder and arranges horizontally or vertically. +## +## A container similar to [BoxContainer] but extended with drag-and-drop style reordering functionality, +## and auto-scroll functionality when placed under [ScrollContainer].[br][br] +## [b]Note:[/b] This addon also works with SmoothScroll by SpyrexDE. +## +## @tutorial(SmoothScroll): https://github.com/SpyrexDE/SmoothScroll +## @tutorial(Using Containers): https://docs.godotengine.org/en/4.1/tutorials/ui/gui_containers.html + +## Emitted when children have been reordered. +signal reordered(from: int, to: int) +signal dragging(pos: Vector2) +signal drag_started(node) +signal drag_stopped(node) +## Extend the drop zone length at the start and end of the container. +## This will ensure that drop input is recognized even outside the container itself. +const DROP_ZONE_EXTEND = 2000 + +## The hold duration time in seconds before the holded child will start being drag. +@export +var hold_duration := 0.5 + +## The overall speed of how fast children will move and arrange. +@export_range(3, 30, 0.01, "or_greater", "or_less") +var speed := 10.0 + +## The space between the container's elements, in pixels. +@export +var separation := 10: set = set_separation +func set_separation(value): + if value == separation or value < 0: + return + separation = value + _on_sort_children() + + +## if [code]true[/code] the container will arrange its children vertically, rather than horizontally. +@export var is_vertical := false: set = set_vertical +func set_vertical(value): + if value == is_vertical: + return + is_vertical = value + if is_vertical: + custom_minimum_size.x = 0 + else: + custom_minimum_size.y = 0 + _on_sort_children() + +## (Optional) [ScrollContainer] refference. Normally, the addon will automatically check +## its parent node for [ScrollContainer]. If this is not the case, you can manually specify it here. +@export +var scroll_container: ScrollContainer + +## The maximum speed of auto scroll. +@export +var auto_scroll_speed := 10.0 + +## The pacentage of how much space auto scroll will take in [ScrollContainer][br][br] +## [b]Example:[/b] If [code]auto_scroll_range[/code] is 30% (0.3) and [ScrollContainer] height is 100 px, +## upper part will be 0 to 30 px and lower part will be 70 to 100 px. +@export_range(0, 0.5) +var auto_scroll_range := 0.3 + +## The scrolling threshold in pixel. In a nutshell, user will have hard time trying to drag a child if it too low +## and user will accidentally drag a child when scrolling if it too high. +@export +var scroll_threshold := 30 + +## Uses when debugging +@export +var is_debugging := false + +var _scroll_starting_point := 0 +var _is_smooth_scroll := false + +var _drop_zones: Array[Rect2] = [] +var _drop_zone_index := -1 +var _expect_child_rect: Array[Rect2] = [] + +var _focus_child: Control +var _is_press := false +var _is_hold := false +var _current_duration := 0.0 +var _is_using_process := false + + +func _ready(): + if scroll_container == null and get_parent() is ScrollContainer: + scroll_container = get_parent() + + if scroll_container != null and scroll_container.has_method("handle_overdrag"): + _is_smooth_scroll = true + + process_mode = Node.PROCESS_MODE_PAUSABLE + _adjust_expected_child_rect() + if not sort_children.is_connected(_on_sort_children): + sort_children.connect(_on_sort_children, CONNECT_PERSIST) + if not get_tree().node_added.is_connected(_on_node_added): + get_tree().node_added.connect(_on_node_added, CONNECT_PERSIST) + + +func _gui_input(event): + if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT: + for _child in get_children(): + var child := _child as Control + if child.get_rect().has_point(get_local_mouse_position()) and event.is_pressed(): + _focus_child = child + _is_press = true + elif not event.is_pressed(): + _is_press = false + _is_hold = false + + +func _process(delta): + if Engine.is_editor_hint(): return + + _handle_input(delta) + if _current_duration >= hold_duration != _is_hold: + _is_hold = _current_duration >= hold_duration + if _is_hold: + _on_start_dragging() + + if _is_hold: + _handle_dragging_child_pos(delta) + if scroll_container != null: + _handle_auto_scroll(delta) + elif not _is_hold and _drop_zone_index != -1: + _on_stop_dragging() + + if _is_using_process : + _on_sort_children(delta) + + +func _handle_input(delta): + if scroll_container != null and _is_press and not _is_hold: + var scroll_point = scroll_container.scroll_vertical if is_vertical else scroll_container.scroll_horizontal + if _current_duration == 0: + _scroll_starting_point = scroll_point + else: + # If user scroll more than scroll_threshold, press is abort. + _is_press = true if abs(scroll_point - _scroll_starting_point) <= scroll_threshold else false + _current_duration = _current_duration + delta if _is_press else 0.0 + + +func _on_start_dragging(): + # Force _on_sort_children to use process update for linear interpolation + _is_using_process = true + _focus_child.z_index = 1 + # Workaround for SmoothScroll addon + if _is_smooth_scroll: + scroll_container.process_mode = Node.PROCESS_MODE_DISABLED + for child in _get_visible_children(): + child.propagate_call("set_mouse_filter", [MOUSE_FILTER_IGNORE]) + drag_started.emit(_focus_child) + + + +func _on_stop_dragging(): + _focus_child.z_index = 0 + var focus_child_index := _focus_child.get_index() + move_child(_focus_child, _drop_zone_index) + reordered.emit(focus_child_index, _drop_zone_index) + drag_stopped.emit(_focus_child) + _focus_child = null + _drop_zone_index = -1 + if _is_smooth_scroll: + scroll_container.pos = -Vector2(scroll_container.scroll_horizontal, scroll_container.scroll_vertical) + scroll_container.process_mode = Node.PROCESS_MODE_INHERIT + for child in _get_visible_children(): + child.propagate_call("set_mouse_filter", [MOUSE_FILTER_PASS]) + + +func _on_node_added(node): + if node is Control and not Engine.is_editor_hint(): + node.mouse_filter = Control.MOUSE_FILTER_PASS + + +func _handle_dragging_child_pos(delta): + if is_vertical: + var target_pos = get_local_mouse_position().y - (_focus_child.size.y / 2.0) + _focus_child.position.y = lerp(_focus_child.position.y, target_pos, delta * speed) + else: + var target_pos = get_local_mouse_position().x - (_focus_child.size.x / 2.0) + _focus_child.position.x = lerp(_focus_child.position.x, target_pos, delta * speed) + + # Update drop zone index + var child_center_pos: Vector2 = _focus_child.get_rect().get_center() + for i in range(_drop_zones.size()): + var drop_zone = _drop_zones[i] + if drop_zone.has_point(child_center_pos): + _drop_zone_index = i + break + elif i == _drop_zones.size() - 1: + _drop_zone_index = -1 + dragging.emit(get_global_mouse_position()) + +func _handle_auto_scroll(delta): + var mouse_g_pos = get_global_mouse_position() + var scroll_g_rect = scroll_container.get_global_rect() + if is_vertical: + var upper = scroll_g_rect.position.y + (scroll_g_rect.size.y * auto_scroll_range) + var lower = scroll_g_rect.position.y + (scroll_g_rect.size.y * (1.0 - auto_scroll_range)) + + if upper > mouse_g_pos.y: + var factor = (upper - mouse_g_pos.y) / (upper - scroll_g_rect.position.y) + scroll_container.scroll_vertical -= delta * float(auto_scroll_speed) * 150.0 * factor + elif lower < mouse_g_pos.y: + var factor = (mouse_g_pos.y - lower) / (scroll_g_rect.end.y - lower) + scroll_container.scroll_vertical += delta * float(auto_scroll_speed) * 150.0 * factor + else: + scroll_container.scroll_vertical = scroll_container.scroll_vertical + else: + var left = scroll_g_rect.position.x + (scroll_g_rect.size.x * auto_scroll_range) + var right = scroll_g_rect.position.x + (scroll_g_rect.size.x * (1.0 - auto_scroll_range)) + + if left > mouse_g_pos.x: + var factor = (left - mouse_g_pos.x) / (left - scroll_g_rect.position.x) + scroll_container.scroll_horizontal -= delta * float(auto_scroll_speed) * 150.0 * factor + elif right < mouse_g_pos.x: + var factor = (mouse_g_pos.x - right) / (scroll_g_rect.end.x - right) + scroll_container.scroll_horizontal += delta * float(auto_scroll_speed) * 150.0 * factor + else: + scroll_container.scroll_horizontal = scroll_container.scroll_horizontal + + +func _on_sort_children(delta := -1.0): + if _is_using_process and delta == -1.0: + return + + _adjust_expected_child_rect() + _adjust_child_rect(delta) + _adjust_drop_zone_rect() + + +func _adjust_expected_child_rect(): + _expect_child_rect.clear() + var children := _get_visible_children() + var end_point = 0.0 + for i in range(children.size()): + var child := children[i] + var min_size := child.get_combined_minimum_size() + if is_vertical: + if i == _drop_zone_index: + end_point += _focus_child.size.y + separation + + _expect_child_rect.append(Rect2(Vector2(0, end_point), Vector2(size.x, min_size.y))) + end_point += min_size.y + separation + else: + if i == _drop_zone_index: + end_point += _focus_child.size.x + separation + + _expect_child_rect.append(Rect2(Vector2(end_point, 0), Vector2(min_size.x, size.y))) + end_point += min_size.x + separation + + +func _adjust_child_rect(delta: float = -1.0): + var children := _get_visible_children() + if children.is_empty(): + return + + var is_animating := false + var end_point := 0.0 + for i in range(children.size()): + var child := children[i] + if child.position == _expect_child_rect[i].position and child.size == _expect_child_rect[i].size: + continue + + if _is_using_process: + is_animating = true + child.position = lerp(child.position, _expect_child_rect[i].position, delta * speed) + child.size = _expect_child_rect[i].size + if (child.position - _expect_child_rect[i].position).length() <= 1.0: + child.position = _expect_child_rect[i].position + else: + child.position = _expect_child_rect[i].position + child.size = _expect_child_rect[i].size + + var last_child := children[-1] + if is_vertical: + if _is_using_process and _drop_zone_index == children.size(): + custom_minimum_size.y = _expect_child_rect[-1].end.y + _focus_child.size.y + separation + elif not _is_using_process: + custom_minimum_size.y = last_child.get_rect().end.y + else: + if _is_using_process and _drop_zone_index == children.size(): + custom_minimum_size.x = _expect_child_rect[-1].end.x + _focus_child.size.x + separation + elif not _is_using_process: + custom_minimum_size.x = last_child.get_rect().end.x + + # Adjust rect every process frame until child is dropped and finished lerping + # ( return to adjust when sort_children signal is emitted) + if not is_animating and _focus_child == null: + _is_using_process = false + + +func _adjust_drop_zone_rect(): + _drop_zones.clear() + var children = _get_visible_children() + for i in range(children.size()): + var drop_zone_rect: Rect2 + var child := children[i] as Control + if is_vertical: + if i == 0: + # First child + drop_zone_rect.position = Vector2(child.position.x, child.position.y - DROP_ZONE_EXTEND) + drop_zone_rect.end = Vector2(child.size.x, child.get_rect().get_center().y) + _drop_zones.append(drop_zone_rect) + else: + # In between + var prev_child := children[i - 1] as Control + drop_zone_rect.position = Vector2(prev_child.position.x, prev_child.get_rect().get_center().y) + drop_zone_rect.end = Vector2(child.size.x, child.get_rect().get_center().y) + _drop_zones.append(drop_zone_rect) + if i == children.size() - 1: + # Is also last child + drop_zone_rect.position = Vector2(child.position.x, child.get_rect().get_center().y) + drop_zone_rect.end = Vector2(child.size.x, child.get_rect().end.y + DROP_ZONE_EXTEND) + _drop_zones.append(drop_zone_rect) + else: + if i == 0: + # First child + drop_zone_rect.position = Vector2(child.position.x - DROP_ZONE_EXTEND, child.position.y) + drop_zone_rect.end = Vector2(child.get_rect().get_center().x, child.size.y) + _drop_zones.append(drop_zone_rect) + else: + # In between + var prev_child := children[i - 1] as Control + drop_zone_rect.position = Vector2(prev_child.get_rect().get_center().x, prev_child.position.y) + drop_zone_rect.end = Vector2(child.get_rect().get_center().x, child.size.y) + _drop_zones.append(drop_zone_rect) + if i == children.size() - 1: + # Is also last child + drop_zone_rect.position = Vector2(child.get_rect().get_center().x, child.position.y) + drop_zone_rect.end = Vector2(child.get_rect().end.x + DROP_ZONE_EXTEND, child.size.y) + _drop_zones.append(drop_zone_rect) + + +func _get_visible_children() -> Array[Control]: + var visible_control: Array[Control] + for _child in get_children(): + var child := _child as Control + if not child.visible: + continue + if child == _focus_child and _is_hold: + continue + + visible_control.append(child) + return visible_control + + +func _print_debug(val): + if is_debugging: + print(val) diff --git a/addons/ReorderableContainer/reorderable_container.gd.uid b/addons/ReorderableContainer/reorderable_container.gd.uid new file mode 100644 index 0000000..621c263 --- /dev/null +++ b/addons/ReorderableContainer/reorderable_container.gd.uid @@ -0,0 +1 @@ +uid://jwjxetmu7o2o diff --git a/addons/ReorderableContainer/reorderable_hbox.gd b/addons/ReorderableContainer/reorderable_hbox.gd new file mode 100644 index 0000000..b8b3b1f --- /dev/null +++ b/addons/ReorderableContainer/reorderable_hbox.gd @@ -0,0 +1,13 @@ +@tool +@icon("Icon/reorderable_hbox_icon.svg") +class_name ReorderableHBox +extends ReorderableContainer + +func set_vertical(value): + value = false + super.set_vertical(value) + + +func _ready(): + is_vertical = false + super._ready() diff --git a/addons/ReorderableContainer/reorderable_hbox.gd.uid b/addons/ReorderableContainer/reorderable_hbox.gd.uid new file mode 100644 index 0000000..9278fe9 --- /dev/null +++ b/addons/ReorderableContainer/reorderable_hbox.gd.uid @@ -0,0 +1 @@ +uid://gp5cpsm0gdkx diff --git a/addons/ReorderableContainer/reorderable_vbox.gd b/addons/ReorderableContainer/reorderable_vbox.gd new file mode 100644 index 0000000..6458724 --- /dev/null +++ b/addons/ReorderableContainer/reorderable_vbox.gd @@ -0,0 +1,13 @@ +@tool +@icon("Icon/reorderable_vbox_icon.svg") +class_name ReorderableVBox +extends ReorderableContainer + +func set_vertical(value): + value = true + super.set_vertical(value) + + +func _ready(): + is_vertical = true + super._ready() diff --git a/addons/ReorderableContainer/reorderable_vbox.gd.uid b/addons/ReorderableContainer/reorderable_vbox.gd.uid new file mode 100644 index 0000000..2bba009 --- /dev/null +++ b/addons/ReorderableContainer/reorderable_vbox.gd.uid @@ -0,0 +1 @@ +uid://d3mey1366662n diff --git a/data/quests/sticky_situation.gd b/data/quests/sticky_situation.gd index 93aee95..d50adf7 100644 --- a/data/quests/sticky_situation.gd +++ b/data/quests/sticky_situation.gd @@ -11,7 +11,7 @@ func _init() -> void: evt.time = 5 events.append(evt) desc = "Nestor’s Woods is facing a slime invasion and the farmers are getting nervous, send an adventurer to help squash that sticky situation!" - location = + location = Quest.Locations.NESTORS_WOODS rewards = {"exp":10, "gold":5} guild_rewards = {"glory":10, "gold":5} covenant_cost = 5 diff --git a/dialogic/custom_layered_portrait.gd b/dialogic/custom_layered_portrait.gd new file mode 100644 index 0000000..00bf1e5 --- /dev/null +++ b/dialogic/custom_layered_portrait.gd @@ -0,0 +1,3 @@ +@tool +extends "res://addons/dialogic/Modules/LayeredPortrait/layered_portrait.gd" + diff --git a/dialogic/custom_layered_portrait.gd.uid b/dialogic/custom_layered_portrait.gd.uid new file mode 100644 index 0000000..dadeaea --- /dev/null +++ b/dialogic/custom_layered_portrait.gd.uid @@ -0,0 +1 @@ +uid://0ah5wvuoqupd diff --git a/dialogic/layered_portrait_player.tscn b/dialogic/layered_portrait_player.tscn new file mode 100644 index 0000000..1c07571 --- /dev/null +++ b/dialogic/layered_portrait_player.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=2 format=3 ] + +[ext_resource type="Script" path="res://dialogic/custom_layered_portrait.gd" id="1_uubi5"] + +[node name="LayeredPortrait" type="CanvasGroup"] +script = ExtResource("1_uubi5") + +[node name="Layer1" type="Sprite2D" parent="."] + +[node name="Group1" type="Node2D" parent="."] + +[node name="Layer1" type="Sprite2D" parent="Group1"] + +[node name="Layer2" type="Sprite2D" parent="Group1"] diff --git a/dialogic/timelines/game_start.dtl b/dialogic/timelines/game_start.dtl new file mode 100644 index 0000000..1970c28 --- /dev/null +++ b/dialogic/timelines/game_start.dtl @@ -0,0 +1,15 @@ +label Prespeech +I never imagined that one day I'd be in charge of a guild. To be honest, I never really imagined what my future would look like. I've never been very good at anything. +I just lived every day working the best I could and hoping that somehow, someway, the world would show me what to do. And then grandma died and left me this letter. +do Game.switch_scenes("letter") +[end_timeline] +label Start Guildcard +Suddenly I had a purpose. I didn't know it then and I never asked for it, but filling out that card was the first step in becoming a better version of myself. +do Game.switch_scenes("guild_card") +Ugh, I hated paperwork and there sure was a lot of it. +[end_timeline] +label Start Schedule +[wait_input] +do +[end_timeline] +label First Portrait Open diff --git a/dialogic/timelines/letter.dtl.uid b/dialogic/timelines/game_start.dtl.uid similarity index 100% rename from dialogic/timelines/letter.dtl.uid rename to dialogic/timelines/game_start.dtl.uid diff --git a/dialogic/timelines/intro.dtl b/dialogic/timelines/guild_entrance.dtl similarity index 100% rename from dialogic/timelines/intro.dtl rename to dialogic/timelines/guild_entrance.dtl diff --git a/dialogic/timelines/intro.dtl.uid b/dialogic/timelines/guild_entrance.dtl.uid similarity index 100% rename from dialogic/timelines/intro.dtl.uid rename to dialogic/timelines/guild_entrance.dtl.uid diff --git a/dialogic/timelines/letter.dtl b/dialogic/timelines/letter.dtl deleted file mode 100644 index be605d8..0000000 --- a/dialogic/timelines/letter.dtl +++ /dev/null @@ -1,2 +0,0 @@ -[style] -I never imagined that one day I'd be in charge of a guild. To be honest, I never really imagined what my future would look like. I've never been very good at anything. I just lived every day working the best I could and hoping that somehow, someway, the world would show me what to do. And then my grandma died. diff --git a/dialogic/timelines/player.dch b/dialogic/timelines/player.dch index e49608e..674ea53 100644 --- a/dialogic/timelines/player.dch +++ b/dialogic/timelines/player.dch @@ -8,12 +8,22 @@ "sound_moods": {}, "style": "" }, -&"default_portrait": "", +&"default_portrait": "New portrait", &"description": "", &"display_name": "Player", &"mirror": false, &"nicknames": ["Guildmaster"], &"offset": Vector2(0, 0), -&"portraits": {}, +&"portraits": { +"New portrait": { +"export_overrides": { +"image": "" +}, +"mirror": false, +"offset": Vector2(0, 0), +"scale": 1, +"scene": "res://dialogic/layered_portrait_player.tscn" +} +}, &"scale": 1.0 } \ No newline at end of file diff --git a/external/Test Portrait/Farmer_F/body.png.import b/external/Test Portrait/Farmer_F/body.png.import index b385871..8e18bae 100644 --- a/external/Test Portrait/Farmer_F/body.png.import +++ b/external/Test Portrait/Farmer_F/body.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://crrd8mpcuync2" -path="res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex" +path="res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/body.png" -dest_files=["res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex"] +source_file="res://external/test portrait/farmer_f/body.png" +dest_files=["res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow-1.png.import b/external/Test Portrait/Farmer_F/brow_shadow-1.png.import index 04efe38..b6487ec 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow-1.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://pp5ssn5m2n3i" -path="res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex" +path="res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow-1.png" -dest_files=["res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow-1.png" +dest_files=["res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow-2.png.import b/external/Test Portrait/Farmer_F/brow_shadow-2.png.import index a89758a..6f63278 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow-2.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow-2.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://x4e86o28672u" -path="res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex" +path="res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow-2.png" -dest_files=["res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow-2.png" +dest_files=["res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brow_shadow.png.import b/external/Test Portrait/Farmer_F/brow_shadow.png.import index 3183cba..e584536 100644 --- a/external/Test Portrait/Farmer_F/brow_shadow.png.import +++ b/external/Test Portrait/Farmer_F/brow_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://sv7bxo8a12i6" -path="res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex" +path="res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brow_shadow.png" -dest_files=["res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex"] +source_file="res://external/test portrait/farmer_f/brow_shadow.png" +dest_files=["res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brows-1.png.import b/external/Test Portrait/Farmer_F/brows-1.png.import index 9fdac8e..c3e6ee8 100644 --- a/external/Test Portrait/Farmer_F/brows-1.png.import +++ b/external/Test Portrait/Farmer_F/brows-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://tpg08bgn2on7" -path="res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex" +path="res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brows-1.png" -dest_files=["res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex"] +source_file="res://external/test portrait/farmer_f/brows-1.png" +dest_files=["res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/brows-2.png.import b/external/Test Portrait/Farmer_F/brows-2.png.import index bf44252..b6faa7b 100644 --- a/external/Test Portrait/Farmer_F/brows-2.png.import +++ b/external/Test Portrait/Farmer_F/brows-2.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://brmta1rtiau4a" -path="res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex" +path="res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/brows-2.png" -dest_files=["res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex"] +source_file="res://external/test portrait/farmer_f/brows-2.png" +dest_files=["res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/composite.png.import b/external/Test Portrait/Farmer_F/composite.png.import index f32ac68..e799e0f 100644 --- a/external/Test Portrait/Farmer_F/composite.png.import +++ b/external/Test Portrait/Farmer_F/composite.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c3wwe6r000gpq" -path="res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex" +path="res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/composite.png" -dest_files=["res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex"] +source_file="res://external/test portrait/farmer_f/composite.png" +dest_files=["res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/ear.png.import b/external/Test Portrait/Farmer_F/ear.png.import index c287ccf..e495de0 100644 --- a/external/Test Portrait/Farmer_F/ear.png.import +++ b/external/Test Portrait/Farmer_F/ear.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://caow8dqiog7j4" -path="res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex" +path="res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/ear.png" -dest_files=["res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex"] +source_file="res://external/test portrait/farmer_f/ear.png" +dest_files=["res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eye-white-1.png.import b/external/Test Portrait/Farmer_F/eye-white-1.png.import index cc08b8e..74019a2 100644 --- a/external/Test Portrait/Farmer_F/eye-white-1.png.import +++ b/external/Test Portrait/Farmer_F/eye-white-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://csp7xbtu0tpn7" -path="res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex" +path="res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eye-white-1.png" -dest_files=["res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex"] +source_file="res://external/test portrait/farmer_f/eye-white-1.png" +dest_files=["res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes-iris-1.png.import b/external/Test Portrait/Farmer_F/eyes-iris-1.png.import index 1901ca1..e279de5 100644 --- a/external/Test Portrait/Farmer_F/eyes-iris-1.png.import +++ b/external/Test Portrait/Farmer_F/eyes-iris-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://mygmunn3voie" -path="res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex" +path="res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes-iris-1.png" -dest_files=["res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex"] +source_file="res://external/test portrait/farmer_f/eyes-iris-1.png" +dest_files=["res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import b/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import index 6121c9e..fa0ee94 100644 --- a/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import +++ b/external/Test Portrait/Farmer_F/eyes-lashes-1.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://wnkr20dtf734" -path="res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex" +path="res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes-lashes-1.png" -dest_files=["res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex"] +source_file="res://external/test portrait/farmer_f/eyes-lashes-1.png" +dest_files=["res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes.png.import b/external/Test Portrait/Farmer_F/eyes.png.import index 12b4ae4..0977200 100644 --- a/external/Test Portrait/Farmer_F/eyes.png.import +++ b/external/Test Portrait/Farmer_F/eyes.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dd063tm4qo5nc" -path="res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex" +path="res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes.png" -dest_files=["res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex"] +source_file="res://external/test portrait/farmer_f/eyes.png" +dest_files=["res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/eyes_shadow.png.import b/external/Test Portrait/Farmer_F/eyes_shadow.png.import index 1f02358..ac345e4 100644 --- a/external/Test Portrait/Farmer_F/eyes_shadow.png.import +++ b/external/Test Portrait/Farmer_F/eyes_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://li44lgsa0ky" -path="res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex" +path="res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/eyes_shadow.png" -dest_files=["res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex"] +source_file="res://external/test portrait/farmer_f/eyes_shadow.png" +dest_files=["res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_bg.png.import b/external/Test Portrait/Farmer_F/hair_bg.png.import index 0810aed..d83bb4b 100644 --- a/external/Test Portrait/Farmer_F/hair_bg.png.import +++ b/external/Test Portrait/Farmer_F/hair_bg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://can8npg0ufr3f" -path="res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex" +path="res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_bg.png" -dest_files=["res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex"] +source_file="res://external/test portrait/farmer_f/hair_bg.png" +dest_files=["res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_fg.png.import b/external/Test Portrait/Farmer_F/hair_fg.png.import index 60f342e..5170c99 100644 --- a/external/Test Portrait/Farmer_F/hair_fg.png.import +++ b/external/Test Portrait/Farmer_F/hair_fg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://vt17lekvchdg" -path="res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex" +path="res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_fg.png" -dest_files=["res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex"] +source_file="res://external/test portrait/farmer_f/hair_fg.png" +dest_files=["res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import b/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import index 13e85b8..7dbf97c 100644 --- a/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import +++ b/external/Test Portrait/Farmer_F/hair_fg_shadow.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cru775pghpate" -path="res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex" +path="res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hair_fg_shadow.png" -dest_files=["res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex"] +source_file="res://external/test portrait/farmer_f/hair_fg_shadow.png" +dest_files=["res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat-bg.png.import b/external/Test Portrait/Farmer_F/hat-bg.png.import index 41b5407..107e0a5 100644 --- a/external/Test Portrait/Farmer_F/hat-bg.png.import +++ b/external/Test Portrait/Farmer_F/hat-bg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dj6fagfp2sbrx" -path="res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex" +path="res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat-bg.png" -dest_files=["res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex"] +source_file="res://external/test portrait/farmer_f/hat-bg.png" +dest_files=["res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat.png.import b/external/Test Portrait/Farmer_F/hat.png.import index ad9b8b0..db6f143 100644 --- a/external/Test Portrait/Farmer_F/hat.png.import +++ b/external/Test Portrait/Farmer_F/hat.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://b303qa76o5r1m" -path="res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex" +path="res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat.png" -dest_files=["res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex"] +source_file="res://external/test portrait/farmer_f/hat.png" +dest_files=["res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/hat_fg.png.import b/external/Test Portrait/Farmer_F/hat_fg.png.import index c8bdc32..b24f1f6 100644 --- a/external/Test Portrait/Farmer_F/hat_fg.png.import +++ b/external/Test Portrait/Farmer_F/hat_fg.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dyeu4kwwnxjn5" -path="res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex" +path="res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/hat_fg.png" -dest_files=["res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex"] +source_file="res://external/test portrait/farmer_f/hat_fg.png" +dest_files=["res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"] [params] diff --git a/external/Test Portrait/Farmer_F/head.png.import b/external/Test Portrait/Farmer_F/head.png.import index df71f44..3d2f1a0 100644 --- a/external/Test Portrait/Farmer_F/head.png.import +++ b/external/Test Portrait/Farmer_F/head.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://dbdjaye6srxhx" -path="res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex" +path="res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://external/Test Portrait/Farmer_F/head.png" -dest_files=["res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex"] +source_file="res://external/test portrait/farmer_f/head.png" +dest_files=["res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"] [params] diff --git a/external/guildcard-portrait-placeholder.png b/external/guildcard-portrait-placeholder.png new file mode 100644 index 0000000..5626e0c Binary files /dev/null and b/external/guildcard-portrait-placeholder.png differ diff --git a/external/guildcard-portrait-placeholder.png.import b/external/guildcard-portrait-placeholder.png.import new file mode 100644 index 0000000..ad70528 --- /dev/null +++ b/external/guildcard-portrait-placeholder.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5hcva1k5qee0" +path="res://.godot/imported/guildcard-portrait-placeholder.png-c0bfec06bc2e891650a1650e78889916.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://external/guildcard-portrait-placeholder.png" +dest_files=["res://.godot/imported/guildcard-portrait-placeholder.png-c0bfec06bc2e891650a1650e78889916.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/merchant-placeholder.png b/external/merchant-placeholder.png new file mode 100644 index 0000000..5d7c11b Binary files /dev/null and b/external/merchant-placeholder.png differ diff --git a/external/merchant-placeholder.png.import b/external/merchant-placeholder.png.import new file mode 100644 index 0000000..44e41cf --- /dev/null +++ b/external/merchant-placeholder.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdqu6oo8lo743" +path="res://.godot/imported/merchant-placeholder.png-13c0f9bee78f149eb3daefd00b88aa8d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://external/merchant-placeholder.png" +dest_files=["res://.godot/imported/merchant-placeholder.png-13c0f9bee78f149eb3daefd00b88aa8d.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/move_marker.aseprite b/external/move_marker.aseprite new file mode 100644 index 0000000..7f64127 Binary files /dev/null and b/external/move_marker.aseprite differ diff --git a/external/outline-np.png b/external/outline-np.png new file mode 100644 index 0000000..f1ba011 Binary files /dev/null and b/external/outline-np.png differ diff --git a/external/outline-np.png.import b/external/outline-np.png.import new file mode 100644 index 0000000..868efa0 --- /dev/null +++ b/external/outline-np.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cnwcvebl0c1it" +path="res://.godot/imported/outline-np.png-0697bc1c71c69083200c70b4a3720757.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://external/outline-np.png" +dest_files=["res://.godot/imported/outline-np.png-0697bc1c71c69083200c70b4a3720757.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/pom-intro.png b/external/pom-intro.png new file mode 100644 index 0000000..7d857ec Binary files /dev/null and b/external/pom-intro.png differ diff --git a/external/pom-intro.png.import b/external/pom-intro.png.import new file mode 100644 index 0000000..73d8476 --- /dev/null +++ b/external/pom-intro.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdmixnd1mhgfu" +path="res://.godot/imported/pom-intro.png-7ef40172310857171d345738a7ffed65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://external/pom-intro.png" +dest_files=["res://.godot/imported/pom-intro.png-7ef40172310857171d345738a7ffed65.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/portrait.clip b/external/portrait.clip index d48d453..8ed372d 100644 Binary files a/external/portrait.clip and b/external/portrait.clip differ diff --git a/external/signature.png b/external/signature.png new file mode 100644 index 0000000..94a63a8 Binary files /dev/null and b/external/signature.png differ diff --git a/external/signature.png.import b/external/signature.png.import new file mode 100644 index 0000000..01d3bdd --- /dev/null +++ b/external/signature.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hdjte1ipyyio" +path="res://.godot/imported/signature.png-5527eb152408fafee8a4b656ff1507f9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://external/signature.png" +dest_files=["res://.godot/imported/signature.png-5527eb152408fafee8a4b656ff1507f9.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/xp.clip b/external/xp.clip new file mode 100644 index 0000000..c7bbb96 Binary files /dev/null and b/external/xp.clip differ diff --git a/graphics/first-guild-base.png b/graphics/first-guild-base.png new file mode 100644 index 0000000..b90be38 Binary files /dev/null and b/graphics/first-guild-base.png differ diff --git a/graphics/first-guild-base.png.import b/graphics/first-guild-base.png.import new file mode 100644 index 0000000..d3bdb71 --- /dev/null +++ b/graphics/first-guild-base.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://do4gn21x5bmdm" +path="res://.godot/imported/first-guild-base.png-2d43656da3758ae3da4d3e59033f988e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/first-guild-base.png" +dest_files=["res://.godot/imported/first-guild-base.png-2d43656da3758ae3da4d3e59033f988e.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-front.png b/graphics/first-guild-front.png new file mode 100644 index 0000000..e062020 Binary files /dev/null and b/graphics/first-guild-front.png differ diff --git a/graphics/first-guild-front.png.import b/graphics/first-guild-front.png.import new file mode 100644 index 0000000..58d092b --- /dev/null +++ b/graphics/first-guild-front.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg5ip7ni3n7qd" +path="res://.godot/imported/first-guild-front.png-be5b61a04815517e4b07fce70ddaab2b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/first-guild-front.png" +dest_files=["res://.godot/imported/first-guild-front.png-be5b61a04815517e4b07fce70ddaab2b.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 index d79f3d6..03c54e0 100644 Binary files a/graphics/first-guild.png and b/graphics/first-guild.png differ diff --git a/graphics/move_marker.png b/graphics/move_marker.png new file mode 100644 index 0000000..83c2cea Binary files /dev/null and b/graphics/move_marker.png differ diff --git a/graphics/move_marker.png.import b/graphics/move_marker.png.import new file mode 100644 index 0000000..cfb63c4 --- /dev/null +++ b/graphics/move_marker.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb827iikdiygx" +path="res://.godot/imported/move_marker.png-9d7e6510cae0af208c9285873d50db6a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/move_marker.png" +dest_files=["res://.godot/imported/move_marker.png-9d7e6510cae0af208c9285873d50db6a.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/icon.png b/icon.png new file mode 100644 index 0000000..2abb9df Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..af7b4e7 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3kis7t3ahe78" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.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/project.godot b/project.godot index 110b554..bbc2a66 100644 --- a/project.godot +++ b/project.godot @@ -28,8 +28,8 @@ directories/dch_directory={ "pom": "res://dialogic/characters/pom.dch" } directories/dtl_directory={ -"intro": "res://dialogic/timelines/intro.dtl", -"letter": "res://dialogic/timelines/letter.dtl" +"game_start": "res://dialogic/timelines/game_start.dtl", +"guild_entrance": "res://dialogic/timelines/guild_entrance.dtl" } glossary/default_case_sensitive=true extensions_folder="res://addons/dialogic_additions" @@ -71,7 +71,11 @@ project/assembly_name="pomchronicles" [editor_plugins] -enabled=PackedStringArray("res://addons/Todo_Manager/plugin.cfg", "res://addons/dialogic/plugin.cfg") +enabled=PackedStringArray("res://addons/ReorderableContainer/plugin.cfg", "res://addons/Todo_Manager/plugin.cfg", "res://addons/dialogic/plugin.cfg") + +[global_group] + +room_obstacles="" [input] diff --git a/scenes/game_start.tscn b/scenes/game_start.tscn new file mode 100644 index 0000000..bf213c4 --- /dev/null +++ b/scenes/game_start.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=2 format=3 uid="uid://blgri41imul1d"] + +[ext_resource type="Script" uid="uid://cpufy3rp4f0gw" path="res://scripts/game_start.gd" id="1_jahr7"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_jahr7") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.007298478, 0, 0.13471341, 1) diff --git a/scenes/guild_card.tscn b/scenes/guild_card.tscn new file mode 100644 index 0000000..fe6a021 --- /dev/null +++ b/scenes/guild_card.tscn @@ -0,0 +1,323 @@ +[gd_scene load_steps=17 format=3 uid="uid://dcpuaq3fcwyxs"] + +[ext_resource type="Script" uid="uid://dkrxdaq8d6q55" path="res://scripts/guild_card_scene.gd" id="1_hj0e5"] +[ext_resource type="Texture2D" uid="uid://c5hcva1k5qee0" path="res://external/guildcard-portrait-placeholder.png" id="1_mmvi8"] +[ext_resource type="Shader" uid="uid://uxrvcuhjnjgl" path="res://shaders/animated_gradient.gdshader" id="3_3vymb"] +[ext_resource type="Texture2D" uid="uid://hdjte1ipyyio" path="res://external/signature.png" id="4_ht11g"] +[ext_resource type="AudioStream" uid="uid://bmm8jhojdt31a" path="res://sounds/Writing in paper 19.wav" id="5_ht11g"] + +[sub_resource type="Gradient" id="Gradient_hj0e5"] +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_5cpdt"] +gradient = SubResource("Gradient_hj0e5") + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_3vymb"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +thickness = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ht11g"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.89, 0.75472, 0.5518, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3rhvj"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.75686276, 0.62352943, 0.4, 1) +border_width_bottom = 2 +border_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tnttg"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.75686276, 0.62352943, 0.4, 1) +border_width_bottom = 2 +border_color = Color(0, 0, 0, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q4kfw"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.67, 0.5348834, 0.3015, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_7irbt"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +color = Color(1, 1, 1, 1) +thickness = 4 + +[sub_resource type="Gradient" id="Gradient_3vymb"] +offsets = PackedFloat32Array(0.0026385225, 0.047493402, 0.081794195, 1) +colors = PackedColorArray(1, 0, 0, 1, 0, 0.1333332, 1, 1, 0, 0.02513448, 0.18850878, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_ht11g"] +gradient = SubResource("Gradient_3vymb") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_3rhvj"] +resource_local_to_scene = true +shader = ExtResource("3_3vymb") +shader_parameter/gradient = SubResource("GradientTexture1D_ht11g") +shader_parameter/fringe = 0.008000000001629815 + +[node name="Guild Card Scene" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_hj0e5") + +[node name="ColorRect2" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.007298478, 0, 0.13471341, 1) + +[node name="TextureRect" type="TextureRect" parent="."] +modulate = Color(1, 0.776, 0.52, 1) +layout_mode = 0 +offset_left = 353.0 +offset_top = 88.99999 +offset_right = 1359.965 +offset_bottom = 1313.5608 +rotation = -0.19356708 +texture = SubResource("GradientTexture1D_5cpdt") + +[node name="Label" type="Label" parent="TextureRect"] +layout_mode = 0 +offset_left = 34.2516 +offset_top = 33.20886 +offset_right = 930.2516 +offset_bottom = 143.20885 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 72 +text = "GUILD CHAPTER CHARTER" + +[node name="Label2" type="Label" parent="TextureRect"] +layout_mode = 0 +offset_left = 265.34796 +offset_top = 127.92432 +offset_right = 718.34796 +offset_bottom = 210.92432 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 60 +text = "Nestor's Woods" + +[node name="HSeparator" type="HSeparator" parent="TextureRect"] +layout_mode = 0 +offset_left = 97.12344 +offset_top = 190.73767 +offset_right = 892.07495 +offset_bottom = 214.61972 +theme_override_styles/separator = SubResource("StyleBoxLine_3vymb") + +[node name="HSeparator2" type="HSeparator" parent="TextureRect"] +layout_mode = 0 +offset_left = 94.76892 +offset_top = 1138.492 +offset_right = 889.72046 +offset_bottom = 1162.374 +theme_override_styles/separator = SubResource("StyleBoxLine_3vymb") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 0 +offset_left = 525.0 +offset_top = 352.0 +offset_right = 1452.0 +offset_bottom = 788.0 +color = Color(0, 0, 0, 0.45882353) + +[node name="GuildCard" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -458.0 +offset_top = -216.0 +offset_right = 458.0 +offset_bottom = 216.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_ht11g") + +[node name="PortraitButton" type="TextureButton" parent="GuildCard"] +unique_name_in_owner = true +custom_minimum_size = Vector2(200, 200) +layout_mode = 0 +offset_left = 15.0 +offset_top = 63.0 +offset_right = 55.0 +offset_bottom = 103.0 + +[node name="ColorRect" type="ColorRect" parent="GuildCard/PortraitButton"] +custom_minimum_size = Vector2(200, 200) +layout_mode = 0 +offset_right = 200.0 +offset_bottom = 200.0 +mouse_filter = 2 +color = Color(0.75686276, 0.62352943, 0.4, 1) + +[node name="TextureRect" type="TextureRect" parent="GuildCard/PortraitButton"] +modulate = Color(0.6024934, 0.46840662, 0.2634572, 1) +layout_mode = 0 +offset_right = 200.0 +offset_bottom = 200.0 +mouse_filter = 2 +texture = ExtResource("1_mmvi8") +expand_mode = 1 + +[node name="Label" type="Label" parent="GuildCard"] +layout_mode = 0 +offset_left = 187.0 +offset_right = 736.0 +offset_bottom = 67.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 48 +text = "Guild Membership Card" + +[node name="FirstNameEdit" type="TextEdit" parent="GuildCard"] +unique_name_in_owner = true +custom_minimum_size = Vector2(300, 60) +layout_mode = 0 +offset_left = 255.0 +offset_top = 65.0 +offset_right = 555.0 +offset_bottom = 125.0 +theme_override_colors/caret_background_color = Color(0, 0, 0, 0) +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_colors/font_readonly_color = Color(1, 1, 1, 1) +theme_override_colors/font_placeholder_color = Color(0.3403393, 0.34033933, 0.3403393, 1) +theme_override_colors/background_color = Color(0, 0, 0, 0) +theme_override_colors/current_line_color = Color(0, 0, 0, 0) +theme_override_font_sizes/font_size = 40 +theme_override_styles/normal = SubResource("StyleBoxFlat_3rhvj") +placeholder_text = "(First Name)" + +[node name="LastNameEdit" type="TextEdit" parent="GuildCard"] +unique_name_in_owner = true +custom_minimum_size = Vector2(300, 60) +layout_mode = 0 +offset_left = 569.0 +offset_top = 65.0 +offset_right = 869.0 +offset_bottom = 125.0 +theme_override_colors/caret_background_color = Color(0, 0, 0, 0) +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_colors/font_readonly_color = Color(1, 1, 1, 1) +theme_override_colors/font_placeholder_color = Color(0.3403393, 0.34033933, 0.3403393, 1) +theme_override_colors/background_color = Color(0, 0, 0, 0) +theme_override_colors/current_line_color = Color(0, 0, 0, 0) +theme_override_font_sizes/font_size = 40 +theme_override_styles/normal = SubResource("StyleBoxFlat_tnttg") +placeholder_text = "(Last Name)" + +[node name="Label2" type="Label" parent="GuildCard"] +layout_mode = 0 +offset_left = 228.0 +offset_top = 74.0 +offset_right = 281.0 +offset_bottom = 129.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 40 +text = "I, , +Do solemnly swear to be an +adventurer and crap." + +[node name="SignButton" type="Button" parent="GuildCard"] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 89.0 +offset_top = 284.0 +offset_right = 839.0 +offset_bottom = 380.0 +theme_override_colors/font_color = Color(0.2775273, 0.27752793, 0.27752748, 1) +theme_override_font_sizes/font_size = 48 +theme_override_styles/normal = SubResource("StyleBoxFlat_q4kfw") +text = "(Sign Here)" + +[node name="HSeparator" type="HSeparator" parent="GuildCard"] +modulate = Color(0, 0, 0, 1) +layout_mode = 0 +offset_left = 258.0 +offset_top = 65.0 +offset_right = 552.0 +offset_bottom = 181.0 +mouse_filter = 2 +theme_override_styles/separator = SubResource("StyleBoxLine_7irbt") + +[node name="HSeparator3" type="HSeparator" parent="GuildCard"] +modulate = Color(0, 0, 0, 1) +layout_mode = 0 +offset_left = 51.0 +offset_top = 329.0 +offset_right = 877.0 +offset_bottom = 445.0 +mouse_filter = 2 +theme_override_styles/separator = SubResource("StyleBoxLine_7irbt") + +[node name="HSeparator2" type="HSeparator" parent="GuildCard"] +modulate = Color(0, 0, 0, 1) +layout_mode = 0 +offset_left = 573.0 +offset_top = 65.0 +offset_right = 867.0 +offset_bottom = 181.0 +mouse_filter = 2 +theme_override_styles/separator = SubResource("StyleBoxLine_7irbt") + +[node name="Signature" type="TextureRect" parent="."] +unique_name_in_owner = true +material = SubResource("ShaderMaterial_3rhvj") +layout_mode = 0 +offset_left = 873.0 +offset_top = 557.0 +offset_right = 1064.0 +offset_bottom = 765.0 +texture = ExtResource("4_ht11g") + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("5_ht11g") + +[connection signal="pressed" from="GuildCard/PortraitButton" to="." method="_on_portrait_button_pressed"] +[connection signal="text_changed" from="GuildCard/FirstNameEdit" to="." method="_on_first_name_edit_text_changed"] +[connection signal="text_changed" from="GuildCard/LastNameEdit" to="." method="_on_last_name_edit_text_changed"] +[connection signal="pressed" from="GuildCard/SignButton" to="." method="_on_sign_button_pressed"] diff --git a/scenes/letter.tscn b/scenes/letter.tscn index 48a4ed0..c3f3c22 100644 --- a/scenes/letter.tscn +++ b/scenes/letter.tscn @@ -1,4 +1,6 @@ -[gd_scene load_steps=2 format=3 uid="uid://dytxmk3tg3jg7"] +[gd_scene load_steps=3 format=3 uid="uid://dytxmk3tg3jg7"] + +[ext_resource type="Script" uid="uid://bowfi8npivsxo" path="res://scripts/hold_to_continue.gd" id="1_kg060"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hfigq"] bg_color = Color(0.47, 0.34466666, 0, 0.38431373) @@ -16,6 +18,15 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +[node name="ColorRect4" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.007298478, 0, 0.13471341, 1) + [node name="ColorRect2" type="ColorRect" parent="."] layout_mode = 0 offset_left = 426.99997 @@ -250,3 +261,32 @@ offset_top = 638.0 offset_right = 1367.0 offset_bottom = 766.0 color = Color(0.63, 0.63, 0.63, 1) + +[node name="PressToContinue" type="MarginContainer" parent="."] +custom_minimum_size = Vector2(250, 75) +layout_mode = 0 +offset_left = 1551.0 +offset_top = 518.0 +offset_right = 1801.0 +offset_bottom = 593.0 +script = ExtResource("1_kg060") +advance_type = 1 +scene = "game_start" +label = "Start Guildcard" + +[node name="Button" type="TextureButton" parent="PressToContinue"] +layout_mode = 2 + +[node name="Label" type="Label" parent="PressToContinue"] +layout_mode = 2 +text = "Hold Space to Continue ->" +horizontal_alignment = 1 + +[node name="ProgressBar" type="ProgressBar" parent="PressToContinue"] +layout_mode = 2 +size_flags_vertical = 1 +mouse_filter = 2 +show_percentage = false + +[connection signal="button_down" from="PressToContinue/Button" to="PressToContinue" method="_on_button_button_down"] +[connection signal="button_up" from="PressToContinue/Button" to="PressToContinue" method="_on_button_button_up"] diff --git a/scenes/set_shifts.tscn b/scenes/set_shifts.tscn index 7aea470..1f4791e 100644 --- a/scenes/set_shifts.tscn +++ b/scenes/set_shifts.tscn @@ -1,28 +1,80 @@ -[gd_scene load_steps=2 format=3 uid="uid://b0fifk2nek3lm"] +[gd_scene load_steps=9 format=3 uid="uid://b0fifk2nek3lm"] -[sub_resource type="StyleBoxLine" id="StyleBoxLine_cpouh"] -content_margin_left = 1.0 -content_margin_top = 1.0 -content_margin_right = 1.0 -content_margin_bottom = 1.0 -color = Color(0.5689727, 0.56897277, 0.5689727, 1) -grow_begin = 180.0 -grow_end = 180.0 -thickness = 3 +[ext_resource type="Script" uid="uid://h61yq7g8mfj3" path="res://scripts/set_shifts.gd" id="1_rxjlm"] +[ext_resource type="Script" uid="uid://d3mey1366662n" path="res://addons/ReorderableContainer/reorderable_vbox.gd" id="2_532of"] +[ext_resource type="PackedScene" uid="uid://ctbg44spnjbsa" path="res://templates/shift_cycle.tscn" id="2_rxjlm"] -[node name="Control" type="MarginContainer"] -anchors_preset = 15 +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_532of"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.9768931, 0.7416691, 0.47020185, 0.6) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_532of"] +content_margin_left = 4.0 +content_margin_top = 0.0 +content_margin_right = 4.0 +content_margin_bottom = 0.0 +thickness = 4 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4epq3"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.47520554, 0.36835867, 0.22654346, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_532of"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u3f83"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.45, 0.45, 0.45, 0.40784314) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[node name="Control" type="Control"] +layout_mode = 3 anchor_right = 1.0 anchor_bottom = 1.0 +offset_bottom = 37.0 grow_horizontal = 2 grow_vertical = 2 +script = ExtResource("1_rxjlm") + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 0 +offset_left = 150.0 +offset_top = 100.0 +offset_right = 1770.0 +offset_bottom = 1017.0 theme_override_constants/margin_left = 150 theme_override_constants/margin_top = 100 theme_override_constants/margin_right = 150 theme_override_constants/margin_bottom = 100 [node name="PanelContainer" type="PanelContainer" parent="."] -layout_mode = 2 +layout_mode = 0 +offset_left = 150.0 +offset_top = 100.0 +offset_right = 1770.0 +offset_bottom = 1017.0 [node name="MarginContainer" type="MarginContainer" parent="PanelContainer"] layout_mode = 2 @@ -35,15 +87,6 @@ theme_override_constants/margin_bottom = 20 layout_mode = 2 theme_override_constants/separation = 15 -[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/MarginContainer/VBoxContainer"] -layout_mode = 2 - -[node name="Label" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer/PanelContainer"] -layout_mode = 2 -theme_override_font_sizes/font_size = 42 -text = "Please Set Your Work Shift Cycles" -horizontal_alignment = 1 - [node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer"] layout_mode = 2 theme_override_constants/separation = 9 @@ -79,69 +122,81 @@ QUESTS WILL NOT MAKE PROGRESS. " autowrap_mode = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] -layout_mode = 2 - -[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="PanelContainer2" type="PanelContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] custom_minimum_size = Vector2(700, 700) layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_532of") -[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2"] layout_mode = 2 -[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer"] +[node name="Label" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer"] layout_mode = 2 - -[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer"] -layout_mode = 2 - -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer"] -custom_minimum_size = Vector2(200, 0) -layout_mode = 2 - -[node name="Label" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer/HBoxContainer"] -custom_minimum_size = Vector2(600, 50) -layout_mode = 2 -theme_override_font_sizes/font_size = 32 -text = "WORK SHIFT" +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 42 +text = "Set Your Work Shift Cycles" horizontal_alignment = 1 -vertical_alignment = 1 -[node name="TextEdit" type="TextEdit" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer/HBoxContainer"] -custom_minimum_size = Vector2(65, 50) +[node name="HSeparator" type="HSeparator" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer"] layout_mode = 2 -theme_override_font_sizes/font_size = 32 -placeholder_text = "25" +theme_override_constants/separation = 8 +theme_override_styles/separator = SubResource("StyleBoxLine_532of") -[node name="VSeparator" type="VSeparator" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer"] -layout_mode = 2 -theme_override_styles/separator = SubResource("StyleBoxLine_cpouh") - -[node name="HBoxContainer2" type="HBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer"] -custom_minimum_size = Vector2(200, 0) +[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer"] +clip_contents = false +custom_minimum_size = Vector2(0, 700) layout_mode = 2 -[node name="Label" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer/HBoxContainer2"] -custom_minimum_size = Vector2(600, 50) +[node name="CycleList" type="Container" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer"] +unique_name_in_owner = true +process_mode = 1 +custom_minimum_size = Vector2(0, 111) layout_mode = 2 -theme_override_font_sizes/font_size = 32 -text = "OPEN SHIFT" -horizontal_alignment = 1 -vertical_alignment = 1 +script = ExtResource("2_532of") +hold_duration = 0.25 +is_vertical = true +metadata/_custom_type_script = "uid://d3mey1366662n" -[node name="TextEdit" type="TextEdit" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/PanelContainer/VBoxContainer/PanelContainer/VBoxContainer/HBoxContainer2"] -custom_minimum_size = Vector2(65, 50) +[node name="ShiftCycle" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" instance=ExtResource("2_rxjlm")] layout_mode = 2 -theme_override_font_sizes/font_size = 32 -placeholder_text = "5" -[node name="Button" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer"] +[node name="Accept Button" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer"] layout_mode = 2 +size_flags_vertical = 3 +theme_override_colors/font_color = Color(0.34254947, 0.14302492, 4.813075e-08, 1) theme_override_font_sizes/font_size = 48 +theme_override_styles/normal = SubResource("StyleBoxFlat_4epq3") text = "ACCEPT" -[node name="Button" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] -custom_minimum_size = Vector2(460, 0) +[node name="VBoxContainer2" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"] layout_mode = 2 + +[node name="Add Shift Button" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"] +custom_minimum_size = Vector2(460, 400) +layout_mode = 2 +size_flags_vertical = 3 theme_override_font_sizes/font_size = 48 text = "ADD SHIFT" + +[node name="DeleteBin" type="PanelContainer" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2"] +unique_name_in_owner = true +material = SubResource("CanvasItemMaterial_532of") +custom_minimum_size = Vector2(0, 400) +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_u3f83") + +[node name="Label" type="Label" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2/DeleteBin"] +modulate = Color(0.40832946, 0.40832946, 0.40832946, 1) +layout_mode = 2 +theme_override_font_sizes/font_size = 32 +text = "(Drag a Shift Cycle Here to Remove)" +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 2 + +[connection signal="drag_started" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" to="." method="_on_drag_started"] +[connection signal="drag_stopped" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" to="." method="_on_drag_stopped"] +[connection signal="dragging" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" to="." method="_on_drag_moved"] +[connection signal="sort_children" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" to="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/ScrollContainer/CycleList" method="_on_sort_children"] +[connection signal="pressed" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PanelContainer2/VBoxContainer/Accept Button" to="." method="_on_accept_button_pressed"] +[connection signal="pressed" from="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer2/Add Shift Button" to="." method="_on_add_shift_button_pressed"] diff --git a/scenes/start_menu.tscn b/scenes/start_menu.tscn index 1ef947c..a25d4bf 100644 --- a/scenes/start_menu.tscn +++ b/scenes/start_menu.tscn @@ -30,6 +30,7 @@ offset_bottom = 970.0 [node name="Label" type="Label" parent="VBoxContainer"] layout_mode = 2 +mouse_filter = 0 theme_override_font_sizes/font_size = 100 text = "PomChronicles:" horizontal_alignment = 1 @@ -37,6 +38,7 @@ horizontal_alignment = 1 [node name="Label2" type="Label" parent="VBoxContainer"] modulate = Color(0.45840502, 0.45840508, 0.45840502, 1) layout_mode = 2 +mouse_filter = 0 theme_override_font_sizes/font_size = 48 text = "We're going to be the bestest guild ever, right? Right?!?" horizontal_alignment = 1 diff --git a/scripts/game_manager.gd b/scripts/game_manager.gd index 5cc987b..65ec95c 100644 --- a/scripts/game_manager.gd +++ b/scripts/game_manager.gd @@ -5,11 +5,11 @@ var panel : GamePanel = null var player_profile : Window = null var quest_log : QuestLog = null var top_menu : TopMenu = null -var open : bool = true +var open : bool = false var end_shift_confirmation : ConfirmationDialog var end_shift_confirm_template = preload("res://templates/end_shift_confirmation.tscn") var player_profile_template = preload("res://templates/player_profile_window.tscn") - +var last_screenshot : Image func _ready() -> void: DisplayServer.register_additional_output(self) end_shift_confirmation = end_shift_confirm_template.instantiate() @@ -44,6 +44,7 @@ func toggle_player_profile(): func end_shift() -> void: + take_screenshot() open = false if player_profile != null: toggle_player_profile() @@ -73,11 +74,15 @@ func notice(msg : String, time : float = 1) -> void: func calculate_kill_exp(killer : QuestSprite, killed : QuestSprite) -> int: return clamp(1, (killed.level - killer.level) * 5, 100) +func take_screenshot() -> void: + last_screenshot = get_viewport().get_texture().get_image() + func test_save() -> void: - var image : Image = get_viewport().get_texture().get_image() + if open: + take_screenshot() var save_dict = { "savetime": Time.get_datetime_string_from_system(), - "screenshot": image.save_png_to_buffer().hex_encode() + "screenshot": last_screenshot } #Save the guild data save_dict["guildname"] = Guild.name @@ -122,4 +127,9 @@ func test_load(filename : String) -> void: if not parse_result == OK: printerr("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line()) return - + +func switch_scenes(scene_name : String) -> void: + get_tree().change_scene_to_file("res://scenes/" + scene_name + ".tscn") + +func switch_dialogue(timeline_name : String, label : String) -> void: + Dialogic.start("res://dialogic/timelines/" + timeline_name + ".dtl", label) diff --git a/scripts/game_start.gd b/scripts/game_start.gd new file mode 100644 index 0000000..079f62a --- /dev/null +++ b/scripts/game_start.gd @@ -0,0 +1,6 @@ +extends Control + +@onready var timeline : DialogicTimeline = preload("res://dialogic/timelines/game_start.dtl") + +func _ready() -> void: + Dialogic.start(timeline) diff --git a/scripts/game_start.gd.uid b/scripts/game_start.gd.uid new file mode 100644 index 0000000..fc0c387 --- /dev/null +++ b/scripts/game_start.gd.uid @@ -0,0 +1 @@ +uid://cpufy3rp4f0gw diff --git a/scripts/guild_card_scene.gd b/scripts/guild_card_scene.gd new file mode 100644 index 0000000..c6e1b7b --- /dev/null +++ b/scripts/guild_card_scene.gd @@ -0,0 +1,49 @@ +extends Control + +@onready var firstEdit : TextEdit = %FirstNameEdit +@onready var lastEdit : TextEdit = %LastNameEdit +@onready var signButton : Button = %SignButton +@onready var portraitButton : TextureButton = %PortraitButton +@onready var signature : TextureRect = %Signature +@onready var write_sound : AudioStreamPlayer = $AudioStreamPlayer +var first_set : bool = false +var last_set : bool = false +var portrait_set : bool = false + +func validate_signature() -> void: + signButton.disabled = !(first_set and last_set and portrait_set) + +func _on_portrait_button_pressed() -> void: + #Open the Portrait Screesn + portrait_set = true + validate_signature() + + +func _on_first_name_edit_text_changed() -> void: + if firstEdit.text != "": + first_set = true + else: + last_set = true + validate_signature() + + +func _on_last_name_edit_text_changed() -> void: + if lastEdit.text != "": + last_set = true + else: + last_set = false + validate_signature() + +func update_signature_threshold(value : float) -> void: + signature.set_instance_shader_parameter("threshold", value) + +func _on_sign_button_pressed() -> void: + signButton.visible = false + var tween = create_tween() + write_sound.play() + tween.tween_method(update_signature_threshold, -0.1, 1.1, .5) + + #Sign the card. + #Dialogic.paused = false + #Dialogic.Jump.jump_to_label("") + pass # Replace with function body. diff --git a/scripts/guild_card_scene.gd.uid b/scripts/guild_card_scene.gd.uid new file mode 100644 index 0000000..a0435da --- /dev/null +++ b/scripts/guild_card_scene.gd.uid @@ -0,0 +1 @@ +uid://dkrxdaq8d6q55 diff --git a/scripts/guild_facade.gd b/scripts/guild_facade.gd new file mode 100644 index 0000000..ccda88b --- /dev/null +++ b/scripts/guild_facade.gd @@ -0,0 +1,20 @@ +extends Area2D + +var overlapping : bool +var shift_tween : Tween +func _on_body_entered(body: Node2D) -> void: + if overlapping: + return + if body == Game.player: + overlapping = true + shift_tween = create_tween() + shift_tween.tween_property(self, "modulate:a", .5, .25) + + +func _on_body_exited(body: Node2D) -> void: + if !overlapping: + return + if body == Game.player: + overlapping = false + shift_tween = create_tween() + shift_tween.tween_property(self, "modulate:a", 1.0, .25) diff --git a/scripts/guild_facade.gd.uid b/scripts/guild_facade.gd.uid new file mode 100644 index 0000000..3d2ec4d --- /dev/null +++ b/scripts/guild_facade.gd.uid @@ -0,0 +1 @@ +uid://dyn5wwocvkqds diff --git a/scripts/hold_to_continue.gd b/scripts/hold_to_continue.gd new file mode 100644 index 0000000..fb8de09 --- /dev/null +++ b/scripts/hold_to_continue.gd @@ -0,0 +1,41 @@ +extends MarginContainer + +@export var key : Key = KEY_SPACE +@export var time : float = 3 +@export var advance_type : AdvanceType +@export var scene : String +@export var label : String +@onready var progress_bar : ProgressBar = $ProgressBar + +enum AdvanceType{ + SCENE, + DIALOGUE +} +var progress : float = 0 +var button_held : bool +var key_held : bool + +func _process(delta: float) -> void: + key_held = Input.is_key_pressed(key) + if key_held or button_held: + progress = min(time, progress + delta) + if progress == time: + advance() + return + else: + progress = max(0, progress - 2 * delta) + progress_bar.value = 100 * progress / time + +func advance(): + match(advance_type): + AdvanceType.SCENE: + Game.switch_scenes(scene) + AdvanceType.DIALOGUE: + Game.switch_dialogue(scene, label) + +func _on_button_button_down() -> void: + button_held = true + + +func _on_button_button_up() -> void: + button_held = false diff --git a/scripts/hold_to_continue.gd.uid b/scripts/hold_to_continue.gd.uid new file mode 100644 index 0000000..816723f --- /dev/null +++ b/scripts/hold_to_continue.gd.uid @@ -0,0 +1 @@ +uid://bowfi8npivsxo diff --git a/scripts/player.gd b/scripts/player.gd index fa1b513..34d3cae 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -1,10 +1,12 @@ class_name Player extends Person +const marker_template = preload("res://templates/move_marker.tscn") @onready var movement_speed : float = 400.0 @onready var movement_target_position : Vector2 = global_position @onready var nav_agent : NavigationAgent2D = $NavigationAgent2D var interaction_target = null +var marker = null @export var interaction_range : float = 75 @export var stop_range : float = 25 var data : Adventurer @@ -28,6 +30,8 @@ func set_movement_target(target : Vector2) -> void: func _physics_process(delta: float) -> void: if nav_agent.is_navigation_finished(): + if marker != null: + marker.visible = false if interaction_target: try_interact(interaction_target) #If they have an interaction target within range @@ -50,8 +54,13 @@ func _unhandled_input(event: InputEvent) -> void: interaction_target = null func approach(pos : Vector2) -> void: + if marker == null or !is_instance_valid(marker): + marker = marker_template.instantiate() + Guild.hall.add_child(marker) var rid = get_world_2d().get_navigation_map() var point : Vector2 = NavigationServer2D.map_get_closest_point(rid, pos) + marker.global_position = point + marker.visible = true set_movement_target(point) func approach_and_interact(obj : Interactable) -> void: diff --git a/scripts/set_shifts.gd b/scripts/set_shifts.gd new file mode 100644 index 0000000..7972a05 --- /dev/null +++ b/scripts/set_shifts.gd @@ -0,0 +1,34 @@ +extends Control + +@onready var shift_cycle_template = preload("res://templates/shift_cycle.tscn") +@onready var cycle_list : ReorderableVBox = %CycleList +@onready var delete_bin : PanelContainer = %DeleteBin +var delete_tween : Tween + +func _ready() -> void: + delete_tween = delete_bin.create_tween() + delete_tween.tween_property(delete_bin, "self_modulate", Color.WHITE, .3) + delete_tween.tween_property(delete_bin, "self_modulate", Color.DIM_GRAY, .3) + delete_tween.set_loops(-1) + delete_tween.pause() + delete_bin.self_modulate = Color.DIM_GRAY + +func _on_drag_stopped(cycle : ShiftCycle): + cycle.drop() + if(delete_bin.get_global_rect().has_point(get_global_mouse_position()) + and len(cycle_list.get_children()) > 1): + delete_tween.pause() + delete_bin.self_modulate = Color.DIM_GRAY + cycle.queue_free() + +func _on_drag_started(cycle : ShiftCycle): + cycle.lift() + pass + +func _on_add_shift_button_pressed() -> void: + var cycle = shift_cycle_template.instantiate() + cycle_list.add_child(cycle) + + +func _on_accept_button_pressed() -> void: + pass # Replace with function body. diff --git a/scripts/set_shifts.gd.uid b/scripts/set_shifts.gd.uid new file mode 100644 index 0000000..9df9596 --- /dev/null +++ b/scripts/set_shifts.gd.uid @@ -0,0 +1 @@ +uid://h61yq7g8mfj3 diff --git a/scripts/shift_cycle.gd b/scripts/shift_cycle.gd new file mode 100644 index 0000000..9ba068a --- /dev/null +++ b/scripts/shift_cycle.gd @@ -0,0 +1,84 @@ +class_name ShiftCycle extends Control + +@onready var sounds : Dictionary = { + "delete":preload("res://sounds/Various Sounds 06.wav"), + "lift":preload("res://sounds/Turning Books Pages 52.wav"), + "drop":preload("res://sounds/Paper_Scraping_1.wav") +} +@onready var panel : PanelContainer = %PanelContainer +@onready var working_edit : TextEdit = %WorkingEdit +@onready var open_edit : TextEdit = %OpenEdit +@onready var shadow : Panel = %Shadow +@onready var audio_player : AudioStreamPlayer = $AudioStreamPlayer + +var last_working_text : String = "" +var last_open_text : String = "" + + +var work_shift : int = 25 +var open_shift : int = 5 +var regex : RegEx +var tween : Tween +var dragging : bool = false + +func _init() -> void: + regex = RegEx.new() + regex.compile("^\\d{1,3}\\z") + + +func _input(event: InputEvent) -> void: + if !dragging: + return + if event is not InputEventMouseMotion: + return + +func lift() -> void: + if tween and tween.is_running(): + tween.stop() + tween = create_tween() + tween.tween_property(shadow, "position:y", 10.0, .25 * (10 - shadow.position.y) / 10.0) + tween.parallel().tween_property(shadow, "self_modulate:a", 1.0, .25 * (1.0 - shadow.self_modulate.a)) + tween.parallel().tween_property(panel, "position:y", -10.0, .25 * (panel.position.y + 10.0) / 10.0) + audio_player.stream = sounds.lift + audio_player.play() + +func drop() -> void: + if tween and tween.is_running(): + tween.stop() + tween = create_tween() + tween.tween_property(shadow, "position:y", 0.0, .25 * shadow.position.y / 10.0) + tween.parallel().tween_property(shadow, "self_modulate:a", 0.0, .25 * shadow.self_modulate.a) + tween.parallel().tween_property(panel, "position:y", 0.0, .25 * panel.position.y / -10.0) + audio_player.stream = sounds.drop + audio_player.play() + +func _on_working_edit_text_changed() -> void: + if !regex.search(working_edit.text) and working_edit.text != "": + working_edit.text = last_working_text + working_edit.set_caret_column(len(last_working_text)) + else: + last_working_text = working_edit.text + + +func _on_working_edit_text_set() -> void: + if !regex.search(working_edit.text) and working_edit.text != "": + working_edit.text = last_working_text + working_edit.set_caret_column(len(last_working_text)) + else: + last_working_text = working_edit.text + + +func _on_open_edit_text_changed() -> void: + if !regex.search(open_edit.text) and open_edit.text != "": + open_edit.text = last_open_text + open_edit.set_caret_column(len(last_open_text)) + else: + last_open_text = open_edit.text + + +func _on_open_edit_text_set() -> void: + if !regex.search(open_edit.text) and open_edit.text != "": + open_edit.text = last_open_text + open_edit.set_caret_column(len(last_open_text)) + else: + last_open_text = open_edit.text diff --git a/scripts/shift_cycle.gd.uid b/scripts/shift_cycle.gd.uid new file mode 100644 index 0000000..35bd556 --- /dev/null +++ b/scripts/shift_cycle.gd.uid @@ -0,0 +1 @@ +uid://cuds3hklcm5m5 diff --git a/scripts/start_menu.gd b/scripts/start_menu.gd index db63e25..dc05fd6 100644 --- a/scripts/start_menu.gd +++ b/scripts/start_menu.gd @@ -5,7 +5,7 @@ func _ready() -> void: %ContinueButton.disabled = !FileAccess.file_exists("user://savefile.save") func _on_start_button_pressed() -> void: - get_tree().change_scene_to_file("res://scenes/active_scene.tscn") + get_tree().change_scene_to_file("res://scenes/game_start.tscn") func _on_continue_button_pressed() -> void: diff --git a/shaders/animated_gradient.gdshader b/shaders/animated_gradient.gdshader new file mode 100644 index 0000000..5af440f --- /dev/null +++ b/shaders/animated_gradient.gdshader @@ -0,0 +1,27 @@ +shader_type canvas_item; + +uniform sampler2D gradient; +instance uniform float threshold = -0.1; +uniform float fringe = 0; +void vertex() { + // Called for every vertex the material is visible on. +} + +void fragment() { + vec4 col = texture(TEXTURE, UV); + float lum = 0.2126*col.r + 0.7152*col.g + 0.0722*col.b; + vec4 g_col = texture(gradient, vec2((threshold + fringe) - lum, 0)); + if(lum > threshold){ + float fringe_alpha = max(0, (fringe - (lum - threshold))/fringe); + COLOR = vec4(g_col.rgb,fringe_alpha * col.a); + + }else{ + COLOR = vec4(g_col.rgb, col.a); + } + // Called for every pixel the material is visible on. +} + +//void light() { +// // Called for every pixel for every light affecting the CanvasItem. +// // Uncomment to replace the default light processing function with this one. +//} diff --git a/shaders/animated_gradient.gdshader.uid b/shaders/animated_gradient.gdshader.uid new file mode 100644 index 0000000..9598b1f --- /dev/null +++ b/shaders/animated_gradient.gdshader.uid @@ -0,0 +1 @@ +uid://uxrvcuhjnjgl diff --git a/sounds/Paper_Scraping_1.wav b/sounds/Paper_Scraping_1.wav new file mode 100644 index 0000000..8323bb0 Binary files /dev/null and b/sounds/Paper_Scraping_1.wav differ diff --git a/sounds/Paper_Scraping_1.wav.import b/sounds/Paper_Scraping_1.wav.import new file mode 100644 index 0000000..e6921af --- /dev/null +++ b/sounds/Paper_Scraping_1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://b62f7hq5j76ps" +path="res://.godot/imported/Paper_Scraping_1.wav-ed4ebf713b4a2fc6fb104a8579b4c850.sample" + +[deps] + +source_file="res://sounds/Paper_Scraping_1.wav" +dest_files=["res://.godot/imported/Paper_Scraping_1.wav-ed4ebf713b4a2fc6fb104a8579b4c850.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/Turning Books Pages 52.wav b/sounds/Turning Books Pages 52.wav new file mode 100644 index 0000000..cdb5879 Binary files /dev/null and b/sounds/Turning Books Pages 52.wav differ diff --git a/sounds/Turning Books Pages 52.wav.import b/sounds/Turning Books Pages 52.wav.import new file mode 100644 index 0000000..a257721 --- /dev/null +++ b/sounds/Turning Books Pages 52.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cqtu3l6lul4fh" +path="res://.godot/imported/Turning Books Pages 52.wav-5e6566bd1088dd960847c6bffa4da219.sample" + +[deps] + +source_file="res://sounds/Turning Books Pages 52.wav" +dest_files=["res://.godot/imported/Turning Books Pages 52.wav-5e6566bd1088dd960847c6bffa4da219.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/Various Sounds 06.wav b/sounds/Various Sounds 06.wav new file mode 100644 index 0000000..b28a151 Binary files /dev/null and b/sounds/Various Sounds 06.wav differ diff --git a/sounds/Various Sounds 06.wav.import b/sounds/Various Sounds 06.wav.import new file mode 100644 index 0000000..6c68309 --- /dev/null +++ b/sounds/Various Sounds 06.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dhp06mu11vvrw" +path="res://.godot/imported/Various Sounds 06.wav-45605ce0a28cfd304f16a2df4e2ac9fa.sample" + +[deps] + +source_file="res://sounds/Various Sounds 06.wav" +dest_files=["res://.godot/imported/Various Sounds 06.wav-45605ce0a28cfd304f16a2df4e2ac9fa.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/Writing in paper 19.wav b/sounds/Writing in paper 19.wav new file mode 100644 index 0000000..415bade Binary files /dev/null and b/sounds/Writing in paper 19.wav differ diff --git a/sounds/Writing in paper 19.wav.import b/sounds/Writing in paper 19.wav.import new file mode 100644 index 0000000..8485dbb --- /dev/null +++ b/sounds/Writing in paper 19.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bmm8jhojdt31a" +path="res://.godot/imported/Writing in paper 19.wav-b328e792019d1d348a794214adc113d6.sample" + +[deps] + +source_file="res://sounds/Writing in paper 19.wav" +dest_files=["res://.godot/imported/Writing in paper 19.wav-b328e792019d1d348a794214adc113d6.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/templates/guildhall.tscn b/templates/guildhall.tscn index 62092cf..cc6b482 100644 --- a/templates/guildhall.tscn +++ b/templates/guildhall.tscn @@ -1,18 +1,19 @@ -[gd_scene load_steps=33 format=4 uid="uid://cd08dp16bixfv"] +[gd_scene load_steps=35 format=3 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"] [ext_resource type="Script" uid="uid://dolqtw1ye4ras" path="res://scripts/player.gd" id="2_5n4iw"] [ext_resource type="Shader" uid="uid://cenbje61a2wi6" path="res://shaders/void_composite.gdshader" id="2_ggqxp"] [ext_resource type="Texture2D" uid="uid://83ayd5rg7x8l" path="res://graphics/reception-table.png" id="3_13vc8"] [ext_resource type="Texture2D" uid="uid://cg6ptmynq0aq0" path="res://graphics/basic-sprite.png" id="4_l3mu1"] [ext_resource type="PackedScene" uid="uid://cf6nnjyp8kv78" path="res://templates/receptionist.tscn" id="5_l3mu1"] [ext_resource type="Script" uid="uid://2g4ja3a7o2l" path="res://scripts/void_ripple.gd" id="5_nfvtf"] +[ext_resource type="Texture2D" uid="uid://do4gn21x5bmdm" path="res://graphics/first-guild-base.png" id="6_lsfle"] [ext_resource type="PackedScene" uid="uid://b3mksvn2jf7e0" path="res://templates/quest_board.tscn" id="7_hph4e"] +[ext_resource type="Script" uid="uid://dyn5wwocvkqds" path="res://scripts/guild_facade.gd" id="7_o230c"] +[ext_resource type="Texture2D" uid="uid://bg5ip7ni3n7qd" path="res://graphics/first-guild-front.png" id="8_nfvtf"] [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"] [ext_resource type="Shader" uid="uid://hr8vdp56p4yo" path="res://shaders/void.tres" id="12_0ydii"] [ext_resource type="Texture2D" uid="uid://bbh444vapab3y" path="res://graphics/voidcircle.png" id="13_0xaku"] [ext_resource type="Shader" uid="uid://dvdm8x66gwu2v" path="res://shaders/starfield.tres" id="14_0aygh"] @@ -40,22 +41,24 @@ shader_parameter/line_color = Color(0.7666664, 0, 1, 1) offsets = PackedFloat32Array(0, 0.27842227, 0.7447796, 0.9976798, 1) colors = PackedColorArray(1, 0, 1, 1, 0.6414714, 0, 1, 1, 0.3529412, 0, 1, 1, 0.13464576, 8.6924134e-05, 0.43542284, 1, 0.3529412, 0, 1, 1) -[sub_resource type="NavigationPolygon" id="NavigationPolygon_w7eqs"] -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 +[sub_resource type="NavigationPolygon" id="NavigationPolygon_28dkg"] +vertices = PackedVector2Array(687, 5, 689, -0.328125, 689, 12, 318, 11, 318, 10.8515625, 338, 48, 302, 51, 307, 31, 399, 431, 305, 431, 533, -14, 617.5, -14, 617, -13, 530, 8, 529.65625, -14.1953125, 617, -2, 621, 5, 702, 15, 703, 416, 694, 416, 454, 75, 510, 47, 493, 432, 493, 578, 399, 578, 694, 431, 392, 75) +polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2), PackedInt32Array(3, 4, 5), PackedInt32Array(6, 7, 3, 5, 8, 9), PackedInt32Array(10, 11, 12), PackedInt32Array(13, 14, 10, 15, 16), PackedInt32Array(17, 18, 19, 20, 21, 2), PackedInt32Array(22, 23, 24, 8, 20), PackedInt32Array(19, 25, 22, 20), PackedInt32Array(8, 5, 26), PackedInt32Array(8, 26, 20), PackedInt32Array(10, 12, 15), PackedInt32Array(0, 2, 21, 13, 16)]) +outlines = Array[PackedVector2Array]([PackedVector2Array(689, 12, 702, 15, 703, 416, 694, 416, 694, 431, 493, 432, 493, 578, 399, 578, 399, 431, 305, 431, 302, 51, 307, 31, 318, 11, 318, -27, 533, -14, 689, -14)]) +source_geometry_mode = 2 +source_geometry_group_name = &"room_obstacles" +agent_radius = 0.0 + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_a3e6t"] +size = Vector2(211, 203) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_lsfle"] +size = Vector2(91.5, 203) [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_l3mu1"] radius = 15.0 height = 54.0 -[sub_resource type="NavigationPolygon" id="NavigationPolygon_l3mu1"] -vertices = PackedVector2Array(112, 144, 14, 144, 14, -69, 112, -69) -polygons = Array[PackedInt32Array]([PackedInt32Array(0, 1, 2, 3)]) -outlines = Array[PackedVector2Array]([PackedVector2Array(4, -79, 122, -79, 122, 154, 4, 154)]) - [sub_resource type="Gradient" id="Gradient_28dkg"] offsets = PackedFloat32Array(0, 0.15085158, 0.63017035, 1) colors = PackedColorArray(0, 0, 0, 1, 0, 0.07479378, 0.21630663, 1, 0.11818864, 0.00013856843, 0.3326036, 1, 1.1310726e-06, 1.2032687e-07, 0.37330782, 1) @@ -163,12 +166,12 @@ position = Vector2(486, 158) [node name="Line2D" type="Line2D" parent="VoidRipple"] visible = false -points = PackedVector2Array(312, 447, 312, 484, 245, 486, 232, 422, 249, 421, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 770, 16, 759, 17, 768, 425, 781, 425, 767, 485, 700, 485, 700, 449, 544, 446, 544, 462, 508, 460, 500, 431, 391, 431, 386, 460, 347, 464, 347, 447, 312, 447) +points = PackedVector2Array(312, 440, 312, 480, 241, 479, 250, 417, 279, 417, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 770, 16, 759, 17, 732, 418, 763, 419, 769, 482, 700, 481, 698, 441, 543, 441, 544, 454, 507, 454, 501, 439, 389, 439, 385, 452, 347, 452, 347, 440, 312, 440) width = 5.0 [node name="Line2D2" type="Line2D" parent="VoidRipple"] z_index = -1 -points = PackedVector2Array(312, 444, 312, 484, 245, 484, 241, 425, 253, 425, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 767, 16, 750, 16, 758, 428, 775, 428, 767, 485, 700, 485, 700, 446, 544, 446, 545, 457, 508, 457, 500, 431, 391, 431, 386, 457, 348, 457, 348, 444, 312, 444) +points = PackedVector2Array(312, 440, 312, 480, 241, 479, 250, 417, 279, 417, 253, 17, 244, 17, 241, -51, 303, -51, 306, -21, 701, -20, 701, -47, 771, -47, 770, 16, 759, 17, 732, 418, 763, 419, 769, 482, 700, 481, 698, 441, 543, 441, 544, 454, 507, 454, 501, 439, 389, 439, 385, 452, 347, 452, 347, 440, 312, 440) width = 50.0 default_color = Color(0, 0, 0, 0.46666667) joint_mode = 2 @@ -177,39 +180,77 @@ antialiased = true [node name="RoomRegion" type="NavigationRegion2D" parent="."] z_index = 1 -navigation_polygon = SubResource("NavigationPolygon_w7eqs") +navigation_polygon = SubResource("NavigationPolygon_28dkg") -[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") - -[node name="TileMapLayer2" type="TileMapLayer" parent="RoomRegion"] -visible = false -tile_map_data = PackedByteArray("AAANAAAAAAAKABEAAAAOAAAAAAAKABEAAAAPAAAAAAAKABEAAAAQAAAAAAAKABEAAAA=") -tile_set = ExtResource("1_qel1r") - -[node name="Sprite2D" type="Sprite2D" parent="."] +[node name="Base" type="Sprite2D" parent="."] z_index = 1 -position = Vector2(497, 136) -texture = ExtResource("11_4bidn") +position = Vector2(505, 107) +texture = ExtResource("6_lsfle") + +[node name="Area2D" type="Area2D" parent="."] +z_index = 50 +position = Vector2(473, 427) +script = ExtResource("7_o230c") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(130.5, -78.5) +shape = SubResource("RectangleShape2D_a3e6t") + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="Area2D"] +position = Vector2(-127.25, -78.5) +shape = SubResource("RectangleShape2D_lsfle") + +[node name="Front" type="Sprite2D" parent="Area2D"] +z_index = 1 +position = Vector2(32, -86) +texture = ExtResource("8_nfvtf") [node name="Sprites" type="Node2D" parent="."] -z_index = 2 +z_index = 20 y_sort_enabled = true +[node name="Npc" type="CharacterBody2D" parent="Sprites"] +z_index = 1 +position = Vector2(357, -27) +script = ExtResource("8_nhrwr") +metadata/_custom_type_script = "uid://bh54wpqgau8hc" + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprites/Npc"] +position = Vector2(1, 16) +rotation = 1.5707964 +shape = SubResource("CapsuleShape2D_l3mu1") + +[node name="Sprite2D" type="Sprite2D" parent="Sprites/Npc"] +texture = ExtResource("9_4bidn") + +[node name="SpeechBubble" parent="Sprites/Npc" instance=ExtResource("10_6hdsl")] +position = Vector2(44, -93) + +[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Sprites/Npc"] +path_desired_distance = 30.0 +avoidance_enabled = true + [node name="Reception Desk" type="StaticBody2D" parent="Sprites"] -position = Vector2(423, 103) +position = Vector2(423, -4) [node name="Sprite2D" type="Sprite2D" parent="Sprites/Reception Desk"] +position = Vector2(0, 92) texture = ExtResource("3_13vc8") offset = Vector2(0, -80) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Sprites/Reception Desk"] -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) +position = Vector2(0, 92) +polygon = PackedVector2Array(-41, -146, -105, -146, -106, -80, -85, -41, -31, -14, 31, -14, 87, -42, 107, -81, 106, -146, 41, -146, 40, -113, 27, -95, -27, -95, -41, -115) + +[node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="Sprites/Reception Desk" groups=["room_obstacles"]] +position = Vector2(0, 93) +vertices = PackedVector2Array(-105, -146, -106, -80, -85, -41, -31, -14, 31, -14, 87, -42, 107, -81, 106, -146) +affect_navigation_mesh = true +carve_navigation_mesh = true [node name="Receptionist" parent="Sprites" instance=ExtResource("5_l3mu1")] -position = Vector2(492, 24) +z_index = -1 +position = Vector2(424, 12) [node name="Queue" parent="Sprites/Receptionist" index="3"] position = Vector2(0, 97) @@ -217,6 +258,7 @@ position = Vector2(0, 97) [node name="Player" type="CharacterBody2D" parent="Sprites"] position = Vector2(451, 430) script = ExtResource("2_5n4iw") +stop_range = 15.0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprites/Player"] rotation = 1.5707964 @@ -230,34 +272,9 @@ texture = ExtResource("4_l3mu1") path_desired_distance = 30.0 avoidance_enabled = true -[node name="EntranceRegion" type="NavigationRegion2D" parent="."] -position = Vector2(385, 374) -navigation_polygon = SubResource("NavigationPolygon_l3mu1") - -[node name="Quest Board" parent="." instance=ExtResource("7_hph4e")] +[node name="Quest Board" parent="Sprites" instance=ExtResource("7_hph4e")] position = Vector2(654, -2) -[node name="Npc" type="CharacterBody2D" parent="."] -z_index = 2 -position = Vector2(347, 3) -script = ExtResource("8_nhrwr") -metadata/_custom_type_script = "uid://bh54wpqgau8hc" - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Npc"] -position = Vector2(1, 16) -rotation = 1.5707964 -shape = SubResource("CapsuleShape2D_l3mu1") - -[node name="Sprite2D" type="Sprite2D" parent="Npc"] -texture = ExtResource("9_4bidn") - -[node name="SpeechBubble" parent="Npc" instance=ExtResource("10_6hdsl")] -position = Vector2(44, -93) - -[node name="NavigationAgent2D" type="NavigationAgent2D" parent="Npc"] -path_desired_distance = 30.0 -avoidance_enabled = true - [node name="SubViewport" type="SubViewport" parent="."] size = Vector2i(1920, 1080) @@ -319,4 +336,7 @@ grow_vertical = 2 mouse_filter = 2 texture = ExtResource("16_b2pr6") +[connection signal="body_entered" from="Area2D" to="Area2D" method="_on_body_entered"] +[connection signal="body_exited" from="Area2D" to="Area2D" method="_on_body_exited"] + [editable path="Sprites/Receptionist"] diff --git a/templates/move_marker.tscn b/templates/move_marker.tscn new file mode 100644 index 0000000..056c78c --- /dev/null +++ b/templates/move_marker.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://dxh5efah45vtn"] + +[ext_resource type="Texture2D" uid="uid://bb827iikdiygx" path="res://graphics/move_marker.png" id="1_vy1qu"] + +[node name="Node2D" type="Node2D"] +z_index = 10 + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_vy1qu") diff --git a/templates/portrait.tscn b/templates/portrait.tscn index 05b7bde..ad79819 100644 --- a/templates/portrait.tscn +++ b/templates/portrait.tscn @@ -1,29 +1,29 @@ [gd_scene load_steps=34 format=3 uid="uid://d4f8grsq0umdo"] [ext_resource type="Script" uid="uid://m86jmtwv1a22" path="res://scripts/adventurer_portrait.gd" id="1_0hknt"] -[ext_resource type="Script" uid="uid://cntcpe7ofdvyx" path="res://external/Test Portrait/test.gd" id="1_fcl1b"] -[ext_resource type="Texture2D" uid="uid://dj6fagfp2sbrx" path="res://external/Test Portrait/Farmer_F/hat-bg.png" id="2_pek02"] -[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/Test Portrait/variant_color.gdshader" id="3_b42dv"] -[ext_resource type="Texture2D" uid="uid://can8npg0ufr3f" path="res://external/Test Portrait/Farmer_F/hair_bg.png" id="4_snu43"] +[ext_resource type="Script" uid="uid://cntcpe7ofdvyx" path="res://external/test portrait/test.gd" id="1_fcl1b"] +[ext_resource type="Texture2D" uid="uid://dj6fagfp2sbrx" path="res://external/test portrait/farmer_f/hat-bg.png" id="2_pek02"] +[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="3_b42dv"] +[ext_resource type="Texture2D" uid="uid://can8npg0ufr3f" path="res://external/test portrait/farmer_f/hair_bg.png" id="4_snu43"] [ext_resource type="Script" uid="uid://cdi0oxcug1hup" path="res://scripts/color_variant.gd" id="5_6ofx4"] -[ext_resource type="Texture2D" uid="uid://crrd8mpcuync2" path="res://external/Test Portrait/Farmer_F/body.png" id="6_4lhir"] -[ext_resource type="Material" uid="uid://btx1o4kx78cbx" path="res://external/Test Portrait/tri-skin.tres" id="7_ufq70"] -[ext_resource type="Texture2D" uid="uid://dbdjaye6srxhx" path="res://external/Test Portrait/Farmer_F/head.png" id="8_n24t2"] -[ext_resource type="Texture2D" uid="uid://cjs6gcaqkblxv" path="res://external/Test Portrait/gradients/skin/(c)brown.tres" id="8_x7qt0"] -[ext_resource type="Texture2D" uid="uid://bq1mcdggw8ksg" path="res://external/Test Portrait/gradients/skin/(l)dark.tres" id="9_0hknt"] -[ext_resource type="Texture2D" uid="uid://li44lgsa0ky" path="res://external/Test Portrait/Farmer_F/eyes_shadow.png" id="9_d4dbv"] -[ext_resource type="Texture2D" uid="uid://x4e86o28672u" path="res://external/Test Portrait/Farmer_F/brow_shadow-2.png" id="10_8lmmt"] -[ext_resource type="Texture2D" uid="uid://cru775pghpate" path="res://external/Test Portrait/Farmer_F/hair_fg_shadow.png" id="11_mrkia"] -[ext_resource type="Texture2D" uid="uid://csp7xbtu0tpn7" path="res://external/Test Portrait/Farmer_F/eye-white-1.png" id="12_fa2yd"] -[ext_resource type="Texture2D" uid="uid://mygmunn3voie" path="res://external/Test Portrait/Farmer_F/eyes-iris-1.png" id="14_36lkf"] -[ext_resource type="Texture2D" uid="uid://wnkr20dtf734" path="res://external/Test Portrait/Farmer_F/eyes-lashes-1.png" id="15_n8rvo"] -[ext_resource type="Texture2D" uid="uid://caow8dqiog7j4" path="res://external/Test Portrait/Farmer_F/ear.png" id="16_c5fh3"] +[ext_resource type="Texture2D" uid="uid://crrd8mpcuync2" path="res://external/test portrait/farmer_f/body.png" id="6_4lhir"] +[ext_resource type="Material" uid="uid://btx1o4kx78cbx" path="res://external/test portrait/tri-skin.tres" id="7_ufq70"] +[ext_resource type="Texture2D" uid="uid://dbdjaye6srxhx" path="res://external/test portrait/farmer_f/head.png" id="8_n24t2"] +[ext_resource type="Texture2D" uid="uid://cjs6gcaqkblxv" path="res://external/test portrait/gradients/skin/(c)brown.tres" id="8_x7qt0"] +[ext_resource type="Texture2D" uid="uid://bq1mcdggw8ksg" path="res://external/test portrait/gradients/skin/(l)dark.tres" id="9_0hknt"] +[ext_resource type="Texture2D" uid="uid://li44lgsa0ky" path="res://external/test portrait/farmer_f/eyes_shadow.png" id="9_d4dbv"] +[ext_resource type="Texture2D" uid="uid://x4e86o28672u" path="res://external/test portrait/farmer_f/brow_shadow-2.png" id="10_8lmmt"] +[ext_resource type="Texture2D" uid="uid://cru775pghpate" path="res://external/test portrait/farmer_f/hair_fg_shadow.png" id="11_mrkia"] +[ext_resource type="Texture2D" uid="uid://csp7xbtu0tpn7" path="res://external/test portrait/farmer_f/eye-white-1.png" id="12_fa2yd"] +[ext_resource type="Texture2D" uid="uid://mygmunn3voie" path="res://external/test portrait/farmer_f/eyes-iris-1.png" id="14_36lkf"] +[ext_resource type="Texture2D" uid="uid://wnkr20dtf734" path="res://external/test portrait/farmer_f/eyes-lashes-1.png" id="15_n8rvo"] +[ext_resource type="Texture2D" uid="uid://caow8dqiog7j4" path="res://external/test portrait/farmer_f/ear.png" id="16_c5fh3"] [ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/test portrait/gradients/hair/(c)red.tres" id="17_ds2dq"] -[ext_resource type="Texture2D" uid="uid://vt17lekvchdg" path="res://external/Test Portrait/Farmer_F/hair_fg.png" id="17_vd0s3"] -[ext_resource type="Texture2D" uid="uid://dyeu4kwwnxjn5" path="res://external/Test Portrait/Farmer_F/hat_fg.png" id="18_ad0yo"] +[ext_resource type="Texture2D" uid="uid://vt17lekvchdg" path="res://external/test portrait/farmer_f/hair_fg.png" id="17_vd0s3"] +[ext_resource type="Texture2D" uid="uid://dyeu4kwwnxjn5" path="res://external/test portrait/farmer_f/hat_fg.png" id="18_ad0yo"] [ext_resource type="Texture2D" uid="uid://bqmnbsxgbrcpw" path="res://external/test portrait/gradients/hair/(l)red.tres" id="18_yxc1x"] -[ext_resource type="Texture2D" uid="uid://brmta1rtiau4a" path="res://external/Test Portrait/Farmer_F/brows-2.png" id="19_oxjqg"] -[ext_resource type="Texture2D" uid="uid://c3wwe6r000gpq" path="res://external/Test Portrait/Farmer_F/composite.png" id="25_e6f65"] +[ext_resource type="Texture2D" uid="uid://brmta1rtiau4a" path="res://external/test portrait/farmer_f/brows-2.png" id="19_oxjqg"] +[ext_resource type="Texture2D" uid="uid://c3wwe6r000gpq" path="res://external/test portrait/farmer_f/composite.png" id="25_e6f65"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_6ofx4"] shader = ExtResource("3_b42dv") diff --git a/templates/portrait_customizer.tscn b/templates/portrait_customizer.tscn new file mode 100644 index 0000000..c23be89 --- /dev/null +++ b/templates/portrait_customizer.tscn @@ -0,0 +1,9 @@ +[gd_scene format=3 uid="uid://dno0a4457twd4"] + +[node name="Portrait Customizer" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 diff --git a/templates/profile_popup.tscn b/templates/profile_popup.tscn index dd992d4..590d37d 100644 --- a/templates/profile_popup.tscn +++ b/templates/profile_popup.tscn @@ -6,6 +6,7 @@ [ext_resource type="Texture2D" uid="uid://bblr27slj6ap0" path="res://graphics/portraits/farmer_f.png" id="4_ileh1"] [node name="Profile Popup" type="Control"] +z_index = 200 layout_mode = 3 offset_top = -99.0 offset_bottom = -99.0 diff --git a/templates/quest_board.tscn b/templates/quest_board.tscn index 37cfd68..6a26aaa 100644 --- a/templates/quest_board.tscn +++ b/templates/quest_board.tscn @@ -8,7 +8,7 @@ [sub_resource type="BlackboardPlan" id="BlackboardPlan_2xphb"] -[node name="Quest Board" type="StaticBody2D"] +[node name="Quest Board" type="StaticBody2D" groups=["room_obstacles"]] script = ExtResource("1_38mwx") [node name="QuestBoardWindow" parent="." instance=ExtResource("1_4poi3")] diff --git a/templates/shift_cycle.tscn b/templates/shift_cycle.tscn new file mode 100644 index 0000000..b2d889b --- /dev/null +++ b/templates/shift_cycle.tscn @@ -0,0 +1,126 @@ +[gd_scene load_steps=6 format=3 uid="uid://ctbg44spnjbsa"] + +[ext_resource type="Script" uid="uid://cuds3hklcm5m5" path="res://scripts/shift_cycle.gd" id="1_rjfcf"] +[ext_resource type="AudioStream" uid="uid://dq7e5u8j14atb" path="res://sounds/Paper Turn.wav" id="2_04j74"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rxjlm"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(1, 1, 1, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rjfcf"] +content_margin_left = 0.0 +content_margin_top = 0.0 +content_margin_right = 0.0 +content_margin_bottom = 0.0 +bg_color = Color(0.76, 0.589, 0.418, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 5 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_cpouh"] +content_margin_left = 1.0 +content_margin_top = 1.0 +content_margin_right = 1.0 +content_margin_bottom = 1.0 +color = Color(0.46779883, 0.3432355, 0.19989973, 1) +grow_begin = 300.0 +grow_end = 202.0 +thickness = 3 + +[node name="ShiftCycle" type="Control"] +custom_minimum_size = Vector2(700, 111) +layout_mode = 3 +offset_right = 700.0 +offset_bottom = 111.0 +script = ExtResource("1_rjfcf") + +[node name="Shadow" type="Panel" parent="."] +unique_name_in_owner = true +modulate = Color(0, 0, 0, 0.44313726) +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_rxjlm") + +[node name="PanelContainer" type="PanelContainer" parent="."] +unique_name_in_owner = true +custom_minimum_size = Vector2(700, 111) +layout_mode = 0 +offset_right = 700.0 +offset_bottom = 111.0 +mouse_filter = 1 +theme_override_styles/panel = SubResource("StyleBoxFlat_rjfcf") + +[node name="Contents" type="VBoxContainer" parent="PanelContainer"] +layout_mode = 2 +mouse_filter = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/Contents"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +mouse_filter = 2 + +[node name="Label" type="Label" parent="PanelContainer/Contents/HBoxContainer"] +custom_minimum_size = Vector2(600, 50) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 32 +text = "WORK SHIFT" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="WorkingEdit" type="TextEdit" parent="PanelContainer/Contents/HBoxContainer"] +unique_name_in_owner = true +custom_minimum_size = Vector2(65, 50) +layout_mode = 2 +mouse_behavior_recursive = 2 +theme_override_font_sizes/font_size = 32 +placeholder_text = "25" + +[node name="VSeparator" type="VSeparator" parent="PanelContainer/Contents"] +layout_mode = 2 +theme_override_styles/separator = SubResource("StyleBoxLine_cpouh") + +[node name="HBoxContainer2" type="HBoxContainer" parent="PanelContainer/Contents"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +mouse_filter = 2 + +[node name="Label" type="Label" parent="PanelContainer/Contents/HBoxContainer2"] +custom_minimum_size = Vector2(600, 50) +layout_mode = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 32 +text = "OPEN SHIFT" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="OpenEdit" type="TextEdit" parent="PanelContainer/Contents/HBoxContainer2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(65, 50) +layout_mode = 2 +mouse_behavior_recursive = 2 +theme_override_font_sizes/font_size = 32 +placeholder_text = "5" + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("2_04j74") +volume_db = -12.29 + +[connection signal="text_changed" from="PanelContainer/Contents/HBoxContainer/WorkingEdit" to="." method="_on_working_edit_text_changed"] +[connection signal="text_changed" from="PanelContainer/Contents/HBoxContainer2/OpenEdit" to="PanelContainer" method="_on_open_edit_text_changed"] +[connection signal="text_set" from="PanelContainer/Contents/HBoxContainer2/OpenEdit" to="PanelContainer" method="_on_open_edit_text_set"]