refactor: moving various embedded scripts to their own .gd

This commit is contained in:
tiger tiger tiger 2025-12-19 16:00:49 +01:00
parent c272f12014
commit 8db1c0fab7
31 changed files with 1336 additions and 2476 deletions

View File

@ -7,7 +7,7 @@
[ext_resource type="PackedScene" uid="uid://bdnesuqroi7ss" path="res://vfx/collectable_particles.tscn" id="3_4s5r2"]
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_fli74"]
[ext_resource type="Script" uid="uid://dbdw3v7mbqscf" path="res://dev-util/click-trough-area.gd" id="4_1xpeq"]
[ext_resource type="PackedScene" uid="uid://wfyna16xhlo0" path="res://logic-scenes/collectable/new_collectable_ui.tscn" id="5_ln5pp"]
[ext_resource type="PackedScene" uid="uid://wfyna16xhlo0" path="res://logic-scenes/collectable/collectable_ui.tscn" id="5_ln5pp"]
[ext_resource type="Shader" uid="uid://ci37nlh06b5y2" path="res://logic-scenes/collectable/collectable.gdshader" id="7_80jyn"]
[ext_resource type="VoxelGIData" uid="uid://dw2u8n6l38xjm" path="res://base-environments/volunteer_room/volunteer_room.VoxelGI_data.res" id="8_fli74"]
[ext_resource type="PackedScene" uid="uid://dsnil1roc3x37" path="res://base-environments/volunteer_room/scenes/autism.tscn" id="10_gcdra"]

View File

@ -0,0 +1,37 @@
extends Node3D
@export var light_array: Array[Vector3]:
set(points):
light_array = points
if is_inside_tree():
rebuild()
@onready var wires:LineRenderer3D = $wires
@onready var diodes:MultiMeshInstance3D = $diodes
@export var rng_seed:int = 42
var rng = RandomNumberGenerator.new()
@export var size:float = 0.1:
set(new_size):
size = new_size
rebuild()
if is_inside_tree():
wires.end_thickness = size*0.1
wires.start_thickness = size*0.1
# Called when the node enters the scene tree for the first time.
func _ready():
rebuild()
func rebuild():
rng.seed = rng_seed
rng.state = 0
for child in wires.get_children(): child.free()
wires.points = light_array
diodes.multimesh.instance_count = light_array.size()
var meshBuffer:PackedFloat32Array
for point in light_array:
var base:Basis = Basis(Vector3(rng.randf_range(-1, 1), rng.randf_range(-1, 1), rng.randf_range(-1, 1)).normalized(), rng.randf_range(0, PI*2))
base = base.scaled(Vector3(size, size, size))
meshBuffer.append_array([base.x.x, base.x.y, base.x.z, point.x, base.y.x, base.y.y, base.y.z, point.y, base.z.x, base.z.y, base.z.z, point.z])
diodes.multimesh.buffer = meshBuffer

View File

@ -7,6 +7,7 @@ extends RoomTemplate
@onready var card_picker: CardPicker = %Picker
@onready var ui: Control = %UI
signal interaction(interactable: Object)
func start_room():
%UI.show()
@ -18,6 +19,14 @@ func start_room():
State.pass_stage_to(%PlayerController)
%LightAnimation.lights_on()
while true: # playing?
var interactable = await interaction
if interactable is StoryPlayable:
await interactable.play()
# check gamestate to quit?
pass
func get_ready():
pull_save_state(State.save_game)

View File

@ -32,7 +32,7 @@
[ext_resource type="AudioStream" uid="uid://bghjiqkyehs1p" path="res://base-environments/youth_room/import/sounds/rain and thunder.mp3" id="22_xrkbj"]
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="24_ghmim"]
[ext_resource type="Shader" uid="uid://ci37nlh06b5y2" path="res://logic-scenes/collectable/collectable.gdshader" id="25_dqyng"]
[ext_resource type="PackedScene" uid="uid://wfyna16xhlo0" path="res://logic-scenes/collectable/new_collectable_ui.tscn" id="25_ghmim"]
[ext_resource type="PackedScene" uid="uid://wfyna16xhlo0" path="res://logic-scenes/collectable/collectable_ui.tscn" id="25_ghmim"]
[ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"]
[ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"]
[ext_resource type="PackedScene" uid="uid://bw47g00bi710i" path="res://base-environments/youth_room/youth_room_visuals.tscn" id="30_dqyng"]
@ -43,6 +43,7 @@
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="33_mvrs2"]
[ext_resource type="Shader" uid="uid://dspme86ky8yj0" path="res://base-environments/youth_room/rainy-window.gdshader" id="35_ea6x8"]
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="36_bgk6f"]
[ext_resource type="Script" uid="uid://c5eiqpr1q41xk" path="res://base-environments/youth_room/youth_room_environment.gd" id="38_ypa88"]
[ext_resource type="PackedScene" uid="uid://cg70r0102t8nl" path="res://base-environments/youth_room/fairylights.tscn" id="39_q6rov"]
[ext_resource type="VoxelGIData" uid="uid://hvk1wkuw4maq" path="res://base-environments/youth_room/youth_room.VoxelGI_data.res" id="40_ea6x8"]
[ext_resource type="LightmapGIData" uid="uid://b67q6lda2xet1" path="res://base-environments/youth_room/youth_room.lmbake" id="41_bgk6f"]
@ -1564,39 +1565,6 @@ metadata/_custom_type_script = "uid://br1w2nt4pj8lt"
[sub_resource type="Compositor" id="Compositor_bgk6f"]
compositor_effects = Array[CompositorEffect]([SubResource("CompositorEffect_ea6x8")])
[sub_resource type="GDScript" id="GDScript_wb8kg"]
script/source = "extends WorldEnvironment
func _ready():
State.environment_settings_changed.connect(_on_environment_settings_update)
Scenes.scene_starting.connect(scene_starting)
Scenes.scene_finished.connect(scene_finished)
_on_environment_settings_update()
func focus_env():
var dof_strength_tween: Tween = create_tween()
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0, 1)
await(dof_strength_tween.finished)
camera_attributes.dof_blur_near_enabled = false
func focus_object():
camera_attributes.dof_blur_near_enabled = true
var dof_strength_tween: Tween = create_tween()
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.4, 1)
func scene_starting(id: int, _repeat: bool):
if id == Scenes.id.YOUTH_VOICE_TRAINING:
await get_tree().create_timer(10).timeout
focus_object()
func scene_finished(_id: int, _repeat: bool):
focus_env()
func _on_environment_settings_update():
environment.ssil_enabled = State.ssil_enable
environment.sdfgi_enabled = State.sdfgi_enable
"
[sub_resource type="ViewportTexture" id="ViewportTexture_corra"]
viewport_path = NodePath("WorldEnvironment/window_glass/SubViewport")
@ -2058,7 +2026,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/MaskMemento" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/MaskMemento"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -0.134171, -0.20001, -0.000299692)
@ -2085,7 +2052,7 @@ render_target_update_mode = 4
[node name="CollectableUi" parent="logic/MaskMemento/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
[node name="Frame" type="Sprite3D" parent="logic/MaskMemento/UiWrapper"]
transform = Transform3D(0.704571, 0, -1.19209e-07, 0, 0.704571, 0, 1.19209e-07, 0, 0.704571, 1.00458, -1.47577, 0.523485)
transform = Transform3D(0.704571, 0, -1.19209e-07, 0, 0.704571, 0, 1.19209e-07, 0, 0.704571, -2.9410253, -0.7882633, 0.5234841)
visibility_range_end = 0.6
visibility_range_end_margin = 0.3
visibility_range_fade_mode = 1
@ -2108,7 +2075,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/ClothesMemento" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/ClothesMemento"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
@ -2137,7 +2103,7 @@ render_target_update_mode = 4
scene = 3
[node name="Frame" type="Sprite3D" parent="logic/ClothesMemento/UiWrapper"]
transform = Transform3D(0.7045712, 0, 0, 0, 0.70457095, 0, 0, 0, 0.7045712, 0, -1.51, -1.155)
transform = Transform3D(0.7045712, 0, 0, 0, 0.70457095, 0, 0, 0, 0.7045712, -3.912711, -1.4219285, -3.3596572e-07)
visibility_range_end = 0.6
visibility_range_end_margin = 0.3
visibility_range_fade_mode = 1
@ -2160,7 +2126,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/ComicMemento" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/ComicMemento"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
@ -2188,7 +2153,7 @@ render_target_update_mode = 4
scene = 2
[node name="Frame" type="Sprite3D" parent="logic/ComicMemento/UiWrapper"]
transform = Transform3D(0.7045712, 0, 0, 0, 0.70457095, 0, 0, 0, 0.7045712, 0, -1.51, -1.155)
transform = Transform3D(0.70457107, 0, 0, 0, 0.7045709, 0, 0, 0, 0.70457107, 1.0969601, -0.6430273, -0.2718675)
visibility_range_end = 0.6
visibility_range_end_margin = 0.3
visibility_range_fade_mode = 1
@ -2199,7 +2164,7 @@ region_enabled = true
region_rect = Rect2(735.5, 0, 995.5, 1024)
[node name="HoverDetect" type="CollisionShape3D" parent="logic/ComicMemento"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 6.2613066e-09, -0.237872, 0.21009475)
shape = SubResource("CapsuleShape3D_72g2i")
[node name="CeilingMemento" type="Area3D" parent="logic" groups=["interactables"]]
@ -2211,7 +2176,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/CeilingMemento" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/CeilingMemento"]
transform = Transform3D(0.10000001, 0, -3.7252903e-09, 0, 0.1, 0, 3.7252903e-09, 0, 0.10000001, 0, 0.06951594, 0)
@ -2252,7 +2216,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/MindBoard" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/MindBoard"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
@ -2292,7 +2255,6 @@ script = ExtResource("11_6fwv8")
[node name="collectable_particles" parent="logic/Door" instance=ExtResource("12_qxx2k")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
visible = false
[node name="UiWrapper" type="Area3D" parent="logic/Door"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
@ -2403,7 +2365,7 @@ shadow_enabled = true
shadow_caster_mask = 4293918721
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="visuals"]
transform = Transform3D(0.82167387, 0.44718722, -0.35337743, -0.41379577, 0.8944144, 0.16969286, 0.3919504, 0.0067938855, 0.9199613, 0.866179, 2.88055, 4.51936)
transform = Transform3D(0.82167387, 0.44718716, -0.35337743, -0.41379577, 0.8944143, 0.16969286, 0.3919504, 0.0067938846, 0.9199613, 0.866179, 2.88055, 4.51936)
visible = false
light_color = Color(0.81982, 0.935491, 0.980381, 1)
light_energy = 20.0
@ -2505,7 +2467,7 @@ script = SubResource("GDScript_yn0pl")
environment = SubResource("Environment_pllnm")
camera_attributes = SubResource("CameraAttributesPractical_26mp0")
compositor = SubResource("Compositor_bgk6f")
script = SubResource("GDScript_wb8kg")
script = ExtResource("38_ypa88")
[node name="window_frames" type="MeshInstance3D" parent="WorldEnvironment"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.013145)
@ -2535,7 +2497,6 @@ transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 0.9066
light_energy = 0.0
[node name="SceneUI" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0

View File

@ -0,0 +1,30 @@
extends WorldEnvironment
func _ready():
State.environment_settings_changed.connect(_on_environment_settings_update)
Scenes.scene_starting.connect(scene_starting)
Scenes.scene_finished.connect(scene_finished)
_on_environment_settings_update()
func focus_env():
var dof_strength_tween: Tween = create_tween()
dof_strength_tween.tween_property(camera_attributes, "dof_blur_amount", 0, 1)
await(dof_strength_tween.finished)
camera_attributes.dof_blur_near_enabled = false
func focus_object():
camera_attributes.dof_blur_near_enabled = true
var dof_strength_tween: Tween = create_tween()
dof_strength_tween.tween_property(camera_attributes, "dof_blur_amount", 0.4, 1)
func scene_starting(id: int, _repeat: bool):
if id == Scenes.id.YOUTH_VOICE_TRAINING:
await get_tree().create_timer(10).timeout
focus_object()
func scene_finished(_id: int, _repeat: bool):
focus_env()
func _on_environment_settings_update():
environment.ssil_enabled = State.ssil_enable
environment.sdfgi_enabled = State.sdfgi_enable

View File

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

View File

@ -1,15 +1,15 @@
extends Area3D
@export var billboard = true
@export var billboard: bool = true
@onready var sprite: Sprite3D = $UiSprite
@onready var viewport: SubViewport = $UiSprite/SubViewport
func _process(_delta):
if billboard:
var camera = get_viewport().get_camera_3d()
var camera := get_viewport().get_camera_3d()
var up = (camera.global_position - global_position)
var up := (camera.global_position - global_position)
up = up.cross(Vector3.UP).cross(up)
look_at(global_position - (camera.global_position - global_position), up)
@ -24,7 +24,7 @@ func _input(event: InputEvent) -> void:
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
if not State.focus_locked:
# Position of the event in Sprite3D local coordinates.
var texture_3d_position = sprite.get_global_transform().affine_inverse() * pos
var texture_3d_position := sprite.get_global_transform().affine_inverse() * pos
#if !is_zero_approx(texture_3d_position.z):
# # Discard event because event didn't happen on the side of the Sprite3D.
# return

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,13 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0),
&"variation_embolden": 0.0
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

View File

@ -16,7 +16,7 @@ Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
multichannel_signed_distance_field=true
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
@ -30,7 +30,12 @@ Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
preload=[{
"chars": [],
"glyphs": [],
"name": "New Configuration",
"size": Vector2i(16, 0)
}]
language_support={}
script_support={}
opentype_features={}

File diff suppressed because one or more lines are too long

View File

@ -1,149 +1,242 @@
extends CenterContainer
class_name Collectable_Ui
class_name CollectableUi
@export var scene:Scenes.id = 0 as Scenes.id
@export var collapsed = true:
set(collapse):
if is_inside_tree() and not Engine.is_editor_hint():
if State.reduce_motion:
collapsed = false
return
if collapse and not collapsed:
if is_inside_tree():
_hide_buttons()
collapsed = collapse
elif not collapse and collapsed:
if is_inside_tree():
_show_buttons()
collapsed = collapse
if collapse and has_stage: State.leave_stage(self)
@export var is_board: bool = false:
set(board):
is_board = board
if board:
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Order Thoughts"
else:
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Collect Memento"
@export var has_stage: bool = false:
set(focused):
print_debug("set focus of card to ", focused)
if has_stage == focused: return
if focused:
has_stage = true
collapsed = false
is_collapsed = false
if not visible: show()
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus()
elif has_stage:
else:
has_stage = false
get_viewport().gui_release_focus()
is_collapsed = true
# FIXME needs to be outsourced to scene reference state
@export var collected: bool = false:
set(set_collected):
collected = set_collected
if set_collected:
$Panel/Content/Buttons/VBoxContainer/put_back.show()
if not is_board:
$Panel/Content/Buttons/VBoxContainer/put_back.disabled = true
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "listen again"
if State.allow_skipping:
$Panel/Content/Buttons/VBoxContainer/skip.text = "discard cards (skip)"
#@export var collapsed = true:
# set(collapse):
# if is_inside_tree() and not Engine.is_editor_hint():
# if State.reduce_motion:
# collapsed = false
# return
# if collapse and not collapsed:
# if is_inside_tree():
# _hide_buttons()
# collapsed = collapse
# elif not collapse and collapsed:
# if is_inside_tree():
# _show_buttons()
# collapsed = collapse
#
# if collapse and has_stage: State.leave_stage(self)
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
set(id):
scene = id
if is_inside_tree() and not is_board:
match id:
Scenes.id.YOUTH_DRAEVEN:
# FIXME: this explicit translation should not be nessecary
if title_override == "": title_label.text = TranslationServer.translate("Starlight")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_DraevenCN")]
Scenes.id.YOUTH_CHILDHOOD:
if title_override == "": title_label.text = TranslationServer.translate("crafted Mask")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_ChildhoodCN")]
Scenes.id.YOUTH_VOICE_TRAINING:
if title_override == "": title_label.text = TranslationServer.translate("Comic Stash")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_VoiceCN")]
Scenes.id.YOUTH_JUI_JUTSU:
if title_override == "": title_label.text = TranslationServer.translate("Sports Clothes")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_Jui_JutsuCN")]
Scenes.id.TRANSITION:
if title_override == "": title_label.text = TranslationServer.translate("Move on")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_DND:
if title_override == "": title_label.text = TranslationServer.translate("colorful Dice")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_VOLUNTARY:
if title_override == "": title_label.text = TranslationServer.translate("Gemstone Art")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_CHRISTMAS:
if title_override == "": title_label.text = TranslationServer.translate("Chat Messages")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_EATING:
if title_override == "": title_label.text = TranslationServer.translate("Dishes")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_UNI:
if title_override == "": title_label.text = TranslationServer.translate("Science Poster")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_THERAPY:
if title_override == "": title_label.text = TranslationServer.translate("Doctors Note")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_BURNOUT:
if title_override == "": title_label.text = TranslationServer.translate("Paperwork")
if subtitle_override == "": cn_label.text = ""
if not Engine.is_editor_hint():
is_collected = Scenes.is_sequence_repeating(scene)
@export var is_collected: bool = false:
set(value):
is_collected = value
if is_inside_tree():
collected_box.button_pressed = value
if is_collected and not is_board:
%CollectLabel.text = "listen again"
else:
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.disabled = true
$Panel/Content/Buttons/VBoxContainer/put_back.show()
else:
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.disabled = false
if not is_board:
%CollectLabel.text = "MementoLabel_collect"
else:
%CollectLabel.text = "find connections"
@onready var collected_box: CheckBox = %CheckBox
@export var title_override: String = "":
set(value):
title_override = value
if is_inside_tree() and not is_board:
title_label.text = value
@onready var title_label: Label = %TitleLabel
@export var subtitle_override: String = "":
set(value):
subtitle_override = value
if is_inside_tree() and not is_board:
cn_label.text = value
@onready var cn_label: RichTextLabel = %ContentNoteLabel
@onready var animation_player: AnimationPlayer = %AnimationPlayer
@export var skipped: bool = false
@export var is_collapsed: bool = true
@export var is_expanded: bool = false:
set(expanded):
if expanded != is_expanded:
is_expanded = expanded
if is_inside_tree():
animation_player.play("expand")
await animation_player.animation_finished
for button:Button in [%ReadStory, %CollectButton, %SummaryButton, %SkipButton]:
if button.visible:
button.grab_focus()
return
@export var was_skipped: bool = false
@export var item_name: String = "":
set(new_name):
item_name = new_name
@export var is_board:bool = false:
set(board):
is_board = board
if is_inside_tree():
$Panel/Content/Name.text = new_name
@export var content_notes: String = "":
set(new_notes):
content_notes = new_notes
if board:
if title_override == "": title_label.text = "Mind Board"
collected_box.hide()
# Not room agnostic yet!
if not Engine.is_editor_hint():
match Scenes.get_completed_total():
1:
if subtitle_override == "": cn_label.text = "Find all three Mementos to collect all thoughts."
2:
if subtitle_override == "": cn_label.text = "Find two more Mementos to get all cards."
3:
if subtitle_override == "": cn_label.text = "Find the last remaining Memento."
4:
if subtitle_override == "": cn_label.text = "Use this to find a Frame of Mind."
else:
scene = scene
collected_box.show()
@export var is_exit:bool = false:
set(exit):
is_exit = exit
if is_inside_tree():
$Panel/Content/ContentNotes.text = new_notes
if exit:
if title_override == "": title_label.text = "Move on"
if subtitle_override == "": %CollectLabel.text = "Leave room"
collected_box.hide()
else:
scene = scene
collected_box.show()
signal card_collected
signal open_board
signal exit_room
#TODO implement proper scene skipping
signal scene_skipped(i: int)
# Called when the node enters the scene tree for the first time.
func _ready():
#$Panel/Content/ContentNotes.visible = State.show_content_notes
#$Panel/Content/Buttons/VBoxContainer/Summary.visible = State.provide_summaries
#$Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping
if visible and not collapsed: _show_buttons()
func _ready() -> void:
State.settings_changed.connect(_on_context_updated)
%CollectButton.pressed.connect(collect_memento)
##TODO: add functions for remaining buttons
content_notes = content_notes
update_state()
func _on_context_updated():
%SkipButton.visible = State.allow_skipping
%SummaryButton.visible = State.provide_summaries
%ReadStory.visible = is_collected
%OptionPrompt.visible = State.allow_skipping or State.provide_summaries or is_collected and not is_board
%OptionsLabel.visible = State.allow_skipping or State.provide_summaries or is_collected and not is_board
cn_label.visible = true if State.show_content_notes else false
func update_state():
scene = scene
is_board = is_board
item_name = item_name
is_exit = is_exit
_on_context_updated()
func _hide_buttons():
if is_inside_tree():
if not State.reduce_motion:
$AnimationPlayer.play_backwards("show_buttons")
func try_reveal() -> bool:
#if is_exit and not State.active_save_game.is_childhood_board_complete: return false
#if not is_board:
# if (not Scenes.is_sequence_unlocked( self.scene )) or false: #FIXME only for testing!!!
# return false
if not visible or animation_player.get_animation("vanish") or animation_player.get_animation("vanish_all"):
update_state()
visible = true
animation_player.play("reveal")
return true
return false
func _show_buttons():
if is_inside_tree():
if not State.reduce_motion:
$AnimationPlayer.play("show_buttons")
#func _process(_delta: float) -> void:
# if not visible or Engine.is_editor_hint(): return
# if Input.is_action_just_pressed("collect_memento_ui"):
# if not is_board:
# collect_memento()
# else:
# open_board.emit()
# elif Input.is_action_just_pressed("option_memento_ui"):
# is_expanded = true
#FIXME something was eating all my inputs, maybe I can use the more pretty pattern when I figure out the culprit
func _input(event: InputEvent) -> void:
if not visible: return
if event.is_action_pressed("collect_memento_ui"):
if not is_board:
collect_memento()
get_viewport().set_input_as_handled()
else:
$AnimationPlayer.play("RESET")
else:
$AnimationPlayer.play("RESET")
if is_board:
open_board.emit()
if is_exit:
exit_room.emit()
elif event.is_action_pressed("option_memento_ui"):
is_expanded = true
get_viewport().set_input_as_handled()
func vanish():
if visible:
var tween = create_tween()
tween.tween_property(self, "modulate", Color(0, 0, 0), 0.4)
if not collapsed: _hide_buttons()
await tween.finished
visible = false
if has_stage: State.leave_stage(self)
if not visible: return
func reveal():
if !visible:
$Panel/Content/ContentNotes.visible = State.show_content_notes
$Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping and not is_board and not skipped
if not collapsed:
_show_buttons()
modulate = Color()
visible = true
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.4)
func _yoink_focus():
if not has_stage:
State.transition_stage_to(self)
func _on_pick_button_pressed():
print_debug("card collected!")
if not is_board:
Scenes.start_sequence(scene)
State.leave_stage(self)
#get_tree().call_group("scene_actors", "play_scene", scene, collected)
if skipped: emit_signal("scene_skipped", -1)
collected = true
if is_expanded:
animation_player.play("vanish_all")
else:
emit_signal("open_board")
hide()
animation_player.play("vanish")
func collect_memento():
Scenes.start_sequence(scene)
State.leave_stage(self)
if scene == Scenes.id.TRANSITION: vanish()
#get_tree().call_group("scene_actors", "play_scene", scene, collected)
if was_skipped: scene_skipped.emit(-1)
is_collected = true
func _on_skip_pressed():
print_debug("Scene skipped!")
if scene != null:
emit_signal("scene_skipped", 1)
skipped = true
scene_skipped.emit(1)
was_skipped = true
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)"
State.leave_stage(self)

File diff suppressed because it is too large Load Diff

View File

@ -1,241 +0,0 @@
class_name CollectableUi extends CenterContainer
@export var has_stage: bool = false:
set(focused):
if has_stage == focused: return
if focused:
has_stage = true
is_collapsed = false
if not visible: show()
else:
has_stage = false
get_viewport().gui_release_focus()
is_collapsed = true
#@export var collapsed = true:
# set(collapse):
# if is_inside_tree() and not Engine.is_editor_hint():
# if State.reduce_motion:
# collapsed = false
# return
# if collapse and not collapsed:
# if is_inside_tree():
# _hide_buttons()
# collapsed = collapse
# elif not collapse and collapsed:
# if is_inside_tree():
# _show_buttons()
# collapsed = collapse
#
# if collapse and has_stage: State.leave_stage(self)
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
set(id):
scene = id
if is_inside_tree() and not is_board:
match id:
Scenes.id.YOUTH_DRAEVEN:
# FIXME: this explicit translation should not be nessecary
if title_override == "": title_label.text = TranslationServer.translate("Starlight")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_DraevenCN")]
Scenes.id.YOUTH_CHILDHOOD:
if title_override == "": title_label.text = TranslationServer.translate("crafted Mask")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_ChildhoodCN")]
Scenes.id.YOUTH_VOICE_TRAINING:
if title_override == "": title_label.text = TranslationServer.translate("Comic Stash")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_VoiceCN")]
Scenes.id.YOUTH_JUI_JUTSU:
if title_override == "": title_label.text = TranslationServer.translate("Sports Clothes")
if subtitle_override == "": cn_label.text = "[b]%s[/b]: %s" % [TranslationServer.translate("MementoLabel_CN"), TranslationServer.translate("MementoLabel_Jui_JutsuCN")]
Scenes.id.TRANSITION:
if title_override == "": title_label.text = TranslationServer.translate("Move on")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_DND:
if title_override == "": title_label.text = TranslationServer.translate("colorful Dice")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_VOLUNTARY:
if title_override == "": title_label.text = TranslationServer.translate("Gemstone Art")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_CHRISTMAS:
if title_override == "": title_label.text = TranslationServer.translate("Chat Messages")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_EATING:
if title_override == "": title_label.text = TranslationServer.translate("Dishes")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_UNI:
if title_override == "": title_label.text = TranslationServer.translate("Science Poster")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_THERAPY:
if title_override == "": title_label.text = TranslationServer.translate("Doctors Note")
if subtitle_override == "": cn_label.text = ""
Scenes.id.ADULT_BURNOUT:
if title_override == "": title_label.text = TranslationServer.translate("Paperwork")
if subtitle_override == "": cn_label.text = ""
if not Engine.is_editor_hint():
is_collected = Scenes.is_sequence_repeating(scene)
@export var is_collected: bool = false:
set(value):
is_collected = value
if is_inside_tree():
collected_box.button_pressed = value
if is_collected and not is_board:
%CollectLabel.text = "listen again"
else:
if not is_board:
%CollectLabel.text = "MementoLabel_collect"
else:
%CollectLabel.text = "find connections"
@onready var collected_box: CheckBox = %CheckBox
@export var title_override: String = "":
set(value):
title_override = value
if is_inside_tree() and not is_board:
title_label.text = value
@onready var title_label: Label = %TitleLabel
@export var subtitle_override: String = "":
set(value):
subtitle_override = value
if is_inside_tree() and not is_board:
cn_label.text = value
@onready var cn_label: RichTextLabel = %ContentNoteLabel
@onready var animation_player: AnimationPlayer = %AnimationPlayer
@export var is_collapsed: bool = true
@export var is_expanded: bool = false:
set(expanded):
if expanded != is_expanded:
is_expanded = expanded
if is_inside_tree():
animation_player.play("expand")
await animation_player.animation_finished
for button:Button in [%ReadStory, %CollectButton, %SummaryButton, %SkipButton]:
if button.visible:
button.grab_focus()
return
@export var was_skipped: bool = false
@export var is_board:bool = false:
set(board):
is_board = board
if is_inside_tree():
if board:
if title_override == "": title_label.text = "Mind Board"
collected_box.hide()
# Not room agnostic yet!
if not Engine.is_editor_hint():
match Scenes.get_completed_total():
1:
if subtitle_override == "": cn_label.text = "Find all three Mementos to collect all thoughts."
2:
if subtitle_override == "": cn_label.text = "Find two more Mementos to get all cards."
3:
if subtitle_override == "": cn_label.text = "Find the last remaining Memento."
4:
if subtitle_override == "": cn_label.text = "Use this to find a Frame of Mind."
else:
scene = scene
collected_box.show()
@export var is_exit:bool = false:
set(exit):
is_exit = exit
if is_inside_tree():
if exit:
if title_override == "": title_label.text = "Move on"
if subtitle_override == "": %CollectLabel.text = "Leave room"
collected_box.hide()
else:
scene = scene
collected_box.show()
signal open_board
signal exit_room
#TODO implement proper scene skipping
signal scene_skipped(i: int)
func _ready() -> void:
State.settings_changed.connect(_on_context_updated)
%CollectButton.pressed.connect(collect_memento)
##TODO: add functions for remaining buttons
update_state()
func _on_context_updated():
%SkipButton.visible = State.allow_skipping
%SummaryButton.visible = State.provide_summaries
%ReadStory.visible = is_collected
%OptionPrompt.visible = State.allow_skipping or State.provide_summaries or is_collected and not is_board
%OptionsLabel.visible = State.allow_skipping or State.provide_summaries or is_collected and not is_board
cn_label.visible = true if State.show_content_notes else false
func update_state():
scene = scene
is_board = is_board
is_exit = is_exit
_on_context_updated()
func try_reveal() -> bool:
#if is_exit and not State.active_save_game.is_childhood_board_complete: return false
#if not is_board:
# if (not Scenes.is_sequence_unlocked( self.scene )) or false: #FIXME only for testing!!!
# return false
if not visible or animation_player.get_animation("vanish") or animation_player.get_animation("vanish_all"):
update_state()
visible = true
animation_player.play("reveal")
return true
return false
#func _process(_delta: float) -> void:
# if not visible or Engine.is_editor_hint(): return
# if Input.is_action_just_pressed("collect_memento_ui"):
# if not is_board:
# collect_memento()
# else:
# open_board.emit()
# elif Input.is_action_just_pressed("option_memento_ui"):
# is_expanded = true
#FIXME something was eating all my inputs, maybe I can use the more pretty pattern when I figure out the culprit
func _input(event: InputEvent) -> void:
if not visible: return
if event.is_action_pressed("collect_memento_ui"):
if not is_board:
collect_memento()
get_viewport().set_input_as_handled()
else:
if is_board:
open_board.emit()
if is_exit:
exit_room.emit()
elif event.is_action_pressed("option_memento_ui"):
is_expanded = true
get_viewport().set_input_as_handled()
func vanish():
if not visible: return
if is_expanded:
animation_player.play("vanish_all")
else:
animation_player.play("vanish")
func collect_memento():
Scenes.start_sequence(scene)
State.leave_stage(self)
if scene == Scenes.id.TRANSITION: vanish()
#get_tree().call_group("scene_actors", "play_scene", scene, collected)
if was_skipped: scene_skipped.emit(-1)
is_collected = true
func _on_skip_pressed():
print_debug("Scene skipped!")
if scene != null:
scene_skipped.emit(1)
was_skipped = true
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)"
State.leave_stage(self)

View File

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

View File

@ -1,984 +0,0 @@
[gd_scene load_steps=18 format=3 uid="uid://wfyna16xhlo0"]
[ext_resource type="Script" uid="uid://ct2503epxj4av" path="res://logic-scenes/collectable/new_collectable_ui.gd" id="1_fk5x4"]
[ext_resource type="Texture2D" uid="uid://epjksqlw8frf" path="res://logic-scenes/collectable/decorative_paper.png" id="1_g0dpf"]
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="2_2apub"]
[ext_resource type="Texture2D" uid="uid://b7breoabkyifr" path="res://addons/input_prompts/icons/xbox/A.png" id="3_g0dpf"]
[ext_resource type="Texture2D" uid="uid://615hvpuiacvm" path="res://addons/input_prompts/icons/xbox/X.png" id="5_fk5x4"]
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_fk5x4"]
device = -1
button_index = 1
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_8vhsk"]
device = -1
[sub_resource type="InputEventKey" id="InputEventKey_t7f8v"]
device = -1
physical_keycode = 4194309
[sub_resource type="InputEventMouseButton" id="InputEventMouseButton_6fedj"]
device = -1
button_index = 2
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_bnbqn"]
device = -1
button_index = 2
[sub_resource type="Animation" id="Animation_8vhsk"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer/HSplitContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(201, 179)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.570658, 0.570658)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper:rotation")
tracks/4/interp = 4
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer/HBoxContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("VBoxContainer2:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("DecorativePaper2:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(200.373, 236.593)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("DecorativePaper2:scale")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.325643, 0.76646)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("DecorativePaper2:modulate")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("VBoxContainer/ContentNoteLabel:self_modulate")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath(".:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("VBoxContainer2:visible")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("DecorativePaper2:visible")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("VBoxContainer2/HSeparator:custom_minimum_size")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0, 50)]
}
[sub_resource type="Animation" id="Animation_t7f8v"]
resource_name = "expand"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer2:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper2:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(0.225313, 1),
"update": 0,
"values": [Vector2(210.221, 236.593), Vector2(200.373, 236.593)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper2:scale")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.2),
"transitions": PackedFloat32Array(0.225313, 1),
"update": 0,
"values": [Vector2(0.291, 0.452), Vector2(0.326, 0.721)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper2:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.08),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper2:visible")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer2:visible")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_bnbqn"]
resource_name = "init"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer/HSplitContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(201, 179)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.570658, 0.570658)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper:rotation")
tracks/4/interp = 4
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer/HBoxContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("VBoxContainer2:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("DecorativePaper2:position")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(200.373, 236.593)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("DecorativePaper2:scale")
tracks/8/interp = 1
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector2(0.325643, 0.76646)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("DecorativePaper2:modulate")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("VBoxContainer/ContentNoteLabel:self_modulate")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("DecorativePaper2:visible")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("VBoxContainer2:visible")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath(".:visible")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_fk5x4"]
resource_name = "reveal"
length = 0.6
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer/HSplitContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.233333, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.3),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.466667),
"transitions": PackedFloat32Array(0.129408, 1),
"update": 0,
"values": [Vector2(201, 300), Vector2(201, 190.91)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.466667),
"transitions": PackedFloat32Array(0.450625, 1),
"update": 0,
"values": [Vector2(0.341, 0.381), Vector2(0.570658, 0.570658)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper:rotation")
tracks/4/interp = 4
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.333333),
"transitions": PackedFloat32Array(0.450625, 1),
"update": 0,
"values": [1.5708, 0.0]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer/HBoxContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.166667, 0.366667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath(".:visible")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, true]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("VBoxContainer/ContentNoteLabel:self_modulate")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.34, 0.6),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_6fedj"]
resource_name = "vanish"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer/HSplitContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.1, 0.366667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.366667, 0.9),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0333333, 0.833333),
"transitions": PackedFloat32Array(6.49802, 0.129408),
"update": 0,
"values": [Vector2(201, 190.91), Vector2(201, 400)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.333333, 0.833333),
"transitions": PackedFloat32Array(2.92817, 0.450625),
"update": 0,
"values": [Vector2(0.570658, 0.570658), Vector2(0.341, 0.381)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper:rotation")
tracks/4/interp = 4
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.166667, 0.5, 1),
"transitions": PackedFloat32Array(1, 0.378929, 0.450625),
"update": 0,
"values": [0.0, -0.198968, 1.5708]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer/HBoxContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0333333, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath(".:visible")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("VBoxContainer/ContentNoteLabel:self_modulate")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0, 0.28),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_jtrhv"]
resource_name = "vanish_all"
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("VBoxContainer/HSplitContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.1, 0.366667),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("DecorativePaper:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0.366667, 0.833333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("DecorativePaper:position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.0333333, 0.8),
"transitions": PackedFloat32Array(6.49802, 0.129408),
"update": 0,
"values": [Vector2(201, 190.91), Vector2(201, 400)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("DecorativePaper:scale")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.333333, 0.8),
"transitions": PackedFloat32Array(2.92817, 0.450625),
"update": 0,
"values": [Vector2(0.570658, 0.570658), Vector2(0.341, 0.381)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("DecorativePaper:rotation")
tracks/4/interp = 4
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.0666667, 0.433333, 0.8),
"transitions": PackedFloat32Array(1, 0.378929, 0.450625),
"update": 0,
"values": [0.0, -0.198968, 1.5708]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VBoxContainer/HBoxContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0.0333333, 0.2),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath(".:visible")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("VBoxContainer2/HSeparator:custom_minimum_size")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0.5, 0.8),
"transitions": PackedFloat32Array(0.353553, 1),
"update": 0,
"values": [Vector2(0, 123.06), Vector2(0, 50)]
}
tracks/8/type = "value"
tracks/8/imported = false
tracks/8/enabled = true
tracks/8/path = NodePath("DecorativePaper2:position")
tracks/8/interp = 2
tracks/8/loop_wrap = true
tracks/8/keys = {
"times": PackedFloat32Array(0.11, 0.3, 0.49, 0.8),
"transitions": PackedFloat32Array(1, 1, 0.482968, 1),
"update": 0,
"values": [Vector2(200.373, 236.593), Vector2(200.373, 246.497), Vector2(200.373, 236.593), Vector2(200.373, 183.66)]
}
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("DecorativePaper2:scale")
tracks/9/interp = 2
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0.11, 0.3, 0.49, 0.8),
"transitions": PackedFloat32Array(1, 1, 0.482968, 1),
"update": 0,
"values": [Vector2(0.325643, 0.76646), Vector2(0.353939, 0.76646), Vector2(0.325643, 0.76646), Vector2(0.270026, 0.76646)]
}
tracks/10/type = "value"
tracks/10/imported = false
tracks/10/enabled = true
tracks/10/path = NodePath("DecorativePaper2:modulate")
tracks/10/interp = 1
tracks/10/loop_wrap = true
tracks/10/keys = {
"times": PackedFloat32Array(0.566667, 0.733333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/11/type = "value"
tracks/11/imported = false
tracks/11/enabled = true
tracks/11/path = NodePath("VBoxContainer2:modulate")
tracks/11/interp = 1
tracks/11/loop_wrap = true
tracks/11/keys = {
"times": PackedFloat32Array(0.566667, 0.69),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/12/type = "value"
tracks/12/imported = false
tracks/12/enabled = true
tracks/12/path = NodePath("VBoxContainer/ContentNoteLabel:self_modulate")
tracks/12/interp = 1
tracks/12/loop_wrap = true
tracks/12/keys = {
"times": PackedFloat32Array(0, 0.39),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
}
tracks/13/type = "value"
tracks/13/imported = false
tracks/13/enabled = true
tracks/13/path = NodePath("DecorativePaper2:visible")
tracks/13/interp = 1
tracks/13/loop_wrap = true
tracks/13/keys = {
"times": PackedFloat32Array(0, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/14/type = "value"
tracks/14/imported = false
tracks/14/enabled = true
tracks/14/path = NodePath("VBoxContainer2:visible")
tracks/14/interp = 1
tracks/14/loop_wrap = true
tracks/14/keys = {
"times": PackedFloat32Array(0, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_6fedj"]
_data = {
&"RESET": SubResource("Animation_8vhsk"),
&"expand": SubResource("Animation_t7f8v"),
&"init": SubResource("Animation_bnbqn"),
&"reveal": SubResource("Animation_fk5x4"),
&"vanish": SubResource("Animation_6fedj"),
&"vanish_all": SubResource("Animation_jtrhv")
}
[node name="CollectableUI" type="CenterContainer"]
offset_right = 400.0
offset_bottom = 350.0
script = ExtResource("1_fk5x4")
scene = 1
[node name="DecorativePaper" type="Sprite2D" parent="."]
position = Vector2(201, 179)
scale = Vector2(0.570658, 0.570658)
texture = ExtResource("1_g0dpf")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="HSplitContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 1
[node name="CheckBox" type="CheckBox" parent="VBoxContainer/HSplitContainer"]
unique_name_in_owner = true
modulate = Color(0, 0, 0, 1)
layout_mode = 2
focus_mode = 0
button_mask = 0
[node name="TitleLabel" type="Label" parent="VBoxContainer/HSplitContainer"]
unique_name_in_owner = true
self_modulate = Color(0, 0, 0, 1)
layout_mode = 2
size_flags_horizontal = 4
theme_type_variation = &"HeaderLarge"
text = "crafted Mask"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
alignment = 1
[node name="CollectPrompt" type="TextureRect" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
texture = ExtResource("3_g0dpf")
expand_mode = 2
stretch_mode = 5
script = ExtResource("2_2apub")
action = "collect_memento_ui"
icon = 0
events = Array[InputEvent]([SubResource("InputEventMouseButton_fk5x4"), SubResource("InputEventJoypadButton_8vhsk"), SubResource("InputEventKey_t7f8v")])
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
[node name="CollectLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
modulate = Color(0, 0, 0, 1)
layout_mode = 2
size_flags_horizontal = 4
text = "MementoLabel_collect"
[node name="OptionPrompt" type="TextureRect" parent="VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
texture = ExtResource("5_fk5x4")
expand_mode = 2
stretch_mode = 5
script = ExtResource("2_2apub")
action = "option_memento_ui"
icon = 0
events = Array[InputEvent]([SubResource("InputEventMouseButton_6fedj"), SubResource("InputEventJoypadButton_bnbqn")])
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
[node name="OptionsLabel" type="Label" parent="VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
visible = false
modulate = Color(0, 0, 0, 1)
layout_mode = 2
size_flags_horizontal = 4
text = "options"
[node name="ContentNoteLabel" type="RichTextLabel" parent="VBoxContainer"]
unique_name_in_owner = true
visible = false
modulate = Color(0, 0, 0, 1)
custom_minimum_size = Vector2(350, 90)
layout_mode = 2
bbcode_enabled = true
text = "[b]MementoLabel_CN[/b]: MementoLabel_ChildhoodCN"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
[node name="DecorativePaper2" type="Sprite2D" parent="."]
visible = false
position = Vector2(200.373, 236.593)
rotation = 1.57079
scale = Vector2(0.325643, 0.76646)
texture = ExtResource("1_g0dpf")
[node name="VBoxContainer2" type="VBoxContainer" parent="."]
visible = false
layout_mode = 2
[node name="HSeparator" type="HSeparator" parent="VBoxContainer2"]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
[node name="CollectButton" type="Button" parent="VBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
text = "collect"
[node name="ReadStory" type="Button" parent="VBoxContainer2"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "read again"
[node name="SummaryButton" type="Button" parent="VBoxContainer2"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "get summary"
[node name="SkipButton" type="Button" parent="VBoxContainer2"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "skip"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
libraries = {
&"": SubResource("AnimationLibrary_6fedj")
}
autoplay = "init"