ugly bulk commit of last minute conference changes

This commit is contained in:
betalars 2025-01-16 17:32:58 +01:00
parent f9ac1ed5d9
commit 530e86d7bd
31 changed files with 2175 additions and 957 deletions

BIN
design/promo/logo_print_small.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -156,7 +156,7 @@ func display_file(file_path: String) -> void:
#region Private methods:
func _update() -> void:
text = _convert_markdown(markdown_text)
text = _convert_markdown(TranslationServer.translate(markdown_text))
queue_redraw()
func _set_markdown_text(new_text: String) -> void:

BIN
src/base-environments/youth_room/audio/childhood_de.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://b3cw0e41rjggo"
path="res://.godot/imported/childhood_de.wav-4d3a94ce2ab4184dce90dc9f5215f866.sample"
[deps]
source_file="res://base-environments/youth_room/audio/childhood_de.wav"
dest_files=["res://.godot/imported/childhood_de.wav-4d3a94ce2ab4184dce90dc9f5215f866.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=0

BIN
src/base-environments/youth_room/audio/draven-de.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://cvlqvlrc6lqru"
path="res://.godot/imported/draven-de.wav-34afbdb8bf8a4db3046a1dca2c223e0e.sample"
[deps]
source_file="res://base-environments/youth_room/audio/draven-de.wav"
dest_files=["res://.godot/imported/draven-de.wav-34afbdb8bf8a4db3046a1dca2c223e0e.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=0

View File

@ -9,7 +9,7 @@ extends Node3D
@export var light_energy:float = 0:
set(value):
light_energy = value
if is_inside_tree():
if is_node_ready():
light.light_energy = light_energy
@onready var light := $DirectionalLight3D

View File

@ -20,6 +20,7 @@ func start_room():
comic_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_VOICE_TRAINING > 0
ceiling_memento.collected = save_game.mementos_complete && 1 >> Scenes.id.YOUTH_DRAEVEN > 0
State.pass_stage_to($logic/PlayerController)
$logic/PlayerController.process_mode = Node.PROCESS_MODE_INHERIT
ini_room.emit()
@ -43,3 +44,14 @@ func pull_save_state(save: SaveGame) -> void:
func _on_scene_finished(id: int):
save_game.mementos_complete &= 1 << id
save_room()
var fixed := false
func hotfix(discard):
print("meep")
if not fixed:
await get_tree().create_timer(0.1).timeout
State.take_stage($logic/PlayerController, true)
fixed = true
dnd = false
var dnd: bool

View File

@ -0,0 +1,402 @@
[gd_scene load_steps=17 format=3 uid="uid://c3l8tm8ku50vt"]
[ext_resource type="Script" 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://cvlqvlrc6lqru" path="res://base-environments/youth_room/audio/draven-de.wav" id="6_cfqix"]
[ext_resource type="AudioStream" uid="uid://c4clagpd3ril0" path="res://base-environments/youth_room/audio/Ambient 5.ogg" id="7_1v51b"]
[sub_resource type="ViewportTexture" id="ViewportTexture_2cudi"]
viewport_path = NodePath("PanelContainer/StartFrame/TextureRect/SubViewport")
[sub_resource type="Environment" id="Environment_sk23p"]
ambient_light_color = Color(0.494118, 0.654902, 0.752941, 1)
tonemap_mode = 2
tonemap_exposure = 1.55
ssao_enabled = true
adjustment_enabled = true
adjustment_saturation = 0.9
[sub_resource type="World3D" id="World3D_4m36g"]
environment = SubResource("Environment_sk23p")
[sub_resource type="Animation" id="Animation_rp0q6"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_cml7w"]
resource_name = "idle"
length = 20.0
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:rotation")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 20),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(-0.349066, -1.5708, -0.349066), Vector3(-0.349066, 4.71239, -0.349066)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3td8t"]
_data = {
"RESET": SubResource("Animation_rp0q6"),
"idle": SubResource("Animation_cml7w")
}
[sub_resource type="Animation" id="Animation_ytihj"]
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": [true]
}
[sub_resource type="Animation" id="Animation_bgeog"]
resource_name = "de"
length = 160.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": 1.45,
"stream": ExtResource("6_cfqix")
}],
"times": PackedFloat32Array(1.9)
}
tracks/0/use_blend = true
tracks/1/type = "audio"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%AnimationPlayer/Music")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 1.13,
"stream": ExtResource("7_1v51b")
}],
"times": PackedFloat32Array(0.133333)
}
tracks/1/use_blend = true
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../../..:progress")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1.66667, 6.13333, 7.76667, 16.3, 19.0333, 26.7, 28.2, 34.9333, 36.7, 40.5, 41.9667, 44.6, 45.2, 49.2667, 50.4059, 55.2667, 56.0667, 58.8333, 60.8, 63.6667, 64.4667, 70.3058, 72.8, 82.2667, 83.8333, 90.0028, 91.0667, 97.6333, 99.7667, 106.526, 108.233, 117.933, 119.2, 121.633, 123.2, 132.033),
"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, 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, 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]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../../..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(97.7333),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"try_scroll"
}]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("..:custom_minimum_size")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(900, 800), Vector2(900, 900)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath(".:rotation")
tracks/5/interp = 2
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 1.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.174533, 0.349066]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../..:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.733333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [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("../../..:visible")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dc6th"]
_data = {
"RESET": SubResource("Animation_ytihj"),
"de": SubResource("Animation_bgeog")
}
[node name="childhood" type="CenterContainer"]
self_modulate = Color(1, 1, 1, 0.923078)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -424.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_40hhx")
story_array = Array[String](["[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 … didnt like the interruptions. We both were often mad at each other.", "Dinner was difficult. ", "I just couldnt bring myself to eat, because I couldnt deal with the bread and my mom.", "She was always so worried.", " Lisa, you forgot your homework, Lisa why wont you play with the other girls,\"", "\"Lisa why didnt Steffi invite you to her birthday, Lisa this, Lisa that.", "But I was fine! She just wouldnt listen.", "Yes, I didnt do homework, but my teachers didnt mind it as much with me ", "- which the other kids wouldnt 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 didnt need homework for good grades.", "And he also made sure to always include extra credits. So my silly slip-ups wouldnt get me a B."])
progress = 17.0
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 2
mouse_filter = 1
[node name="StartFrame" type="TextureRect" parent="PanelContainer"]
custom_minimum_size = Vector2(900, 900)
layout_mode = 2
size_flags_vertical = 0
texture = ExtResource("1_bkq30")
expand_mode = 2
stretch_mode = 4
[node name="Panel" type="PanelContainer" parent="PanelContainer/StartFrame"]
show_behind_parent = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -450.0
offset_top = -450.0
offset_right = 450.0
offset_bottom = 450.0
grow_horizontal = 2
grow_vertical = 2
rotation = 0.349066
pivot_offset = Vector2(450, 450)
mouse_filter = 1
[node name="TextureRect" type="TextureRect" parent="PanelContainer/StartFrame"]
layout_mode = 1
anchors_preset = 6
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_left = 118.0
offset_top = -256.0
offset_right = 630.0
offset_bottom = 256.0
grow_horizontal = 0
grow_vertical = 2
texture = SubResource("ViewportTexture_2cudi")
[node name="SubViewport" type="SubViewport" parent="PanelContainer/StartFrame/TextureRect"]
own_world_3d = true
world_3d = SubResource("World3D_4m36g")
transparent_bg = true
msaa_3d = 1
canvas_cull_mask = 4293918724
render_target_update_mode = 4
[node name="Node3D" type="Node3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.21953, 3.52719, 0)
[node name="old_mask" type="MeshInstance3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 0, 0)
layers = 4
mesh = ExtResource("2_jrxfv")
skeleton = NodePath("")
[node name="AnimationPlayer" type="AnimationPlayer" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D/old_mask"]
libraries = {
"": SubResource("AnimationLibrary_3td8t")
}
autoplay = "idle"
[node name="Camera3D" type="Camera3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(1, -4.88994e-09, 1.82221e-11, 4.88232e-09, 0.998636, 0.052214, -2.7352e-10, -0.052214, 0.998636, 0.0198479, 0.0554118, 0.529937)
current = true
fov = 33.0
[node name="SpotLight3D" type="SpotLight3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(0.302014, 0.249491, -0.920077, 0.207638, 0.924758, 0.318918, 0.930416, -0.287361, 0.227486, -0.620115, 0.241349, 0.172426)
layers = 4
light_color = Color(0.992157, 0.917647, 0.835294, 1)
light_size = 0.1
shadow_enabled = true
shadow_bias = 0.02
shadow_normal_bias = 2.171
spot_range = 0.846959
spot_angle = 23.1819
[node name="OmniLight3D" type="OmniLight3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.23127, 0.892279, -0.650658)
light_color = Color(0.266667, 0.286275, 1, 1)
light_size = 0.5
omni_range = 2.5227
[node name="OmniLight3D2" type="OmniLight3D" parent="PanelContainer/StartFrame/TextureRect/SubViewport/Node3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.424841, -0.45505, 0.00432622)
light_color = Color(0.607843, 0.34902, 0.203922, 1)
light_energy = 0.1
light_size = 0.5
omni_range = 1.00639
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"HeaderLarge"
text = " Childhood"
[node name="StoryScroll" type="ScrollContainer" parent="PanelContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 700)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 2
mouse_filter = 2
horizontal_scroll_mode = 0
vertical_scroll_mode = 3
[node name="StoryLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer/StoryScroll"]
unique_name_in_owner = true
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 … didnt like the interruptions. We both were often mad at each other.Dinner was difficult. I just couldnt bring myself to eat, because I couldnt deal with the bread and my mom.She was always so worried. Lisa, you forgot your homework, Lisa why wont you play with the other girls,\"\"Lisa why didnt Steffi invite you to her birthday, Lisa this, Lisa that.But I was fine! She just wouldnt listen.Yes, I didnt do homework, but my teachers didnt mind it as much with me - which the other kids wouldnt 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 didnt need homework for good grades.And he also made sure to always include extra credits. So my silly slip-ups wouldnt get me a B."
fit_content = true
scroll_active = false
visible_characters_behavior = 1
[node name="StartBottom" type="TextureRect" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 64)
layout_mode = 2
size_flags_vertical = 8
texture = ExtResource("3_o63m7")
expand_mode = 2
stretch_mode = 4
[node name="skip_control" parent="PanelContainer" instance=ExtResource("4_q0fee")]
layout_mode = 2
costum_owner = NodePath("../..")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
root_node = NodePath("../PanelContainer/StartFrame/Panel")
libraries = {
"": SubResource("AnimationLibrary_dc6th")
}
[node name="Text" type="AudioStreamPlayer" parent="AnimationPlayer"]
bus = &"text"
[node name="Music" type="AudioStreamPlayer" parent="AnimationPlayer"]
volume_db = -10.0
bus = &"music"

View File

@ -0,0 +1,414 @@
[gd_scene load_steps=12 format=3 uid="uid://cgwuoc1jfi7w6"]
[ext_resource type="Script" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_o2rjr"]
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_xwj2j"]
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="4_qgfj8"]
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="5_ddnfo"]
[ext_resource type="AudioStream" uid="uid://cvlqvlrc6lqru" path="res://base-environments/youth_room/audio/draven-de.wav" id="5_f6vs7"]
[ext_resource type="AudioStream" uid="uid://c4clagpd3ril0" path="res://base-environments/youth_room/audio/Ambient 5.ogg" id="6_7f2et"]
[ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draeven.ogg" id="7_nbb1o"]
[sub_resource type="Animation" id="Animation_ytihj"]
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": [0.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]
}
[sub_resource type="Animation" id="Animation_bgeog"]
resource_name = "de"
length = 135.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": 1.45,
"stream": ExtResource("5_f6vs7")
}],
"times": PackedFloat32Array(1.9)
}
tracks/0/use_blend = true
tracks/1/type = "audio"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%AnimationPlayer/Music")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 1.13,
"stream": ExtResource("6_7f2et")
}],
"times": PackedFloat32Array(0.133333)
}
tracks/1/use_blend = true
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../../..:progress")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1.66667, 6.13333, 7.76667, 16.3, 19.0333, 26.7, 28.2, 34.9333, 36.7, 40.5, 41.9667, 44.6, 45.2, 49.2667, 50.4059, 55.2667, 56.0667, 58.8333, 60.8, 63.6667, 64.4667, 70.3058, 72.8, 82.2667, 83.8333, 90.0028, 91.0667, 97.6333, 99.7667, 106.526, 108.233, 117.933, 119.2, 121.633, 123.2, 132.033),
"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, 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, 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]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../../..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(89.7667, 150.267),
"transitions": PackedFloat32Array(1, 1),
"values": [{
"args": [],
"method": &"try_scroll"
}, {
"args": [],
"method": &"trigger_intro"
}]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("..:custom_minimum_size")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(900, 800), Vector2(900, 900)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath(".:rotation")
tracks/5/interp = 2
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 1.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.174533, 0.349066]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../..:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.733333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [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("../../..:visible")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_gpkkx"]
resource_name = "en"
length = 125.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": 3.53355,
"stream": ExtResource("7_nbb1o")
}],
"times": PackedFloat32Array(2.13355)
}
tracks/0/use_blend = true
tracks/1/type = "audio"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("%AnimationPlayer/Music")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"clips": [{
"end_offset": 0.0,
"start_offset": 1.13,
"stream": ExtResource("6_7f2et")
}],
"times": PackedFloat32Array(0.133333)
}
tracks/1/use_blend = true
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("../../..:progress")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 1.66667, 6.03333, 7.66667, 11.2333, 13.9666, 19.5, 21, 28.6, 30.3667, 35.5, 36.9667, 39.2333, 39.8333, 43.0275, 44.1667, 48.5333, 49.3333, 51.5666, 53.5333, 57.3, 58.1, 63.1667, 65.4609, 72.4667, 74.0333, 80.8361, 81.9, 88.2666, 90.4, 97.493, 99.2, 106.5, 107.767, 111.4, 112.967, 119.5),
"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, 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, 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]
}
tracks/3/type = "method"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("../../..")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(16.5333, 40.5333, 60.6, 82.2333, 97.7333, 150.267),
"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": &"trigger_intro"
}]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("..:custom_minimum_size")
tracks/4/interp = 2
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 0.7),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector2(900, 800), Vector2(900, 900)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath(".:rotation")
tracks/5/interp = 2
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 1.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [0.174533, 0.349066]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("../..:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0, 0.733333),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [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("../../..:visible")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_dc6th"]
_data = {
"RESET": SubResource("Animation_ytihj"),
"de": SubResource("Animation_bgeog"),
"en": SubResource("Animation_gpkkx")
}
[node name="draven" type="CenterContainer"]
visible = false
self_modulate = Color(1, 1, 1, 0.923078)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = -877.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_o2rjr")
story_array = Array[String](["Moonlight trickled down trough clouds and twigs as Dräven tapped trough 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 didnt think much of it.", "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.", "When suddently: Was that chatter?", "His wings rustled with joy over the familiar voice and Dräven decided to get a better look.", "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.", "He didnt even want to bother it anymore.", "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: ", "Northern lights danced trough the sky to form wings, that met at a sleak body made of stars and clouds.", "The whole forest held its breath as it stared into eyes of moonlight gazing down.", "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."])
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 2
mouse_filter = 1
[node name="StartFrame" type="TextureRect" parent="PanelContainer"]
custom_minimum_size = Vector2(900, 900)
layout_mode = 2
size_flags_vertical = 0
texture = ExtResource("2_xwj2j")
expand_mode = 2
stretch_mode = 4
[node name="Panel" type="PanelContainer" parent="PanelContainer/StartFrame"]
show_behind_parent = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -450.0
offset_top = -450.0
offset_right = 450.0
offset_bottom = 450.0
grow_horizontal = 2
grow_vertical = 2
rotation = 0.349066
pivot_offset = Vector2(450, 450)
mouse_filter = 1
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
theme_type_variation = &"HeaderLarge"
text = " Dräven"
[node name="StoryScroll" type="ScrollContainer" parent="PanelContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 700)
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 2
mouse_filter = 2
horizontal_scroll_mode = 0
vertical_scroll_mode = 3
[node name="StoryLabel" type="RichTextLabel" parent="PanelContainer/VBoxContainer/StoryScroll"]
unique_name_in_owner = true
custom_minimum_size = Vector2(800, 10)
layout_mode = 2
size_flags_horizontal = 3
bbcode_enabled = true
text = "Moonlight trickled down trough clouds and twigs as Dräven tapped trough 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 didnt think much of it.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.When suddently: Was that chatter?His wings rustled with joy over the familiar voice and Dräven decided to get a better look.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.He didnt even want to bother it anymore.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: Northern lights danced trough the sky to form wings, that met at a sleak body made of stars and clouds.The whole forest held its breath as it stared into eyes of moonlight gazing down.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."
fit_content = true
scroll_active = false
visible_characters = 1082
visible_characters_behavior = 1
visible_ratio = 0.709974
[node name="StartBottom" type="TextureRect" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 64)
layout_mode = 2
size_flags_vertical = 8
texture = ExtResource("4_qgfj8")
expand_mode = 2
stretch_mode = 4
[node name="skip_control" parent="PanelContainer" instance=ExtResource("5_ddnfo")]
layout_mode = 2
costum_owner = NodePath("../..")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
unique_name_in_owner = true
root_node = NodePath("../PanelContainer/StartFrame/Panel")
libraries = {
"": SubResource("AnimationLibrary_dc6th")
}
[node name="Text" type="AudioStreamPlayer" parent="AnimationPlayer"]
bus = &"text"
[node name="Music" type="AudioStreamPlayer" parent="AnimationPlayer"]
volume_db = -10.0
bus = &"music"
[connection signal="scroll_started" from="PanelContainer/VBoxContainer/StoryScroll" to="PanelContainer/skip_control" method="abort_auto_proceed"]

View File

@ -0,0 +1,92 @@
@tool
extends CenterContainer
signal finished
signal intro
#TODO properly implement animation taking stage, as it should do, disabling processing when it does not have stage.
@export var story_array: Array[String] = []:
set(array):
story_array = array
if is_node_ready():
label.text = ""
substring_sizes = []
if Engine.is_editor_hint():
TranslationServer.set_locale("en")
for str in array:
label.text += TranslationServer.translate(str).replace("[/p]", "[/p][p][font_size=8] [/font_size][/p]")
substring_sizes.append(TranslationServer.translate(str).replace("[/p]", ".").replace("[p]", "").length())
@export var progress: float = 0:
set(value):
progress = value
if is_node_ready():
var start_index = 0
if progress >= substring_sizes.size() or progress < 0:
label.visible_ratio = 1
elif progress >= 1:
for i in range(min(progress, substring_sizes.size()-1) as int) if progress > 0 else range(substring_sizes.size()-1):
start_index += substring_sizes[i]
label.visible_characters = start_index + substring_sizes[min(progress as int, substring_sizes.size()-1)] * fmod(progress, 1)
@onready var story_label: Label
@onready var label:RichTextLabel = %StoryLabel
@onready var scroll_container:ScrollContainer = %StoryScroll
@onready var animation_player: AnimationPlayer = %AnimationPlayer
@export var animation_complete:bool = false:
set(value):
animation_complete = value
if value:
scroll_container.scroll_vertical = ScrollContainer.ScrollMode.SCROLL_MODE_AUTO
progress = -1
animation_complete = value
var substring_sizes: Array[int]
func _ready() -> void:
if get_tree().root == self:
play_scene()
story_array = story_array
progress = progress
func try_scroll():
var scroll_target: int
if get_minimum_size().y * label.visible_ratio + scroll_container.scroll_vertical > scroll_container.get_minimum_size().y * 0.9:
if get_minimum_size().y * label.visible_ratio + scroll_container.scroll_vertical + scroll_container.get_minimum_size().y * 0.9 > label.get_minimum_size().y:
scroll_target = scroll_container.scroll_vertical + scroll_container.get_minimum_size().y * 0.8
else:
scroll_target = label.get_minimum_size().y - scroll_container.get_minimum_size().y
if scroll_target != null:
var tween: Tween = get_tree().create_tween()
##tween.set_trans()
tween.tween_property(scroll_container, "scroll_vertical", scroll_target, 0.5)
func play_scene():
animation_complete = false
##FIXME match State.text_language:
match TranslationServer.get_locale():
"de":
animation_player.queue("de")
"en":
animation_player.queue("en")
await animation_player.animation_finished
if name == "draven":
trigger_intro()
animation_complete = true
finished.emit()
var intro_triggered:= false
func trigger_intro():
if not intro_triggered:
intro.emit()
func skip_text():
animation_complete = true

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,16 @@
[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://djkwd76o033io"]
[sub_resource type="AudioEffectEQ" id="AudioEffectEQ_e1rh3"]
resource_name = "EQ"
band_db/3200_hz = -30.0
band_db/10000_hz = -60.0
[sub_resource type="AudioEffectLowPassFilter" id="AudioEffectLowPassFilter_ijm2o"]
resource_name = "LowPassFilter"
cutoff_hz = 6000.0
[sub_resource type="AudioEffectLowPassFilter" id="AudioEffectLowPassFilter_5p17k"]
resource_name = "LowPassFilter"
resonance = 0.52
[resource]
bus/0/volume_db = 0.0672607
bus/0/effect/0/effect = SubResource("AudioEffectEQ_e1rh3")
bus/0/volume_db = 2.64922
bus/0/effect/0/effect = SubResource("AudioEffectLowPassFilter_ijm2o")
bus/0/effect/0/enabled = false
bus/1/name = &"text"
bus/1/solo = false

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=5 format=3 uid="uid://bigr0lnen1xdh"]
[gd_scene load_steps=10 format=3 uid="uid://bigr0lnen1xdh"]
[sub_resource type="GDScript" id="GDScript_5hy5u"]
script/source = "extends Node3D
@ -20,6 +20,29 @@ func _on_scene_actors_animation_finished(anim_name):
print(\"yay\")
"
[sub_resource type="Shader" id="Shader_tcvor"]
code = "shader_type spatial;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
}
//void light() {
// Called for every pixel for every light affecting the material.
// Uncomment to replace the default light processing function with this one.
//}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_3ik03"]
render_priority = 0
shader = SubResource("Shader_tcvor")
[sub_resource type="PlaneMesh" id="PlaneMesh_4cqhd"]
[sub_resource type="Animation" id="Animation_kdstq"]
length = 0.001
tracks/0/type = "value"
@ -57,6 +80,26 @@ _data = {
"test": SubResource("Animation_wjx7h")
}
[sub_resource type="Shader" id="Shader_4yqov"]
code = "shader_type spatial;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
}
void light() {
DIFFUSE_LIGHT += max(0, dot(NORMAL, LIGHT)) * ATTENUATION * ALBEDO;
}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_idyit"]
render_priority = 0
shader = SubResource("Shader_4yqov")
[node name="Node3D" type="Node3D"]
script = SubResource("GDScript_5hy5u")
@ -64,10 +107,24 @@ script = SubResource("GDScript_5hy5u")
transform = Transform3D(1, 0, 0, 0, 0.987688, -0.156434, 0, 0.156434, 0.987688, 0, -0.058, 0.77)
fov = 18.0
[node name="MeshInstance3D" type="MeshInstance3D" parent="Camera3D"]
material_override = SubResource("ShaderMaterial_3ik03")
mesh = SubResource("PlaneMesh_4cqhd")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_l6qbr")
}
autoplay = "test"
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.04812, 0, 0)
[node name="CSGSphere3D2" type="CSGSphere3D" parent="."]
transform = Transform3D(-0.918846, 0, 0.394615, 0, 1, 0, -0.394615, 0, -0.918846, 3.14472, 0, 0)
material_override = SubResource("ShaderMaterial_idyit")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.144125, -0.969123, 0.20007, 0.566457, 0.246576, 0.786337, -0.81139, 0, 0.584505, 3.14472, 0, 0)
[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_scene_actors_animation_finished"]

View File

@ -1,6 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://52mr50b01ibd"]
[ext_resource type="Theme" uid="uid://d00g441vb4f6i" path="res://dev-util/test_theme.tres" id="1_v0n80"]
[gd_scene load_steps=3 format=3 uid="uid://52mr50b01ibd"]
[sub_resource type="GDScript" id="GDScript_qm6fo"]
script/source = "extends Button
@ -8,7 +6,7 @@ script/source = "extends Button
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
ProjectSettings.set_setting(\"gui/theme/custom\", \"res://dev-util/test_theme.tres\")
TranslationServer.set_locale(\"de\")
"
[sub_resource type="GDScript" id="GDScript_rovd7"]
@ -36,7 +34,6 @@ offset_left = 458.0
offset_top = 209.0
offset_right = 611.0
offset_bottom = 281.0
theme = ExtResource("1_v0n80")
text = "small boi"
script = SubResource("GDScript_qm6fo")
@ -58,3 +55,28 @@ popup/item_0/text = "asdf"
popup/item_1/text = "werty"
popup/item_1/id = 1
script = SubResource("GDScript_rovd7")
[node name="Label" type="Label" parent="OptionButton"]
layout_mode = 0
offset_right = 21.0
offset_bottom = 39.0
text = "Acessibility, Disclaimers and Content Notes"
[node name="RichTextLabel" type="RichTextLabel" parent="."]
layout_mode = 0
offset_left = 1498.0
offset_top = 243.0
offset_right = 2329.0
offset_bottom = 597.0
text = "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 … didnt like the interruptions. We both were often mad at each other.
Dinner was difficult. I just couldnt bring myself to eat, because I couldnt deal with the bread and my mom. She was always so worried. Lisa, you forgot your homework, Lisa why wont you play with the other girls, Lisa why didnt Steffi invite you to her birthday, Lisa this, Lisa that.
But I was fine. She just wouldnt listen.
Yes, I didnt do homework, but my teachers didnt mind it as much with me - which the other kids wouldnt 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 didnt need homework for good grades. And he also made sure to always include extra credits. So my silly slip-ups wouldnt get me a B."
fit_content = true
scroll_active = false

View File

@ -62,7 +62,7 @@ script_export_mode=2
[preset.1.options]
custom_template/debug="/home/betalars/Development/godot/godot-steam/godotsteam.43.debug.template.windows.64.exe"
custom_template/debug="/home/betalars/development/godot/godot-steam/godotsteam.43.debug.template.windows.64.exe"
custom_template/release="/home/betalars/Development/godot/godot-steam/godotsteam.43.template.windows.64.exe"
debug/export_console_wrapper=1
binary_format/embed_pck=false

1
src/icon.svg Normal file
View File

@ -0,0 +1 @@
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>

After

Width:  |  Height:  |  Size: 950 B

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=10 format=3 uid="uid://dy5rd437h5hsw"]
[gd_scene load_steps=11 format=3 uid="uid://dy5rd437h5hsw"]
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_emip0"]
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_ioijn"]
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="3_1x4uh"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"]
radius = 110.0
@ -78,6 +79,7 @@ offset_bottom = 88.0
grow_horizontal = 2
grow_vertical = 2
rotation = 0.00872665
theme = ExtResource("3_1x4uh")
theme_type_variation = &"card_text"
autowrap_mode = 3

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=17 format=3 uid="uid://vkcdj8c3ytbq"]
[gd_scene load_steps=18 format=3 uid="uid://vkcdj8c3ytbq"]
[ext_resource type="Script" path="res://logic-scenes/board/sticky-note.gd" id="1_yvh5n"]
[ext_resource type="Texture2D" uid="uid://c8ckkjmdegyis" path="res://logic-scenes/board/card-textures/postitsheet.png" id="2_j17jn"]
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="3_qmm0h"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_ml4q7"]
radius = 48.0
@ -123,12 +124,13 @@ anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -38.0
offset_left = -52.0
offset_top = -50.0
offset_right = 239.0
offset_right = 243.0
offset_bottom = 47.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("3_qmm0h")
theme_type_variation = &"card_text"
vertical_alignment = 1
autowrap_mode = 3

View File

@ -195,6 +195,7 @@ func transition():
for card in output:
out_str.append(card.name)
cards_picked.emit(out_str)
get_parent().get_parent().get_parent().dnd = false
selection_state = DONE
State.leave_stage(self)

View File

@ -1,46 +1,69 @@
extends Control
signal skip
signal proceed
@export var skip_delay: float = 0.5
@export var auto_continue_delay: float = 1
@export var costum_owner: NodePath
var time_pressed: float = 0
@onready var button: Button = $"Skip Button"
@onready var progress: ProgressBar = $ProgressBar
var pressed: bool
@onready var button: Button = %SkipButton
@onready var progress: ProgressBar = %ProgressBar
var pressed: bool = false
var proceeding: bool = false:
set(value):
proceeding = value
if proceeding and is_node_ready():
#FIXME: animation implementieren >:3
button.text = "continue"
elif is_node_ready():
button.text = "skip to end (hold)"
var auto_proceed: bool = false:
set(value):
auto_proceed = value
#resets progress bar on button
time_pressed = 0
func _ready():
if costum_owner != NodePath(""):
owner = get_node(costum_owner)
if owner == null:
owner = get_parent().get_parent()
owner.connect("visibility_changed", Callable(self, "owner_visibility_changed"))
visible = owner.visible
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if pressed and visible:
if pressed and is_visible_in_tree():
time_pressed += delta
progress.value = time_pressed / skip_delay
if time_pressed >= skip_delay:
emit_signal("skip")
skip.emit()
pressed = false
time_pressed = 0
if get_parent().get_parent().name == "draeven":
await(get_tree().create_timer(0.1).timeout)
get_parent().get_parent().get_parent().queue("intro")
func _input(event):
if visible:
elif auto_proceed:
time_pressed += delta
if time_pressed >= auto_continue_delay:
proceed.emit()
func _unhandled_input(event: InputEvent) -> void:
if is_visible_in_tree():
if event.is_action_pressed("skip"):
if not proceeding:
pressed = true
else:
proceed.emit()
get_viewport().set_input_as_handled()
elif event.is_action_released("skip"):
if not proceeding:
pressed = false
time_pressed = 0
progress.value = 0
get_viewport().set_input_as_handled()
elif event.is_action_pressed("ui_accept") or event.is_action_pressed("ui_focus_next"):
proceed.emit()
get_viewport().set_input_as_handled()
func owner_visibility_changed():
visible = owner.visible
func _on_skip_button_toggled(button_pressed):
if button_pressed:
@ -48,3 +71,9 @@ func _on_skip_button_toggled(button_pressed):
else:
pressed = false
time_pressed = 0
func change_to_proceed_mode():
proceeding = true
func abort_auto_proceed():
auto_proceed = false

View File

@ -1,31 +1,43 @@
[gd_scene load_steps=2 format=3 uid="uid://dvwuhobhka78d"]
[gd_scene load_steps=8 format=3 uid="uid://dvwuhobhka78d"]
[ext_resource type="Script" path="res://logic-scenes/misc/skip_control.gd" id="1_s6riu"]
[ext_resource type="Script" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="2_ev8gx"]
[ext_resource type="Texture2D" uid="uid://615hvpuiacvm" path="res://addons/input_prompts/icons/xbox/X.png" id="2_pnwbx"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pwtn0"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4rt17"]
bg_color = Color(0.6, 0.6, 0.6, 0)
border_width_top = 5
border_width_bottom = 5
border_color = Color(1, 1, 1, 1)
border_blend = true
corner_radius_top_left = 5
corner_radius_bottom_left = 5
expand_margin_top = 5.0
expand_margin_bottom = 5.0
[sub_resource type="InputEventKey" id="InputEventKey_krb4k"]
device = -1
physical_keycode = 88
unicode = 120
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_3b2du"]
device = -1
button_index = 2
pressed = true
[node name="skip_control" type="Control"]
process_mode = 4
layout_mode = 3
anchors_preset = 0
size_flags_horizontal = 4
size_flags_vertical = 8
script = ExtResource("1_s6riu")
[node name="ProgressBar" type="ProgressBar" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -160.0
offset_top = -19.5
offset_right = 160.0
offset_bottom = 19.5
grow_horizontal = 2
grow_vertical = 2
max_value = 1.0
show_percentage = false
[node name="SkipButton" type="Button" parent="."]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
@ -38,6 +50,37 @@ offset_right = 108.0
offset_bottom = 21.5
grow_horizontal = 2
grow_vertical = 2
text = "hold x or [ ] to skip"
text = "skip to end (hold)"
[node name="ProgressBar" type="ProgressBar" parent="SkipButton"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/background = SubResource("StyleBoxEmpty_pwtn0")
theme_override_styles/fill = SubResource("StyleBoxFlat_4rt17")
max_value = 1.0
show_percentage = false
[node name="ActionPrompt" type="TextureRect" parent="SkipButton"]
layout_mode = 1
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = -55.0
offset_top = -25.0
offset_right = -5.0
offset_bottom = 25.0
grow_vertical = 2
texture = ExtResource("2_pnwbx")
expand_mode = 2
stretch_mode = 5
script = ExtResource("2_ev8gx")
action = "skip"
icon = 0
events = Array[InputEvent]([null, SubResource("InputEventKey_krb4k"), SubResource("InputEventJoypadButton_3b2du")])
[connection signal="toggled" from="SkipButton" to="." method="_on_skip_button_toggled"]

View File

@ -2,6 +2,7 @@ extends RigidBody3D
var has_stage: bool = false:
set(on_stage):
print("%s player controller take stage" % "True: " if on_stage else "false")
if has_stage != on_stage:
if on_stage:
has_stage = true
@ -24,7 +25,7 @@ var has_stage: bool = false:
else:
jitter_strength = 0
has_stage = false
print("player controller %s take stage" % "did" if has_stage else "didn't")
sleeping = has_stage
@export_range (0, 10) var max_speed: float = 3
@ -166,6 +167,7 @@ func _handle_mouse_input(event:InputEventMouseMotion):
current_mouse_rotation = event.relative
func _input(event:InputEvent):
if get_parent().get_parent().dnd: return
if has_stage:
if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
_handle_mouse_input(event)

View File

@ -107,3 +107,13 @@ func get_room_path_from_id(id: State.rooms) -> String:
func start_demo():
load_save(SaveGame.new())
$"Messe-Menue".hide()
var last_mode := DisplayServer.WINDOW_MODE_WINDOWED
func _unhandled_input(event: InputEvent) -> void:
if event.is_action_pressed("toggle_fullscreen"):
if DisplayServer.window_get_mode() == DisplayServer.WINDOW_MODE_FULLSCREEN:
DisplayServer.window_set_mode(last_mode)
else:
last_mode = DisplayServer.window_get_mode()
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=83 format=3 uid="uid://befxf8uruwnrl"]
[gd_scene load_steps=106 format=3 uid="uid://befxf8uruwnrl"]
[ext_resource type="Script" path="res://main.gd" id="1_rqkns"]
[ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"]
@ -999,6 +999,259 @@ thumbnail = ExtResource("11_lul3y")
last_saved = 1.72926e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_dwly2"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-19_20:24:17"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.72936e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_q2jfg"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-19_22:33:11"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.72937e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_vbtih"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-20_00:13:44"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.72938e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_3spk5"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-31_11:08:56"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73037e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_j7vjo"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-31_12:53:19"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73038e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_iwwok"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-06_15:01:07"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.7309e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_5f8aq"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-07_23:55:32"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73102e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_xcydm"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_20:27:21"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73109e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_evfw0"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_23:03:07"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.7311e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_rptay"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_23:37:11"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_25jr3"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_23:39:13"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_losf8"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_01:39:52"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_xqfb0"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_09:50:23"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73114e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_7pmrp"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_16:16:11"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_idtht"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_16:49:24"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_40rof"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_17:00:05"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_lldec"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_17:12:31"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_q6fub"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-10_10:54:07"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73123e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_uce57"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-10_10:57:56"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73123e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_k3ael"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-10_14:42:31"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73125e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_fbxfi"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_11:55:47"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73694e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_8yv2t"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_12:08:16"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73694e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_7c43w"]
script = ExtResource("10_ohds0")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_12:13:49"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("11_lul3y")
last_saved = 1.73694e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_qi5jr"]
resource_local_to_scene = true
script = ExtResource("11_uwfii")
@ -1122,16 +1375,9 @@ font_color = Color(1, 1, 1, 1)
[sub_resource type="GDScript" id="GDScript_t6jj1"]
script/source = "extends VSplitContainer
func _ready() -> void:
if TranslationServer.get_locale() == \"de\":
hide()
if not OS.has_feature(\"Demo\") and false:
get_parent().queue_free()
func _on_locale_button_pressed() -> void:
TranslationServer.set_locale(\"de\")
hide()
TranslationServer.set_locale(\"en\")
%DisclaimerLabel._update()
func _unhandled_input(event: InputEvent) -> void:
if event is InputEventAction:
@ -1222,7 +1468,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("8_jecj3")
saves = Array[ExtResource("10_ohds0")]([SubResource("Resource_0ccxs"), SubResource("Resource_scb5e"), SubResource("Resource_uo7bh"), SubResource("Resource_wx6hh"), SubResource("Resource_iegpl"), SubResource("Resource_3gsqu"), SubResource("Resource_dxf6c"), SubResource("Resource_ruvsp"), SubResource("Resource_vmghk"), SubResource("Resource_t00ah"), SubResource("Resource_q813j"), SubResource("Resource_vhk4w"), SubResource("Resource_fe21n"), SubResource("Resource_mdiph"), SubResource("Resource_h6lqp"), SubResource("Resource_7uym5"), SubResource("Resource_xnudk"), SubResource("Resource_niqm0"), SubResource("Resource_ugpkd"), SubResource("Resource_3hkjs")])
saves = Array[ExtResource("10_ohds0")]([SubResource("Resource_0ccxs"), SubResource("Resource_scb5e"), SubResource("Resource_uo7bh"), SubResource("Resource_wx6hh"), SubResource("Resource_iegpl"), SubResource("Resource_3gsqu"), SubResource("Resource_dxf6c"), SubResource("Resource_ruvsp"), SubResource("Resource_vmghk"), SubResource("Resource_t00ah"), SubResource("Resource_q813j"), SubResource("Resource_vhk4w"), SubResource("Resource_fe21n"), SubResource("Resource_mdiph"), SubResource("Resource_h6lqp"), SubResource("Resource_7uym5"), SubResource("Resource_xnudk"), SubResource("Resource_niqm0"), SubResource("Resource_ugpkd"), SubResource("Resource_3hkjs"), SubResource("Resource_dwly2"), SubResource("Resource_q2jfg"), SubResource("Resource_vbtih"), SubResource("Resource_3spk5"), SubResource("Resource_j7vjo"), SubResource("Resource_iwwok"), SubResource("Resource_5f8aq"), SubResource("Resource_xcydm"), SubResource("Resource_evfw0"), SubResource("Resource_rptay"), SubResource("Resource_25jr3"), SubResource("Resource_losf8"), SubResource("Resource_xqfb0"), SubResource("Resource_7pmrp"), SubResource("Resource_idtht"), SubResource("Resource_40rof"), SubResource("Resource_lldec"), SubResource("Resource_q6fub"), SubResource("Resource_uce57"), SubResource("Resource_k3ael"), SubResource("Resource_fbxfi"), SubResource("Resource_8yv2t"), SubResource("Resource_7c43w")])
[node name="CreditsRoll" type="RichTextLabel" parent="."]
visible = false
@ -1555,26 +1801,13 @@ size_flags_horizontal = 0
texture = ExtResource("19_madrp")
expand_mode = 3
[node name="MarkdownLabel" type="RichTextLabel" parent="Messe-Menue/HSplitContainer"]
[node name="DisclaimerLabel" type="RichTextLabel" parent="Messe-Menue/HSplitContainer"]
unique_name_in_owner = true
layout_mode = 2
bbcode_enabled = true
text = "[font_size=36]Frame of Mind[/font_size]
[font_size=27]Ein Gedanken-Spiel.[/font_size]
[font_size=22]Sensible Inhalte[/font_size]
In diesem Spiel geht es um mentale Gesundheit und Konflikte,
mit denen manche Jugendliche beim Aufwachsen konfrontiert werden.
In dieser Demo werden Probleme mit Essen, Mobbing und Geschlechter-Rollen sowie Nacktheit unter Jugendlichen und fiktionale Gewalt in Comics angesprochen. Dabei werden ein paar Schimpfworte verwendet."
text = "Demo-intro-text"
script = ExtResource("10_viehl")
markdown_text = "#Frame of Mind
## Ein Gedanken-Spiel.
### Sensible Inhalte
In diesem Spiel geht es um mentale Gesundheit und Konflikte,
mit denen manche Jugendliche beim Aufwachsen konfrontiert werden.
In dieser Demo werden Probleme mit Essen, Mobbing und Geschlechter-Rollen sowie Nacktheit unter Jugendlichen und fiktionale Gewalt in Comics angesprochen. Dabei werden ein paar Schimpfworte verwendet."
markdown_text = "Demo-intro-text"
h1 = SubResource("Resource_308k2")
h2 = SubResource("Resource_g0gc1")
h3 = SubResource("Resource_13vyj")
@ -1617,6 +1850,7 @@ theme_override_font_sizes/font_size = 50
text = "Starte die Demo!"
[node name="Label" type="Label" parent="Messe-Menue"]
visible = false
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
@ -1640,23 +1874,24 @@ anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -262.0
offset_top = -248.0
offset_right = 263.0
offset_bottom = -84.0
offset_left = -349.0
offset_top = -168.0
offset_right = 350.0
offset_bottom = -37.0
grow_horizontal = 2
grow_vertical = 0
script = SubResource("GDScript_t6jj1")
[node name="Label" type="Label" parent="Messe-Menue/VSplitContainer"]
layout_mode = 2
text = "English or other unsupported international Locale detected.
Please know that the locale set on the demo computers will be German."
horizontal_alignment = 1
[node name="LocaleButton" type="Button" parent="Messe-Menue/VSplitContainer"]
layout_mode = 2
text = "Audit this game in German (reccomended)"
size_flags_horizontal = 4
text = "🇬🇧 Switch to English. 🇬🇧"
[node name="Label" type="Label" parent="Messe-Menue/VSplitContainer"]
layout_mode = 2
text = "*USK-Kennzeichnung bezieht sich auf den Games for Family-Stand der Spielraum-Messe Dresden.
Die Kennzeichnung trifft nicht zwangsläufig auf das finale Spiel zu."
horizontal_alignment = 1
[connection signal="on_read" from="Disclaimer" to="Startup Menu" method="starting"]
[connection signal="pressed" from="Messe-Menue/Button" to="." method="start_demo"]

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=3 uid="uid://b51wdql4mby47"]
[gd_scene load_steps=48 format=3 uid="uid://b51wdql4mby47"]
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"]
[ext_resource type="Script" path="res://logic-scenes/main menu/main_menu.gd" id="2_rm576"]
@ -360,6 +360,215 @@ thumbnail = ExtResource("12_6qu04")
last_saved = 1.72927e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_yo5qr"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-19_20:24:18"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.72936e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_7axnv"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-19_22:33:12"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.72937e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_r3oqr"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-20_00:13:45"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.72938e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_7hoak"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-10-31_11:08:58"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73037e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_x034i"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-06_15:01:09"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.7309e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_hv6lt"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-07_23:55:34"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73102e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_ngwc0"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_20:27:23"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73109e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_dsk3l"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_23:37:11"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_efgi1"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-08_23:39:13"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_xenjc"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_01:39:53"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73111e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_2mijl"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_09:50:24"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73114e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_mucpl"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_16:49:24"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_dxffb"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_17:00:05"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_4c35o"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-09_17:12:31"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73117e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_4cd2u"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-10_10:54:09"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73123e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_ye22d"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2024-11-10_14:42:31"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73125e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_m18wr"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_11:55:48"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73694e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_jed2g"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_12:08:18"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73694e+09
is_save_file_valid = false
[sub_resource type="Resource" id="Resource_jel4s"]
script = ExtResource("11_cspq7")
filepath = ""
unique_save_name = "frame_of_mind_2025-01-15_12:13:51"
current_room = 0
mementos_complete = 0
board_state = {}
thumbnail = ExtResource("12_6qu04")
last_saved = 1.73694e+09
is_save_file_valid = false
[node name="Main Menu" type="Panel"]
anchors_preset = 15
anchor_right = 1.0
@ -517,7 +726,7 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("8_o0cpj")
saves = Array[ExtResource("11_cspq7")]([SubResource("Resource_civda"), SubResource("Resource_ny8h2"), SubResource("Resource_eypce"), SubResource("Resource_0aleq"), SubResource("Resource_yamni"), SubResource("Resource_ofqsy"), SubResource("Resource_775qv"), SubResource("Resource_epdda"), SubResource("Resource_idh7b"), SubResource("Resource_yy8tc")])
saves = Array[ExtResource("11_cspq7")]([SubResource("Resource_civda"), SubResource("Resource_ny8h2"), SubResource("Resource_eypce"), SubResource("Resource_0aleq"), SubResource("Resource_yamni"), SubResource("Resource_ofqsy"), SubResource("Resource_775qv"), SubResource("Resource_epdda"), SubResource("Resource_idh7b"), SubResource("Resource_yy8tc"), SubResource("Resource_yo5qr"), SubResource("Resource_7axnv"), SubResource("Resource_r3oqr"), SubResource("Resource_7hoak"), SubResource("Resource_x034i"), SubResource("Resource_hv6lt"), SubResource("Resource_ngwc0"), SubResource("Resource_dsk3l"), SubResource("Resource_efgi1"), SubResource("Resource_xenjc"), SubResource("Resource_2mijl"), SubResource("Resource_mucpl"), SubResource("Resource_dxffb"), SubResource("Resource_4c35o"), SubResource("Resource_4cd2u"), SubResource("Resource_ye22d"), SubResource("Resource_m18wr"), SubResource("Resource_jed2g"), SubResource("Resource_jel4s")])
[node name="ScrollContainer" type="ScrollContainer" parent="."]
layout_mode = 0

19
src/meeeeep.tscn Normal file
View File

@ -0,0 +1,19 @@
[gd_scene load_steps=2 format=3 uid="uid://dok5ty1o02wg3"]
[ext_resource type="Script" path="res://addons/inputty/Rebind/InputRemap.gd" id="1_2coyj"]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="InputRemap" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
script = ExtResource("1_2coyj")
actionNames = Array[StringName]([&"player_right", &"player_left"])
actionDisplayNames = Array[String](["walk left", "walk right"])

View File

@ -11,10 +11,13 @@ config_version=5
[application]
config/name="Frame of Mind"
config/name_localized={
"de": "Frame of Mind - ein Gedankenspiel."
}
run/main_scene="res://main.tscn"
config/use_custom_user_dir=true
config/features=PackedStringArray("4.3", "Forward Plus")
run/max_fps=60
run/max_fps=30
boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1)
boot_splash/image="res://splash.png"
boot_splash/fullsize=false
@ -25,6 +28,8 @@ config/icon="res://icon.png"
State="*res://singletons/global_state.gd"
Scenes="*res://singletons/scene_reference.gd"
Steamworks="*res://dev-util/steamworks.gd"
Inputty="*res://addons/inputty/Inputty.gd"
PromptManager="*res://addons/input_prompts/input_prompt_manager.gd"
[debug]
@ -34,13 +39,18 @@ gdscript/warnings/native_method_override=0
window/size/viewport_width=1920
window/size/viewport_height=1080
window/size/mode=3
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
mouse_cursor/custom_image="res://import/interface-elements/cursor.png"
[editor]
movie_writer/movie_file="/home/betalars/development/godot/frame-of-mind/src/trailer-lighting.avi"
[editor_plugins]
enabled=PackedStringArray("res://addons/LineRenderer/plugin.cfg", "res://addons/markdownlabel/plugin.cfg")
enabled=PackedStringArray("res://addons/LineRenderer/plugin.cfg", "res://addons/input_prompts/plugin.cfg", "res://addons/markdownlabel/plugin.cfg")
[filesystem]
@ -146,10 +156,16 @@ reset_demo={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":true,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":82,"location":0,"echo":false,"script":null)
]
}
toggle_fullscreen={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194342,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
[internationalization]
locale/translations=PackedStringArray("res://internationalisation.de.translation", "res://internationalisation.en.translation")
locale/test="de"
[layer_names]
@ -162,4 +178,5 @@ locale/translations=PackedStringArray("res://internationalisation.de.translation
textures/vram_compression/import_etc2_astc=true
scaling_3d/scale=0.6
environment/screen_space_reflection/roughness_quality=2
anti_aliasing/quality/msaa_3d=2
anti_aliasing/quality/screen_space_aa=1

View File

@ -187,7 +187,7 @@ func leave_stage(actor:Object, dropObject: bool = false) -> bool:
func get_current_actor(): return stage_list.front()
# Used to put a new target on top of the Focus Stack.
func pass_stage_to(target:Object, force = false, lock_focus = true) -> bool:
func pass_stage_to(target:Object, force = false, lock_focus = false) -> bool:
if "pass_to_actor" in target:
pass_stage_to(target.pass_to_actor)
if (focus_locked or get_tree().paused) and not force:
@ -206,6 +206,7 @@ func pass_stage_to(target:Object, force = false, lock_focus = true) -> bool:
if target.has_stage:
stage_list.push_front(target)
assert(stage_list.size() < 100)
focus_locked = lock_focus
return true
return false