Merge commit 'd104715a3ff6e0a4768f61a5bc5ca59a46f34aa2' into development
This commit is contained in:
commit
3fa9e82647
|
|
@ -66,6 +66,8 @@
|
|||
- [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0
|
||||
- [Rain and thunder](https://freesound.org/people/MrAuralization/sounds/241294/) by [MrAuralization](https://freesound.org/people/MrAuralization/) CC-BY 3.0
|
||||
- [Heavy Thunder Strike - no Rain - QUADRO](https://freesound.org/people/BlueDelta/sounds/446753/) by [BlueDelta](https://freesound.org/people/BlueDelta/) CC-BY 3.0
|
||||
- [SUBWAY_02](https://freesound.org/people/Manicciola/sounds/173311/) by [Manicciola](https://freesound.org/people/Manicciola/), CC-BY 3.0
|
||||
- [harbour waves calm 01](https://freesound.org/people/klankbeeld/sounds/169181) by [klankbeeld](https://freesound.org/people/klankbeeld/), CC-BY 3.0
|
||||
|
||||
## Fonts all using OFL
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 323 KiB After Width: | Height: | Size: 133 KiB |
Binary file not shown.
Binary file not shown.
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=44 format=3 uid="uid://dgxujvk66rka6"]
|
||||
[gd_scene load_steps=48 format=3 uid="uid://dgxujvk66rka6"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cb4m4oe32guqi" path="res://base-environments/transition/import/first_station.glb" id="1_yerc2"]
|
||||
[ext_resource type="Shader" uid="uid://sxauef61xfpx" path="res://base-environments/transition/time_sparks.gdshader" id="2_4y17u"]
|
||||
|
|
@ -13,6 +13,8 @@
|
|||
[ext_resource type="Material" uid="uid://d3rfe7mryshj1" path="res://base-environments/transition/import/next_room_peak.tres" id="11_sy31e"]
|
||||
[ext_resource type="PackedScene" uid="uid://dotekvpr6rytk" path="res://base-environments/transition/import/subway_train.glb" id="12_dgbje"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://fjy2ca233sp4" path="res://base-environments/transition/subway_car_gi.res" id="13_f5y2f"]
|
||||
[ext_resource type="AudioStream" uid="uid://cr77al1x73vyb" path="res://base-environments/transition/vfx/harbour waves calm 01.mp3" id="14_awhi4"]
|
||||
[ext_resource type="AudioStream" uid="uid://xn5qegs2ckea" path="res://base-environments/transition/vfx/SUBWAY_02.ogg" id="15_iyklq"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_sjsoq"]
|
||||
viewport_path = NodePath("first_station/MeshInstance3D/SubViewport")
|
||||
|
|
@ -192,10 +194,58 @@ tracks/3/keys = {
|
|||
"update": 0,
|
||||
"values": [Color(0.0748178, 0.134808, 0.168364, 1)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../Control/Sprite2D:self_modulate")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../GPUParticles3D:emitting")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../AudioStreamPlayer2:volume_db")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../AudioStreamPlayer:volume_db")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_irpux"]
|
||||
resource_name = "trailer"
|
||||
length = 10.0
|
||||
length = 15.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -203,10 +253,10 @@ tracks/0/path = NodePath(".:position")
|
|||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1.79, 4.23333, 9.76667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0.633329, 2.42333, 4.86666, 10.4333, 14.6999),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.785, 2.75, -0.535), Vector3(0.89, 1.895, -1.695), Vector3(0.82, 1.245, -2.975), Vector3(0.82, 1.11, -5.74)]
|
||||
"values": [Vector3(0.785, 2.75, -0.535), Vector3(0.89, 1.895, -1.695), Vector3(0.82, 1.245, -2.975), Vector3(0.82, 1.11, -5.74), Vector3(1.525, 1.12, -8.26)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
|
|
@ -215,10 +265,10 @@ tracks/1/path = NodePath(".:rotation")
|
|||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.28, 2.9, 3.92, 5, 6.50333, 9.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0.913329, 3.53333, 4.55333, 5.63333, 7.13666, 9.83333, 12.1705, 14.8928),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-1.0472, 0, 0), Vector3(-0.671952, 0, 0), Vector3(-0.593412, 0, 0), Vector3(-0.125664, -0.701622, 0.0785398), Vector3(-0.125664, 0.235619, -0.0523599), Vector3(0, -0.235619, 0)]
|
||||
"values": [Vector3(-1.0472, 0, 0), Vector3(-0.671952, 0, 0), Vector3(-0.593412, 0, 0), Vector3(-0.125664, -0.701622, 0.0785398), Vector3(-0.125664, 0.235619, -0.0523599), Vector3(0, -0.235619, 0), Vector3(0, -2.26718, -0.127409), Vector3(0, -0.235619, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
|
|
@ -227,7 +277,7 @@ tracks/2/path = NodePath("../MeshInstance3D:material_override:emission_energy_mu
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(4.06, 9.98),
|
||||
"times": PackedFloat32Array(4.69333, 10.6133),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 3.0]
|
||||
|
|
@ -239,11 +289,89 @@ tracks/3/path = NodePath("../MeshInstance3D:material_override:emission")
|
|||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(4.06, 10),
|
||||
"times": PackedFloat32Array(8.2, 10.6333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0.0748178, 0.134808, 0.168364, 1), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/4/type = "audio"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../AudioStreamPlayer")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("14_awhi4")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.0666667)
|
||||
}
|
||||
tracks/4/use_blend = true
|
||||
tracks/5/type = "audio"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../AudioStreamPlayer2")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.664513,
|
||||
"stream": ExtResource("15_iyklq")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.076102)
|
||||
}
|
||||
tracks/5/use_blend = true
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../Control/Sprite2D:self_modulate")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0.533333, 3.7, 13.3494, 14.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../GPUParticles3D:emitting")
|
||||
tracks/7/interp = 0
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0.3, 7.26164),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../AudioStreamPlayer2:volume_db")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(13.8333, 15),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, -80.0]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("../AudioStreamPlayer:volume_db")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(13.8667, 15),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, -80.0]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_sy31e"]
|
||||
_data = {
|
||||
|
|
@ -294,8 +422,15 @@ emission_enabled = true
|
|||
emission = Color(1, 0, 0, 1)
|
||||
emission_energy_multiplier = 10.0
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ckmi5"]
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_iyklq"]
|
||||
gradient = SubResource("Gradient_ckmi5")
|
||||
width = 100
|
||||
height = 100
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.252546, 0.415653, 0.0961766)
|
||||
|
||||
[node name="first_station" parent="." instance=ExtResource("1_yerc2")]
|
||||
|
||||
|
|
@ -473,6 +608,7 @@ spot_angle_attenuation = 0.517633
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.8785, 1.08384, -32.4645)
|
||||
sorting_offset = 100.0
|
||||
material_override = SubResource("ShaderMaterial_4tj6b")
|
||||
emitting = false
|
||||
amount = 10
|
||||
lifetime = 10.0
|
||||
explosiveness = 0.5
|
||||
|
|
@ -484,6 +620,7 @@ draw_pass_1 = SubResource("QuadMesh_oo2l3")
|
|||
|
||||
[node name="GPUParticles3D2" type="GPUParticles3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.65518, 1.08384, -32.4645)
|
||||
visible = false
|
||||
sorting_offset = 100.0
|
||||
material_override = SubResource("ShaderMaterial_4tj6b")
|
||||
amount = 5
|
||||
|
|
@ -496,14 +633,15 @@ process_material = SubResource("ParticleProcessMaterial_hvcdc")
|
|||
draw_pass_1 = SubResource("QuadMesh_oo2l3")
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.61825, -33.3675)
|
||||
subdiv = 3
|
||||
size = Vector3(20, 10.4688, 124.604)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.53159, -32.7307)
|
||||
subdiv = 2
|
||||
size = Vector3(20, 7.1879, 99.7711)
|
||||
camera_attributes = SubResource("CameraAttributesPractical_f5y2f")
|
||||
data = ExtResource("4_nmgvo")
|
||||
|
||||
[node name="GPUParticles3D3" type="GPUParticles3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.18283, 0.258846, -32.3954)
|
||||
visible = false
|
||||
material_override = ExtResource("5_32vcv")
|
||||
amount = 1000
|
||||
lifetime = 1.5
|
||||
|
|
@ -518,6 +656,7 @@ draw_pass_1 = SubResource("PlaneMesh_8c2us")
|
|||
|
||||
[node name="GPUParticles3D4" type="GPUParticles3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -6.80088, 0.258846, -32.3954)
|
||||
visible = false
|
||||
material_override = ExtResource("5_32vcv")
|
||||
gi_mode = 2
|
||||
visibility_range_begin_margin = 1.0
|
||||
|
|
@ -560,7 +699,8 @@ autoplay = "trailer"
|
|||
material_override = ExtResource("11_sy31e")
|
||||
|
||||
[node name="subway_train" parent="." instance=ExtResource("12_dgbje")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -20.3734, -0.125, -8.52174)
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -6.44337, -0.125, -8.52174)
|
||||
visible = false
|
||||
|
||||
[node name="VoxelGI" type="VoxelGI" parent="subway_train"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.5427, 1.26147, 5.72205e-06)
|
||||
|
|
@ -614,3 +754,24 @@ skeleton = NodePath("../MeshInstance3D2")
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.66292, -0.4523, -24.7506)
|
||||
visible = false
|
||||
material_override = SubResource("StandardMaterial3D_dgbje")
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
autoplay = true
|
||||
mix_target = 1
|
||||
bus = &"waves"
|
||||
|
||||
[node name="AudioStreamPlayer2" type="AudioStreamPlayer3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.91435, 0, -13.0111)
|
||||
autoplay = true
|
||||
panning_strength = 0.9
|
||||
bus = &"waves"
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Control"]
|
||||
scale = Vector2(100, 100)
|
||||
texture = SubResource("GradientTexture2D_iyklq")
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_sc
|
|||
|
||||
uniform sampler2D spray_texture;
|
||||
uniform sampler2D lifetime_gradient;
|
||||
uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, repeat_disable;
|
||||
//uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, repeat_disable;
|
||||
varying vec4 passtrough;
|
||||
varying vec2 screen_pos;
|
||||
|
||||
|
|
@ -71,7 +71,7 @@ void fragment() {
|
|||
//EMISSION = COLOR.xyz * max(0, (1.5-pow(passtrough.y, 0.3)*2.0));
|
||||
|
||||
//EMISSION = texture(SCREEN_TEXTURE, (SCREEN_UV - screen_pos) * 2.0 + screen_pos).xyz;
|
||||
EMISSION = sample_blurred(SCREEN_TEXTURE, screen_pos, 4, 0.3, 6.0).xyz;
|
||||
//EMISSION = sample_blurred(SCREEN_TEXTURE, screen_pos, 4, 0.3, 6.0).xyz;
|
||||
//EMISSION = pow(textureLod(SCREEN_TEXTURE, screen_pos.xy, 6.0).xyz, vec3(2.2));
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
class_name Station extends Resource
|
||||
|
||||
@export var station_name: StringName = ""
|
||||
@export var memory: Scenes.id = Scenes.id.YOUTH_DRAEVEN
|
||||
@export_file("*.tscn") var station_path: String = ""
|
||||
@export var shedule: Dictionary[float, int]
|
||||
@export var announcement: AudioStream
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cyeh7sa20bmcf
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
extends RoomTemplate
|
||||
|
||||
@export var all_stations: Array[Station] = []
|
||||
@export var all_lines: Array[TrainLine] = []
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://snugj1gnggjj
|
||||
Binary file not shown.
|
|
@ -0,0 +1,12 @@
|
|||
class_name TrainLine extends Resource
|
||||
|
||||
enum id {
|
||||
NONE,
|
||||
RING,
|
||||
|
||||
}
|
||||
|
||||
@export var train_id: id = 0
|
||||
@export var destination: StringName = ""
|
||||
@export var via: StringName = ""
|
||||
@export var stops: Array[Station] = []
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dfkq0djtygmma
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://xn5qegs2ckea"
|
||||
path="res://.godot/imported/SUBWAY_02.ogg-2ae5d2bec8bfd5a2fb463e110e465b7e.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/vfx/SUBWAY_02.ogg"
|
||||
dest_files=["res://.godot/imported/SUBWAY_02.ogg-2ae5d2bec8bfd5a2fb463e110e465b7e.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
BIN
src/base-environments/transition/vfx/harbour waves calm 01.mp3 (Stored with Git LFS)
Normal file
BIN
src/base-environments/transition/vfx/harbour waves calm 01.mp3 (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cr77al1x73vyb"
|
||||
path="res://.godot/imported/harbour waves calm 01.mp3-97b3d792df09eee82f7978014c78aa7a.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/transition/vfx/harbour waves calm 01.mp3"
|
||||
dest_files=["res://.godot/imported/harbour waves calm 01.mp3-97b3d792df09eee82f7978014c78aa7a.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
BIN
src/base-environments/volunteer_room/import/textures/bing_bong.png (Stored with Git LFS)
Normal file
BIN
src/base-environments/volunteer_room/import/textures/bing_bong.png (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bji6drfnvgv3j"
|
||||
path.s3tc="res://.godot/imported/bing_bong.png-881e8f37088d32717048d5c13acb0de0.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/bing_bong.png-881e8f37088d32717048d5c13acb0de0.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/volunteer_room/import/textures/bing_bong.png"
|
||||
dest_files=["res://.godot/imported/bing_bong.png-881e8f37088d32717048d5c13acb0de0.s3tc.ctex", "res://.godot/imported/bing_bong.png-881e8f37088d32717048d5c13acb0de0.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
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=0
|
||||
BIN
src/base-environments/volunteer_room/import/textures/gem-normal.png (Stored with Git LFS)
Normal file
BIN
src/base-environments/volunteer_room/import/textures/gem-normal.png (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://nu02kjr4xq3d"
|
||||
path.s3tc="res://.godot/imported/gem-normal.png-171f0a49d8783557eab6cac24e7f5395.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/gem-normal.png-171f0a49d8783557eab6cac24e7f5395.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/volunteer_room/import/textures/gem-normal.png"
|
||||
dest_files=["res://.godot/imported/gem-normal.png-171f0a49d8783557eab6cac24e7f5395.s3tc.ctex", "res://.godot/imported/gem-normal.png-171f0a49d8783557eab6cac24e7f5395.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
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=0
|
||||
BIN
src/base-environments/volunteer_room/import/textures/stickerbomb.png (Stored with Git LFS)
Normal file
BIN
src/base-environments/volunteer_room/import/textures/stickerbomb.png (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0o4bf3igb2xo"
|
||||
path="res://.godot/imported/stickerbomb.png-81acf2412df167480df12c7cbda3c2c6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/volunteer_room/import/textures/stickerbomb.png"
|
||||
dest_files=["res://.godot/imported/stickerbomb.png-81acf2412df167480df12c7cbda3c2c6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
uniform sampler2D texture_albedo : source_color, filter_nearest, repeat_enable;
|
||||
uniform float roughness : hint_range(0.0, 1.0);
|
||||
uniform sampler2D texture_normal_detail : hint_default_white, filter_linear_mipmap, repeat_enable;
|
||||
|
||||
|
||||
void fragment() {
|
||||
ALBEDO = texture(texture_albedo, UV).xyz * texture(texture_normal_detail, UV * vec2(336.*.125,278.*.125)).w;
|
||||
NORMAL = texture(texture_normal_detail, UV * vec2(336.*.125,278.*.125)).xyz;
|
||||
ROUGHNESS = .2;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dubyvbna30nhn
|
||||
|
|
@ -10,7 +10,6 @@ var revealed: bool = false:
|
|||
revealed = reveal
|
||||
if reveal:
|
||||
wrapper.show()
|
||||
ui.reveal()
|
||||
else:
|
||||
ui.vanish()
|
||||
await get_tree().create_timer(1).timeout
|
||||
|
|
@ -33,12 +32,17 @@ func _on_mouse_exited():
|
|||
ui.is_collapsed = true
|
||||
has_mouse = false
|
||||
|
||||
func reveal():
|
||||
revealed = true
|
||||
# TODO: needs to check if it has mouse or player collider!
|
||||
await get_tree().create_timer(10.0).timeout
|
||||
if not has_mouse:
|
||||
revealed = false
|
||||
func try_reveal(for_player: Player) -> bool:
|
||||
print("reveal ui!")
|
||||
revealed = ui.try_reveal()
|
||||
if revealed:
|
||||
call_deferred("wait_for_ui_exit", for_player)
|
||||
return revealed
|
||||
|
||||
|
||||
func wait_for_ui_exit(for_player: Player):
|
||||
await for_player.ui_exited
|
||||
collapse()
|
||||
|
||||
func collapse():
|
||||
_on_mouse_exited()
|
||||
|
|
|
|||
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dc0cd7dvod7wg"
|
||||
path="res://.godot/imported/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav-fa9b662f24546f6a75513eb3aa4a2061.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav"
|
||||
dest_files=["res://.godot/imported/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav-fa9b662f24546f6a75513eb3aa4a2061.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
|
||||
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://b5d4c6n2mw02s"
|
||||
path="res://.godot/imported/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav-bc3db9689062d7d5c89c4d6067a32d7a.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav"
|
||||
dest_files=["res://.godot/imported/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav-bc3db9689062d7d5c89c4d6067a32d7a.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
|
||||
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dupcfwi54fpjx"
|
||||
path="res://.godot/imported/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav-53819151e4b2cdc900dec4e093ee3dad.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav"
|
||||
dest_files=["res://.godot/imported/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav-53819151e4b2cdc900dec4e093ee3dad.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.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bywmf3patoe56"
|
||||
path="res://.godot/imported/board_completed.wav-5729ec7ec6afa4c9611784f034fcb0d1.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_completed.wav"
|
||||
dest_files=["res://.godot/imported/board_completed.wav-5729ec7ec6afa4c9611784f034fcb0d1.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.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://bgtohhyd8whbm"
|
||||
path="res://.godot/imported/board_completed_de.wav-55f9cea3167235e42e73664c3c3b4b28.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_completed_de.wav"
|
||||
dest_files=["res://.godot/imported/board_completed_de.wav-55f9cea3167235e42e73664c3c3b4b28.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.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dj8fpajqhj4k7"
|
||||
path="res://.godot/imported/board_incomplete.wav-49b228daaa12eb0be66520e1d2f3a349.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_incomplete.wav"
|
||||
dest_files=["res://.godot/imported/board_incomplete.wav-49b228daaa12eb0be66520e1d2f3a349.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
|
||||
BIN
src/base-environments/youth_room/audio/board_incomplete_de.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/board_incomplete_de.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://swlo6elqs4vx"
|
||||
path="res://.godot/imported/board_incomplete_de.wav-48605bd9d84421a768280982b861fa50.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_incomplete_de.wav"
|
||||
dest_files=["res://.godot/imported/board_incomplete_de.wav-48605bd9d84421a768280982b861fa50.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.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://brolrc3lhaeid"
|
||||
path="res://.godot/imported/board_unfitting.wav-afbf1c6abdc3ac1e4cd8ff645b647e50.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_unfitting.wav"
|
||||
dest_files=["res://.godot/imported/board_unfitting.wav-afbf1c6abdc3ac1e4cd8ff645b647e50.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.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://y8fg3wjscvci"
|
||||
path="res://.godot/imported/board_unfitting_de.wav-710ce6bfcb0548979414d8ee42ba62d8.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/board_unfitting_de.wav"
|
||||
dest_files=["res://.godot/imported/board_unfitting_de.wav-710ce6bfcb0548979414d8ee42ba62d8.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
|
||||
BIN
src/base-environments/youth_room/audio/childhood_de.wav (Stored with Git LFS)
BIN
src/base-environments/youth_room/audio/childhood_de.wav (Stored with Git LFS)
Binary file not shown.
BIN
src/base-environments/youth_room/audio/why-does-it-mean_de.wav (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/why-does-it-mean_de.wav (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://tbx31bdlhbtr"
|
||||
path="res://.godot/imported/why-does-it-mean_de.wav-e8cf9c54b25ca486f2d467ef85cdc195.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/why-does-it-mean_de.wav"
|
||||
dest_files=["res://.godot/imported/why-does-it-mean_de.wav-e8cf9c54b25ca486f2d467ef85cdc195.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.
BIN
src/base-environments/youth_room/import/textures/bad-grades.png (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/import/textures/bad-grades.png (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,34 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://iyd3561b7vdd"
|
||||
path="res://.godot/imported/bad-grades.png-406d218979c34bc281fa29c69b5cd3e8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/import/textures/bad-grades.png"
|
||||
dest_files=["res://.godot/imported/bad-grades.png-406d218979c34bc281fa29c69b5cd3e8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
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/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
|
||||
|
|
@ -3,7 +3,7 @@ extends RoomTemplate
|
|||
signal ini_room
|
||||
|
||||
@onready var board_trigger: InteractiveSprite = %MindBoard
|
||||
@onready var door_trigger: InteractiveSprite = %DoorTrigger
|
||||
@onready var door_trigger: InteractiveSprite = %Door
|
||||
@onready var card_board: CardBoard = %Board
|
||||
@onready var card_picker: CardPicker = %Picker
|
||||
|
||||
|
|
@ -13,6 +13,9 @@ func start_room():
|
|||
Scenes.completed_sequences = save_game.mementos_complete
|
||||
Scenes.started_sequences = save_game.mementos_complete
|
||||
card_board.initialise_from_save(save_game)
|
||||
card_board.board_completed.connect(func():
|
||||
save_game.is_childhood_board_complete = true
|
||||
save_room())
|
||||
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
|
||||
ini_room.emit()
|
||||
if not Scenes.is_sequence_repeating(Scenes.id.YOUTH_DRAEVEN):
|
||||
|
|
@ -46,3 +49,10 @@ func pull_save_state(save: SaveGame) -> void:
|
|||
func _on_scene_finished(id: int, _repeat:bool):
|
||||
await get_tree().create_timer(3).timeout
|
||||
save_room()
|
||||
|
||||
func prepare_transition():
|
||||
save_room()
|
||||
$AnimationPlayer.play("conserve_performance")
|
||||
|
||||
func unload():
|
||||
$visuals.queue_free()
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
[gd_scene load_steps=20 format=3 uid="uid://c3l8tm8ku50vt"]
|
||||
[gd_scene load_steps=21 format=3 uid="uid://c3l8tm8ku50vt"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_40hhx"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_bkq30"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://bfc3d4g40n0wy" path="res://logic-scenes/collectable/import/old-mask.res" id="2_jrxfv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_o63m7"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_q0fee"]
|
||||
[ext_resource type="AudioStream" uid="uid://b3cw0e41rjggo" path="res://base-environments/youth_room/audio/childhood_de.wav" id="6_wyhdp"]
|
||||
[ext_resource type="AudioStream" uid="uid://dfblaqsfgm8le" path="res://base-environments/youth_room/audio/Childhood.wav" id="7_51c6s"]
|
||||
[ext_resource type="AudioStream" uid="uid://b5d4c6n2mw02s" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_TheaterAG_Deutsch_newt.wav" id="7_htg3l"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="8_51c6s"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_1k8vs"]
|
||||
|
|
@ -136,126 +136,6 @@ tracks/5/keys = {
|
|||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_bgeog"]
|
||||
resource_name = "de"
|
||||
length = 94.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%AnimationPlayer/Text")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_wyhdp")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.3)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../..:progress")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 6.13333, 7.43333, 13.5, 14.5667, 19.1333, 19.5333, 22.7333, 25.6333, 27.3333, 28.8, 32.7333, 34.8667, 36.6275, 37.7667, 46.2333, 47.5667, 49.4667, 50.8333, 54.6667, 56.3, 60.4667, 61.8333, 68.2028, 69.5667, 72.4, 74.5, 78.493, 80.2, 84.033, 85.3, 88.0997, 89.6667),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0, 17.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../..")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(13.3333, 24.7667, 49.7, 68.8667, 85.5, 91.3333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("..:custom_minimum_size")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(900, 800), Vector2(900, 900)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:rotation")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 1.8),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.174533, 0.349066]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:modulate")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.733333),
|
||||
"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),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../..:modulate")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7qabw"]
|
||||
resource_name = "en"
|
||||
length = 92.0
|
||||
|
|
@ -376,6 +256,82 @@ tracks/7/keys = {
|
|||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_51c6s"]
|
||||
resource_name = "ini"
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../..:progress")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [17.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("..:custom_minimum_size")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(900, 900)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:rotation")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.349066]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../..:modulate")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../../..:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../..: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)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_x0d5q"]
|
||||
resource_name = "vanish"
|
||||
tracks/0/type = "value"
|
||||
|
|
@ -415,11 +371,132 @@ tracks/2/keys = {
|
|||
"values": [0.349066, 0.698132]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ytb2t"]
|
||||
resource_name = "de"
|
||||
length = 86.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%AnimationPlayer/Text")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("7_htg3l")
|
||||
}],
|
||||
"times": PackedFloat32Array(2.5)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../..:progress")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 6.26666, 8.76667, 13.8, 16.0667, 20.7334, 21.6667, 26.1334, 27.4667, 29.5333, 30.0333, 33.4, 34.8999, 36.5941, 37.0333, 45.3001, 45.9667, 49.0666, 50.4333, 54.4, 55.2667, 57.8334, 59.2, 65.6694, 67.0333, 70.0333, 71.0333, 73.3667, 74.9333, 78.4667, 80.1667, 84.6333),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../..")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(14.4333, 34.2333, 49.4667, 66.3333, 74.0404, 85.0667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("..:custom_minimum_size")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(900, 800), Vector2(900, 900)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:rotation")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 1.8),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.174533, 0.349066]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:modulate")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.733333),
|
||||
"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 = 0
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../..:modulate")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dc6th"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ytihj"),
|
||||
&"de": SubResource("Animation_bgeog"),
|
||||
&"de": SubResource("Animation_ytb2t"),
|
||||
&"en": SubResource("Animation_7qabw"),
|
||||
&"ini": SubResource("Animation_51c6s"),
|
||||
&"vanish": SubResource("Animation_x0d5q")
|
||||
}
|
||||
|
||||
|
|
@ -432,7 +509,7 @@ offset_right = -424.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_40hhx")
|
||||
story_array = PackedStringArray("Oh, my old mask. I have so many good memories about theatre club. ", "I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... ", "my mom would get mad at me, when she had to call me three or four times for dinner. ", "I just … didn\'t like the interruptions. We both were often mad at each other.", "Dinner was difficult.", "I just couldn\'t bring myself to eat, because I couldn\'t deal with the bread and my mom.", "She was always so worried.", " ‘Lisa, you forgot your homework, Lisa why won\'t you play with the other girls,\"", "\"Lisa why didn\'t Steffi invite you to her birthday, Lisa this, Lisa that.’", "But I was fine! She just wouldn\'t listen.", "Yes, I didn\'t do homework, but my teachers didn\'t mind it as much with me ", "- which the other kids wouldn\'t shut up about. But like …", "they also made fun of me reading school books and talking to my teachers during breaks.", "But at least I could fucking talk to teachers and they had stuff to say.", "Mr Thomas probably even understood me better than my own mom.", "He said I was gifted. He said I just didn\'t need homework for good grades.", "But at least I could fucking talk to teachers and they had stuff to say.")
|
||||
story_array = PackedStringArray("Oh, my old mask. I have so many good memories about theatre club. ", "I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... ", "my mom would get mad at me, when she had to call me three or four times for dinner. ", "I just … didn\'t like the interruptions. We both were often mad at each other.", "Dinner was difficult.", "I just couldn\'t bring myself to eat, because I couldn\'t deal with the bread and my mom.", "She was always so worried.", " ‘Lisa, you forgot your homework, Lisa why won\'t you play with the other girls,\"", "\"Lisa why didn\'t Steffi invite you to her birthday, Lisa this, Lisa that.’", "But I was fine! She just wouldn\'t listen.", "Yes, I didn\'t do homework, but my teachers didn\'t mind it as much with me ", "- which the other kids wouldn\'t shut up about. But like …", "they also made fun of me reading school books and talking to my teachers during breaks.", "But at least I could fucking talk to teachers and they had stuff to say.", "Mr Thomas probably even understood me better than my own mom.", "He said I was gifted. He said I just didn\'t need homework for good grades.", "And he also made sure to always include extra credits. So my silly slip-ups wouldn\'t get me a B.")
|
||||
paragraph_lengths = PackedInt32Array(3, 4, 6, 9, 12, 13, 14, 16)
|
||||
progress = 17.0
|
||||
|
||||
|
|
@ -559,7 +636,7 @@ custom_minimum_size = Vector2(800, 10)
|
|||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
bbcode_enabled = true
|
||||
text = "[p]Oh, my old mask. I have so many good memories about theatre club. I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... my mom would get mad at me, when she had to call me three or four times for dinner. I just … didn't like the interruptions. We both were often mad at each other. [/p][p][font_size=8] [/font_size][/p][p]Dinner was difficult. [/p][p][font_size=8] [/font_size][/p][p]I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom. She was always so worried. [/p][p][font_size=8] [/font_size][/p][p]‘Lisa, you forgot your homework, Lisa why won't you play with the other girls,\" \"Lisa why didn't Steffi invite you to her birthday, Lisa this, Lisa that.’ But I was fine! She just wouldn't listen. [/p][p][font_size=8] [/font_size][/p][p]Yes, I didn't do homework, but my teachers didn't mind it as much with me - which the other kids wouldn't shut up about. But like … they also made fun of me reading school books and talking to my teachers during breaks. [/p][p][font_size=8] [/font_size][/p][p]But at least I could fucking talk to teachers and they had stuff to say. [/p][p][font_size=8] [/font_size][/p][p]Mr Thomas probably even understood me better than my own mom. [/p][p][font_size=8] [/font_size][/p][p]He said I was gifted. He said I just didn't need homework for good grades. But at least I could fucking talk to teachers and they had stuff to say. [/p][p][font_size=8] [/font_size][/p][p][/p]"
|
||||
text = "[p]Oh, my old mask. I have so many good memories about theatre club. I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... my mom would get mad at me, when she had to call me three or four times for dinner. I just … didn't like the interruptions. We both were often mad at each other. [/p][p][font_size=8] [/font_size][/p][p]Dinner was difficult. [/p][p][font_size=8] [/font_size][/p][p]I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom. She was always so worried. [/p][p][font_size=8] [/font_size][/p][p]‘Lisa, you forgot your homework, Lisa why won't you play with the other girls,\" \"Lisa why didn't Steffi invite you to her birthday, Lisa this, Lisa that.’ But I was fine! She just wouldn't listen. [/p][p][font_size=8] [/font_size][/p][p]Yes, I didn't do homework, but my teachers didn't mind it as much with me - which the other kids wouldn't shut up about. But like … they also made fun of me reading school books and talking to my teachers during breaks. [/p][p][font_size=8] [/font_size][/p][p]But at least I could fucking talk to teachers and they had stuff to say. [/p][p][font_size=8] [/font_size][/p][p]Mr Thomas probably even understood me better than my own mom. [/p][p][font_size=8] [/font_size][/p][p]He said I was gifted. He said I just didn't need homework for good grades. And he also made sure to always include extra credits. So my silly slip-ups wouldn't get me a B. [/p][p][font_size=8] [/font_size][/p][p][/p]"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
visible_characters_behavior = 1
|
||||
|
|
@ -582,6 +659,7 @@ root_node = NodePath("../PanelContainer/StartFrame/Panel")
|
|||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_dc6th")
|
||||
}
|
||||
autoplay = "ini"
|
||||
|
||||
[node name="Text" type="AudioStreamPlayer" parent="AnimationPlayer"]
|
||||
mix_target = 2
|
||||
|
|
|
|||
|
|
@ -214,6 +214,21 @@ tracks/6/keys = {
|
|||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "audio"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("%AnimationPlayer/Music")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_7f2et")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.0333333)
|
||||
}
|
||||
tracks/7/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_egql5"]
|
||||
resource_name = "debug"
|
||||
|
|
@ -352,18 +367,21 @@ tracks/6/keys = {
|
|||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/type = "audio"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("%AnimationPlayer/Music:playing")
|
||||
tracks/7/path = NodePath("%AnimationPlayer/Music")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_7f2et")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.0333333)
|
||||
}
|
||||
tracks/7/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_d2p1i"]
|
||||
resource_name = "vanish"
|
||||
|
|
@ -484,7 +502,9 @@ bbcode_enabled = true
|
|||
text = "[p]Moonlight trickled down through clouds and twigs as Dräven tapped through the night. He had been searching for a while and he knew a special someone must be hiding in the thicket. When a familiar smell first led him to a few bronce hairs as fluffy as his tail, he didn't think much of it. [/p][p][font_size=8] [/font_size][/p][p]But then he saw paw-prints, that matched his own where he had not been. Would he finally find someone of his kind? He was sure of it, as the familiar scent has never been stronger than tonight. [/p][p][font_size=8] [/font_size][/p][p]When suddenly: Was that chatter? [/p][p][font_size=8] [/font_size][/p][p]His wings rustled with joy over the familiar voice and Dräven decided to get a better look. [/p][p][font_size=8] [/font_size][/p][p]A few flaps and leaps brought him up a tree, to get a glimpse of his soon to be friend. But all he saw was a fox. [/p][p][font_size=8] [/font_size][/p][p]He didn't even want to bother it anymore. [/p][p][font_size=8] [/font_size][/p][p]It would just scream and laugh at his wings of leafs, just like the trees crackled at his paws, that were no roots. With a small whimper, Dräven spread his wings, and slid away to at least find comfort by seeing his reflection in the nearby lake. It took him a while to notice, how there was a sudden silence when the clouds broke: [/p][p][font_size=8] [/font_size][/p][p]Northern lights danced through the sky to form wings, that met at a sleek body made of stars and clouds. The whole forest held its breath as it stared into eyes of moonlight gazing down. [/p][p][font_size=8] [/font_size][/p][p]Dräven was moved to tears when he gazed back at it. He was sad for the dragon that was of the moon and the stars and the skies. It must feel so lost in the universe. But his tears were of joy: It was the first time Dräven saw another creature of many kinds. [/p][p][font_size=8] [/font_size][/p][p][/p]"
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
visible_characters = 0
|
||||
visible_characters_behavior = 1
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="StartBottom" type="TextureRect" parent="PanelContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 64)
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@
|
|||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="5_0qiyf"]
|
||||
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="5_s5qj7"]
|
||||
[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="6_0qiyf"]
|
||||
[ext_resource type="AudioStream" uid="uid://b3cw0e41rjggo" path="res://base-environments/youth_room/audio/childhood_de.wav" id="6_uqngm"]
|
||||
[ext_resource type="AudioStream" uid="uid://bwh60165c3saj" path="res://base-environments/youth_room/audio/lisa_youth_voice.ogg" id="7_bvh45"]
|
||||
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="7_uqngm"]
|
||||
[ext_resource type="AudioStream" uid="uid://dpyf2oc5vn30e" path="res://base-environments/youth_room/audio/jiu-jutsu.wav" id="9_uqngm"]
|
||||
[ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="10_bvh45"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="11_0qiyf"]
|
||||
[ext_resource type="AudioStream" uid="uid://dc0cd7dvod7wg" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Jui_Jutsu_deutsch_newt.wav" id="11_uqngm"]
|
||||
|
||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_vxads"]
|
||||
radius = 110.0
|
||||
|
|
@ -100,14 +100,14 @@ interpolation_mode = 2
|
|||
offsets = PackedFloat32Array(0, 0.0529197, 0.191606, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0.491329, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xxq8p"]
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_uqngm"]
|
||||
gradient = SubResource("Gradient_nyks3")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_cakyx"]
|
||||
_data = [Vector2(0, 0), 0.0, 3.16529, 0, 0, Vector2(0.241056, 0.191336), 0.132446, 0.132446, 0, 0, Vector2(1, 1), 3.94797, 0.0, 0, 0]
|
||||
point_count = 3
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_cg0w1"]
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_bvh45"]
|
||||
curve = SubResource("Curve_cakyx")
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jikd6"]
|
||||
|
|
@ -131,8 +131,8 @@ tangential_accel_max = 30.0
|
|||
attractor_interaction_enabled = false
|
||||
scale_min = 3.0
|
||||
scale_max = 5.0
|
||||
scale_curve = SubResource("CurveTexture_cg0w1")
|
||||
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
||||
scale_curve = SubResource("CurveTexture_bvh45")
|
||||
color_ramp = SubResource("GradientTexture1D_uqngm")
|
||||
turbulence_noise_strength = 0.1
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ytihj"]
|
||||
|
|
@ -209,46 +209,181 @@ tracks/5/keys = {
|
|||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("%StoryScroll:scroll_vertical")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_bgeog"]
|
||||
[sub_resource type="Animation" id="Animation_bvh45"]
|
||||
resource_name = "de"
|
||||
length = 94.0
|
||||
length = 203.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../../AnimationPlayer/Text")
|
||||
tracks/0/path = NodePath("%AnimationPlayer/Text")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_uqngm")
|
||||
"stream": ExtResource("11_uqngm")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.3)
|
||||
"times": PackedFloat32Array(2.73333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("../../..:progress")
|
||||
tracks/1/path = NodePath("../../..:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 6.13333, 7.43333, 13.5, 14.5667, 19.1333, 19.5333, 22.7333, 25.6333, 27.3333, 28.8, 32.7333, 34.8667, 36.6275, 37.7667, 46.2333, 47.5667, 49.4667, 50.8333, 54.6667, 56.3, 60.4667, 61.8333, 68.2028, 69.5667, 72.4, 74.5, 78.493, 80.2, 84.033, 85.3, 88.0997, 89.6667),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"times": PackedFloat32Array(0, 0.4),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0, 17.0]
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("../../..")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/path = NodePath("../../..:visible")
|
||||
tracks/2/interp = 0
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(13.3333, 24.7667, 49.7, 68.8667, 85.5, 91.3333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/3/type = "audio"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("%AnimationPlayer/Music")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("10_bvh45")
|
||||
}],
|
||||
"times": PackedFloat32Array(3)
|
||||
}
|
||||
tracks/3/use_blend = true
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:emitting")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 5.8, 11.3, 18.2, 26.1, 34.4, 43.7, 53.2, 65.1, 75.7, 93),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true, true, true, true, true, true, true, true, true, true]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:amount")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(4, 11.1, 18, 25.9, 34.2, 43.5, 53, 65, 75.6, 92.1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [1, 10, 20, 40, 80, 180, 160, 320, 400, 500]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../card/BackgroundSprite:noise_speed")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(2, 129.7, 149.1, 167.15),
|
||||
"transitions": PackedFloat32Array(0.482968, 1.86607, 1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 10.0, 5.0, 10.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:one_shot")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 93),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:lifetime")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(93, 129.9, 136.6, 164.8),
|
||||
"transitions": PackedFloat32Array(1, 0.31864, 2.21914, 1),
|
||||
"update": 0,
|
||||
"values": [5.0, 1.5, 4.0, 2.0]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:explosiveness")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(96.3, 129.9, 136.6, 159.5, 176.7),
|
||||
"transitions": PackedFloat32Array(1, 0.31864, 1, 0.406126, 1),
|
||||
"update": 0,
|
||||
"values": [0.29, 0.69, 0.74, 0.9, 0.2]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("../../card/BackgroundSprite/GPUParticles2D:speed_scale")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(105.6, 129.8, 150.5, 164.7),
|
||||
"transitions": PackedFloat32Array(1, 0.466516, 1, 1),
|
||||
"update": 0,
|
||||
"values": [1.0, 1.9, 0.4, 1.0]
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("../../card/BackgroundSprite:noise_power")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(8.4, 93.4, 129.7, 159.4, 169.4),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [5.0, 2.0, 0.3, 0.3, 1.5]
|
||||
}
|
||||
tracks/12/type = "method"
|
||||
tracks/12/imported = false
|
||||
tracks/12/enabled = true
|
||||
tracks/12/path = NodePath("../../..")
|
||||
tracks/12/interp = 1
|
||||
tracks/12/loop_wrap = true
|
||||
tracks/12/keys = {
|
||||
"times": PackedFloat32Array(34.7667, 73, 105.467, 143.633, 163.167, 178.233, 202.067),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
|
|
@ -263,71 +398,38 @@ tracks/2/keys = {
|
|||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_emit_thunder"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("..:custom_minimum_size")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.7),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
tracks/13/type = "value"
|
||||
tracks/13/imported = false
|
||||
tracks/13/enabled = true
|
||||
tracks/13/path = NodePath("../../..:progress")
|
||||
tracks/13/interp = 1
|
||||
tracks/13/loop_wrap = true
|
||||
tracks/13/keys = {
|
||||
"times": PackedFloat32Array(0.733333, 6.53333, 8.36667, 12.993, 14.7333, 21.3667, 22.8, 32.9333, 35.1667, 41.8461, 43.5, 47.0086, 48.6, 53.2, 54.7667, 64.6474, 66.5667, 72.5333, 74.6, 79.2373, 81, 87.943, 89.8, 94.643, 95.7, 101.345, 103, 104.867, 106.967, 110.867, 113.167, 116.149, 117.4, 118.821, 120.033, 125.029, 126.533, 130.992, 133.333, 141.633, 144.267, 147.767, 149.6, 154.5, 156.433, 161.767, 162.867, 163.933, 165.1, 166.967, 167.6, 169.382, 170.033, 172.833, 177.133, 180.167, 187.62, 188.933, 192.453, 193.433, 201.633),
|
||||
"transitions": PackedFloat32Array(0.450625, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(900, 800), Vector2(900, 900)]
|
||||
"values": [0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0, 17.0, 18.0, 18.0, 19.0, 19.0, 20.0, 20.0, 21.0, 21.0, 22.0, 22.0, 23.0, 23.0, 24.0, 24.0, 25.0, 25.0, 26.0, 26.0, 27.0, 28.0, 28.0, 29.0, 29.0, 30.0, 30.0, 31.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:rotation")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 1.8),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
tracks/14/type = "value"
|
||||
tracks/14/imported = false
|
||||
tracks/14/enabled = true
|
||||
tracks/14/path = NodePath(".:rotation")
|
||||
tracks/14/interp = 1
|
||||
tracks/14/loop_wrap = true
|
||||
tracks/14/keys = {
|
||||
"times": PackedFloat32Array(0.214991, 1.03196),
|
||||
"transitions": PackedFloat32Array(0.297302, 1),
|
||||
"update": 0,
|
||||
"values": [0.174533, 0.349066]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../..:modulate")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0, 0.733333),
|
||||
"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),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../../..:modulate")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
"values": [0.15708, 0.349066]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_nmo1t"]
|
||||
|
|
@ -705,7 +807,7 @@ tracks/2/keys = {
|
|||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dc6th"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ytihj"),
|
||||
&"de": SubResource("Animation_bgeog"),
|
||||
&"de": SubResource("Animation_bvh45"),
|
||||
&"en": SubResource("Animation_nmo1t"),
|
||||
&"en_old": SubResource("Animation_7qabw"),
|
||||
&"vanish": SubResource("Animation_x0d5q")
|
||||
|
|
@ -768,7 +870,6 @@ layout_mode = 2
|
|||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 2
|
||||
mouse_filter = 2
|
||||
scroll_vertical = 100
|
||||
horizontal_scroll_mode = 0
|
||||
vertical_scroll_mode = 3
|
||||
|
||||
|
|
@ -810,6 +911,7 @@ shape = SubResource("CapsuleShape2D_vxads")
|
|||
clip_children = 2
|
||||
scale = Vector2(0.6, 0.6)
|
||||
sprite_frames = SubResource("SpriteFrames_liwtr")
|
||||
frame = 2
|
||||
script = SubResource("GDScript_80sa6")
|
||||
noise_power = 1.5
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ var max_lines: float = 0
|
|||
story_array = str_array
|
||||
if is_node_ready():
|
||||
substring_sizes = []
|
||||
if Engine.is_editor_hint():
|
||||
TranslationServer.set_locale("en")
|
||||
var p: int = 0
|
||||
label.text = "[p]"
|
||||
for i in range(str_array.size()):
|
||||
|
|
@ -89,7 +87,7 @@ func _ready() -> void:
|
|||
skip_control.skip.connect(skip_text)
|
||||
|
||||
if get_tree().root.get_child(-1) == self:
|
||||
TranslationServer.set_locale("de")
|
||||
TranslationServer.set_locale("en")
|
||||
play_scene()
|
||||
story_array = story_array
|
||||
progress = progress
|
||||
|
|
@ -115,15 +113,18 @@ func try_scroll():
|
|||
scroll_target = forward_target
|
||||
|
||||
func play_scene():
|
||||
scroll_target = 0
|
||||
|
||||
# FIXME: find out why this needs to be set to prevent scenes from being fully revealed
|
||||
all_text_revealed = false
|
||||
animation_complete = false
|
||||
##FIXME match State.speech_language:
|
||||
match TranslationServer.get_locale():
|
||||
"de":
|
||||
animation_player.queue("en")
|
||||
"en":
|
||||
|
||||
match State.speech_language:
|
||||
2:
|
||||
animation_player.queue("de")
|
||||
_:
|
||||
animation_player.queue("en")
|
||||
|
||||
|
||||
await text_finished
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=18 format=3 uid="uid://cj1ccdk0686ke"]
|
||||
[gd_scene load_steps=19 format=3 uid="uid://cj1ccdk0686ke"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_543ki"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_ho85h"]
|
||||
|
|
@ -6,8 +6,8 @@
|
|||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="4_ayw8a"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://byjfgvx7jeal" path="res://base-environments/youth_room/import/youth_special_meshes_comic_book_2.res" id="4_kn83e"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="5_b3y80"]
|
||||
[ext_resource type="AudioStream" uid="uid://b3cw0e41rjggo" path="res://base-environments/youth_room/audio/childhood_de.wav" id="6_ya787"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="8_ho85h"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="8_kn83e"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="9_kn83e"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_ho85h"]
|
||||
|
|
@ -147,9 +147,9 @@ tracks/9/keys = {
|
|||
"values": [Vector3(-0.0872665, -2.08043, 0.171042)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_bgeog"]
|
||||
[sub_resource type="Animation" id="Animation_ayw8a"]
|
||||
resource_name = "de"
|
||||
length = 94.0
|
||||
length = 86.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
|
|
@ -158,11 +158,11 @@ tracks/0/interp = 1
|
|||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"end_offset": 1.36178,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_ya787")
|
||||
"stream": ExtResource("8_kn83e")
|
||||
}],
|
||||
"times": PackedFloat32Array(1.3)
|
||||
"times": PackedFloat32Array(1.16667)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
|
|
@ -172,10 +172,10 @@ tracks/1/path = NodePath("../../..:progress")
|
|||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 1.66667, 6.13333, 7.43333, 13.5, 14.5667, 19.1333, 19.5333, 22.7333, 25.6333, 27.3333, 28.8, 32.7333, 34.8667, 36.6275, 37.7667, 46.2333, 47.5667, 49.4667, 50.8333, 54.6667, 56.3, 60.4667, 61.8333, 68.2028, 69.5667, 72.4, 74.5, 78.493, 80.2, 84.033, 85.3, 88.0997, 89.6667),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"times": PackedFloat32Array(0, 1.66667, 4.73332, 6.03333, 11.6, 12.4, 15.8333, 16.4333, 18.9334, 19.6333, 24.5333, 25.6, 29, 30.3667, 36.1333, 39.4, 40.8, 42.2333, 44.6333, 45.2667, 47.0333, 49.2333, 53.4333, 54.6333, 57.1333, 57.8333, 61.1333, 63.2667, 66.5667, 67.5, 72.4597, 74.5, 77.2667, 78.4667, 85.2),
|
||||
"transitions": PackedFloat32Array(1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 0.482968, 1, 1.23114, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.287175, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968, 0.482968),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0, 17.0]
|
||||
"values": [0.0, 0.0, 1.0, 1.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 6.0, 6.0, 7.0, 7.0, 8.0, 8.0, 9.0, 9.0, 10.0, 10.0, 11.0, 11.0, 12.0, 12.0, 13.0, 13.0, 14.0, 14.0, 15.0, 15.0, 16.0, 16.0, 17.0]
|
||||
}
|
||||
tracks/2/type = "method"
|
||||
tracks/2/imported = false
|
||||
|
|
@ -184,8 +184,8 @@ tracks/2/path = NodePath("../../..")
|
|||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(13.3333, 24.7667, 49.7, 68.8667, 85.5, 91.3333),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"times": PackedFloat32Array(24.8, 47.87, 61.7667, 74.0333, 85.2667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
|
|
@ -200,9 +200,6 @@ tracks/2/keys = {
|
|||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"try_scroll"
|
||||
}, {
|
||||
"args": [],
|
||||
"method": &"_on_text_finished"
|
||||
}]
|
||||
}
|
||||
|
|
@ -210,7 +207,7 @@ tracks/3/type = "value"
|
|||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("..:custom_minimum_size")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.7),
|
||||
|
|
@ -222,7 +219,7 @@ tracks/4/type = "value"
|
|||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath(".:rotation")
|
||||
tracks/4/interp = 2
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 1.8),
|
||||
|
|
@ -246,12 +243,12 @@ tracks/6/type = "value"
|
|||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("../../..:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/interp = 0
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"update": 0,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
|
|
@ -266,6 +263,54 @@ tracks/7/keys = {
|
|||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook1:position")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0.0497012, 1.46667),
|
||||
"transitions": PackedFloat32Array(0.406126, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.025, -0.211, 0.138), Vector3(-0.045, -0.111, 0.033)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook1:rotation")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0, 1.46667),
|
||||
"transitions": PackedFloat32Array(0.406126, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.280998, -2.77333, 0), Vector3(0.0855211, -1.65632, 0.0855211)]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook2:position")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(0, 1.43333),
|
||||
"transitions": PackedFloat32Array(0.353554, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.05, -0.21, -0.02), Vector3(0.02, -0.055, -0.02)]
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook2:rotation")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(0.0446739, 1.43333),
|
||||
"transitions": PackedFloat32Array(0.353554, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.0349066, -2.51327, -0.00174533), Vector3(-0.0872665, -2.08043, 0.171042)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7qabw"]
|
||||
resource_name = "en"
|
||||
|
|
@ -435,6 +480,130 @@ tracks/11/keys = {
|
|||
"values": [Vector3(0.0349066, -2.51327, -0.00174533), Vector3(-0.0872665, -2.08043, 0.171042)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_kn83e"]
|
||||
resource_name = "ini"
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../../..:progress")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [17.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("..:custom_minimum_size")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(900, 900)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath(".:rotation")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.349066]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("../..:modulate")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("../../..:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("../../..: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("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook1:position")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.045, -0.111, 0.033)]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook1:rotation")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.0855211, -1.65632, 0.0855211)]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook2:position")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.02, -0.055, -0.02)]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("../TextureRect/SubViewport/Node3D/YouthSpecialMeshesComicBook2:rotation")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(-0.0872665, -2.08043, 0.171042)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_x0d5q"]
|
||||
resource_name = "vanish"
|
||||
tracks/0/type = "value"
|
||||
|
|
@ -477,8 +646,9 @@ tracks/2/keys = {
|
|||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dc6th"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ytihj"),
|
||||
&"de": SubResource("Animation_bgeog"),
|
||||
&"de": SubResource("Animation_ayw8a"),
|
||||
&"en": SubResource("Animation_7qabw"),
|
||||
&"ini": SubResource("Animation_kn83e"),
|
||||
&"vanish": SubResource("Animation_x0d5q")
|
||||
}
|
||||
|
||||
|
|
@ -639,6 +809,7 @@ root_node = NodePath("../PanelContainer/StartFrame/Panel")
|
|||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_dc6th")
|
||||
}
|
||||
autoplay = "ini"
|
||||
|
||||
[node name="Text" type="AudioStreamPlayer" parent="AnimationPlayer"]
|
||||
mix_target = 2
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=112 format=4 uid="uid://b3b0gyvklqn50"]
|
||||
[gd_scene load_steps=114 format=4 uid="uid://b3b0gyvklqn50"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://belkrno67sft0" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
|
||||
|
|
@ -901,6 +901,9 @@ radius = 0.469631
|
|||
[sub_resource type="ViewportTexture" id="ViewportTexture_hdmps"]
|
||||
viewport_path = NodePath("logic/MindBoard/UiWrapper/UiSprite/SubViewport")
|
||||
|
||||
[sub_resource type="ViewportTexture" id="ViewportTexture_v3447"]
|
||||
viewport_path = NodePath("logic/Door/UiWrapper/UiSprite/SubViewport")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_xum02"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
|
|
@ -987,6 +990,129 @@ tracks/6/keys = {
|
|||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("WorldEnvironment/window_glass/SubViewport:render_target_update_mode")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [2]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("WorldEnvironment/window_glass:visible")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("visuals/vfx/lava-lamp:visible")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("visuals/lights/OmniLight3D4:light_energy")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.1]
|
||||
}
|
||||
tracks/11/type = "value"
|
||||
tracks/11/imported = false
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("visuals/lights:visible")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_v3447"]
|
||||
resource_name = "conserve_performance"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("WorldEnvironment/window_glass/SubViewport:render_target_update_mode")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("WorldEnvironment/window_glass:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("visuals/vfx/lava-lamp:visible")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("visuals/lights/OmniLight3D4:light_energy")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.1, 0.0]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("visuals/lights:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0.966667, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_3ms6b"]
|
||||
resource_name = "lighting_and_thunder"
|
||||
|
|
@ -1094,6 +1220,7 @@ tracks/7/keys = {
|
|||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vwrt1"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_xum02"),
|
||||
&"conserve_performance": SubResource("Animation_v3447"),
|
||||
&"lighting_and_thunder": SubResource("Animation_3ms6b")
|
||||
}
|
||||
|
||||
|
|
@ -1433,15 +1560,15 @@ func _process(delta):
|
|||
script/source = "extends Control
|
||||
|
||||
func show():
|
||||
visible = true
|
||||
var vis_tween = create_tween()
|
||||
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 1), 0.1)
|
||||
|
||||
visible = true
|
||||
var vis_tween = create_tween()
|
||||
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 1), 0.1)
|
||||
|
||||
func hide():
|
||||
var vis_tween = create_tween()
|
||||
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 0), 0.1)
|
||||
await vis_tween.finished
|
||||
visible = false
|
||||
var vis_tween = create_tween()
|
||||
vis_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 0), 0.1)
|
||||
await vis_tween.finished
|
||||
visible = false
|
||||
"
|
||||
|
||||
[node name="youth room" type="Node3D" groups=["serializable"]]
|
||||
|
|
@ -1754,6 +1881,7 @@ omni_range = 16.8518
|
|||
unique_name_in_owner = true
|
||||
transform = Transform3D(-0.863025, 0, 0.50516, 0, 1, 0, -0.50516, 0, -0.863025, 0.0754588, 0.948372, 2.42068)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/MaskMemento" instance=ExtResource("12_qxx2k")]
|
||||
|
|
@ -1789,6 +1917,7 @@ shape = SubResource("CapsuleShape3D_72g2i")
|
|||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 1.36586, 1.17096, -0.636599)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/ClothesMemento" instance=ExtResource("12_qxx2k")]
|
||||
|
|
@ -1827,6 +1956,7 @@ shape = SubResource("CapsuleShape3D_72g2i")
|
|||
unique_name_in_owner = true
|
||||
transform = Transform3D(0.969944, 0, 0.243327, 0, 1, 0, -0.243327, 0, 0.969944, 2.91664, 0.595014, -0.857358)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/ComicMemento" instance=ExtResource("12_qxx2k")]
|
||||
|
|
@ -1865,8 +1995,8 @@ shape = SubResource("CapsuleShape3D_72g2i")
|
|||
unique_name_in_owner = true
|
||||
process_mode = 4
|
||||
transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 0.122875, 4.03863, -0.132712)
|
||||
visible = false
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/CeilingMemento" instance=ExtResource("12_qxx2k")]
|
||||
|
|
@ -1904,6 +2034,7 @@ shape = SubResource("SphereShape3D_c7buh")
|
|||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37114e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37114e-08, -0.907206, 1.17661, 1.74337)
|
||||
collision_layer = 16
|
||||
collision_mask = 0
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/MindBoard" instance=ExtResource("12_qxx2k")]
|
||||
|
|
@ -1938,41 +2069,42 @@ is_board = true
|
|||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_72g2i")
|
||||
|
||||
[node name="DoorTrigger" type="Area3D" parent="logic" groups=["interactables"]]
|
||||
[node name="Door" type="Area3D" parent="logic" groups=["interactables"]]
|
||||
unique_name_in_owner = true
|
||||
process_mode = 4
|
||||
transform = Transform3D(-4.37114e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37114e-08, 0.09841, 1.17661, -0.865982)
|
||||
visible = false
|
||||
transform = Transform3D(0.999999, 0, 4.9738e-14, 0, 1, 0, -4.9738e-14, 0, 0.999999, 0.115203, 1.3931, -0.954428)
|
||||
collision_layer = 16
|
||||
script = ExtResource("11_6fwv8")
|
||||
|
||||
[node name="collectable_particles" parent="logic/DoorTrigger" instance=ExtResource("12_qxx2k")]
|
||||
[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/DoorTrigger"]
|
||||
[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)
|
||||
script = ExtResource("11_7uxd8")
|
||||
billboard = false
|
||||
|
||||
[node name="UI_click_collider" type="CollisionShape3D" parent="logic/DoorTrigger/UiWrapper"]
|
||||
[node name="UI_click_collider" type="CollisionShape3D" parent="logic/Door/UiWrapper"]
|
||||
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
|
||||
shape = SubResource("BoxShape3D_cb3g8")
|
||||
|
||||
[node name="UiSprite" type="Sprite3D" parent="logic/DoorTrigger/UiWrapper"]
|
||||
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
|
||||
[node name="UiSprite" type="Sprite3D" parent="logic/Door/UiWrapper"]
|
||||
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, -1.0693e-14, 0, 0.180784)
|
||||
modulate = Color(0.941183, 0.904347, 0.886647, 1)
|
||||
pixel_size = 0.015
|
||||
no_depth_test = true
|
||||
texture = SubResource("ViewportTexture_hdmps")
|
||||
texture = SubResource("ViewportTexture_v3447")
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="logic/DoorTrigger/UiWrapper/UiSprite"]
|
||||
[node name="SubViewport" type="SubViewport" parent="logic/Door/UiWrapper/UiSprite"]
|
||||
transparent_bg = true
|
||||
use_hdr_2d = true
|
||||
size = Vector2i(400, 350)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="CollectableUi" parent="logic/DoorTrigger/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||
[node name="CollectableUi" parent="logic/Door/UiWrapper/UiSprite/SubViewport" instance=ExtResource("25_ghmim")]
|
||||
scene = 4
|
||||
is_exit = true
|
||||
|
||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/DoorTrigger"]
|
||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Door"]
|
||||
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_72g2i")
|
||||
|
||||
|
|
@ -2011,32 +2143,32 @@ bus = &"outside-rain"
|
|||
|
||||
[node name="visuals" type="Node3D" parent="."]
|
||||
|
||||
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="visuals"]
|
||||
[node name="Shadow" type="CSGCombiner3D" parent="visuals"]
|
||||
cast_shadow = 3
|
||||
calculate_tangents = false
|
||||
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.34613, 1.23087, 2.97923)
|
||||
size = Vector3(5.26758, 2.69583, 0.137207)
|
||||
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D2" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.441227, 2.48778, 0.766643)
|
||||
size = Vector3(3.47876, 0.182022, 4.56238)
|
||||
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D6" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.21313, 1.23861, 0.766643)
|
||||
size = Vector3(0.170044, 2.68037, 4.56238)
|
||||
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D4" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 3.1589, 1.73312, 0.766643)
|
||||
size = Vector3(2.57013, 0.182022, 4.56238)
|
||||
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D5" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 3.09781, 1.7764, -0.332882)
|
||||
operation = 2
|
||||
size = Vector3(1.25306, 0.312046, 0.893661)
|
||||
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="visuals/CSGCombiner3D"]
|
||||
[node name="CSGBox3D3" type="CSGBox3D" parent="visuals/Shadow"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.977913, 1.52551, 2.97298)
|
||||
operation = 2
|
||||
calculate_tangents = false
|
||||
|
|
@ -2293,9 +2425,7 @@ light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.85
|
|||
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
|
||||
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
|
||||
[connection signal="board_completed" from="logic/UI/Board" to="logic/UI/ending_button" method="show"]
|
||||
[connection signal="emit_thunder" from="logic/ScenePlayer/JuiJutsu" to="AnimationPlayer" method="play" binds= ["lighting_and_thunder"]]
|
||||
[connection signal="finished" from="logic/ScenePlayer/draven" to="logic/ScenePlayer" method="on_draeven_done"]
|
||||
[connection signal="input_event" from="logic/MaskMemento/UiWrapper" to="logic/MaskMemento/UiWrapper" method="_on_input_event"]
|
||||
[connection signal="scene_skipped" from="logic/MaskMemento/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="on_scene_skipped"]
|
||||
[connection signal="input_event" from="logic/ClothesMemento/UiWrapper" to="logic/ClothesMemento/UiWrapper" method="_on_input_event"]
|
||||
|
|
@ -2306,4 +2436,5 @@ light_array = Array[Vector3]([Vector3(-0.545, 0.915, 1.035), Vector3(-0.47, 0.85
|
|||
[connection signal="scene_skipped" from="logic/CeilingMemento/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="on_scene_skipped"]
|
||||
[connection signal="input_event" from="logic/MindBoard/UiWrapper" to="logic/MindBoard/UiWrapper" method="_on_input_event"]
|
||||
[connection signal="open_board" from="logic/MindBoard/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="claim_focus"]
|
||||
[connection signal="input_event" from="logic/DoorTrigger/UiWrapper" to="logic/DoorTrigger/UiWrapper" method="_on_input_event"]
|
||||
[connection signal="input_event" from="logic/Door/UiWrapper" to="logic/Door/UiWrapper" method="_on_input_event"]
|
||||
[connection signal="open_board" from="logic/Door/UiWrapper/UiSprite/SubViewport/CollectableUi" to="logic/UI/Board" method="claim_focus"]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_resource type="AudioBusLayout" load_steps=7 format=3 uid="uid://djkwd76o033io"]
|
||||
[gd_resource type="AudioBusLayout" load_steps=10 format=3 uid="uid://djkwd76o033io"]
|
||||
|
||||
[sub_resource type="AudioEffectLowPassFilter" id="AudioEffectLowPassFilter_ijm2o"]
|
||||
resource_name = "LowPassFilter"
|
||||
|
|
@ -34,6 +34,28 @@ wet = 0.03
|
|||
resource_name = "LowPassFilter"
|
||||
resonance = 0.52
|
||||
|
||||
[sub_resource type="AudioEffectDelay" id="AudioEffectDelay_j3pel"]
|
||||
resource_name = "Delay"
|
||||
dry = 0.8
|
||||
tap1_delay_ms = 464.0
|
||||
tap2_delay_ms = 861.0
|
||||
|
||||
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_g28q7"]
|
||||
resource_name = "Reverb"
|
||||
room_size = 0.9
|
||||
damping = 0.63
|
||||
hipass = 0.1
|
||||
dry = 0.83
|
||||
wet = 0.14
|
||||
|
||||
[sub_resource type="AudioEffectDistortion" id="AudioEffectDistortion_j3pel"]
|
||||
resource_name = "Distortion"
|
||||
mode = 2
|
||||
pre_gain = 39.75
|
||||
keep_hf_hz = 6263.0
|
||||
drive = 0.44
|
||||
post_gain = -20.8
|
||||
|
||||
[resource]
|
||||
bus/0/effect/0/effect = SubResource("AudioEffectLowPassFilter_ijm2o")
|
||||
bus/0/effect/0/enabled = false
|
||||
|
|
@ -71,3 +93,15 @@ bus/4/volume_db = 1.25825
|
|||
bus/4/send = &"Master"
|
||||
bus/4/effect/0/effect = SubResource("AudioEffectLowPassFilter_5p17k")
|
||||
bus/4/effect/0/enabled = true
|
||||
bus/5/name = &"waves"
|
||||
bus/5/solo = false
|
||||
bus/5/mute = false
|
||||
bus/5/bypass_fx = false
|
||||
bus/5/volume_db = 0.0
|
||||
bus/5/send = &"sfx"
|
||||
bus/5/effect/0/effect = SubResource("AudioEffectDelay_j3pel")
|
||||
bus/5/effect/0/enabled = true
|
||||
bus/5/effect/1/effect = SubResource("AudioEffectReverb_g28q7")
|
||||
bus/5/effect/1/enabled = true
|
||||
bus/5/effect/2/effect = SubResource("AudioEffectDistortion_j3pel")
|
||||
bus/5/effect/2/enabled = true
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=29 format=3 uid="uid://cd63barv73rfx"]
|
||||
[gd_scene load_steps=36 format=3 uid="uid://cd63barv73rfx"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://d3ewjumh0b0g6" path="res://logic-scenes/main menu/logo.png" id="1_61qpo"]
|
||||
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="1_t34p3"]
|
||||
|
|
@ -10,21 +10,53 @@
|
|||
[ext_resource type="Texture2D" uid="uid://b0kuadlp4jw6j" path="res://addons/input_prompts/icons/keyboard/d.png" id="8_kj67n"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwhf0tx67yj7a" path="res://addons/input_prompts/icons/keyboard/s.png" id="9_xo70c"]
|
||||
[ext_resource type="Script" uid="uid://0h0lrkntx0uh" path="res://logic-scenes/main menu/pause_menu.gd" id="10_g425y"]
|
||||
[ext_resource type="PackedScene" uid="uid://u0bwjr5l6nkh" path="res://logic-scenes/main menu/privacy_settings.tscn" id="10_jirkf"]
|
||||
[ext_resource type="PackedScene" uid="uid://g2a27jwdapai" path="res://logic-scenes/card_burner/card_burner.tscn" id="10_kj67n"]
|
||||
[ext_resource type="Script" uid="uid://sa15wakvpj2e" path="res://dev-util/bug_button.gd" id="11_kj67n"]
|
||||
[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="13_xo70c"]
|
||||
[ext_resource type="AudioStream" uid="uid://cho5neuxkvpyh" path="res://base-environments/youth_room/audio/Voice Loop.wav" id="14_k41g6"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_t34p3"]
|
||||
script/source = "extends Node3D
|
||||
|
||||
var has_stage = false
|
||||
|
||||
var room = preload(\"res://base-environments/youth_room/youth_room.tscn\")
|
||||
var loaded_room: RoomTemplate
|
||||
|
||||
func _ready() -> void:
|
||||
State.take_stage(self)
|
||||
load_room()
|
||||
State.settings_initialised = true
|
||||
State.show_content_notes = false
|
||||
State.text_language = 1
|
||||
State.speech_language = 1
|
||||
$Menu/VBoxContainer2/PressStart.grab_focus()
|
||||
Scenes.sign_up_for_sequence(prepare_transition, Scenes.id.TRANSITION, 0)
|
||||
Scenes.sign_up_for_sequence(transition, Scenes.id.TRANSITION, 2)
|
||||
if OS.get_locale_language() == \"de\":
|
||||
$Menu/VBoxContainer/SpeechButton.select(1)
|
||||
|
||||
func prepare_transition(_id):
|
||||
await get_tree().process_frame
|
||||
Scenes.continue_sequence(self)
|
||||
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
loaded_room.prepare_transition()
|
||||
ResourceLoader.load_threaded_request(\"res://base-environments/transition/first_platform.tscn\")
|
||||
|
||||
func transition(_id, _repeat):
|
||||
#$TextureRect.texture = get_tree().root.get_texture()
|
||||
#$TextureRect.visible = true
|
||||
loaded_room.unload()
|
||||
var packed_second_room:PackedScene = ResourceLoader.load_threaded_get(\"res://base-environments/transition/first_platform.tscn\")
|
||||
loaded_room.queue_free()
|
||||
%Room.add_child(packed_second_room.instantiate())
|
||||
await get_tree().create_timer(15.5).timeout
|
||||
$AudioStreamPlayer/AnimationPlayer.play(\"ending\")
|
||||
$ending.show()
|
||||
$ending.mouse_filter = Control.MOUSE_FILTER_STOP
|
||||
%Room.get_child(0).queue_free()
|
||||
|
||||
func load_room():
|
||||
for child in %Room.get_children():
|
||||
|
|
@ -71,13 +103,16 @@ func _on_cn_box_toggled(toggled_on: bool) -> void:
|
|||
func _on_motion_box_toggled(toggled_on: bool) -> void:
|
||||
State.reduce_motion = toggled_on
|
||||
|
||||
func _on_option_button_item_selected(index: int) -> void:
|
||||
func _on_text_button_item_selected(index: int) -> void:
|
||||
match index:
|
||||
0:
|
||||
State.text_language = 1
|
||||
1:
|
||||
State.text_language = 2
|
||||
|
||||
func _on_speech_button_item_selected(index: int) -> void:
|
||||
State.speech_language = index + 1
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event is InputEvent and in_game:
|
||||
if event.is_action_pressed(\"ui_menu\"):
|
||||
|
|
@ -96,7 +131,7 @@ func toggle_pause_menu():
|
|||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
"
|
||||
|
||||
[sub_resource type="Shader" id="Shader_duh8f"]
|
||||
[sub_resource type="Shader" id="Shader_jirkf"]
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_premul_alpha;
|
||||
|
||||
|
|
@ -138,7 +173,7 @@ void fragment() {
|
|||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k41g6"]
|
||||
shader = SubResource("Shader_duh8f")
|
||||
shader = SubResource("Shader_jirkf")
|
||||
shader_parameter/nebula_brightness = 2.4
|
||||
shader_parameter/nebula_scale = Vector2(1.3, 1.6)
|
||||
shader_parameter/starlight_noise = ExtResource("1_t34p3")
|
||||
|
|
@ -148,56 +183,70 @@ shader_parameter/rotation_pivot = Vector2(0.8, 0.8)
|
|||
shader_parameter/drift_compensation = Vector2(0.1, -0.2)
|
||||
shader_parameter/noise_strength = 0.2
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_7nxov"]
|
||||
[sub_resource type="Gradient" id="Gradient_kt5p7"]
|
||||
interpolation_color_space = 2
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_jirkf"]
|
||||
gradient = SubResource("Gradient_7nxov")
|
||||
gradient = SubResource("Gradient_kt5p7")
|
||||
width = 2048
|
||||
height = 1536
|
||||
fill = 1
|
||||
fill_from = Vector2(0.538462, 0.491453)
|
||||
fill_to = Vector2(1.3, -0.3)
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_xo70c"]
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_jirkf"]
|
||||
device = -1
|
||||
physical_keycode = 87
|
||||
unicode = 119
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_k41g6"]
|
||||
device = -1
|
||||
axis = 1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_jirkf"]
|
||||
device = -1
|
||||
physical_keycode = 65
|
||||
unicode = 97
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_kt5p7"]
|
||||
device = -1
|
||||
axis = 1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_mivr6"]
|
||||
device = -1
|
||||
physical_keycode = 68
|
||||
unicode = 100
|
||||
physical_keycode = 65
|
||||
unicode = 97
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_52c3j"]
|
||||
device = -1
|
||||
axis_value = 1.0
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_b7q2n"]
|
||||
device = -1
|
||||
physical_keycode = 68
|
||||
unicode = 100
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_qhf78"]
|
||||
device = -1
|
||||
axis_value = 1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_gatj6"]
|
||||
device = -1
|
||||
physical_keycode = 83
|
||||
unicode = 115
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_qhf78"]
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_ol51q"]
|
||||
device = -1
|
||||
axis = 1
|
||||
axis_value = 1.0
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kt5p7"]
|
||||
bg_color = Color(0.0288289, 0.0448641, 0.121276, 1)
|
||||
border_width_left = 10
|
||||
border_width_top = 10
|
||||
border_width_right = 10
|
||||
border_width_bottom = 10
|
||||
border_color = Color(0.0288289, 0.0448641, 0.121276, 1)
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
expand_margin_left = 20.0
|
||||
expand_margin_right = 20.0
|
||||
|
||||
[sub_resource type="Shader" id="Shader_gatj6"]
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_premul_alpha;
|
||||
|
|
@ -262,6 +311,30 @@ fill = 1
|
|||
fill_from = Vector2(0.538462, 0.491453)
|
||||
fill_to = Vector2(1.3, -0.3)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_kt5p7"]
|
||||
resource_name = "ending"
|
||||
length = 120.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath(".")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 8.34472,
|
||||
"stream": ExtResource("14_k41g6")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.517639)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mivr6"]
|
||||
_data = {
|
||||
&"ending": SubResource("Animation_kt5p7")
|
||||
}
|
||||
|
||||
[node name="DemoMain" type="Node3D"]
|
||||
process_mode = 3
|
||||
script = SubResource("GDScript_t34p3")
|
||||
|
|
@ -290,9 +363,9 @@ grow_vertical = 2
|
|||
material = SubResource("ShaderMaterial_k41g6")
|
||||
layout_mode = 0
|
||||
offset_left = 2073.0
|
||||
offset_top = 1290.0
|
||||
offset_top = 1497.0
|
||||
offset_right = 4353.0
|
||||
offset_bottom = 3000.0
|
||||
offset_bottom = 3530.0
|
||||
rotation = -3.14159
|
||||
texture = SubResource("GradientTexture2D_jirkf")
|
||||
|
||||
|
|
@ -388,9 +461,23 @@ text = "reduce motion and flickering"
|
|||
[node name="Label2" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Text Language"
|
||||
text = "Written Text"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="Menu/VBoxContainer"]
|
||||
[node name="TextButton" type="OptionButton" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
selected = 0
|
||||
item_count = 2
|
||||
popup/item_0/text = "englisch"
|
||||
popup/item_0/id = 1
|
||||
popup/item_1/text = "deutsch"
|
||||
popup/item_1/id = 2
|
||||
|
||||
[node name="Label3" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Spoken Text"
|
||||
|
||||
[node name="SpeechButton" type="OptionButton" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
selected = 0
|
||||
item_count = 2
|
||||
|
|
@ -399,6 +486,10 @@ popup/item_0/id = 0
|
|||
popup/item_1/text = "deutsch"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="Button" type="Button" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Privacy Info"
|
||||
|
||||
[node name="Control" type="Control" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
|
|
@ -420,7 +511,7 @@ stretch_mode = 5
|
|||
script = ExtResource("5_6w5b4")
|
||||
action = "player_forwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_xo70c"), SubResource("InputEventJoypadMotion_k41g6")])
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_jirkf"), SubResource("InputEventJoypadMotion_kt5p7")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt2" type="TextureRect" parent="Menu/Control"]
|
||||
|
|
@ -435,7 +526,7 @@ stretch_mode = 5
|
|||
script = ExtResource("5_6w5b4")
|
||||
action = "player_left"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_jirkf"), SubResource("InputEventJoypadMotion_kt5p7")])
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_mivr6"), SubResource("InputEventJoypadMotion_52c3j")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt4" type="TextureRect" parent="Menu/Control"]
|
||||
|
|
@ -450,7 +541,7 @@ stretch_mode = 5
|
|||
script = ExtResource("5_6w5b4")
|
||||
action = "player_right"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_mivr6"), SubResource("InputEventJoypadMotion_52c3j")])
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_b7q2n"), SubResource("InputEventJoypadMotion_qhf78")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt3" type="TextureRect" parent="Menu/Control"]
|
||||
|
|
@ -465,7 +556,7 @@ stretch_mode = 5
|
|||
script = ExtResource("5_6w5b4")
|
||||
action = "player_backwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_b7q2n"), SubResource("InputEventJoypadMotion_qhf78")])
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_gatj6"), SubResource("InputEventJoypadMotion_ol51q")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/Control"]
|
||||
|
|
@ -477,6 +568,37 @@ offset_bottom = -40.0
|
|||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Move trough the room"
|
||||
|
||||
[node name="PrivacyPanel" type="PanelContainer" parent="Menu"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -701.5
|
||||
offset_top = -464.5
|
||||
offset_right = 701.5
|
||||
offset_bottom = 464.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_kt5p7")
|
||||
|
||||
[node name="PrivacyAndDataProtection" parent="Menu/PrivacyPanel" instance=ExtResource("10_jirkf")]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
visible = false
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="CardBurner" parent="." instance=ExtResource("10_kj67n")]
|
||||
visible = false
|
||||
|
||||
[node name="PauseContainer" type="CenterContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
|
|
@ -551,7 +673,21 @@ visible = false
|
|||
layout_mode = 2
|
||||
text = "Skip this Story"
|
||||
|
||||
[node name="ending" parent="." instance=ExtResource("13_xo70c")]
|
||||
visible = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="AudioStreamPlayer"]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_mivr6")
|
||||
}
|
||||
|
||||
[connection signal="pressed" from="Menu/VBoxContainer2/PressStart" to="." method="_on_start_button_pressed"]
|
||||
[connection signal="toggled" from="Menu/VBoxContainer/CNBox" to="." method="_on_cn_box_toggled"]
|
||||
[connection signal="toggled" from="Menu/VBoxContainer/MotionBox" to="." method="_on_motion_box_toggled"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/OptionButton" to="." method="_on_option_button_item_selected"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/TextButton" to="." method="_on_text_button_item_selected"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/SpeechButton" to="." method="_on_speech_button_item_selected"]
|
||||
[connection signal="pressed" from="Menu/VBoxContainer/Button" to="Menu/PrivacyPanel" method="show"]
|
||||
[connection signal="leave_stage" from="Menu/PrivacyPanel/PrivacyAndDataProtection" to="Menu/PrivacyPanel" method="hide"]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
[gd_scene load_steps=10 format=3 uid="uid://de1jhrkfs5qc6"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://clfshh25jwfm1" path="res://logic-scenes/card_burner/card_fire.material" id="1_5xkf6"]
|
||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_wi77g"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://j7e7me3hl6xt" path="res://logic-scenes/board/card-textures/card-sprites.tres" id="3_2ph0d"]
|
||||
[ext_resource type="PackedScene" uid="uid://bp6fd5lms3apa" path="res://logic-scenes/card_burner/card_sut.tscn" id="3_5xkf6"]
|
||||
[ext_resource type="PackedScene" uid="uid://uc6urpgv7n1y" path="res://logic-scenes/card_burner/cursor_candle.tscn" id="3_f606e"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_pt3n6"]
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_f606e"]
|
||||
gradient = SubResource("Gradient_pt3n6")
|
||||
width = 407
|
||||
height = 315
|
||||
fill = 1
|
||||
fill_from = Vector2(0.499433, 0.470085)
|
||||
fill_to = Vector2(0.23814, 0.858974)
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_2ph0d"]
|
||||
script/source = "@tool
|
||||
extends Sprite2D
|
||||
|
||||
var flame_progression: float = 0
|
||||
func _process(delta: float) -> void:
|
||||
flame_progression = fmod( flame_progression + delta*.2 , 2.0)
|
||||
material.set_shader_parameter(\"fire_progression\", flame_progression)
|
||||
$AnimatedSprite2D/Sprite2D.material.set_shader_parameter(\"fire_progression\", flame_progression)
|
||||
"
|
||||
|
||||
[sub_resource type="Environment" id="Environment_cfpbc"]
|
||||
background_mode = 3
|
||||
ambient_light_source = 2
|
||||
tonemap_mode = 2
|
||||
glow_enabled = true
|
||||
glow_intensity = 1.0
|
||||
glow_blend_mode = 1
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
offset_right = 1936.0
|
||||
offset_bottom = 1093.0
|
||||
color = Color(0.170168, 0.163934, 0.303063, 1)
|
||||
|
||||
[node name="Sprite2D2" type="Sprite2D" parent="."]
|
||||
material = ExtResource("1_5xkf6")
|
||||
position = Vector2(840, 622)
|
||||
scale = Vector2(1.54492, 1.69531)
|
||||
texture = SubResource("GradientTexture2D_f606e")
|
||||
script = SubResource("GDScript_2ph0d")
|
||||
|
||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Sprite2D2"]
|
||||
show_behind_parent = true
|
||||
clip_children = 2
|
||||
position = Vector2(-9.06201, -0.589877)
|
||||
scale = Vector2(0.647283, 0.589863)
|
||||
sprite_frames = ExtResource("3_2ph0d")
|
||||
|
||||
[node name="Node2D" parent="Sprite2D2/AnimatedSprite2D" instance=ExtResource("3_5xkf6")]
|
||||
material = null
|
||||
position = Vector2(6, -11)
|
||||
|
||||
[node name="CursorCandle" parent="." instance=ExtResource("3_f606e")]
|
||||
position = Vector2(1206, 675)
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_cfpbc")
|
||||
|
||||
[node name="card" parent="." instance=ExtResource("2_wi77g")]
|
||||
position = Vector2(2447, 467)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://d13scho6nihoo"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dotekvpr6rytk" path="res://base-environments/transition/import/subway_train.glb" id="1_nha1s"]
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="subway_train" parent="." instance=ExtResource("1_nha1s")]
|
||||
|
|
@ -7,9 +7,9 @@ static var source_dicts: Array[Dictionary] = [
|
|||
"c_confusion": ["p_inner_conflict", "p_outer_conflict", []]
|
||||
},
|
||||
{
|
||||
"c_homework": ["p_good_grades", "p_upset_peers", []],
|
||||
"c_homework": ["p_good_grades", "p_worried_mother", []],
|
||||
"c_teachers": ["p_volunteering", "p_becoming_teacher", []],
|
||||
"c_joy": ["p_worried_mother", "p_thomas_gifted", []]
|
||||
"c_gifted": ["p_upset_peers", "p_joy", []]
|
||||
},
|
||||
{
|
||||
"c_comic_heroes": ["p_effort", "p_agent_q", []],
|
||||
|
|
@ -27,6 +27,7 @@ static var id_reference: Dictionary[StringName, StringName] = generate_id_refere
|
|||
|
||||
static var card_id_reference: Dictionary[StringName, StringName] = generate_id_reference(true, false)
|
||||
static var sticky_id_reference: Dictionary[StringName, StringName] = generate_id_reference(false, true)
|
||||
static var obscure_reference: Dictionary[StringName, StringName] = generate_obscure_reference()
|
||||
|
||||
static func generate_id_reference(include_cards: bool, include_sticky: bool) -> Dictionary[StringName, StringName]:
|
||||
var out:Dictionary[StringName, StringName] = {}
|
||||
|
|
@ -42,6 +43,22 @@ static func generate_id_reference(include_cards: bool, include_sticky: bool) ->
|
|||
|
||||
return out
|
||||
|
||||
static func generate_obscure_reference():
|
||||
var out:Dictionary[StringName, StringName] = {}
|
||||
|
||||
randomize()
|
||||
var salt = randi_range(1111, 9999)
|
||||
|
||||
for id in range(source_dicts.size()):
|
||||
for card_name:String in source_dicts[id].keys():
|
||||
out[card_name] = StringName("%d.%d" % [id, card_name.hash() % salt ])
|
||||
|
||||
for sticky_name in source_dicts[id][card_name]:
|
||||
if sticky_name is String:
|
||||
out[sticky_name] = StringName("%d.%s.%s" % [id, card_name.hash() % salt, sticky_name.hash() % salt])
|
||||
|
||||
return out
|
||||
|
||||
|
||||
static func get_child_names_of(parent_id: StringName) -> Array[StringName]:
|
||||
var out: Array[StringName]
|
||||
|
|
@ -55,6 +72,12 @@ static func get_child_names_of(parent_id: StringName) -> Array[StringName]:
|
|||
static func get_children_of(parent_id: StringName) -> Array:
|
||||
return get_cards_by_name_array(get_child_names_of(parent_id))["sticky_notes"]
|
||||
|
||||
static func get_obscure_name(card_name: StringName):
|
||||
if State.obscure_logs and not OS.is_debug_build():
|
||||
return obscure_reference[card_name]
|
||||
else:
|
||||
return card_name
|
||||
|
||||
func arrange(cards: Array[Card], rect: Rect2, obstacles: Array[Area2D]) -> Array[Card]:
|
||||
var total_cards = cards.size()
|
||||
|
||||
|
|
|
|||
|
|
@ -20,3 +20,9 @@ func pull_save_state(save: SaveGame) -> void:
|
|||
func save_room():
|
||||
pull_save_state(save_game)
|
||||
save_game.save_to_file(get_tree().root.get_texture())
|
||||
|
||||
func prepare_transition():
|
||||
pass
|
||||
|
||||
func unload():
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -21,10 +21,11 @@ var _is_initialised: bool = false
|
|||
set(value):
|
||||
mementos_complete = value
|
||||
if _is_initialised: changed.emit()
|
||||
@export var board_state: Dictionary = {"cards": {}, "stickies": {}}:
|
||||
@export var board_state: Dictionary = {"cards": {}, "stickies": {}, "randoms": []}:
|
||||
set(value):
|
||||
board_state = value
|
||||
if _is_initialised: changed.emit()
|
||||
@export var is_childhood_board_complete: bool = false
|
||||
@export var thumbnail: Texture = preload("res://import/interface-elements/empty_save_slot.png"):
|
||||
set(value):
|
||||
thumbnail = value
|
||||
|
|
@ -84,6 +85,7 @@ func read_save_file():
|
|||
parsed["current_room"] is float and
|
||||
parsed["mementos_complete"] is float and
|
||||
parsed["board_state"] is Dictionary and
|
||||
parsed["is_childhood_board_complete"] is bool and
|
||||
parsed["last_saved"] is float and
|
||||
parsed["demo"] is bool and last_saved != 0
|
||||
)
|
||||
|
|
@ -100,15 +102,19 @@ func read_save_file():
|
|||
|
||||
var cards: Dictionary[StringName, Variant]
|
||||
var stickies: Dictionary[StringName, Variant]
|
||||
var randoms: Array[StringName]
|
||||
|
||||
for cardname:String in board_state["cards"]:
|
||||
cards[StringName(cardname)] = board_state["cards"][cardname]
|
||||
for sticky_name:String in board_state["stickies"]:
|
||||
stickies[StringName(sticky_name)] = board_state["stickies"][sticky_name]
|
||||
for random_name:StringName in board_state["randoms"]:
|
||||
randoms.append( board_state["randoms"][random_name] )
|
||||
|
||||
board_state = {
|
||||
"cards": cards,
|
||||
"stickies": stickies
|
||||
"stickies": stickies,
|
||||
"randoms": randoms
|
||||
}
|
||||
|
||||
is_valid = are_types_valid \
|
||||
|
|
@ -131,6 +137,7 @@ func _get_save_dict() -> Dictionary:
|
|||
"current_room": current_room,
|
||||
"mementos_complete": mementos_complete,
|
||||
"board_state": board_state,
|
||||
"is_childhood_board_complete": is_childhood_board_complete,
|
||||
"last_saved": last_saved,
|
||||
"is_demo": is_demo
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
extends Node
|
||||
|
||||
var has_initialized
|
||||
|
||||
func _ready() -> void:
|
||||
var initialize_response: Dictionary = Steam.steamInitEx()
|
||||
print("Did Steam initialize?: %s " % initialize_response)
|
||||
if State.disconnect_steam:
|
||||
Steam.steamShutdown()
|
||||
else:
|
||||
has_initialized = initialize_response["status"] == 0
|
||||
|
|
|
|||
|
|
@ -1,11 +1,24 @@
|
|||
class_name StereoSwitch extends AudioStreamPlayer
|
||||
|
||||
@export var alternate_streams: Dictionary[String, AudioStream]
|
||||
|
||||
var default_stream: AudioStream
|
||||
func _ready() -> void:
|
||||
State.settings_changed.connect(update_mix_target)
|
||||
update_mix_target()
|
||||
default_stream = stream
|
||||
|
||||
func update_mix_target():
|
||||
if State.force_stereo:
|
||||
if State.force_stereo or true:
|
||||
mix_target = AudioStreamPlayer.MIX_TARGET_STEREO
|
||||
else:
|
||||
mix_target = AudioStreamPlayer.MIX_TARGET_CENTER
|
||||
|
||||
|
||||
func play(from:float = 0.0) -> void:
|
||||
match State.speech_language:
|
||||
1: stream = default_stream
|
||||
2:
|
||||
if alternate_streams.keys().has("de"):
|
||||
stream = alternate_streams["de"]
|
||||
super.play(from)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -168,16 +168,16 @@ p_upset_peers,my peers were upset about that.,meine Klasse war deswegen sauer.,,
|
|||
c_teachers,"I like my teachers more than my classmates, ","Ich komm mit meinen Lehrern besser klar, als mit meiner Klasse, ",,,
|
||||
p_volunteering,doing voluntary social service at my school would be great.,vielleicht sollte ich ein FSJ vor dem Studium machen.,,,
|
||||
p_becoming_teacher,Maybe I want to become a teacher.,vielleicht sollte ich Lehrerin werden.,,,
|
||||
c_joy,"I can put ages into things I enjoy, ","Ich versinke in Dingen, die mir Freude machen,",,,
|
||||
c_gifted,Mr Thomas said that I was gifted,Herr Thomas sagt ich sei hochbegabt,,,
|
||||
p_worried_mother,my mother would be worried about that.,meiner Mutter macht das Sorgen.,,,
|
||||
p_thomas_gifted,Mr. Thomas thinks that makes me gifted.,Herr Thomas denkt das macht mich begabt.,,,
|
||||
p_joy,"I can put ages into things I enjoy, ","Ich versinke schnell in Dingen, die mir Freude machen.",,,
|
||||
c_comic_heroes,"Comic heroes are my role models, ","Comic Helden sind meine Vorbilder,",,,
|
||||
p_effort,"when I put in the effort, I can make the world a better place!","wenn ich mich nur anstrenge, kann ich die Welt verbessern!",,,
|
||||
p_agent_q,and I want to be like Agent Q!,"Ich will so sein, wie Agent Q!",,,
|
||||
c_boy_stuff,"I like boy stuff, ","Ich mag Jungs Kram,",,,
|
||||
p_pretending,yet they think I'm just pretending.,aber die denken ich tu einfach nur so.,,,
|
||||
p_girls,and girls don't get that.,und Mädchen verstehen das einfach nicht!,,,
|
||||
c_teasing,"When Jojo got bullied for trying, I pretty much exploded","Ich bin ausgerastet, weil Jojo für ihre Mühe gemobbt wurde,",,,
|
||||
c_teasing,"When my friend got teased, I lashed out to defend them","Ich verteidige mit vollem Elan Freund*innen, die geärgert werden",,,
|
||||
p_stubborn,"I wouldn't have it any other way, even if it was for my own good.","das würde ich nicht aufgeben, selbst wenn es mir helfen würde.",,,
|
||||
p_good_intended,I will always stand up for the good intended!,"ich werde immer für Menschen einstehen, die das Richtige wollen!",,,
|
||||
c_jui_jutsu,"I stopped doing jiu-jitsu, ","Ich habe mit Jiu Jitsu aufgehört,",,,
|
||||
|
|
@ -190,7 +190,7 @@ p_vent,and that's a great vent.,ich kann da gut Frust ablassen.,,,
|
|||
p_wet,"I was wet, so I must have been into it?","Ich war feucht, also hab ich es wohl gewollt?",,,This line on itself should seem like a intrusive thought on it’s own without the contect above.
|
||||
"Lukas jumped me, he didn't even explain a thing or ask consent. I was confused and paralised, so ","Lukas jumped me, he didn't even explain a thing or ask consent. I was confused and paralised, so ","Lukas hat mich überrumpelt, er hat nichts erklärt oder überhaupt gefragt, was ich wollte. Ich war im Moment nicht mehr ich selbst und",,,It is very crucial that this sentence and the next line form a complete sentence
|
||||
p_stop,I didn’t say stop.,Ich habe nicht Stopp gesagt.,,,This line on itself should seem like a intrusive thought on it’s own without the contect above.
|
||||
c_out_of_world,"I feel like I am not from of this world, ","Ich fühl mich wie von einer anderen Welt,",,,
|
||||
c_out_of_world,"I feel like I am not of this world, ","Ich fühl mich wie von einer anderen Welt,",,,
|
||||
p_unique,I like being unique like that.,ich mag es so besonders zu sein.,,,
|
||||
p_few_friends,I am thankful for the few friends that get me.,"gut, dass ich ein paar Freunde habe, die das verstehen.",,,
|
||||
c_rejection,"I fear being rejected, ","Ich habe Angst, ausgeschlossen zu werden,",,,
|
||||
|
|
@ -199,95 +199,95 @@ p_laughed_at,I'm afraid I will just get laughed at?,"was, wenn ich deswegen ausg
|
|||
c_confusion,"I am just too many things at once, ","Ich bin zu vieles gleichzeitig, ",,,
|
||||
p_inner_conflict,it is just so overwhealming for me.,das ist einfach überfordernd für mich.,,,
|
||||
p_outer_conflict,this is just too much for others.,das ist einfach überfordernd für andere.,,,
|
||||
"Oh, my old mask. I have so many good memories about theatre club. ","Oh, my old mask. I have so many good memories about theatre club.","Nahw, meine gute alte Maske. Ich habe so schöne Erinnerungen an die Theater-AG. ",,,
|
||||
"I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... ","I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... ","Ich hab den ganzen Nachmittag geübt, wochenlang. Mein Bett eine große Bühne. ",,,
|
||||
"my mom would get mad at me, when she had to call me three or four times for dinner. ","my mom would get mad at me, when she had to call me three or four times for dinner. ","Es gab so oft Zoff, weil mich meine Mutter immer wieder zum Essen rufen musste.",,,
|
||||
I just … didn't like the interruptions. We both were often mad at each other.,I just … didn't like the interruptions. We both were often mad at each other.,Ich konnte die Unterbrechungen einfach nicht ab. Wir haben uns so oft deswegen gestritten.,,,
|
||||
Dinner was difficult.,Dinner was difficult.,Abendbrot war die Hölle.,,,
|
||||
"I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom.","I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom.","Ich weiß nicht, was mich mehr gestört hat: das Brot oder Mom.",,,
|
||||
She was always so worried.,She was always so worried:,Sie war immer besorgt.,,,
|
||||
" ‘Lisa, you forgot your homework, Lisa why won't you play with the other girls,""","‘Lisa, you forgot your homework, Lisa why won't you play with the other girls, ","“Lisa, deine Hausaufgaben!, Lisa, warum warst du heute nicht bei den Mädels draußen?, ",,,
|
||||
"""Lisa why didn't Steffi invite you to her birthday, Lisa this, Lisa that.’","Lisa why didn't Steffi invite you to her birthday, Lisa this, Lisa that.’","Lisa, warum hat dich Steffi nicht eingeladen?, Lisa dies, Lisa das.”",,,
|
||||
But I was fine! She just wouldn't listen.,But I was fine! She just wouldn't listen.,"Mir ging gut, okay? Als ob sie das je interessiert hätte.",,,
|
||||
"Yes, I didn't do homework, but my teachers didn't mind it as much with me ","Yes, I didn't do homework, but my teachers didn't mind it as much with me ","Natürlich habe ich keine Hausaufgaben gemacht, aber das hat in der Schule bei mir auch niemand' interessiert, ",,,
|
||||
- which the other kids wouldn't shut up about. But like …,", which the other kids wouldn't shut up about. But like … ","außer meine Klasse vielleicht, aber wer interessiert sich schon für die? ",,,
|
||||
they also made fun of me reading school books and talking to my teachers during breaks.,they also made fun of me reading school books and talking to my teachers during breaks.,"Vielleicht hätten die auch mal ein Buch in die Hand nehmen sollen statt sich darüber zu zerreißen, dass ich in der Pause lieber mit den Erwachsenen geredet habe. ",,,
|
||||
But at least I could fucking talk to teachers and they had stuff to say.,But at least I could fucking talk to teachers and they had stuff to say.,Immerhin konnte man mit denen reden und die haben auch was erzählt.,,,
|
||||
Mr Thomas probably even understood me better than my own mom.,Mr Thomas probably even understood me better than my own mom.,"Herr Thomas hat mich vermutlich besser verstanden, als meine eigene Mutter.",,,
|
||||
He said I was gifted. He said I just didn't need homework for good grades.,He said I was gifted. He said I just didn't need homework for good grades.,"Er hat immer gesagt ich bin begabt, weil ich gute Noten auch ohne Hausaufgaben geschafft habe.",,,
|
||||
And he also made sure to always include extra credits. So my silly slip-ups wouldn't get me a B.,And he also made sure to always include extra credits. So my silly slip-ups wouldn't get me a B.,"Und er hat immer Fleißaufgaben gehabt, damit ich auch mit Schusselfehlern eine Eins bekomme.",,,
|
||||
Moonlight trickled down through clouds and twigs as Dräven tapped through the night.,Moonlight trickled down through clouds and twigs as Dräven tapped through the night.,"Das Mondlicht spielte mit Wolken und Geäst, da lief Dräven durch die Nacht. ",,,
|
||||
He had been searching for a while and he knew a special someone must be hiding in the thicket.,He had been searching for a while and he knew a special someone must be hiding in the thicket.,"Lang schon suchte er vergeblich, doch war er sich heute gewiss: jemand ganz besonderes hält sich zwischen Farnen und Gestrüpp versteckt.",,,
|
||||
"When a familiar smell first led him to a few bronce hairs as fluffy as his tail, he didn't think much of it.","When a familiar smell first led him to a few bronce hairs as fluffy as his tail, he didn't think much of it. ","Er dachte sich nichts dabei, als ihn neulich ein vertrauter Geruch zu einem Büschel Haare führte: Bronzen und so weich, wie sein eig'ner Schweif. ",,,
|
||||
"But then he saw paw-prints, that matched his own where he had not been. Would he finally find someone of his kind?","But then he saw paw-prints, that matched his own where he had not been. Would he finally find someone of his kind?","Doch dann Spuren, die den seinen glichen, wo er noch nicht gewesen war. Würde er endlich seinesgleichen finden?",,,
|
||||
"He was sure of it, as the familiar scent has never been stronger than tonight.","He was sure of it, as the familiar scent has never been stronger than tonight.","Bestimmt, denn der vertraute Duft war heute Nacht so stark, wie nie..",,,
|
||||
When suddenly: Was that chatter?,When suddenly: Was that chatter?,Plötzlich: war das Keckern?,,,
|
||||
His wings rustled with joy over the familiar voice and Dräven decided to get a better look.,His wings rustled with joy over the familiar voice and Dräven decided to get a better look.,Seine Flügel raschelten vor Freude über die vertraute Stimme und Drävens Neugier war geweckt.,,,
|
||||
"A few flaps and leaps brought him up a tree, to get a glimpse of his soon to be friend.","A few flaps and leaps brought him up a tree, to get a glimpse of his soon to be friend.","Flatternd sprang er in Wipfel, um einen Blick auf seinen baldigen Freund zu erhaschen.",,,
|
||||
But all he saw was a fox.,But all he saw was a fox.,Doch er sah nichts als einen Fuchs.,,,
|
||||
He didn't even want to bother it anymore.,He didn't even want to bother it anymore.,Er wollte sich dem Tier nicht einmal mehr nähern.,,,
|
||||
"It would just scream and laugh at his wings of leafs, just like the trees crackled at his paws, that were no roots.","It would just scream and laugh at his wings of leafs, just like the trees crackled at his paws, that were no roots. ","Es würde eh nur Kreischen vor Lachen über seine Flügel aus Blättern. Genau wie die Bäume sich geschüttelt haben über seine Pfoten, die keine Wurzeln sind. ",,,
|
||||
"With a small whimper, Dräven spread his wings, and slid away to at least find comfort by seeing his reflection in the nearby lake.","With a small whimper, Dräven spread his wings, and slid away to at least find comfort by seeing his reflection in the nearby lake.",Wimmernd schlug Dräven seine Flügel auf und glitt davon zu seinem Lieblingsplatz am See. Vielleicht vermochte ihn sein Spiegelbild zu trösten.,,,
|
||||
"Oh, my old mask. I have so many good memories about theatre club. ","Oh, my old mask. I have so many good memories about theatre club. ","Nahw, meine gute alte Maske. Ich habe so schöne Erinnerungen an die Theater-AG. ",,,
|
||||
"I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage ... ","I would stand on my bed for entire afternoons, weeks on end, practicing my lines. Pretending to be on the big stage … ","Ich hab den ganzen Nachmittag geübt, wochenlang. Mein Bett eine große Bühne … ",,,
|
||||
"my mom would get mad at me, when she had to call me three or four times for dinner. ",The way my mom would call me down over and over for dinner was just -,"Es gab so oft Zoff, weil mich meine Mutter immer wieder zum Essen rufen musste. ",,,
|
||||
I just … didn't like the interruptions. We both were often mad at each other.,I did not like the interruptions. We would get so mad at each other. ,Ich konnte die Unterbrechungen einfach nicht ab. Wir haben uns so oft deswegen gestritten. ,,,
|
||||
Dinner was difficult.,Dinner was difficult. ,Abendbrot war die Hölle. ,,,
|
||||
"I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom.","I just couldn't bring myself to eat, because I couldn't deal with the bread and my mom. ","Ich weiß nicht, was mich mehr gestört hat: das Brot oder Mom. ",,,
|
||||
She was always so worried.,She was always so worried: ,Sie war immer besorgt. ,,,
|
||||
" ‘Lisa, you forgot your homework, Lisa why won't you play with the other girls,""","‘Lisa, you forgot your homework! Lisa why won't you play with the other girls? ","“Lisa, deine Hausaufgaben! Lisa, warum warst du heute nicht bei den Mädels draußen? ",,,
|
||||
"""Lisa why didn't Steffi invite you to her birthday, Lisa this, Lisa that.’",Lisa why didn't Steffi invite you to her birthday? Lisa this.Lisa that.’ ,"Lisa, warum hat dich Steffi nicht eingeladen? Lisa dies. Lisa das.” ",,,
|
||||
But I was fine! She just wouldn't listen.,But I was fine! She just wouldn't listen. ,"Mir ging es gut, okay? Als ob sie das je interessiert hätte. ",,,
|
||||
"Yes, I didn't do homework, but my teachers didn't mind it as much with me ","Yes, I didn't do homework, but my teachers didn't mind it as much with me, ","Natürlich habe ich keine Hausaufgaben gemacht, aber das hat in der Schule bei mir auch niemand' interessiert, ",,,
|
||||
- which the other kids wouldn't shut up about. But like …,which the other kids wouldn't shut up about. But like…,"außer meine Klasse vielleicht, aber wer interessiert sich schon für die? ",,,
|
||||
they also made fun of me reading school books and talking to my teachers during breaks.,they also made fun of me reading school books and talking to my teachers during breaks. ,"Vielleicht hätten die auch mal ein Buch in die Hand nehmen sollen, statt sich darüber zu zerreißen, dass ich in der Pause lieber mit den Erwachsenen geredet habe. ",,,
|
||||
But at least I could fucking talk to teachers and they had stuff to say.,But at least I could fucking talk to teachers and they had stuff to say. ,Immerhin konnte man mit denen reden und die haben auch was erzählt. ,,,
|
||||
Mr Thomas probably even understood me better than my own mom.,Mr. Thomas probably even understood me better than my own mom. ,Herr Thomas hat mich vermutlich besser verstanden als meine eigene Mutter. ,,,
|
||||
He said I was gifted. He said I just didn't need homework for good grades.,He said I was gifted. He said I just didn't need homework for good grades. ,"Er hat immer gesagt, ich bin begabt, weil ich gute Noten auch ohne Hausaufgaben geschafft habe. ",,,
|
||||
And he also made sure to always include extra credits. So my silly slip-ups wouldn't get me a B.,And he also always made sure to include extra credits. So my silly slip-ups wouldn't get me a B.,"Und er hat immer Fleißaufgaben gehabt, damit ich auch mit Schusselfehlern eine Eins bekomme. ",,,
|
||||
Moonlight trickled down through clouds and twigs as Dräven tapped through the night.,Moonlight trickled down through clouds and twigs as Dräven tapped through the night. ,"Das Mondlicht spielte mit Wolken und Geäst, da lief Dräven durch die Nacht. ",,,
|
||||
He had been searching for a while and he knew a special someone must be hiding in the thicket.,"He had been searching for a while, and he knew a special someone must be hiding in the thicket. ","Lange schon suchte er vergeblich, doch war er sich heute gewiss: jemand ganz besonderes hält sich zwischen Farnen und Gestrüpp versteckt. ",,,
|
||||
"When a familiar smell first led him to a few bronce hairs as fluffy as his tail, he didn't think much of it.","When a familiar smell first led him to a few bronze hairs as fluffy as his tail, he didn't think much of it. ","Er dachte sich nichts dabei, als ihn neulich ein vertrauter Geruch zu einem Büschel Haare führte: Bronzen und so weich, wie sein eigener Schweif. ",,,
|
||||
"But then he saw paw-prints, that matched his own where he had not been. Would he finally find someone of his kind?","But then he saw paw prints, that matched his own where he had not been. Would he finally find someone of his kind? ","Doch dann Spuren, die den seinen glichen, wo er noch nicht gewesen war. Würde er endlich seinesgleichen finden? ",,,
|
||||
"He was sure of it, as the familiar scent has never been stronger than tonight.","He was sure of it, as the familiar scent has never been stronger than tonight. ","Bestimmt, denn der vertraute Duft war heute Nacht so stark wie nie. ",,,
|
||||
When suddenly: Was that chatter?,When suddenly: Was that chatter? ,Plötzlich: War das Keckern? ,,,
|
||||
His wings rustled with joy over the familiar voice and Dräven decided to get a better look.,His wings rustled with joy over the familiar voice and Dräven decided to get a better look. ,Seine Flügel raschelten vor Freude über die vertraute Stimme und Drävens Neugier war geweckt. ,,,
|
||||
"A few flaps and leaps brought him up a tree, to get a glimpse of his soon to be friend.","A few flaps and leaps brought him up a tree, to get a glimpse of his soon to be friend. ","Flatternd sprang er in Wipfel, um einen Blick auf seinen baldigen Freund zu erhaschen. ",,,
|
||||
But all he saw was a fox.,But all he saw was a fox. ,Doch er sah nichts als einen Fuchs. ,,,
|
||||
He didn't even want to bother it anymore.,He didn't even want to bother it anymore. ,Er wollte sich dem Tier nicht einmal mehr nähern. ,,,
|
||||
"It would just scream and laugh at his wings of leafs, just like the trees crackled at his paws, that were no roots.","It would just scream and laugh at his wings of leaves, just like the trees crackled at his paws, that were no roots. ","Es würde eh nur Kreischen vor Lachen über seine Flügel aus Blättern. Genau wie die Bäume sich geschüttelt haben über seine Pfoten, die keine Wurzeln sind. ",,,
|
||||
"With a small whimper, Dräven spread his wings, and slid away to at least find comfort by seeing his reflection in the nearby lake.","With a small whimper, Dräven spread his wings, and slid away to at least find comfort by seeing his reflection in the nearby lake. ",Wimmernd schlug Dräven seine Flügel auf und glitt davon zu seinem Lieblingsplatz am See. Vielleicht vermochte ihn sein Spiegelbild zu trösten. ,,,
|
||||
"It took him a while to notice, how there was a sudden silence when the clouds broke: ","It took him a while to notice, how there was a sudden silence when the clouds broke: ","Dräven hätte fast nicht gemerkt, wie der Wald den Atem anhielt, als sich die Wolken teilten. ",,,
|
||||
"Northern lights danced through the sky to form wings, that met at a sleek body made of stars and clouds.","Northern lights danced through the sky to form wings, that met at a sleek body made of stars and clouds.",Nordlicht tanzte durch den Himmel und wurde zu Flügeln an einem schlanken Körper aus Sternenlicht und Wolken.,,,
|
||||
The whole forest held its breath as it stared into eyes of moonlight gazing down.,The whole forest held its breath as it stared into eyes of moonlight gazing down.,"Der ganze Wald sah ehrfürchtig zu Augen aus Mondlicht hinauf, die verträumt den Blick erwiderten. ",,,
|
||||
Dräven was moved to tears when he gazed back at it. He was sad for the dragon that was of the moon and the stars and the skies.,Dräven was moved to tears when he gazed back at it. He was sad for the dragon that was of the moon and the stars and the skies.,"Dräven war zu Tränen gerührt, als er in hinauf sah. Voller Trauer um dem Drachen, der von Wolken, Sternen und Mondlicht war. ",,,
|
||||
It must feel so lost in the universe.,It must feel so lost in the universe.,Er muss sich so verloren fühlen am Himmel.,,,
|
||||
But his tears were of joy: It was the first time Dräven saw another creature of many kinds.,But his tears were of joy: It was the first time Dräven saw another creature of many kinds.,"Doch es waren Tränen der Freude. Denn es war das erste mal, dass Dräven ein anderes Viel-Wesen sah.",,,
|
||||
Why do i still have this junk lying around? its not like I want to do ju jutsu ever again. I just fucked it.,Why do i still have this junk lying around? its not like I want to do ju jutsu ever again. I just fucked it.,"Boar, warum hängt hier noch dieser Müll? Ich hab Jiu Jutsu einfach verkackt.",,,
|
||||
I mean I did enjoy it while it lasted. Being able to properly hit people was great.,I mean I did enjoy it while it lasted. Being able to properly hit people was great.,Ich meine … ich hatte Spaß damals. Leute gut Schlagen können ist großartig.,,,
|
||||
"It gave me the confidence to intimidate students, that were begging to get folded and - as I only once actually got to do that - it also was a great vent for anger. ","It gave me the confidence to intimidate students, that were begging to get folded and - as I only once actually got to do that - it also was a great vent for anger.","Es gab mir Selbstvertrauen. Ich konnte Leute einschüchtern, wenn sie darum gebettelt haben aufs Maul zu bekommen und weil ich das nur einmal tatsächlich getan habe, war es auch ein super Ventil.",,,
|
||||
I mean my tits just about killed me during warmup and the changing room really didn't need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas.,I mean my tits just about killed me during warmup and the changing room really didn't need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas.,"Ich meine … meine Titten waren die Hölle beim aufwärmen und die Umkleide hat wirklich keinen Spiegel gebraucht. Vielen Dank, ich brauche keine Erinnerung an meinen fetten Arsch. Aber wenigstens hatte ich Lukas.",,,
|
||||
He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion.,He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion.,Er war so ein Nerd. Er konnte so gut reden. Über Mathe. Er war in seinem dritten Semester und konnte stundenlang erzählen.,,,
|
||||
Also: my math grades pretty much leaped for my final year in high school thanks to him.,Also: my math grades pretty much leaped for my final year in high school thanks to him.,Und ich glaube mein Mathe-Abi war bestimmt drei Punkte besser durch ihn.,,,
|
||||
"He also helped me so much with jiu jitsu, as he properly floored me when I slipped up. ","He also helped me so much with jiu jitsu, as he properly floored me when I slipped up.","Und ach bei Jui Jutsu … es hat mir so sehr geholfen, dass er mich einfach anständig hingelegt hat, wenn ich gefailed habe.",,,
|
||||
Also - unlike everyone else - he understood that I didn't want people to mind my chest.,Also - unlike everyone else - he understood that I didn't want people to mind my chest.,"Und er war der einzige, der wirklich verstanden hat, dass mir egal war, ob Leute mir an die Brüste kommen.",,,
|
||||
So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.,So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.,"Mit ihm war Kämpfen so gut – auch wenn ich üblicherweise diejenige war, die abschlagen musste und nicht er.",,,
|
||||
We also had my first proper kiss. I thought I loved him. But now?,We also had my first proper kiss. I thought I loved him. But now?,"Wir hatten auch meinen ersten richtigen Kuss. Ich war so verliebt, und jetzt?",,,
|
||||
He was weird that evening. Even more huggy and hyperactive than usual.,He was weird that evening. Even more huggy and hyperactive than usual.,Es war so merkwürdig. Irgendwie noch hibbeliger und näher als so schon.,,,
|
||||
"We were under my bed, reading my secret comic stash when I got tired of the floor and told him we should go upstairs.","We were under my bed, reading my secret comic stash when I got tired of the floor and told him we should go upstairs. ","Wir waren unterm Bett, haben meine geheime Comic-Kiste gelesen als ich keine Lust mehr auf Boden hatte und gesagt hab lass hoch gehen.",,,
|
||||
We had a play fight on my mattress. I've never seen him fight like this.,We had a play fight on my mattress. I've never seen him fight like this.,Wir haben auf meiner Matraze gekabbelt. Es war so … anders.,,,
|
||||
"His fingers Curled across my Skin without grabbing me, like he would normally do. And he let me win","His fingers Curled across my Skin without grabbing me, like he would normally do. And he let me win ",Seine Finger sind über meinen Körper geglitten ohne mich zu greifen - und er hat mich gewinnen lassen.,,,
|
||||
… with this smirk on his face.,… with this smirk on his face.,mit diesem Grinsen!,,,
|
||||
"I rolled over exhausted when suddenly he sat on top of me, a pearl of sweat dropped from his nose on my throat.","I rolled over exhausted when suddenly he sat on top of me, a pearl of sweat dropped from his nose on my throat. ","Ich habe mich erschöpft zur Seite gerollt, als er plötzlich auf mir saß. Eine Perle Schweiß fiel von seiner Nase auf meinen Hals",,,
|
||||
He started undoing his shirt.,He started undoing his shirt.,Er hat sein Hemd auf gemacht.,,,
|
||||
Do you have condoms?,”Do you have condoms?”,Hast du Kondome?,,,
|
||||
"Yes, of course everybody has Why did he ask that?","”Yes, of course everybody has Why did he ask that?”.","Natürlich, jeder hat Kondome, warum hat er das gefragt?",,,
|
||||
"I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.","I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.","Ich habe gesehen, wie mein Körper entkleidet wurde. Ich war schwerelos zwischen den Sternen.",,,
|
||||
My body didn't move. It didn't say a word when the butterflies tried to escape from its stomach as he kissed it.,My body didn't move. It didn't say a word when the butterflies tried to escape from its stomach as he kissed it.,"Mein Körper hat sich nicht bewegt. Mein Mund hat nichts gesagt, als die Schmetterlinge aus meinem Bauch ausbrechen wollten, weil der geküsst wurde.",,,
|
||||
"I … observed him from afar. He … didn't seem to notice, that I had left.","I … observed him from afar. He … didn't seem to notice, that I had left. ","Ich habe Lukas von Weitem beobachtet. Ihm ist nicht aufgefallen, dass ich nicht mehr da war.",,,
|
||||
That I didn't return to kiss him goodbye. That I didn't hug him when he went home.,That I didn't return to kiss him goodbye. That I didn't hug him when he went home.,Dass ich ihm keinen Abschiedskuss gegeben habe. Dass ich ihn an der Tür nicht umarmt habe.,,,
|
||||
My hands knocked on my brother’s door. He let me lie on his carpet.,My hands knocked on my brother’s door. He let me lie on his carpet.,Meine Hände klopften an Fabis tür. Ich durfte auf seinem Teppich liegen.,,,
|
||||
"I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.","I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars. ","Ich habe gesehen, wie mein Körper entkleidet wurde. Ich war schwerelos zwischen den Sternen.",,,
|
||||
My body didn’t move. It didn’t say a word when the butterflies tried to escape from it’s stomach as he kissed it.,My body didn’t move. It didn’t say a word when the butterflies tried to escape from it’s stomach as he kissed it.,"Mein Körper hat sich nicht bewegt. Mein Mund hat nichts gesagt, als die Schmetterlinge aus meinem Bauch ausbrechen wollten, weil der geküsst wurde.",,,
|
||||
"I … observed him from afar. He … didn't seem to notice, that I had left.","I … observed him from afar. He … didn’t seem to notice, that I had left. ","Ich habe Lukas von Weitem beobachtet. Ihm ist nicht aufgefallen, dass ich nicht mehr da war.",,,
|
||||
That I didn’t return to kiss him good bye. That I didn’t hug him when he went home.,That I didn’t return to kiss him good bye. That I didn’t hug him when he went home.,Dass ich ihm keinen Abschiedskuss gegeben habe. Dass ich ihn an der Tür nicht umarmt habe.,,,
|
||||
My hands knocked on my brother’s door. He let me lie on his carpet.,My hands knocked on my brother’s door. He let me lie on his carpet.,Meine Hände Klopften an Fabis tür. Ich durfte auf seinem Teppich liegen.,,,
|
||||
I slowly returned.,I slowly returned.,Langsam bin ich zurück gekehrt.,,,
|
||||
"""How did it go?, Fabian asked.","""How did it go?, Fabian asked.","“Wie wars?”, fragte mein Bruder.",,,
|
||||
"""It was moist”, I said.","""It was moist”, I said.","“Feucht?”, fragte ich.",,,
|
||||
“That usually helps.”,“That usually helps.”,"“Das hilft.""",,,
|
||||
"He laughed awkwardly. I just wanted to also laugh, but curled into a ball and cried.","He laughed awkwardly. I just wanted to also laugh, but curled into a ball and cried.","Er lachte peinlich berührt. Ich wollte auch lachen, aber ich habe mich zusammen gerollt und geweint.",,,
|
||||
It took him a while to say something. “I … you … it's fine Lisa. I know it hurts the first time.”,It took him a while to say something. “I … you … it's fine Lisa. I know it hurts the first time.”,"Er hat eine Weile gebraucht um etwas zu sagen. “Ich … du … Lisa, es ist okay. Ich weiß das erste mal tut weh.""",,,
|
||||
He gently stroked the back I was curling towards him.,He gently stroked the back I was curling towards him.,"Sanft streichelte er den Rücken, den ich ihm hin hielt.",,,
|
||||
That was good. He was a sweet angel. Why must he be so bad at comforting?,That was good. He was a sweet angel. Why must he be so bad at comforting?,Das war gut. Fabi ist so gut zu mir. Warum muss er so schlecht im Trösten sein?,,,
|
||||
My secret comic stash. I remember playing Clue-Men with the boys.,My secret comic stash. I remember playing Clue-Men with the boys.,Meine geheime Comic-Kiste. Wir hatten damals mit den Jungs so viel Clue-Men gespielt.,,,
|
||||
I had a voice for every character in that comic. But more often than not I played him: Agent Q.,I had a voice for every character in that comic. But more often than not I played him: Agent Q.,Ich hatte eine Stimme für jeden Charakter in diesem Comic. Am liebsten aber war ich er: Agent Clue.,,,
|
||||
"Going under the radar, putting in precise work to save the world.","Going under the radar, putting in precise work to save the world. ","Mit chirurgischer Präzision im Verborgenen arbeiten, um die Welt zu retten.",,,
|
||||
Not having to deal with being a girl.,Not having to deal with being a girl.,Kein Mädchen sein müssen.,,,
|
||||
"Boys were so much easier. They like cars, bikes, guns and agents.","Boys were so much easier. They like cars, bikes, guns and agents.","Jungs sind so viel einfacher. Sie mögen Autos, Motorräder, Waffen und Agenten.",,,
|
||||
They don't talk behind your back. They don't think everything is about relationships.,They don't talk behind your back. They don't think everything is about relationships.,Jungs reden nicht hinter deinem Rücken. Jungs denken nicht alles dreht sich um Beziehungen.,,,
|
||||
"Girls don't get that. I knew they talked behind my back about me only “pretending” to like boy stuff, so I’d get laid ","Girls don't get that. I knew they talked behind my back about me only “pretending” to like boy stuff, so I’d get laid ","Mädchen verstehen das nicht. Ich weiß sie haben über mich gelästert. Dass ich Jungs Kram nur gemocht hätte, um jemanden ins Bett zu kriegen.",,,
|
||||
"… I mean, maybe they were right?","… I mean, maybe they were right?","… ich meine, vielleicht war was dran?",,,
|
||||
Like I won't deny I was probably the first girl in my class to see a dick.,Like I won't deny I was probably the first girl in my class to see a dick.,Ich hab vermutlich als erstes Mädchen meiner Stufe einen Schwanz gesehen.,,,
|
||||
"But like - that’s what the boys do, right?","But like - that’s what the boys do, right?","Aber das machen Jungs halt miteinander, oder?",,,
|
||||
At least it has gotten better after me and Jojo became friends.,At least it has gotten better after me and Jojo became friends.,"Zumindest hat es sich gebessert, nachdem Jojo und ich Freundinnen wurden.",,,
|
||||
I still remember how that happend. I did a voice acting workshop in art class. ,I still remember how that happend. I did a voice acting workshop in art class. ,Die Geschichte ist großartig. Ich durfte in Kunst einen Vortag über Voice Acting halten.,,,
|
||||
Being allowed to share my technique in front of everyone was just :D,Being allowed to share my technique in front of everyone was just :D ,Meine Technik mit allen teilen können war einfach nur :D,,,
|
||||
I mean next to nobody put in any effort. But Jojo did.,I mean next to nobody put in any effort. But Jojo did.,"Ich meine … nieman hat sich wirklich angesträngt, außer Jojo halt.",,,
|
||||
"When our Mr Funny then decided to ape her attempts instead of just minding his own, I pretty much exploded.","When our Mr Funny then decided to ape her attempts instead of just minding his own, I pretty much exploded.","Als unser Klassencloun sie dann nachäffen musste anstatt sich um seinen Scheiß zu kümmern, bin ich einfach eplodiert.",,,
|
||||
"After this, we suddenly were besties. And my class finally started to just leave me be. ","After this, we suddenly were besties. And my class finally started to just leave me be. ",Danach hatte ich plötzlich eine beste Freundin und endlich meine Ruhe.,,,
|
||||
Maybe because I for once was friends with another girl. Maybe because I scared them. Maybe both.,Maybe because I for once was friends with another girl. Maybe because I scared them. Maybe both.,"Vielleicht, weil ich nun auch mit einem Mädchen befreundet war. Vielleicht weil die Mobber plötzlich Angst vor mir hatten. Vermutlich beides.",,,
|
||||
"Northern lights danced through the sky to form wings, that met at a sleek body made of stars and clouds.",Northern lights danced through the sky to form wings that met at a sleek body made of stars and clouds. ,Nordlicht tanzte durch den Himmel und wurde zu Flügeln an einem schlanken Körper aus Sternenlicht und Wolken. ,,,
|
||||
The whole forest held its breath as it stared into eyes of moonlight gazing down.,The whole forest held its breath as it stared into eyes of moonlight gazing down. ,"Der ganze Wald sah ehrfürchtig zu Augen aus Mondlicht hinauf, die verträumt den Blick erwiderten. ",,,
|
||||
Dräven was moved to tears when he gazed back at it. He was sad for the dragon that was of the moon and the stars and the skies.,Dräven was moved to tears when he gazed back at it. He was sad for the dragon that was of the moon and the stars and the skies. ,"Dräven war zu Tränen gerührt, als er in hinauf sah. Voller Trauer um den Drachen, der von Wolken, Sternen und Mondlicht war. ",,,
|
||||
It must feel so lost in the universe.,It must feel so lost in the universe. ,Er muss sich so verloren fühlen am Himmel. ,,,
|
||||
But his tears were of joy: It was the first time Dräven saw another creature of many kinds.,But his tears were of joy: It was the first time Dräven saw another creature of many kinds. ,"Doch es waren Tränen der Freude. Denn es war das erste Mal, dass Dräven ein anderes Viel-Wesen sah. ",,,
|
||||
Why do i still have this junk lying around? its not like I want to do ju jutsu ever again. I just fucked it.,Why do I still have this junk lying around? It's not like I want to do jiu-jitsu ever again. I just fucked it. ,"Boah, warum hängt hier noch dieser Müll? Ich hab Jiu Jitsu einfach verkackt. ",,,
|
||||
I mean I did enjoy it while it lasted. Being able to properly hit people was great.,I mean I did enjoy it while it lasted. Being able to properly hit people was great. ,Ich meine… Ich hatte Spaß damals. Leute gut schlagen können ist großartig. ,,,
|
||||
"It gave me the confidence to intimidate students, that were begging to get folded and - as I only once actually got to do that - it also was a great vent for anger. ",It gave me the confidence to intimidate students that were begging to get folded and - as I only once actually got to do that - it also was a great vent for anger. ,"Es gab mir Selbstvertrauen. Ich konnte Leute einschüchtern, wenn sie darum gebettelt haben aufs Maul zu bekommen und weil ich das nur einmal tatsächlich getan habe, war es auch ein super Ventil. ",,,
|
||||
I mean my tits just about killed me during warmup and the changing room really didn't need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas.,I mean my tits just about killed me during warmup and the changing room really didn't need mirrors - thank you I know my hips are fat and disgusting - but at least there was Lukas. ,"Ich meine… Meine Titten waren die Hölle beim Aufwärmen und die Umkleide hat wirklich keinen Spiegel gebraucht. Vielen Dank, ich brauche keine Erinnerung an meinen fetten Arsch. Aber wenigstens hatte ich Lukas. ",,,
|
||||
He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion.,He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion. ,Er war so ein Nerd. Er konnte so gut reden. Über Mathe. Er war in seinem dritten Semester und konnte stundenlang erzählen. ,,,
|
||||
Also: my math grades pretty much leaped for my final year in high school thanks to him.,So my math grades pretty much leaped for my final year in high school thanks to him. ,Und ich glaube mein Mathe-Abi war bestimmt drei Punkte besser durch ihn. ,,,
|
||||
"He also helped me so much with jiu jitsu, as he properly floored me when I slipped up. ",And he helped me so much with jiu-jitsu.,"Und ach, bei Jiu Jitsu… Es hat mir so sehr geholfen, dass er mich einfach anständig hingelegt hat, wenn ich gefailed habe. ",,,
|
||||
Also - unlike everyone else - he understood that I didn't want people to mind my chest.,"Unlike everyone else - he understood that I didn't want people to mind my chest, and he probably made me hit the floor whenever I made a mistake.","Und er war der einzige, der wirklich verstanden hat, dass mir egal war, ob Leute mir an die Brüste kommen. ",,,
|
||||
So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.,So fighting for wins was actually rewarding even though more often than not I ended up having to tap out. ,"Mit ihm war Kämpfen so gut – auch wenn ich üblicherweise diejenige war, die abschlagen musste und nicht er. ",,,
|
||||
We also had my first proper kiss. I thought I loved him. But now?,We also had my first proper kiss. I thought I loved him. But now? ,"Wir hatten auch meinen ersten richtigen Kuss. Ich war so verliebt, und jetzt? ",,,
|
||||
He was weird that evening. Even more huggy and hyperactive than usual.,Uhm... he was weird that evening. Even more huggy and hyperactive than usual. ,Es war so merkwürdig. Irgendwie noch hibbeliger und näher als so schon. ,,,
|
||||
"We were under my bed, reading my secret comic stash when I got tired of the floor and told him we should go upstairs.","We were under my bed, reading my secret comic stash when I got tired of the floor and told him we should go upstairs. ","Wir waren unterm Bett, haben meine geheime Comic-Kiste gelesen, als ich keine Lust mehr auf Boden hatte und gesagt hab, lass hoch gehen. ",,,
|
||||
We had a play fight on my mattress. I've never seen him fight like this.,We had a play fight on my mattress. I've never seen him fight like this. ,Wir haben auf meiner Matratze gekabbelt. Es war so… anders. ,,,
|
||||
"His fingers Curled across my Skin without grabbing me, like he would normally do. And he let me win","His fingers curled across my skin without grabbing me, like he would normally do. And he let me win… ","Seine Finger sind über meinen Körper geglitten, ohne mich zu greifen - und er hat mich gewinnen lassen, ",,,
|
||||
… with this smirk on his face.,with this smirk on his face.,mit diesem Grinsen. ,,,
|
||||
"I rolled over exhausted when suddenly he sat on top of me, a pearl of sweat dropped from his nose on my throat.","I rolled over exhausted when suddenly he sat on top of me, a pearl of sweat dropped from his nose on to my throat. ","Ich habe mich erschöpft zur Seite gerollt, als er plötzlich auf mir saß. Eine Perle Schweiß fiel von seiner Nase auf meinen Hals. ",,,
|
||||
He started undoing his shirt.,He started undoing his shirt. ,Er hat sein Hemd aufgemacht. ,,,
|
||||
Do you have condoms?,”Do you have condoms?” ,"""Hast du Kondome?"" ",,,
|
||||
"Yes, of course everybody has Why did he ask that?","”Yes, of course everybody has."" Why did he ask that? ","""Natürlich, jeder hat Kondome."" Warum hat er das gefragt? ",,,
|
||||
"I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.","I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars. ","Ich habe gesehen, wie mein Körper entkleidet wurde. Ich war schwerelos zwischen den Sternen. ",,,
|
||||
My body didn't move. It didn't say a word when the butterflies tried to escape from its stomach as he kissed it.,My body didn't move. It didn't say a word when the butterflies tried to escape from my stomach as he kissed it. ,"Mein Körper hat sich nicht bewegt. Mein Mund hat nichts gesagt, als die Schmetterlinge aus meinem Bauch ausbrechen wollten, weil der geküsst wurde. ",,,
|
||||
"I … observed him from afar. He … didn't seem to notice, that I had left.",I… observed him from afar. He… didn't seem to notice that I had left. ,"Ich habe Lukas von Weitem beobachtet. Ihm ist nicht aufgefallen, dass ich nicht mehr da war. ",,,
|
||||
That I didn't return to kiss him goodbye. That I didn't hug him when he went home.,That I didn't return to kiss him goodbye. That I didn't hug him when he went home. ,Dass ich ihm keinen Abschiedskuss gegeben habe. Dass ich ihn an der Tür nicht umarmt habe. ,,,
|
||||
My hands knocked on my brother’s door. He let me lie on his carpet.,My hands knocked on my brother’s door. He let me lie on his carpet. ,Meine Hände klopften an Fabis Tür. Ich durfte auf seinem Teppich liegen. ,,,
|
||||
"I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.","I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars. ","Ich habe gesehen, wie mein Körper entkleidet wurde. Ich war schwerelos zwischen den Sternen. ",,,
|
||||
My body didn’t move. It didn’t say a word when the butterflies tried to escape from it’s stomach as he kissed it.,My body didn’t move. It didn’t say a word when the butterflies tried to escape from my stomach as he kissed it. ,"Mein Körper hat sich nicht bewegt. Mein Mund hat nichts gesagt, als die Schmetterlinge aus meinem Bauch ausbrechen wollten, weil der geküsst wurde. ",,,
|
||||
"I … observed him from afar. He … didn't seem to notice, that I had left.",I… observed him from afar. He… didn’t seem to notice that I had left. ,"Ich habe Lukas von Weitem beobachtet. Ihm ist nicht aufgefallen, dass ich nicht mehr da war. ",,,
|
||||
That I didn’t return to kiss him good bye. That I didn’t hug him when he went home.,That I didn’t return to kiss him goodbye. That I didn’t hug him when he went home. ,Dass ich ihm keinen Abschiedskuss gegeben habe. Dass ich ihn an der Tür nicht umarmt habe. ,,,
|
||||
My hands knocked on my brother’s door. He let me lie on his carpet.,My hands knocked on my brother’s door. He let me lie on his carpet. ,Meine Hände Klopften an Fabis tür. Ich durfte auf seinem Teppich liegen. ,,,
|
||||
I slowly returned.,I slowly returned. ,Langsam bin ich zurückgekehrt. ,,,
|
||||
"""How did it go?, Fabian asked.","""How did it go?, Fabian asked. ","“Wie wars?”, fragte mein Bruder. ",,,
|
||||
"""It was moist”, I said.","""It was... moist”, I said. ","“Feucht?”, sagte ich. ",,,
|
||||
“That usually helps.”,“That usually helps.” ,"“Das hilft normalerweise."" ",,,
|
||||
"He laughed awkwardly. I just wanted to also laugh, but curled into a ball and cried.","He laughed awkwardly. I just wanted to also laugh, but... curled into a ball and cried. ","Er lachte peinlich berührt. Ich wollte auch lachen, aber ich habe mich zusammen gerollt und geweint. ",,,
|
||||
It took him a while to say something. “I … you … it's fine Lisa. I know it hurts the first time.”,It took him a while to say something. “I… you… it's fine Lisa. I know it hurts the first time.” ,"Er hat eine Weile gebraucht um etwas zu sagen. “Ich… du… Lisa, es ist okay. Ich weiß das erste Mal tut weh."" ",,,
|
||||
He gently stroked the back I was curling towards him.,He gently stroked the back I was curling towards him. ,"Sanft streichelte er den Rücken, den ich ihm hin hielt. ",,,
|
||||
That was good. He was a sweet angel. Why must he be so bad at comforting?,That was good. He was a sweet angel. Why must he be so bad at comforting? ,Das war gut. Fabi ist so gut zu mir. Warum muss er so schlecht im Trösten sein? ,,,
|
||||
My secret comic stash. I remember playing Clue-Men with the boys.,My secret comic stash! I remember playing Clue-Men with the boys. ,Meine geheime Comic-Kiste. Wir hatten damals mit den Jungs so viel Clue-Men gespielt. ,,,
|
||||
I had a voice for every character in that comic. But more often than not I played him: Agent Q.,I had a voice for every character in that comic. But more often than not I played him: Agent Q. ,Ich hatte eine Stimme für jeden Charakter in diesem Comic. Am liebsten aber war ich er: Agent Q. ,,,
|
||||
"Going under the radar, putting in precise work to save the world.","Going under the radar, putting in precise work to save the world. ","Mit chirurgischer Präzision im Verborgenen arbeiten, um die Welt zu retten. ",,,
|
||||
Not having to deal with being a girl.,Not having to deal with being a girl. ,Kein Mädchen sein müssen. ,,,
|
||||
"Boys were so much easier. They like cars, bikes, guns and agents.","Boys were so much easier. They like cars, bikes, guns and agents. ","Jungs sind so viel einfacher. Sie mögen Autos, Motorräder, Waffen und Agenten. ",,,
|
||||
They don't talk behind your back. They don't think everything is about relationships.,They don't talk behind your back. They don't think everything is about relationships. ,Jungs reden nicht hinter deinem Rücken. Jungs denken nicht alles dreht sich um Beziehungen. ,,,
|
||||
"Girls don't get that. I knew they talked behind my back about me only “pretending” to like boy stuff, so I’d get laid ","Girls don't get that. I knew they talked behind my back about me only “pretending” to like boy stuff, so I’d get laid.","Mädchen verstehen das nicht. Ich weiß sie haben über mich gelästert. Dass ich Jungs Kram nur gemocht hätte, um jemanden ins Bett zu kriegen… ",,,
|
||||
"… I mean, maybe they were right?","I mean, maybe they were right? ","Ich meine, vielleicht war was dran? ",,,
|
||||
Like I won't deny I was probably the first girl in my class to see a dick.,Like I won't deny I was probably the first girl in my class to see a dick. ,Ich hab vermutlich als erstes Mädchen meiner Stufe einen Schwanz gesehen. ,,,
|
||||
"But like - that’s what the boys do, right?","But like - that’s what the boys do, right? ","Aber das machen Jungs halt miteinander, oder? ",,,
|
||||
At least it has gotten better after me and Jojo became friends.,At least it has gotten better after me and Jojo became friends. ,"Zumindest hat es sich gebessert, nachdem Jojo und ich Freundinnen wurden. ",,,
|
||||
I still remember how that happend. I did a voice acting workshop in art class. ,I still remember how that happened. I did a voice acting workshop in art class. ,Die Geschichte ist großartig. Ich durfte in Kunst einen Vortrag über Voice Acting halten. ,,,
|
||||
Being allowed to share my technique in front of everyone was just :D,Being allowed to share my technique in front of everyone was just :D ,Meine Technik mit allen teilen können war einfach nur :D ,,,
|
||||
I mean next to nobody put in any effort. But Jojo did.,"I mean next to nobody put in any effort in, but Jojo did. ","Ich meine… Niemand hat sich wirklich angestrengt, außer Jojo halt. ",,,
|
||||
"When our Mr Funny then decided to ape her attempts instead of just minding his own, I pretty much exploded.","When our Mr. Funny then decided to ape her attempts instead of just minding his own, I pretty much exploded. ","Als unser Klassenclown sie dann nachäffen musste, anstatt sich um seinen Scheiß zu kümmern, bin ich einfach explodiert. ",,,
|
||||
"After this, we suddenly were besties. And my class finally started to just leave me be. ","After this, we suddenly were besties and my class finally started to just leave me be. ",Danach hatte ich plötzlich eine beste Freundin und endlich meine Ruhe. ,,,
|
||||
Maybe because I for once was friends with another girl. Maybe because I scared them. Maybe both.,Maybe because I for once was friends with another girl. Maybe because I scared them. Maybe both. ,"Vielleicht, weil ich nun auch mit einem Mädchen befreundet war. Vielleicht weil die Mobber plötzlich Angst vor mir hatten. Vermutlich beides. ",,,
|
||||
skip reading (hold),skip reading (hold),zum Ende springen (gedrückt halten),,,
|
||||
,,,,,
|
||||
"*USK-Kennzeichnung bezieht sich auf den Games for Family-Stand der Spielraum-Messe Dresden.
|
||||
|
|
@ -297,7 +297,8 @@ Die Kennzeichnung überträgt sich nicht auf das finale Spiel.",,,
|
|||
Start the Demo!,Start the demo!,Starte die Demo!,,,
|
||||
Move trough the room,Move trough the room,Durch den Raum bewegen,,,
|
||||
show Content Notes,show Content Notes,Content Notes anzeigen,,,
|
||||
Text Language,Text Language,Textsprache,,,
|
||||
Written Text,Written Language,Geschriebener Text,,,
|
||||
Spoken Text,Spoken Language,Gesprochener Text,,,
|
||||
Childhood,Childhood,Kindheit,,,
|
||||
voice Training,Voice Training,Stimmtechnik,,,
|
||||
Collect Memento,Collect Memento,Erinnerung einsammeln,,,
|
||||
|
|
@ -319,3 +320,50 @@ reveal full text (hold),reveal full text (hold),vollen Text anzeigen (halten),,,
|
|||
skip scene,skip scene,Szene überspringen,,,
|
||||
continue,continue,Fotfahren,,,
|
||||
keep reading,keep reading,weiterhin lesen,,,
|
||||
quit,Quit,Beenden,,,
|
||||
Thanks for Playing the Demo!,Thanks for playing the demo!,Vielen Dank für’s Demo spielen!,,,
|
||||
We hope you are looking forward to finding a better frame of mind. ,We hope you are looking forward to finding a better Frame of Mind. ,Wir hoffen ihr freut euch darauf dieses Gedankenspiel weiter zu erkunden.,,,
|
||||
demo-credits,"Frame of Mind is made by betalars.
|
||||
|
||||
They were supported by:
|
||||
Adrian Schmid, April and somebody that I used to know – Programming
|
||||
Jas Arianna and Newt – Voice Acting
|
||||
STTLE – OST
|
||||
Dieu Linh Vu, Polynormal Games - Producing, Publishing and Marketing
|
||||
|
||||
Frame of Mind was created in Godot 4.
|
||||
|
||||
Special thanks to: nase, Jenny, nek0, map-c, Svenja, caesey, Milo, Francis, Christoph,
|
||||
the R42 Games Accellerator and to the contributers of blender, godot and inkscape.
|
||||
|
||||
Frame of mind is would not have been possible without purple sloth games.","Frame of Mind ist made by betalars.
|
||||
|
||||
Dey wurde unterstützt von:
|
||||
Adrian Schmid, April und einer Person, die ich mal kannte – Programmierung
|
||||
Jas Arianna and Newt – Voice Acting
|
||||
STTLE – OST
|
||||
Dieu Linh Vu, Polynormal Games - Producing, Publishing und Marketing
|
||||
|
||||
Frame of Mind wurde mit Godot 4 entwickelt.
|
||||
|
||||
Besonderen Dank an: nase, Jenny, nek0, map-c, Svenja, caesey, Milo, Francis, Christoph,
|
||||
den R42 Games Accellerator und an die Mitwirkenden von blender, godot und inkscape.
|
||||
|
||||
Frame of mind wäre nicht möglich gewesen ohne Purple Sloth Studios. ",,,
|
||||
Quit,Quit,Beenden,,,
|
||||
These Creative Commons pojects made frame of mind possible.,These Creative Commons pojects made Frame of Mind possible.,Diese Creative Commons Projekte haben Frame of Mind möglich gemacht. ,,,
|
||||
Wishlist for a better frame of mind,Wishlist for a better frame of mind,Wishlisten für ein besseres Frame of Mind,,,
|
||||
"You can move on, but you may not have understood Lisa.","You can move on, but may not have understood Lisa. ","Du kannst weitermachen, aber hast vermutlich Lisa nicht ganz verstanden. ",,,
|
||||
"You may leave the room, but Lisa only agrees with %d of the %d connections.","You may leave the room, but Lisa only agrees with %d of the %d connections.","Du kannst das Zimmer verlassen, aber Lisa stimmt dir nur in %d von %d Verbindungen zu.",,,
|
||||
Lisa would like you to leave her room and move on.,Lisa would like you to leave her room and move on.,"Lisa möchte, dass du ihr Jugendzimmer verlässt und weiter machst.",,,
|
||||
Move on,Move on,Weitermachen,,,
|
||||
"Life gave you some thoughts you did not choose to keep.
|
||||
You may try to burn one.","Life gave you some thoughts you did not choose to keep.
|
||||
You may try to burn one.","Das Leben hat dir ein paar Gedanken mitgegeben die du nicht ausgesucht hast.
|
||||
Du darfst versuchen, einen zu verbrennen. ",,,
|
||||
Keep all thoughts,Keep all Thoughts,Behalte alle Gedanken,,,
|
||||
Leave room,Leave room,Den Raum verlassen,,,
|
||||
Combine cards to order your thoughts.,Combine cards to order your thoughts.,"Klebe Karten aufeinander, um die Gedanken zu sortieren.",,,
|
||||
There are three Mementos left to find.,Find all three Momentos to collect all thoughts.,"Finde all drei Erinnerungen, um alle Gedanken zu sammeln. ",,,
|
||||
You have collected half of the mementos.,Find two more Momentos to collect all cards.,"Finde zwei weitere Erinnerungen, um alle Karten zu sammeln.",,,
|
||||
Find the last Memento to complete the Board.,Find the last remaining Momento.,Finde die letzte Erinnerung. ,,,
|
||||
|
|
|
|||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -129,11 +129,10 @@ func _ready():
|
|||
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + size_reference.minimum_size.x, dropzone_padding)
|
||||
|
||||
if get_parent() == get_tree().root:
|
||||
populate_board(["c_void", 'c_joy', "p_wet", "p_effort"])
|
||||
populate_board(["c_void", 'c_joy', "p_wet", "p_worried_mother"])
|
||||
populate_board(["c_jui_jutsu", 'c_hit', "p_girly", "p_vent"])
|
||||
populate_board(["c_comic_heroes", 'c_teasing', "p_agent_q", "p_good_intended"])
|
||||
populate_board(["c_out_of_world", 'c_confusion', "p_outer_conflict", "p_unique"])
|
||||
mementos_collected = 2
|
||||
|
||||
has_stage = has_stage
|
||||
|
||||
|
|
@ -147,7 +146,7 @@ func _ready():
|
|||
#last_save_dict = get_save_dict()
|
||||
|
||||
|
||||
func reclaim_lost_focus():
|
||||
func reclaim_lost_focus(_thief):
|
||||
if has_stage:
|
||||
grab_focus()
|
||||
|
||||
|
|
@ -156,17 +155,21 @@ func reclaim_lost_focus():
|
|||
# if has_stage and !Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and current_context == DRAG:
|
||||
# currently_active_node.is_dragged = false
|
||||
|
||||
# Will be used later to spawn Cards and Post-Its and remember them in the dictionary
|
||||
## Will be used later to spawn Cards and Post-Its and remember them in the dictionary
|
||||
func populate_board(card_names: Array[StringName]):
|
||||
mementos_collected += 1
|
||||
|
||||
var all_new:Dictionary = HardCards.get_cards_by_name_array(card_names)
|
||||
|
||||
# spawning the cards and adding them to the dictionary
|
||||
for new_card in all_new["cards"]:
|
||||
for new_card: Card in all_new["cards"]:
|
||||
add_card(new_card, false)
|
||||
for new_sticky_note in all_new["sticky_notes"]: # spawning a sticky note
|
||||
# marking the first card as random picks
|
||||
new_card.picked_random = new_card.name == card_names[1]
|
||||
for new_sticky_note: StickyNote in all_new["sticky_notes"]: # spawning a sticky note
|
||||
add_sticky_note(new_sticky_note, false)
|
||||
# marking the first sticky as random picks
|
||||
new_sticky_note.picked_random = new_sticky_note.name == card_names[3]
|
||||
|
||||
#currently_active_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default
|
||||
currently_active_node = dropzone.get_child(0)
|
||||
|
|
@ -225,9 +228,15 @@ func handle_mouse_button(input: InputEventMouseButton, to_handle = currently_act
|
|||
to_handle = area.exchange_sticky_note_with(to_handle)
|
||||
to_handle.reparent(dropzone)
|
||||
to_handle.on_board = true
|
||||
# FIXME: this caused an error when all stickies were attatched ...
|
||||
sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note = to_handle
|
||||
to_handle.attached_to = sticky_note_container.get_child(current_sticky_note_id)
|
||||
if sticky_note_container.get_child_count() > 0:
|
||||
sticky_note_container.get_child(current_sticky_note_id).attached_sticky_note = to_handle
|
||||
to_handle.attached_to = sticky_note_container.get_child(current_sticky_note_id)
|
||||
else:
|
||||
var new_panel = StickyNotePanel.new()
|
||||
sticky_note_container.add_child(new_panel, true, Node.INTERNAL_MODE_DISABLED)
|
||||
new_panel.owner = self
|
||||
new_panel.attatch_sticky_note(to_handle, self, false)
|
||||
current_sticky_note_id = 0
|
||||
to_handle.reset_drag()
|
||||
current_context = NAVIGATE
|
||||
_return_sticky_notes_to_panels()
|
||||
|
|
@ -238,13 +247,16 @@ func handle_mouse_button(input: InputEventMouseButton, to_handle = currently_act
|
|||
if sticky_note_container.get_child_count() > 0:
|
||||
sticky_note_container.get_child(current_sticky_note_id).clear_if_empty()
|
||||
current_context = NAVIGATE
|
||||
if is_board_complete(): board_completed.emit()
|
||||
check_board_comnpletion()
|
||||
return
|
||||
else:
|
||||
var i: int = 0
|
||||
for panel: StickyNotePanel in sticky_note_container.get_children():
|
||||
i += 1
|
||||
if panel.is_gapped or i == sticky_note_container.get_child_count():
|
||||
if panel.is_empty:
|
||||
if panel.get_global_rect().intersects(Rect2(to_handle.global_position - Vector2(to_handle.diameter/2, 10), Vector2(to_handle.diameter/2, 10))):
|
||||
panel.attatch_sticky_note(to_handle, self)
|
||||
elif panel.is_gapped or i == sticky_note_container.get_child_count():
|
||||
panel.collapse_gap()
|
||||
var new_panel = StickyNotePanel.new()
|
||||
sticky_note_container.add_child(new_panel)
|
||||
|
|
@ -274,14 +286,26 @@ func handle_mouse_button(input: InputEventMouseButton, to_handle = currently_act
|
|||
|
||||
|
||||
func _return_sticky_notes_to_panels():
|
||||
return #FIXME this is an early return to prevent race conditions. Check if it is save to be removed.
|
||||
for panel:StickyNotePanel in sticky_note_container.get_children():
|
||||
panel.reclaim_sticky_note()
|
||||
|
||||
for node in dropzone.get_children():
|
||||
if node is StickyNote:
|
||||
node.is_dragable = true
|
||||
|
||||
func is_board_complete() -> bool:
|
||||
|
||||
var board_was_completed: bool = false
|
||||
func check_board_comnpletion():
|
||||
if is_board_complete():
|
||||
for child:StickyNotePanel in sticky_note_container.get_children():
|
||||
child.clear_if_empty()
|
||||
if not board_was_completed:
|
||||
board_was_completed = true
|
||||
board_completed.emit()
|
||||
if board_was_completed:
|
||||
give_lore_feedback()
|
||||
|
||||
func is_board_complete():
|
||||
if mementos_collected == 4:
|
||||
for card in dropzone.get_children():
|
||||
if card is Card:
|
||||
|
|
@ -290,6 +314,44 @@ func is_board_complete() -> bool:
|
|||
return true
|
||||
return false
|
||||
|
||||
var unfitting: bool = false
|
||||
var incomplete: bool = false
|
||||
var complete: bool = false
|
||||
func give_lore_feedback():
|
||||
var fitting_card_count: int = 0
|
||||
var total_card_count: int = 0
|
||||
|
||||
for child in dropzone.get_children():
|
||||
if child is Card:
|
||||
if child.has_sticky_note_attached():
|
||||
fitting_card_count += int(child.card_id == child.get_attached_sticky_note().parent_id)
|
||||
total_card_count += 1
|
||||
|
||||
if float(fitting_card_count) / float(total_card_count) < 0.2:
|
||||
instructions.text = "You can move on, but you may not have understood Lisa."
|
||||
if not unfitting:
|
||||
if State.speech_language == 2:
|
||||
$AnimationPlayer.play("unfitting_de")
|
||||
else:
|
||||
$AnimationPlayer.play("unfitting")
|
||||
unfitting = true
|
||||
elif fitting_card_count != total_card_count or total_card_count != dropzone.get_child_count() or sticky_note_container.get_child_count() != 0:
|
||||
instructions.text = TranslationServer.translate("You may leave the room, but Lisa only agrees with %d of the %d connections.") % [fitting_card_count, total_card_count]
|
||||
if not incomplete:
|
||||
if State.speech_language == 2:
|
||||
$AnimationPlayer.play("incomplete_de")
|
||||
else:
|
||||
$AnimationPlayer.play("incomplete")
|
||||
incomplete = true
|
||||
else:
|
||||
instructions.text = "Lisa would like you to leave her room and move on."
|
||||
if not complete:
|
||||
if State.speech_language == 2:
|
||||
$AnimationPlayer.play("complete_de")
|
||||
else:
|
||||
$AnimationPlayer.play("complete")
|
||||
complete = true
|
||||
|
||||
func is_board_lore() -> bool:
|
||||
for card in dropzone.get_children():
|
||||
if card is Card:
|
||||
|
|
@ -392,7 +454,7 @@ func _input(event):
|
|||
current_context = NAVIGATE
|
||||
current_sticky_note_id += 1
|
||||
current_dropzone_id = find_first_free_card()
|
||||
if is_board_complete(): emit_signal("board_completed")
|
||||
check_board_comnpletion()
|
||||
else:
|
||||
if !focus_stickies and card.has_sticky_note_attached():
|
||||
currently_active_node = card.remove_sticky_note()
|
||||
|
|
@ -440,15 +502,20 @@ func on_sticky_panel_cleared():
|
|||
func get_save_dict() -> Dictionary:
|
||||
var cards: Dictionary = {}
|
||||
var stickies: Dictionary = {}
|
||||
var randoms: Array[StringName]
|
||||
|
||||
for child in dropzone.get_children():
|
||||
if child is Card:
|
||||
# Save position of Card.
|
||||
cards[child.name] = child.transform.origin
|
||||
if child.picked_random:
|
||||
randoms.append(child.name)
|
||||
|
||||
if child.has_sticky_note_attached():
|
||||
# Saves Card Name as position of it's children.
|
||||
stickies[child.get_attached_sticky_note().name] = child.name
|
||||
if child.get_attached_sticky_note().picked_random:
|
||||
randoms.append(child.get_attached_sticky_note().name)
|
||||
|
||||
elif child is StickyNote:
|
||||
# Save position of StickyNote.
|
||||
|
|
@ -460,7 +527,8 @@ func get_save_dict() -> Dictionary:
|
|||
stickies[child.attached_sticky_note.name] = -1
|
||||
return {
|
||||
"cards": cards,
|
||||
"stickies": stickies
|
||||
"stickies": stickies,
|
||||
"randoms": randoms
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -476,6 +544,9 @@ func rebuild_from_savedict(board_state:Dictionary):
|
|||
var stickies: Dictionary[StringName, Variant]
|
||||
if board_state["stickies"] != {} :
|
||||
stickies = board_state["stickies"]
|
||||
var randoms: Array[StringName]
|
||||
if board_state["randoms"] != [] :
|
||||
randoms = board_state["randoms"]
|
||||
|
||||
if cards == null and stickies == null: return
|
||||
|
||||
|
|
@ -486,6 +557,7 @@ func rebuild_from_savedict(board_state:Dictionary):
|
|||
card.transform.origin = cards[card.name]# Replacing position reference with card reference! Needed in next loop.
|
||||
cards[card.name] = card
|
||||
text_recovery[card.name] = card.text
|
||||
card.picked_random == randoms.has( card.card_id )
|
||||
for sticky:StickyNote in card_pile["sticky_notes"]:
|
||||
text_recovery[sticky.name] = sticky.text
|
||||
if stickies[sticky.name] == -1:
|
||||
|
|
@ -495,6 +567,7 @@ func rebuild_from_savedict(board_state:Dictionary):
|
|||
else:
|
||||
insert_area(dropzone, sticky)
|
||||
sticky.transform.origin = stickies[sticky.name]
|
||||
sticky.picked_random == randoms.has( sticky.card_id )
|
||||
|
||||
func validate_board():
|
||||
return
|
||||
|
|
|
|||
|
|
@ -4,6 +4,13 @@ class_name Card
|
|||
|
||||
var card_id
|
||||
|
||||
enum burned {
|
||||
NOT,
|
||||
SINGED,
|
||||
BURNING,
|
||||
TORCHED
|
||||
}
|
||||
|
||||
#FIXME remove this legacy stuff without loosing the evil notes ...
|
||||
var compatible_sticky_notes: Array[StickyNote] = []
|
||||
@export var evil_sticky_notes: Array[StickyNote] = []
|
||||
|
|
@ -29,6 +36,9 @@ var transfor_arr: Array[Transform2D] = [
|
|||
_on_text_updated()
|
||||
var label:Label
|
||||
var background_sprite: AnimatedSprite2D
|
||||
|
||||
@export var picked_random: bool = false
|
||||
|
||||
@export var wiggle_strength: float = 0.2
|
||||
@export var wiggle_speed: float = 5
|
||||
@export_range(1, 2) var scale_bump: float = 1.05
|
||||
|
|
@ -62,6 +72,58 @@ var background_sprite: AnimatedSprite2D
|
|||
@export var voice_line: AudioStream = null
|
||||
@export var is_dragable: bool = false
|
||||
@export var diameter = 336.0
|
||||
@export_range(0, 2) var burn_progress: float = 0:
|
||||
set(burn):
|
||||
if is_node_ready():
|
||||
if burn > 0 and background_sprite.material == null:
|
||||
if background_sprite != null:
|
||||
background_sprite.material = crumble_material.duplicate()
|
||||
add_child(card_fire, false, Node.INTERNAL_MODE_FRONT)
|
||||
card_fire.material = card_fire.material.duplicate()
|
||||
elif burn_progress > 0 and burn <= 0:
|
||||
background_sprite.material.set_shader_parameter("fire_progression", 0)
|
||||
card_fire.material.set_shader_parameter("fire_progression", 0)
|
||||
background_sprite.material = null
|
||||
remove_child(card_fire)
|
||||
|
||||
burn_progress = burn
|
||||
if background_sprite != null and card_fire != null and burn_progress > 0:
|
||||
background_sprite.material.set_shader_parameter("fire_progression", burn_progress)
|
||||
card_fire.material.set_shader_parameter("fire_progression", burn_progress)
|
||||
background_sprite.visible = burn_progress < 2
|
||||
card_fire.visible = burn_progress < 2
|
||||
label.modulate = Color.WHITE.lerp(Color(0,0,0,0), clampf(burn_progress*3-3, 0, 1))
|
||||
|
||||
var burn_tween: Tween
|
||||
signal has_burned
|
||||
@export var burn_state: burned = burned.NOT:
|
||||
set(burning):
|
||||
if burning != burn_state:
|
||||
if burn_tween != null:
|
||||
burn_tween.kill()
|
||||
match burning:
|
||||
burned.NOT:
|
||||
burn_tween = get_tree().create_tween()
|
||||
burn_tween.tween_property(self, "burn_progress", 0, 0.5)
|
||||
burned.SINGED:
|
||||
burn_tween = get_tree().create_tween()
|
||||
burn_tween.set_ease(Tween.EASE_OUT)
|
||||
burn_tween.set_trans(Tween.TRANS_SINE)
|
||||
burn_tween.tween_property(self, "burn_progress", 0.5, 2)
|
||||
burned.BURNING:
|
||||
burn_tween = get_tree().create_tween()
|
||||
burn_tween.tween_property(self, "burn_progress", 2.0, 2)
|
||||
burn_tween.tween_callback(_torch).set_delay(1.0)
|
||||
burned.TORCHED:
|
||||
print("Card %s has been burned." % HardCards.get_obscure_name(name))
|
||||
has_burned.emit()
|
||||
burn_state = burning
|
||||
|
||||
func _torch():
|
||||
burn_state = burned.TORCHED
|
||||
|
||||
var crumble_material: ShaderMaterial = preload("res://logic-scenes/card_burner/card_crumble.material")
|
||||
var card_fire: Sprite2D = preload("res://logic-scenes/card_burner/card_fire.tscn").instantiate()
|
||||
|
||||
var sticky_note_position: Vector2 = Vector2(-66, 83)
|
||||
var collider: Shape2D
|
||||
|
|
@ -88,6 +150,7 @@ func _ready():
|
|||
|
||||
background_sprite = AnimatedSprite2D.new()
|
||||
background_sprite.sprite_frames = preload("res://logic-scenes/board/card-textures/card-sprites.tres")
|
||||
background_sprite.clip_children = CanvasItem.CLIP_CHILDREN_AND_DRAW
|
||||
|
||||
label = Label.new()
|
||||
label.theme_type_variation = "card_text"
|
||||
|
|
@ -120,7 +183,6 @@ func _on_text_updated():
|
|||
if text == "":
|
||||
if background_sprite.get_child_count() == 0:
|
||||
background_sprite.add_child(load("res://logic-scenes/board/void_stuff.tscn").instantiate(), false, Node.INTERNAL_MODE_DISABLED)
|
||||
background_sprite.clip_children = CanvasItem.CLIP_CHILDREN_AND_DRAW
|
||||
else:
|
||||
if background_sprite.get_child_count() > 0:
|
||||
background_sprite.get_child(0).queue_free()
|
||||
|
|
@ -132,6 +194,8 @@ func _on_text_updated():
|
|||
label.rotation = deg_to_rad(transfor_arr[curr_frame].get_rotation())
|
||||
label.position = transfor_arr[curr_frame].origin
|
||||
|
||||
burn_progress = burn_progress
|
||||
|
||||
if not Engine.is_editor_hint():
|
||||
_handle_wiggle(0)
|
||||
|
||||
|
|
@ -182,6 +246,8 @@ func _on_mouse_entered():
|
|||
func _on_mouse_exited():
|
||||
highlighted = false
|
||||
is_mouse_entered = false
|
||||
if burn_state == burned.SINGED:
|
||||
burn_state = burned.NOT
|
||||
|
||||
func _on_input_event(_viewport, event, _shape_idx):
|
||||
|
||||
|
|
@ -221,7 +287,7 @@ func attach_sticky_note(sticky_note: StickyNote) -> bool:
|
|||
current_sticky_note = sticky_note
|
||||
sticky_note.attached_to = self
|
||||
|
||||
if text == "hit" and sticky_note.text == "effort":
|
||||
if name == "c_hit" and sticky_note.name == "c_effort" and Steamworks.has_initialized:
|
||||
Steam.setAchievement("FIGHT_FOR_GOOD")
|
||||
Steam.storeStats()
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,11 @@ func attatch_sticky_note(attatchment: StickyNote, custom_owner: Node, tween:bool
|
|||
await get_tree().process_frame
|
||||
var height_tween: Tween = create_tween()
|
||||
height_tween.tween_property(self, "custom_minimum_size", minimum_size, 0.1)
|
||||
attatchment.tween_transform_to(Transform2D(0, get_screen_position() + ancor_position - Vector2(0, minimum_size.y)))
|
||||
var target_post = get_global_transform().origin+ancor_position
|
||||
for panel: StickyNotePanel in get_parent().get_children():
|
||||
if panel.attached_sticky_note == attatchment and panel.get_index() < get_index():
|
||||
target_post = get_global_transform().origin+ancor_position - Vector2(0, minimum_size.y)
|
||||
attatchment.tween_transform_to(Transform2D(0, target_post))
|
||||
await attatchment.transform_tween_finished
|
||||
await get_tree().process_frame
|
||||
attatchment.reparent(self)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,16 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://bnskiyx1sksww"]
|
||||
[gd_scene load_steps=24 format=3 uid="uid://bnskiyx1sksww"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"]
|
||||
[ext_resource type="Shader" uid="uid://kyd37e0s6fdu" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"]
|
||||
[ext_resource type="Script" uid="uid://cqsor57nvowni" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"]
|
||||
[ext_resource type="AudioStream" uid="uid://bywmf3patoe56" path="res://base-environments/youth_room/audio/board_completed.wav" id="5_qjqy3"]
|
||||
[ext_resource type="AudioStream" uid="uid://bgtohhyd8whbm" path="res://base-environments/youth_room/audio/board_completed_de.wav" id="6_ni75f"]
|
||||
[ext_resource type="AudioStream" uid="uid://dj8fpajqhj4k7" path="res://base-environments/youth_room/audio/board_incomplete.wav" id="6_vtvtf"]
|
||||
[ext_resource type="Script" uid="uid://ddy8kb2hjvgss" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"]
|
||||
[ext_resource type="AudioStream" uid="uid://brolrc3lhaeid" path="res://base-environments/youth_room/audio/board_unfitting.wav" id="7_0phgc"]
|
||||
[ext_resource type="AudioStream" uid="uid://swlo6elqs4vx" path="res://base-environments/youth_room/audio/board_incomplete_de.wav" id="7_2qppy"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="8_ni75f"]
|
||||
[ext_resource type="AudioStream" uid="uid://y8fg3wjscvci" path="res://base-environments/youth_room/audio/board_unfitting_de.wav" id="10_kvxnu"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"]
|
||||
shader = ExtResource("1_ggnth")
|
||||
|
|
@ -18,6 +25,134 @@ size = Vector2(4262, 766.5)
|
|||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ivo5o"]
|
||||
size = Vector2(4249, 766.5)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_qjqy3"]
|
||||
length = 0.001
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2qppy"]
|
||||
resource_name = "complete"
|
||||
length = 14.5
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.42,
|
||||
"stream": ExtResource("5_qjqy3")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.1)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_vtvtf"]
|
||||
resource_name = "complete_de"
|
||||
length = 14.5
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("6_ni75f")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.533333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_kvxnu"]
|
||||
resource_name = "incomplete"
|
||||
length = 11.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("7_2qppy")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.533333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_0phgc"]
|
||||
resource_name = "incomplete_de"
|
||||
length = 12.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.36,
|
||||
"stream": ExtResource("6_vtvtf")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.1)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_k5h0q"]
|
||||
resource_name = "unfitting"
|
||||
length = 9.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 1.06,
|
||||
"start_offset": 0.59,
|
||||
"stream": ExtResource("7_0phgc")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.333333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ni75f"]
|
||||
resource_name = "unfitting_de"
|
||||
length = 8.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("AnimationPlayer/LisaFeedback")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("10_kvxnu")
|
||||
}],
|
||||
"times": PackedFloat32Array(0.133333)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_htay1"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_qjqy3"),
|
||||
&"complete": SubResource("Animation_2qppy"),
|
||||
&"complete_de": SubResource("Animation_vtvtf"),
|
||||
&"incomplete": SubResource("Animation_kvxnu"),
|
||||
&"incomplete_de": SubResource("Animation_0phgc"),
|
||||
&"unfitting": SubResource("Animation_k5h0q"),
|
||||
&"unfitting_de": SubResource("Animation_ni75f")
|
||||
}
|
||||
|
||||
[node name="board" type="PanelContainer"]
|
||||
material = SubResource("ShaderMaterial_ttqei")
|
||||
clip_contents = true
|
||||
|
|
@ -128,3 +263,14 @@ custom_minimum_size = Vector2(15, 0)
|
|||
layout_mode = 2
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_htay1")
|
||||
}
|
||||
|
||||
[node name="LisaFeedback" type="AudioStreamPlayer" parent="AnimationPlayer"]
|
||||
volume_db = 10.0
|
||||
mix_target = 2
|
||||
bus = &"text"
|
||||
script = ExtResource("8_ni75f")
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ var content: Node2D
|
|||
var label: Label
|
||||
var background_sprite: AnimatedSprite2D
|
||||
|
||||
@export var picked_random: bool = false
|
||||
|
||||
@export var shift_by: Vector2 = Vector2(-32, 0)
|
||||
@export_color_no_alpha var highlight_color: Color = Color(1.5, 1.5, 1.5)
|
||||
@export var highlighted: bool = false:
|
||||
|
|
@ -77,8 +79,8 @@ var on_board: bool = false
|
|||
func _init(sticky_name: String = "sticky_note", card_id: StringName = "-1") -> void:
|
||||
name = sticky_name
|
||||
text = sticky_name
|
||||
parent_id = card_id
|
||||
sticky_id = StringName( "%s.%s" % [parent_id, sticky_name] )
|
||||
parent_id = StringName(card_id.rsplit(".", false, 1)[0])
|
||||
sticky_id = card_id
|
||||
|
||||
func _ready() -> void:
|
||||
if get_child_count() == 0:
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -0,0 +1,10 @@
|
|||
shader_type canvas_item;
|
||||
render_mode blend_add;
|
||||
|
||||
uniform sampler2D heat_gradient;
|
||||
|
||||
void fragment() {
|
||||
float gradient = pow(max(0.0, 1.0-(length(UV-.5)*(3.0-COLOR.r))), 1.5-COLOR.r*1.0);
|
||||
gradient *= mix(1.0, pow(length(UV*vec2(1.7, 1.7)-vec2(0.85, 0.1))*1.5, 4.2), COLOR.r);
|
||||
COLOR = vec4(texture(heat_gradient, vec2(COLOR.b)).xyz, min(gradient, 1.0))*.25 * pow(COLOR.g, 2.2);
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dbao78tdyok8s
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
class_name CardBurner extends CenterContainer
|
||||
|
||||
var has_stage = false:
|
||||
set(focus):
|
||||
if not focus == has_stage:
|
||||
if focus:
|
||||
process_mode = Node.PROCESS_MODE_INHERIT
|
||||
self.show()
|
||||
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
||||
else:
|
||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
self.hide()
|
||||
process_mode = Node.PROCESS_MODE_DISABLED
|
||||
has_stage = focus
|
||||
|
||||
func _ready():
|
||||
Scenes.sign_up_for_sequence(burn_cards, Scenes.id.TRANSITION, 1)
|
||||
%SkipButton.pressed.connect(card_burned.emit)
|
||||
|
||||
func burn_cards(_id, _repeat):
|
||||
var random_card_names: Array = State.active_save_game.board_state["randoms"]
|
||||
|
||||
for card_name in random_card_names:
|
||||
if card_name.begins_with("p"):
|
||||
random_card_names.erase(card_name)
|
||||
|
||||
var random_cards: Array = HardCards.get_cards_by_name_array(random_card_names)["cards"]
|
||||
|
||||
random_cards.shuffle()
|
||||
|
||||
for ancor:Control in [%Ancor1, %Ancor2, %Ancor3, %Ancor4]:
|
||||
if random_cards.size() > 0:
|
||||
ancor.get_child(0).queue_free()
|
||||
var new_child: Card = random_cards.pop_front()
|
||||
ancor.add_child(new_child)
|
||||
new_child.owner = self
|
||||
new_child.has_burned.connect(card_burned.emit)
|
||||
|
||||
await card_burned
|
||||
$AnimationPlayer.play("vanish")
|
||||
await $AnimationPlayer.animation_finished
|
||||
|
||||
|
||||
Scenes.continue_sequence(self)
|
||||
|
||||
signal card_burned
|
||||
|
||||
func handle_hover(to_handle: Area2D):
|
||||
if to_handle is Card:
|
||||
if to_handle.burn_state == Card.burned.NOT:
|
||||
to_handle.burn_state = Card.burned.SINGED
|
||||
|
||||
func handle_mouse_button(event: InputEventMouseButton, card: Card):
|
||||
if event.button_index == MOUSE_BUTTON_MASK_LEFT and event.is_pressed() and not event.is_echo():
|
||||
card.burn_state = Card.burned.BURNING
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bbia2hcdwctyn
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
[gd_scene load_steps=13 format=3 uid="uid://g2a27jwdapai"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bbia2hcdwctyn" path="res://logic-scenes/card_burner/card_burner.gd" id="1_copuj"]
|
||||
[ext_resource type="Script" uid="uid://2loic2eeec5b" path="res://logic-scenes/board/card.gd" id="2_l4ogr"]
|
||||
[ext_resource type="Texture2D" uid="uid://615hvpuiacvm" path="res://addons/input_prompts/icons/xbox/X.png" id="3_ckmi5"]
|
||||
[ext_resource type="PackedScene" uid="uid://uc6urpgv7n1y" path="res://logic-scenes/card_burner/cursor_candle.tscn" id="3_l4ogr"]
|
||||
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="4_x6cxt"]
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_ckmi5"]
|
||||
device = -1
|
||||
physical_keycode = 88
|
||||
unicode = 120
|
||||
|
||||
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_x6cxt"]
|
||||
device = -1
|
||||
button_index = 2
|
||||
pressed = true
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_ckmi5"]
|
||||
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_x6cxt"]
|
||||
gradient = SubResource("Gradient_ckmi5")
|
||||
width = 100
|
||||
height = 100
|
||||
|
||||
[sub_resource type="Animation" id="Animation_57mhv"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../Sprite2D:self_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("../../CursorCandle:color")
|
||||
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)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_23lqb"]
|
||||
resource_name = "vanish"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("../Sprite2D:self_modulate")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"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("../../CursorCandle:color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.69, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(0, 0, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kaqqi"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_57mhv"),
|
||||
&"vanish": SubResource("Animation_23lqb")
|
||||
}
|
||||
|
||||
[node name="CardBurner" type="CenterContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_copuj")
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -373.5
|
||||
offset_top = -249.0
|
||||
offset_right = 373.5
|
||||
offset_bottom = -149.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Life gave you some thoughts you did not choose to keep.
|
||||
You may try to burn one."
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Ancor1" type="Control" parent="Control"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = -518.0
|
||||
offset_top = 14.0
|
||||
offset_right = -518.0
|
||||
offset_bottom = 14.0
|
||||
rotation = -0.0352522
|
||||
|
||||
[node name="Card" type="Area2D" parent="Control/Ancor1"]
|
||||
script = ExtResource("2_l4ogr")
|
||||
text = "card"
|
||||
metadata/_custom_type_script = "uid://2loic2eeec5b"
|
||||
|
||||
[node name="Ancor2" type="Control" parent="Control"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = -183.0
|
||||
offset_top = 35.0
|
||||
offset_right = -183.0
|
||||
offset_bottom = 35.0
|
||||
rotation = 0.0120591
|
||||
|
||||
[node name="card" type="Area2D" parent="Control/Ancor2"]
|
||||
script = ExtResource("2_l4ogr")
|
||||
text = "card"
|
||||
metadata/_custom_type_script = "uid://2loic2eeec5b"
|
||||
|
||||
[node name="Ancor3" type="Control" parent="Control"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = 153.0
|
||||
offset_top = 22.0
|
||||
offset_right = 153.0
|
||||
offset_bottom = 22.0
|
||||
rotation = -0.0139755
|
||||
|
||||
[node name="card" type="Area2D" parent="Control/Ancor3"]
|
||||
script = ExtResource("2_l4ogr")
|
||||
text = "card"
|
||||
metadata/_custom_type_script = "uid://2loic2eeec5b"
|
||||
|
||||
[node name="Ancor4" type="Control" parent="Control"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = 495.0
|
||||
offset_top = 15.0
|
||||
offset_right = 495.0
|
||||
offset_bottom = 15.0
|
||||
rotation = 0.0245775
|
||||
|
||||
[node name="card" type="Area2D" parent="Control/Ancor4"]
|
||||
script = ExtResource("2_l4ogr")
|
||||
text = "card"
|
||||
metadata/_custom_type_script = "uid://2loic2eeec5b"
|
||||
|
||||
[node name="HSplitContainer" type="HSplitContainer" parent="Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -156.0
|
||||
offset_top = 197.0
|
||||
offset_right = 157.0
|
||||
offset_bottom = 244.0
|
||||
grow_horizontal = 2
|
||||
|
||||
[node name="ActionPrompt" type="TextureRect" parent="Control/HSplitContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
texture = ExtResource("3_ckmi5")
|
||||
expand_mode = 2
|
||||
stretch_mode = 5
|
||||
script = ExtResource("4_x6cxt")
|
||||
action = "skip"
|
||||
icon = 0
|
||||
events = Array[InputEvent]([null, SubResource("InputEventKey_ckmi5"), SubResource("InputEventJoypadButton_x6cxt")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="SkipButton" type="Button" parent="Control/HSplitContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Keep all thoughts"
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Control"]
|
||||
self_modulate = Color(1, 1, 1, 0)
|
||||
scale = Vector2(100, 100)
|
||||
texture = SubResource("GradientTexture2D_x6cxt")
|
||||
|
||||
[node name="CursorCandle" parent="." instance=ExtResource("3_l4ogr")]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
root_node = NodePath("../Control/HSplitContainer")
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_kaqqi")
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
shader_type canvas_item;
|
||||
|
||||
uniform float fire_progression = 0;
|
||||
uniform sampler2D disp_noise: repeat_enable;
|
||||
uniform sampler2D crackle_noise: repeat_enable;
|
||||
uniform sampler2D ash_gradient: repeat_disable;
|
||||
|
||||
|
||||
vec3 RNGV3(vec3 p) {
|
||||
vec3 a = fract(sin(vec3(p.x, p.y, p.z)) * vec3(111.11,333.33,444.44));
|
||||
a += dot(a, a+33.51);
|
||||
return fract(vec3(a.x*a.y, a.y*a.z, a.z*a.x)); //outputs a random vec2 between 0 and 1
|
||||
}
|
||||
|
||||
vec4 voronoy(vec3 loc, float scale){
|
||||
loc = loc*scale;
|
||||
vec4 output = vec4(0., 0., 0., 10.);
|
||||
for(float y=-1.; y<=1.; y++){
|
||||
for(float x=-1.; x<=1.; x++){
|
||||
for(float z=-1.; z<=1.; z++){
|
||||
vec3 offs = vec3(x,y,z);
|
||||
vec3 n = RNGV3(floor(loc)+offs)*2.0-1.0;
|
||||
vec3 p = offs+sin(n) * .5;
|
||||
float d = length((fract(loc)-0.5)-p);
|
||||
if(d<output.q){
|
||||
vec3 rng = RNGV3(floor(loc)+offs);
|
||||
output = vec4(rng.x, rng.y, rng.z, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
vec4 smooth_voronoi(vec3 loc, float scale, int steps, float scatter){
|
||||
vec4 result = vec4(.0);
|
||||
scatter = scatter/float(steps)/scale;
|
||||
|
||||
for (float x = 0.0; x<float(steps); x++) {
|
||||
for (float y = 0.0; y<float(steps); y++) {
|
||||
for (float z = 0.0; z<float(steps); z++) {
|
||||
result += voronoy(loc + vec3(x, y, z) * scatter, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result / pow(float(steps), 3.);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
//COLOR.w *= max(.0, 1.0-length(UV-0.5)*2.0);
|
||||
vec2 card_uv = fract(UV*vec2(2, 3));
|
||||
float burn_gradient = max(0, length(vec2(.7, .2) - card_uv) * 3.0) + sin(TIME*2.0)*.1 + sin(TIME*3.5)*.02;
|
||||
float burn_texture = texture(crackle_noise, UV + (texture(disp_noise, UV).xy-.5)*fire_progression*0.3).r;
|
||||
COLOR.w *= clamp(texture(crackle_noise, UV + (texture(disp_noise, UV).xy-.5)*fire_progression*0.2).r*3.0-(fire_progression+burn_gradient*.3-1.2)*3.0, .0, 1.0);
|
||||
vec4 sut_texture = texture(ash_gradient, vec2(smooth_voronoi(vec3(UV, .0), 12.0, 2, .2).w * .6 - burn_gradient - fire_progression*2.0 + COLOR.w * 3.0));
|
||||
COLOR = mix(COLOR.rgba, vec4(COLOR.rgb*sut_texture.rgb, COLOR.w), sut_texture.w);
|
||||
//COLOR.rg = card_uv;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://c107y36jbhmgx
|
||||
Binary file not shown.
|
|
@ -0,0 +1,54 @@
|
|||
shader_type canvas_item;
|
||||
render_mode blend_add;
|
||||
|
||||
uniform float fire_progression = 0;
|
||||
uniform sampler2D flame_noise: repeat_enable;
|
||||
uniform sampler2D flame_gradoent;
|
||||
|
||||
vec3 RNGV3(vec3 p) {
|
||||
vec3 a = fract(sin(vec3(p.x, p.y, p.z)) * vec3(111.11,333.33,444.44));
|
||||
a += dot(a, a+33.51);
|
||||
return fract(vec3(a.x*a.y, a.y*a.z, a.z*a.x)); //outputs a random vec2 between 0 and 1
|
||||
}
|
||||
|
||||
vec4 voronoy(vec3 loc, float scale){
|
||||
loc = loc*scale;
|
||||
vec4 output = vec4(0., 0., 0., 10.);
|
||||
for(float y=-1.; y<=1.; y++){
|
||||
for(float x=-1.; x<=1.; x++){
|
||||
for(float z=-1.; z<=1.; z++){
|
||||
vec3 offs = vec3(x,y,z);
|
||||
vec3 n = RNGV3(floor(loc)+offs)*2.0-1.0;
|
||||
vec3 p = offs+sin(n) * .5;
|
||||
float d = length((fract(loc)-0.5)-p);
|
||||
if(d<output.q){
|
||||
vec3 rng = RNGV3(floor(loc)+offs);
|
||||
output = vec4(rng.x, rng.y, rng.z, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
vec4 smooth_voronoi(vec3 loc, float scale, int steps, float scatter){
|
||||
vec4 result = vec4(.0);
|
||||
scatter = scatter/float(steps)/scale;
|
||||
|
||||
for (float x = 0.0; x<float(steps); x++) {
|
||||
for (float y = 0.0; y<float(steps); y++) {
|
||||
for (float z = 0.0; z<float(steps); z++) {
|
||||
result += voronoy(loc + vec3(x, y, z) * scatter, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result / pow(float(steps), 3.);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 flame_uv = UV * 2.0+ texture(flame_noise, UV+vec2(0, TIME*3.0) *.1).z*vec2(0.1, 0.7);
|
||||
flame_uv = UV + pow(smooth_voronoi(vec3(flame_uv + vec2(.0, TIME*2.0) , TIME*1.0), 2.0, 3, .3).w, 1.5-voronoy(vec3(flame_uv, -TIME + COLOR.r*.5)*.7, 5.0).w) - 1.3 - COLOR.r*.5 + fire_progression;
|
||||
|
||||
COLOR = pow(texture(flame_gradoent, flame_uv.yx), vec4(2.2)) * sin((fire_progression)*(PI/2.0)) * pow(COLOR.r, 0.5) *3.0;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://7mdypxgh5yix
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://dgj8krsb45s0l"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://clfshh25jwfm1" path="res://logic-scenes/card_burner/card_fire.material" id="1_ktflc"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_uu85p"]
|
||||
offsets = PackedFloat32Array(0.343681, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_av2w6"]
|
||||
gradient = SubResource("Gradient_uu85p")
|
||||
width = 400
|
||||
height = 400
|
||||
fill = 1
|
||||
fill_from = Vector2(0.568376, 0.388889)
|
||||
fill_to = Vector2(0.260684, 0.722222)
|
||||
|
||||
[node name="CardFire" type="Sprite2D"]
|
||||
material = ExtResource("1_ktflc")
|
||||
texture = SubResource("GradientTexture2D_av2w6")
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
shader_type canvas_item;
|
||||
render_mode blend_mix;
|
||||
|
||||
uniform float fire_progression = 0;
|
||||
uniform sampler2D flame_noise: repeat_enable;
|
||||
uniform sampler2D ash_gradoent: repeat_disable;
|
||||
uniform sampler2D help: hint_screen_texture;
|
||||
|
||||
vec3 RNGV3(vec3 p) {
|
||||
vec3 a = fract(sin(vec3(p.x, p.y, p.z)) * vec3(111.11,333.33,444.44));
|
||||
a += dot(a, a+33.51);
|
||||
return fract(vec3(a.x*a.y, a.y*a.z, a.z*a.x)); //outputs a random vec2 between 0 and 1
|
||||
}
|
||||
|
||||
vec4 voronoy(vec3 loc, float scale){
|
||||
loc = loc*scale;
|
||||
vec4 output = vec4(0., 0., 0., 10.);
|
||||
for(float y=-1.; y<=1.; y++){
|
||||
for(float x=-1.; x<=1.; x++){
|
||||
for(float z=-1.; z<=1.; z++){
|
||||
vec3 offs = vec3(x,y,z);
|
||||
vec3 n = RNGV3(floor(loc)+offs)*2.0-1.0;
|
||||
vec3 p = offs+sin(n) * .5;
|
||||
float d = length((fract(loc)-0.5)-p);
|
||||
if(d<output.q){
|
||||
vec3 rng = RNGV3(floor(loc)+offs);
|
||||
output = vec4(rng.x, rng.y, rng.z, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
vec4 smooth_voronoi(vec3 loc, float scale, int steps, float scatter){
|
||||
vec4 result = vec4(.0);
|
||||
scatter = scatter/float(steps)/scale;
|
||||
|
||||
for (float x = 0.0; x<float(steps); x++) {
|
||||
for (float y = 0.0; y<float(steps); y++) {
|
||||
for (float z = 0.0; z<float(steps); z++) {
|
||||
result += voronoy(loc + vec3(x, y, z) * scatter, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result / pow(float(steps), 3.);
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
COLOR *= texture(ash_gradoent, vec2(smooth_voronoi(vec3(UV, .0), 5.0, 2, .2).w * .6 + COLOR.r*3.0 - fire_progression*2.0 +.5));
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://ci2gcwmdspyuw
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://bp6fd5lms3apa"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://0mocn41t2rq8" path="res://logic-scenes/card_burner/card_sut.material" id="3_u7lv4"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_pt3n6"]
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_wi77g"]
|
||||
gradient = SubResource("Gradient_pt3n6")
|
||||
width = 407
|
||||
height = 300
|
||||
fill = 1
|
||||
fill_from = Vector2(1, 0)
|
||||
fill_to = Vector2(0, 1)
|
||||
|
||||
[node name="Sut" type="Sprite2D"]
|
||||
material = ExtResource("3_u7lv4")
|
||||
scale = Vector2(1.54492, 1.69531)
|
||||
texture = SubResource("GradientTexture2D_wi77g")
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
[gd_scene load_steps=6 format=3 uid="uid://uc6urpgv7n1y"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://ppu1xnd8b7td" path="res://logic-scenes/card_burner/candle.material" id="1_61aak"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_wi77g"]
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_2ph0d"]
|
||||
gradient = SubResource("Gradient_wi77g")
|
||||
height = 80
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_2ph0d"]
|
||||
interpolation_mode = 2
|
||||
interpolation_color_space = 1
|
||||
offsets = PackedFloat32Array(0, 0.254593, 0.902887, 1)
|
||||
colors = PackedColorArray(0.6, 0.443137, 0, 1, 1, 0.917647, 0.388235, 1, 0.513726, 0.772549, 0.862745, 1, 0.443137, 0.635294, 1, 1)
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_cfpbc"]
|
||||
script/source = "extends CPUParticles2D
|
||||
|
||||
var noise: = FastNoiseLite.new()
|
||||
var noise_position:= 0.0
|
||||
var noise_offset:= Vector2.ZERO
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
var diff: Vector2 = position - noise_offset - get_viewport().get_mouse_position()
|
||||
noise_position += delta * 100
|
||||
noise_offset = Vector2(noise.get_noise_1d(noise_position), noise.get_noise_1d(-noise_position))*30.0
|
||||
position = get_viewport().get_mouse_position() + noise_offset
|
||||
rotation = lerp(rotation, clamp(-PI/3, diff.x *.05, PI/3), delta*20.0)
|
||||
|
||||
lifetime = max(0.01, lerp(lifetime, .25 * (1.0/(1.0+diff.length()*.1) - noise_offset.length()*.02), 0.2))
|
||||
"
|
||||
|
||||
[node name="CursorCandle" type="CPUParticles2D"]
|
||||
material = ExtResource("1_61aak")
|
||||
amount = 256
|
||||
texture = SubResource("GradientTexture2D_2ph0d")
|
||||
lifetime = 0.25
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 5.0
|
||||
particle_flag_align_y = true
|
||||
direction = Vector2(0, -1)
|
||||
spread = 0.0
|
||||
gravity = Vector2(0, 800)
|
||||
initial_velocity_min = 500.0
|
||||
initial_velocity_max = 600.0
|
||||
color_ramp = SubResource("Gradient_2ph0d")
|
||||
script = SubResource("GDScript_cfpbc")
|
||||
|
|
@ -27,6 +27,7 @@ var has_stage = false:
|
|||
var _input_locked = true
|
||||
var selection_state = INI:
|
||||
set(state):
|
||||
print("Setting picker state to %s" % ["INI","CARDS","CARDS_SELECTED","TRANSITION","POSTS","POSTS_SELECTED","DONE"][state])
|
||||
selection_state = state
|
||||
_input_locked = !(state == CARDS or state == POSTS)
|
||||
|
||||
|
|
@ -173,21 +174,23 @@ func pick(id: int):
|
|||
var i:int = 0
|
||||
for option:StickyNote in options:
|
||||
if option.parent_id == parent_id:
|
||||
options.erase(options)
|
||||
options.erase(option)
|
||||
anim_players[i].play("unshuffle")
|
||||
anim_players.remove_at(i)
|
||||
print("Removed StickyNote %s from options pool" % option.sticky_id)
|
||||
print("Removed StickyNote %s from options pool" % HardCards.get_obscure_name(option.name))
|
||||
i += 1
|
||||
|
||||
var winning_id
|
||||
print("Randomly selected card %s" % options[1].text)
|
||||
if not current_scene_id == Scenes.id.YOUTH_JUI_JUTSU:
|
||||
print("Randomly selected card %s" % HardCards.get_obscure_name(options[1].name))
|
||||
if not (current_scene_id == Scenes.id.YOUTH_JUI_JUTSU and selection_state == CARDS_SELECTED):
|
||||
randomize()
|
||||
winning_id = randi() % options.size()
|
||||
# investigate if this fixes error on line 197
|
||||
winning_id = randi() % options.size() - ( 1 if selection_state == POSTS_SELECTED else 0)
|
||||
else:
|
||||
winning_id = 1 if id == 0 else 0
|
||||
Steam.setAchievement("FIGHT_BACK")
|
||||
Steam.storeStats()
|
||||
if Steamworks.has_initialized:
|
||||
Steam.setAchievement("FIGHT_BACK")
|
||||
Steam.storeStats()
|
||||
|
||||
output.append(options.pop_at(winning_id))
|
||||
random_player = anim_players[winning_id]
|
||||
|
|
@ -218,15 +221,16 @@ func transition():
|
|||
elif selection_state == POSTS_SELECTED:
|
||||
var out_str:Array[StringName] = []
|
||||
for card in output:
|
||||
out_str.append(card.text if card.text != "" else "void")
|
||||
out_str.append(card.text if card.text != "" else "c_void")
|
||||
cards_picked.emit(out_str)
|
||||
selection_state = DONE
|
||||
Scenes.end_current_sequence()
|
||||
|
||||
func show_posts():
|
||||
selection_state = POSTS
|
||||
for player:AnimationPlayer in anim_players:
|
||||
player.play("RESET")
|
||||
await get_tree().create_timer(.5).timeout
|
||||
selection_state = POSTS
|
||||
|
||||
|
||||
func handle_hover(new_highlight):
|
||||
|
|
@ -235,7 +239,7 @@ func handle_hover(new_highlight):
|
|||
|
||||
func handle_mouse_button(button_event: InputEventMouseButton, new_selection: Node):
|
||||
if not _input_locked:
|
||||
if button_event.button_index == MOUSE_BUTTON_LEFT and button_event.pressed:
|
||||
if button_event.button_index == MOUSE_BUTTON_LEFT and button_event.pressed and not button_event.is_echo():
|
||||
pick(options.find(new_selection))
|
||||
|
||||
|
||||
|
|
@ -250,6 +254,7 @@ func pick_cards(id: int, repeat: bool):
|
|||
selection_state = CARDS
|
||||
if id == Scenes.id.YOUTH_DRAEVEN and not repeat:
|
||||
$Meaning.play()
|
||||
|
||||
else:
|
||||
Scenes.end_current_sequence()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
[gd_scene load_steps=72 format=3 uid="uid://brk4hjdf2x81a"]
|
||||
[gd_scene load_steps=73 format=3 uid="uid://brk4hjdf2x81a"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bdb6n10apk1en" path="res://logic-scenes/card_picker/card_picker.gd" id="1_pjntm"]
|
||||
[ext_resource type="Script" uid="uid://2loic2eeec5b" path="res://logic-scenes/board/card.gd" id="2_f4sp4"]
|
||||
[ext_resource type="Script" uid="uid://r12efqgk6t4n" path="res://logic-scenes/board/sticky-note.gd" id="3_f4sp4"]
|
||||
[ext_resource type="AudioStream" uid="uid://bakwypwhs7a5n" path="res://base-environments/youth_room/audio/why-does-it-mean.wav" id="4_ujc5a"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="5_et74x"]
|
||||
[ext_resource type="AudioStream" uid="uid://tbx31bdlhbtr" path="res://base-environments/youth_room/audio/why-does-it-mean_de.wav" id="6_et74x"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dinvx"]
|
||||
length = 0.001
|
||||
|
|
@ -1911,3 +1912,6 @@ stream = ExtResource("4_ujc5a")
|
|||
mix_target = 2
|
||||
bus = &"text"
|
||||
script = ExtResource("5_et74x")
|
||||
alternate_streams = Dictionary[String, AudioStream]({
|
||||
"de": ExtResource("6_et74x")
|
||||
})
|
||||
|
|
|
|||
|
|
@ -125,8 +125,21 @@ class_name CollectableUi extends CenterContainer
|
|||
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)
|
||||
|
|
@ -149,14 +162,18 @@ func _on_context_updated():
|
|||
func update_state():
|
||||
scene = scene
|
||||
is_board = is_board
|
||||
is_exit = is_exit
|
||||
_on_context_updated()
|
||||
|
||||
func reveal():
|
||||
func try_reveal() -> bool:
|
||||
if is_exit and not State.active_save_game.is_childhood_board_complete: return false
|
||||
if not visible:
|
||||
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"):
|
||||
|
|
@ -169,14 +186,16 @@ func reveal():
|
|||
|
||||
#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:
|
||||
print("handle input")
|
||||
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:
|
||||
open_board.emit()
|
||||
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()
|
||||
|
|
@ -192,6 +211,7 @@ func 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
|
||||
|
|
|
|||
|
|
@ -880,7 +880,7 @@ self_modulate = Color(0, 0, 0, 1)
|
|||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Crafted Mask"
|
||||
text = "crafted Mask"
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
|
@ -927,6 +927,7 @@ 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
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue