Sound FX, major work on set schedule, and some new concepts for items and portraits

This commit is contained in:
2025-09-11 08:10:07 -04:00
parent ef9e5c2664
commit d64859cf35
106 changed files with 2226 additions and 221 deletions

View File

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

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#8EEF97;}
</style>
<g id="Layer_1_00000170236641221328944140000001063999480100881822_">
<path class="st0" d="M11.3,2.6c-0.7-0.7-1.8-0.7-2.5,0L2.6,8.8c-0.7,0.7-0.7,1.8,0,2.5l2.1,2.1c0.7,0.7,1.8,0.7,2.5,0l6.3-6.3
c0.7-0.7,0.7-1.8,0-2.5L11.3,2.6z M10.1,3.8l2.1,2.1l-1.3,1.3L8.8,5.1L10.1,3.8z M7.6,6.3l2.1,2.1L8.4,9.7L6.3,7.6L7.6,6.3z
M5.1,8.8l2.1,2.1l-1.3,1.3l-2.1-2.1L5.1,8.8z"/>
</g>
<g id="Layer_2_00000172438228171227073010000011096948942075396741_">
<path class="st0" d="M14.4,11.3c-0.3-0.1-0.6-0.3-0.6-0.6v-0.3l-4.5,4.5c-0.3,0.3-0.6,0.3-0.8,0.1c-0.3-0.3-0.3-0.6,0-0.9L13,9.6
h-0.3c-0.3-0.1-0.6-0.3-0.6-0.6c0.1-0.3,0.3-0.6,0.6-0.6l1.5,0c0.1,0,0.3,0,0.4,0.1c0.1,0.1,0.1,0.1,0.1,0.1
c0.1,0.1,0.1,0.3,0.1,0.4l0.1,1.6C15,11,14.8,11.3,14.4,11.3z"/>
</g>
<path class="st0" d="M1.4,4.9C1.7,5,2,5.3,2,5.5l0,0.3l4.5-4.5C6.8,1,7.1,1,7.3,1.2c0.3,0.3,0.3,0.6,0,0.9L2.8,6.6h0.3
c0.3,0.1,0.6,0.3,0.6,0.6C3.6,7.4,3.3,7.7,3.1,7.7l-1.5,0c-0.3,0-0.3-0.1-0.5-0.1C1,7.5,1,7.5,0.9,7.4C0.9,7.4,0.8,7.2,0.8,7.1
L0.7,5.5C0.8,5.2,1.1,4.9,1.4,4.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

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

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#8EEF97;}
</style>
<g id="Layer_1_00000170236641221328944140000001063999480100881822_">
<path class="st0" d="M15,6.3c0-1.1-0.9-2-2-2H3c-1.1,0-2,0.9-2,2v3.4c0,1.1,0.9,2,2,2h10c1.1,0,2-0.9,2-2V6.3z M13,6.3v3.4h-2V6.3
H13z M9,6.3v3.4H7V6.3H9z M5,6.3v3.4H3V6.3H5z"/>
</g>
<g id="Layer_2_00000172438228171227073010000011096948942075396741_">
<path class="st0" d="M10.5,15.7c-0.2-0.3-0.2-0.7,0-0.9l0.2-0.2H3.5c-0.4,0-0.7-0.3-0.7-0.6c0-0.4,0.3-0.7,0.7-0.7h7.2l-0.2-0.2
c-0.2-0.3-0.2-0.7,0-0.9c0.3-0.2,0.7-0.2,0.9,0l1.2,1.2c0.1,0.1,0.2,0.2,0.2,0.4c0,0.1,0,0.1,0,0.2c0,0.1-0.1,0.3-0.2,0.4l-1.2,1.3
C11.2,16,10.8,16,10.5,15.7z"/>
</g>
<path class="st0" d="M5.2,0.3c0.2,0.3,0.2,0.7,0,0.9L5,1.4h7.2c0.4,0,0.7,0.3,0.7,0.6c0,0.4-0.3,0.7-0.7,0.7H5l0.2,0.2
c0.2,0.3,0.2,0.7,0,0.9C4.9,4,4.5,4,4.3,3.8L3.1,2.6C2.9,2.4,2.9,2.3,2.8,2.1c0-0.1,0-0.1,0-0.2S2.9,1.6,3,1.5l1.2-1.3
C4.5,0,4.9,0,5.2,0.3z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

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

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill:#8EEF97;}
</style>
<g id="Layer_1_00000170236641221328944140000001063999480100881822_">
<path class="st0" d="M6.3,1c-1.1,0-2,0.9-2,2v10c0,1.1,0.9,2,2,2h3.4c1.1,0,2-0.9,2-2V3c0-1.1-0.9-2-2-2H6.3z M6.3,3h3.4v2H6.3V3z
M6.3,7h3.4v2H6.3V7z M6.3,11h3.4v2H6.3V11z"/>
</g>
<g id="Layer_2_00000172438228171227073010000011096948942075396741_">
<path class="st0" d="M15.7,5.5c-0.3,0.2-0.7,0.2-0.9,0l-0.2-0.2v7.2c0,0.4-0.3,0.7-0.6,0.7c-0.4,0-0.7-0.3-0.7-0.7V5.3l-0.2,0.2
c-0.3,0.2-0.7,0.2-0.9,0c-0.2-0.3-0.2-0.7,0-0.9l1.2-1.2c0.1-0.1,0.2-0.2,0.4-0.2c0.1,0,0.1,0,0.2,0c0.1,0,0.3,0.1,0.4,0.2l1.3,1.2
C16,4.8,16,5.2,15.7,5.5z"/>
</g>
<path class="st0" d="M0.3,10.8c0.3-0.2,0.7-0.2,0.9,0L1.4,11V3.8c0-0.4,0.3-0.7,0.6-0.7c0.4,0,0.7,0.3,0.7,0.7V11l0.2-0.2
c0.3-0.2,0.7-0.2,0.9,0c0.2,0.3,0.2,0.7,0,0.9l-1.2,1.2c-0.2,0.2-0.3,0.2-0.5,0.3c-0.1,0-0.1,0-0.2,0S1.6,13.1,1.5,13l-1.3-1.2
C0,11.5,0,11.1,0.3,10.8z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

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

View File

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

View File

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

View File

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

View File

@@ -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)

View File

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

View File

@@ -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()

View File

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

View File

@@ -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()

View File

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

View File

@@ -11,7 +11,7 @@ func _init() -> void:
evt.time = 5
events.append(evt)
desc = "Nestors 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

View File

@@ -0,0 +1,3 @@
@tool
extends "res://addons/dialogic/Modules/LayeredPortrait/layered_portrait.gd"

View File

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

View File

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

View File

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

View File

@@ -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.

View File

@@ -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
}

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

View File

@@ -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]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

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

BIN
external/merchant-placeholder.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

View File

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

BIN
external/move_marker.aseprite vendored Normal file

Binary file not shown.

BIN
external/outline-np.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

40
external/outline-np.png.import vendored Normal file
View File

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

BIN
external/pom-intro.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

40
external/pom-intro.png.import vendored Normal file
View File

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

BIN
external/portrait.clip vendored

Binary file not shown.

BIN
external/signature.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

40
external/signature.png.import vendored Normal file
View File

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

BIN
external/xp.clip vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

BIN
graphics/move_marker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 B

View File

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

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

40
icon.png.import Normal file
View File

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

View File

@@ -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]

21
scenes/game_start.tscn Normal file
View File

@@ -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)

323
scenes/guild_card.tscn Normal file
View File

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

View File

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

View File

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

View File

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

View File

@@ -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)

6
scripts/game_start.gd Normal file
View File

@@ -0,0 +1,6 @@
extends Control
@onready var timeline : DialogicTimeline = preload("res://dialogic/timelines/game_start.dtl")
func _ready() -> void:
Dialogic.start(timeline)

View File

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

View File

@@ -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.

View File

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

20
scripts/guild_facade.gd Normal file
View File

@@ -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)

View File

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

View File

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

View File

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

View File

@@ -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:

34
scripts/set_shifts.gd Normal file
View File

@@ -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.

View File

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

84
scripts/shift_cycle.gd Normal file
View File

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

View File

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

View File

@@ -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:

View File

@@ -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.
//}

View File

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

BIN
sounds/Paper_Scraping_1.wav Normal file

Binary file not shown.

View File

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

Binary file not shown.

View File

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

Binary file not shown.

View File

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

Binary file not shown.

View File

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

View File

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

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