Compare commits
No commits in common. "845fc1d84d33f9661c63b7b1f59bcdea7fd79ccc" and "7d299c8ddf6fdeb6709c097625c9749bec284da5" have entirely different histories.
845fc1d84d
...
7d299c8ddf
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GdProjectSettingsState">
|
||||
<annotators>warn</annotators>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -5,5 +5,5 @@ func _ready() -> void:
|
|||
$MarkdownLabel.display_file("res://addons/markdownlabel/README.md")
|
||||
$MarkdownLabel.task_checkbox_clicked.connect(
|
||||
func(id: int, line: int, checked: bool, text: String) -> void:
|
||||
print_debug("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text])
|
||||
print("%s task #%d on line %d: %s" % ["Checked" if checked else "Unchecked", id, line, text])
|
||||
)
|
||||
|
|
|
|||
|
|
@ -640,7 +640,7 @@ func _reset_escaped_chars(_text: String,code:=false) -> String:
|
|||
func _debug(string: String) -> void:
|
||||
if not _debug_mode:
|
||||
return
|
||||
print_debug(string)
|
||||
print(string)
|
||||
|
||||
func _denotes_fenced_code_block(line: String, character: String) -> bool:
|
||||
var stripped_line := line.strip_edges()
|
||||
|
|
|
|||
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cfwa5dq3flk4b"
|
||||
path="res://.godot/imported/sky_textures.png-1ba6043dcaf28986e3e05f5171fee2b4.ctex"
|
||||
path="res://.godot/imported/sky_textures.png-1bc387632f79299cfe768a08f95b36df.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/intro/textures/sky_textures.png"
|
||||
dest_files=["res://.godot/imported/sky_textures.png-1ba6043dcaf28986e3e05f5171fee2b4.ctex"]
|
||||
source_file="res://base-environments/intro_scene/textures/sky_textures.png"
|
||||
dest_files=["res://.godot/imported/sky_textures.png-1bc387632f79299cfe768a08f95b36df.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dabnlcnuticww"
|
||||
path="res://.godot/imported/sky_textures_2.png-79f9797d0c2a05f0a7e04941a93a9158.ctex"
|
||||
path="res://.godot/imported/sky_textures_2.png-a1913291aa98549785b8c12dd6aa67b9.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/intro/textures/sky_textures_2.png"
|
||||
dest_files=["res://.godot/imported/sky_textures_2.png-79f9797d0c2a05f0a7e04941a93a9158.ctex"]
|
||||
source_file="res://base-environments/intro_scene/textures/sky_textures_2.png"
|
||||
dest_files=["res://.godot/imported/sky_textures_2.png-a1913291aa98549785b8c12dd6aa67b9.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bblv1y6l4re8y"
|
||||
path="res://.godot/imported/star.png-a94df91fbef396160044c05bed745e1c.ctex"
|
||||
path="res://.godot/imported/star.png-8963d4096c36d0531880a451c851e16d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/intro/textures/star.png"
|
||||
dest_files=["res://.godot/imported/star.png-a94df91fbef396160044c05bed745e1c.ctex"]
|
||||
source_file="res://base-environments/intro_scene/textures/star.png"
|
||||
dest_files=["res://.godot/imported/star.png-8963d4096c36d0531880a451c851e16d.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="FontFile" uid="uid://bdkb43smt08c0" path="res://import/fonts/Ubuntu-B.ttf" id="2_q6nhe"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_80ahk"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Node2D
|
||||
|
||||
@export var current_station: Scenes.id = Scenes.id.ADULT_DND:
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ func _ready() -> void:
|
|||
get_parent().load_save(save_game))
|
||||
|
||||
func start_room():
|
||||
save_game = State.save_game
|
||||
save_game = State.active_save_game
|
||||
State.pass_stage_to(%PlayerController)
|
||||
on_first_station()
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ func pull_save_state(save: SaveGame) -> void:
|
|||
save.sequences_enabled = Scenes.enabled_sequences
|
||||
save.current_room = State.rooms.ADULTHOOD
|
||||
save_game = save
|
||||
|
||||
|
||||
func prepare_transition():
|
||||
for child in %Stations.get_children():
|
||||
if child is Node3D:
|
||||
|
|
@ -73,7 +73,7 @@ func on_left_train_enter(_body):
|
|||
%SubwayMap.current_station = Scenes.id.ADULT_CHRISTMAS
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train2.get_child(0).door_open = true
|
||||
|
||||
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
if not changeover:
|
||||
%Train2.get_child(0).door_open = false
|
||||
|
|
@ -127,9 +127,9 @@ func on_right_train_enter(_body):
|
|||
%SubwayMap.current_station = Scenes.id.ADULT_UNI
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
%Train.get_child(0).door_open = true
|
||||
|
||||
|
||||
await get_tree().create_timer(5.0).timeout
|
||||
|
||||
|
||||
if not changeover:
|
||||
%Train.get_child(0).door_open = false
|
||||
on_second_transition()
|
||||
|
|
@ -164,7 +164,7 @@ func on_left_train_exit(_body):
|
|||
if on_second_platform and not on_final:
|
||||
changeover = true
|
||||
%ShedulePlayer_R.play("train_arriving")
|
||||
|
||||
|
||||
func on_right_train_exit(_body):
|
||||
if on_second_platform and not on_final:
|
||||
changeover = true
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://bewykr0twbplg" path="res://base-environments/transition/import/textures/LateralTren_baseColor_upscayl_2x_realesrgan-x4plus-anime.png" id="5_6pwip"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_6pwip"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Node3D
|
||||
|
||||
@export var door_open: bool:
|
||||
|
|
|
|||
|
|
@ -958,14 +958,23 @@ viewport_path = NodePath("Displays/Train_Display_R")
|
|||
[sub_resource type="ViewportTexture" id="ViewportTexture_csq32"]
|
||||
viewport_path = NodePath("Displays/Train_Display_L")
|
||||
|
||||
[sub_resource type="Animation" id="Animation_o0t2h"]
|
||||
resource_name = "dnd_to_uni"
|
||||
[sub_resource type="Animation" id="Animation_symoa"]
|
||||
resource_name = "init"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_820wi"]
|
||||
resource_name = "volunteer_exit"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_e75no"]
|
||||
resource_name = "dnd_to_volunteer"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_symoa"]
|
||||
resource_name = "init"
|
||||
[sub_resource type="Animation" id="Animation_c3uo7"]
|
||||
resource_name = "volunteer_to_uni"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_r7fs3"]
|
||||
resource_name = "volunteer_to_therapy"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_o0t2h"]
|
||||
resource_name = "dnd_to_uni"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_jleua"]
|
||||
resource_name = "uni_to_burnout"
|
||||
|
|
@ -976,15 +985,6 @@ resource_name = "uni_to_therapy"
|
|||
[sub_resource type="Animation" id="Animation_dm3ia"]
|
||||
resource_name = "uni_to_volunteer"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_820wi"]
|
||||
resource_name = "volunteer_exit"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_r7fs3"]
|
||||
resource_name = "volunteer_to_therapy"
|
||||
|
||||
[sub_resource type="Animation" id="Animation_c3uo7"]
|
||||
resource_name = "volunteer_to_uni"
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xcyoy"]
|
||||
_data = {
|
||||
&"dnd_to_uni": SubResource("Animation_o0t2h"),
|
||||
|
|
@ -1058,7 +1058,7 @@ transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, 6.24
|
|||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.7804413, 0, 0)
|
||||
|
||||
[node name="MeshInstance3D8" type="MeshInstance3D" parent="Train/Visuals/Train"]
|
||||
transform = Transform3D(-42.01, 4.075623e-07, 4.340103e-07, -6.330816e-06, -2.8743172, -0.1808367, -5.9450394e-06, 0.1808367, -2.8743172, -3.9468384, 1.286, 2.488358)
|
||||
transform = Transform3D(-42.01, 4.075623e-07, 4.3401022e-07, -6.330816e-06, -2.8743172, -0.1808367, -5.9450385e-06, 0.1808367, -2.8743172, -3.9468384, 1.286, 2.488358)
|
||||
visible = false
|
||||
material_override = SubResource("ShaderMaterial_0vobo")
|
||||
mesh = SubResource("QuadMesh_ppxbm")
|
||||
|
|
@ -1391,7 +1391,6 @@ unique_name_in_owner = true
|
|||
|
||||
[node name="Displays" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.003971815, 9.536743e-07, 0.0078623295)
|
||||
visible = false
|
||||
|
||||
[node name="Train_Display_L" type="SubViewport" parent="Displays"]
|
||||
transparent_bg = true
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_hmyim"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_n54tc"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="5_xi27m"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="6_h63aa"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="6_h63aa"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="7_71rn2"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="8_3ljef"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="9_nvo2d"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_280pk"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_ji3tv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_iwhp8"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_iufku"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_iufku"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_4ni3m"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_eqxbt"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_pthbi"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_86ec2"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_abtq0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_pcx8t"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_w4vem"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_w4vem"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_0dsyx"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_fiu8d"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_sh3ja"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_8utmq"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_gfeis"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_u0xc1"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_62vlf"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_62vlf"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_6h2ud"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_44s4k"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_rpv31"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_uxp36"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_27dlw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_6qw45"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_pf7gl"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_pf7gl"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_ecg2n"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_ld7n3"]
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_ym0sv"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_00crh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_3iy8l"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_32a0r"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_32a0r"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_bfggg"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_hdxjv"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_xkdnh"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_d3khy"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_fe2un"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_uj7tn"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_05o76"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_05o76"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_0b3yt"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_4fkwm"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_ede0y"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_1pvsj"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_5x2mw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_xe0ue"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="4_apcmj"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_apcmj"]
|
||||
[ext_resource type="AudioStream" uid="uid://dupcfwi54fpjx" path="res://base-environments/youth_room/audio/FoM_Lisa_Kindheit_Voice_Acting_deutsch_newt.wav" id="5_aytqp"]
|
||||
[ext_resource type="AudioStream" uid="uid://d15ltkofdggly" path="res://base-environments/youth_room/audio/Voice-Training-Workshop.wav" id="6_l131v"]
|
||||
[ext_resource type="Script" uid="uid://c1oub0cs7cph6" path="res://dev-util/stereo-switch.gd" id="7_rd1kp"]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ signal ini_room
|
|||
@onready var player: Player = %PlayerController
|
||||
|
||||
func start_room():
|
||||
save_game = State.save_game
|
||||
save_game = State.active_save_game
|
||||
save_game.current_room = State.rooms.ADULTHOOD
|
||||
Scenes.completed_sequences = save_game.mementos_complete
|
||||
Scenes.started_sequences = save_game.mementos_complete
|
||||
|
|
@ -23,9 +23,9 @@ func start_room():
|
|||
|
||||
func _ready():
|
||||
id = State.rooms.ADULTHOOD
|
||||
|
||||
|
||||
Scenes.scene_finished.connect(_on_scene_finished)
|
||||
|
||||
|
||||
card_picker.cards_picked.connect(card_board.populate_board)
|
||||
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@
|
|||
[ext_resource type="PackedScene" uid="uid://brk4hjdf2x81a" path="res://logic-scenes/card_picker/card_picker.tscn" id="18_upyac"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="19_ci4rn"]
|
||||
[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="20_e1uao"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro/shaders/stars.gdshader" id="22_e1uao"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="23_my8p4"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="22_e1uao"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="23_my8p4"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_tmbwx"]
|
||||
size = Vector3(1, 2.778, 1.353)
|
||||
|
|
@ -196,7 +196,7 @@ func scene_finished(id: Scenes.id, _repeat: bool):
|
|||
queue(\"RESET\")
|
||||
|
||||
func play(anin_name: StringName = \"\", a: float = -1, b: float = 1, c: bool = false) -> void:
|
||||
print_debug(\"anim player accessed!\")
|
||||
print(\"anim player accessed!\")
|
||||
super.play(anin_name, a, b, c)
|
||||
|
||||
func on_autism_done():
|
||||
|
|
@ -816,36 +816,20 @@ libraries = {
|
|||
script = SubResource("GDScript_sg0pj")
|
||||
|
||||
[node name="autism" parent="Scenes/ScenePlayer" instance=ExtResource("10_gcdra")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="burnout" parent="Scenes/ScenePlayer" instance=ExtResource("11_kmoh8")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="university_eating" parent="Scenes/ScenePlayer" instance=ExtResource("12_6rb4d")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="university_advocacy" parent="Scenes/ScenePlayer" instance=ExtResource("13_5s6pb")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="therapy_uni" parent="Scenes/ScenePlayer" instance=ExtResource("14_upyac")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="therapy_volunteer" parent="Scenes/ScenePlayer" instance=ExtResource("15_ci4rn")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="trans" parent="Scenes/ScenePlayer" instance=ExtResource("16_e1uao")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="trauma" parent="Scenes/ScenePlayer" instance=ExtResource("17_my8p4")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="UI" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ func _on_mouse_exited():
|
|||
has_mouse = false
|
||||
|
||||
func try_reveal(for_player: Player) -> bool:
|
||||
print_debug("reveal ui!")
|
||||
print("reveal ui!")
|
||||
revealed = ui.try_reveal()
|
||||
if revealed:
|
||||
call_deferred("wait_for_ui_exit", for_player)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ func ready():
|
|||
body_exited.connect(notify_player_exit)
|
||||
|
||||
func notify_player_entry(body: RigidBody3D):
|
||||
print_debug("Player entered Crouch area.")
|
||||
print("Player entered Crouch area.")
|
||||
if body is Player:
|
||||
body.inside_crouch_volume.append(self)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
[ext_resource type="ArrayMesh" uid="uid://f5fr2e5gq313" path="res://base-environments/youth_room/shaders/fairy_light_diode.res" id="4_qh8yy"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_2caij"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Node3D
|
||||
|
||||
@export var light_array: Array[Vector3]:
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="PackedScene" uid="uid://c2uf5vwe2rdbd" path="res://base-environments/youth_room/import/cheeky-city.glb" id="1_yckvd"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_bfd5g"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Node3D
|
||||
|
||||
@export var light_energy:float = 0:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
class_name YouthRoom
|
||||
extends RoomTemplate
|
||||
|
||||
signal ini_room
|
||||
|
|
@ -9,7 +8,7 @@ signal ini_room
|
|||
@onready var card_picker: CardPicker = %Picker
|
||||
|
||||
func start_room():
|
||||
save_game = State.save_game
|
||||
save_game = State.active_save_game
|
||||
save_game.current_room = State.rooms.YOUTH
|
||||
Scenes.completed_sequences = save_game.mementos_complete
|
||||
Scenes.started_sequences = save_game.mementos_complete
|
||||
|
|
@ -26,17 +25,18 @@ func start_room():
|
|||
State.pass_stage_to(%PlayerController)
|
||||
%LightAnimation.lights_on()
|
||||
|
||||
|
||||
func get_ready():
|
||||
id = State.rooms.YOUTH
|
||||
self.show()
|
||||
$sfx/distant_rain.play()
|
||||
$"sfx/rain on window".play()
|
||||
await get_tree().process_frame #TODO: this was 0.1s, not sure if needed at all
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
%Board.hide()
|
||||
|
||||
func _ready():
|
||||
super._ready()
|
||||
Scenes.scene_finished.connect(_on_scene_finished)
|
||||
|
||||
card_picker.cards_picked.connect(card_board.populate_board)
|
||||
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://belkrno67sft0
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
[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://ui/skip_control/skip_control.tscn" id="4_q0fee"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="4_q0fee"]
|
||||
[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"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" 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://ui/skip_control/skip_control.tscn" id="5_ddnfo"]
|
||||
[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"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://cb1d5cwtgllvq" path="res://base-environments/youth_room/scnees/scene_player.gd" id="1_aby4n"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="2_k4i8e"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="4_s5qj7"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="5_0qiyf"]
|
||||
[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://bwh60165c3saj" path="res://base-environments/youth_room/audio/lisa_youth_voice.ogg" id="7_bvh45"]
|
||||
|
|
@ -821,6 +821,8 @@ offset_right = -424.0
|
|||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_aby4n")
|
||||
story_array = PackedStringArray("Why do i still have this junk lying around? its not like I want to do ju jutsu ever again. I just fucked it.", "I mean I did enjoy it while it lasted. Being able to properly hit people was great.", "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. ", "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.", "He was such a huge nerd. He studied math in his third semester and could talk for hours about his passion.", "Also: my math grades pretty much leaped for my final year in high school thanks to him.", "He also helped me so much with jiu jitsu, as he properly floored me when I slipped up. ", "So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.", "We also had my first proper kiss. I thought I loved him. But now?", "He was weird that evening. Even more huggy and hyperactive than usual.", "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 had a play fight on my mattress. I\'ve never seen him fight like this.", "His fingers Curled across my Skin without grabbing me, like he would normally do. And he let me win", "… with this smirk on his face.", "I rolled over exhausted when suddenly he sat on top of me, a pearl of sweat dropped from his nose on my throat.", "He started undoing his shirt.", "Do you have condoms?", "Yes, of course everybody has Why did he ask that?", "I saw my body lying on the bed, getting undressed. I was drifting away, towards the stars.", "My body didn\'t move. It didn\'t say a word when the butterflies tried to escape from its stomach as he kissed it.", "I … observed him from afar. He … didn\'t seem to notice, that I had left.", "That I didn\'t return to kiss him goodbye. That I didn\'t hug him when he went home.", "My hands knocked on my brother’s door. He let me lie on his carpet.", "I slowly returned.", "\"How did it go?, Fabian asked.", "\"It was moist”, I said.", "“That usually helps.”", "He laughed awkwardly. I just wanted to also laugh, but curled into a ball and cried.", "It took him a while to say something. “I … you … it\'s fine Lisa. I know it hurts the first time.”", "He gently stroked the back I was curling towards him.", "That was good. He was a sweet angel. Why must he be so bad at comforting?")
|
||||
paragraph_lengths = PackedInt32Array(3, 6, 8, 9, 10, 12, 15, 16, 17, 18, 20, 22, 24, 25, 26, 27, 28, 29, 31, 32, 33, 32, 31, 30)
|
||||
progress = 17.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
extends CenterContainer
|
||||
|
||||
signal text_finished
|
||||
|
|
@ -19,14 +20,14 @@ var max_lines: float = 0
|
|||
set(value):
|
||||
progress = value
|
||||
if is_node_ready() and not all_text_revealed:
|
||||
var start_index := 0
|
||||
var start_index = 0
|
||||
if progress >= substring_sizes.size() or progress < 0:
|
||||
label.visible_ratio = 1
|
||||
elif progress > 0:
|
||||
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 + int(substring_sizes[min(progress as int, substring_sizes.size()-1)] * fmod(progress, 1))
|
||||
label.visible_characters = start_index + substring_sizes[min(progress as int, substring_sizes.size()-1)] * fmod(progress, 1)
|
||||
else:
|
||||
label.visible_ratio = 0
|
||||
|
||||
|
|
@ -71,6 +72,7 @@ func _ready() -> void:
|
|||
skip_control.skip.connect(skip_text)
|
||||
|
||||
if get_tree().root.get_child(-1) == self:
|
||||
TranslationServer.set_locale("en")
|
||||
play_scene()
|
||||
story_array = story_array
|
||||
progress = progress
|
||||
|
|
@ -94,7 +96,7 @@ func _rebuild():
|
|||
max_lines = float(label.get_line_count())
|
||||
|
||||
func try_scroll():
|
||||
var forward_target: float
|
||||
var forward_target: int
|
||||
|
||||
#print( "max lines: " + str(max_lines))
|
||||
#print( "current lines: " + str(label.get_character_line(label.visible_characters)))
|
||||
|
|
@ -109,7 +111,7 @@ func try_scroll():
|
|||
else:
|
||||
forward_target = label.size.y - scroll_container.size.y
|
||||
if scroll_target != null:
|
||||
#var tween: Tween = get_tree().create_tween()
|
||||
var tween: Tween = get_tree().create_tween()
|
||||
##tween.set_trans()
|
||||
scroll_target = forward_target
|
||||
|
||||
|
|
@ -150,18 +152,18 @@ func play_scene():
|
|||
finished.emit()
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
var just_revealed_text := false
|
||||
var just_revealed_text = false
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||
scroll_target += 40
|
||||
if not all_text_revealed:
|
||||
just_revealed_text = true
|
||||
if not all_text_revealed: just_revealed_text
|
||||
all_text_revealed = true
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||
scroll_target -= 40
|
||||
if not all_text_revealed:
|
||||
just_revealed_text = true
|
||||
if just_revealed_text and animation_complete:
|
||||
all_text_revealed = true
|
||||
if not all_text_revealed: just_revealed_text
|
||||
all_text_revealed = true
|
||||
if just_revealed_text:
|
||||
if animation_complete: all_text_revealed = true
|
||||
|
||||
var scroll_target: float = 0:
|
||||
set(value):
|
||||
|
|
@ -170,7 +172,7 @@ func _process(delta: float) -> void:
|
|||
# FIXME: maybe change this to has stage?
|
||||
if visible and not Engine.is_editor_hint():
|
||||
if scroll_container.scroll_vertical != scroll_target:
|
||||
scroll_container.scroll_vertical += int((scroll_target-scroll_container.scroll_vertical)*delta*6)
|
||||
scroll_container.scroll_vertical += (scroll_target-scroll_container.scroll_vertical)*delta*6
|
||||
|
||||
var intro_triggered:= false
|
||||
func trigger_intro():
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
[ext_resource type="ArrayMesh" uid="uid://bhfqffldbvdgq" path="res://base-environments/youth_room/import/youth_special_meshes_comic_book_1.res" id="3_ho85h"]
|
||||
[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://ui/skip_control/skip_control.tscn" id="5_b3y80"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="5_b3y80"]
|
||||
[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"]
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
[ext_resource type="AudioStream" uid="uid://cho5neuxkvpyh" path="res://base-environments/youth_room/audio/Voice Loop.wav" id="12_kmdcg"]
|
||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="13_h8ip1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="14_t30qm"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://ui/skip_control/skip_control.tscn" id="15_n6nrr"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="15_n6nrr"]
|
||||
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="16_t6yr4"]
|
||||
[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="17_ce5x6"]
|
||||
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="18_xppl3"]
|
||||
|
|
@ -32,8 +32,8 @@
|
|||
[ext_resource type="AudioStream" uid="uid://bghjiqkyehs1p" path="res://base-environments/youth_room/import/sounds/rain and thunder.mp3" id="30_ustah"]
|
||||
[ext_resource type="PackedScene" uid="uid://dwtxjvprjyx8p" path="res://base-environments/youth_room/lava-lamp.tscn" id="31_hv11t"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="32_xw563"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro/shaders/stars.gdshader" id="33_v36su"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="34_g2brt"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="33_v36su"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="34_g2brt"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://jjrvf8px2ut3" path="res://base-environments/youth_room/shaders/winfow_frames.res" id="35_62hgr"]
|
||||
[ext_resource type="Material" uid="uid://bmu72cnsr8c5e" path="res://base-environments/youth_room/shaders/window.material" id="36_3qqid"]
|
||||
[ext_resource type="PackedScene" uid="uid://bwc2wp7tckm7t" path="res://base-environments/youth_room/outside.tscn" id="37_3deyi"]
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
uid://bsop46tqngddc
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=136 format=4 uid="uid://b3b0gyvklqn50"]
|
||||
[gd_scene load_steps=137 format=4 uid="uid://b3b0gyvklqn50"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bsop46tqngddc" path="res://base-environments/youth_room/youth_room.gd" id="1_aitp0"]
|
||||
[ext_resource type="Script" uid="uid://belkrno67sft0" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
||||
[ext_resource type="AudioStream" uid="uid://1h6k2d8q1kw3" path="res://base-environments/youth_room/import/sounds/rain_on_window.mp3" id="2_3haaq"]
|
||||
[ext_resource type="Resource" uid="uid://bgplfqxa852wo" path="res://dev-util/debug_save.tres" id="2_h6j14"]
|
||||
[ext_resource type="PackedScene" uid="uid://mkccbig41bqb" path="res://logic-scenes/player_controller/player_controller.tscn" id="3_foj4y"]
|
||||
[ext_resource type="AudioStream" uid="uid://bbpo1hu35yer8" path="res://base-environments/youth_room/import/sounds/thunder.mp3" id="3_wcypa"]
|
||||
[ext_resource type="Script" uid="uid://c281w7earok6w" path="res://base-environments/youth_room/crouch_volume.gd" id="3_x3dlb"]
|
||||
|
|
@ -37,9 +38,9 @@
|
|||
[ext_resource type="PackedScene" uid="uid://bw47g00bi710i" path="res://base-environments/youth_room/youth_room_visuals.tscn" id="30_dqyng"]
|
||||
[ext_resource type="PackedScene" uid="uid://bwc2wp7tckm7t" path="res://base-environments/youth_room/outside.tscn" id="32_2vgep"]
|
||||
[ext_resource type="Script" uid="uid://br1w2nt4pj8lt" path="res://vfx/post_processing/post_process_shader_template.gd" id="32_corra"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro/shaders/stars.gdshader" id="32_k5rvd"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="32_k5rvd"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://jjrvf8px2ut3" path="res://base-environments/youth_room/shaders/winfow_frames.res" id="32_w6oa5"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="33_mvrs2"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="33_mvrs2"]
|
||||
[ext_resource type="Shader" uid="uid://dspme86ky8yj0" path="res://base-environments/youth_room/rainy-window.gdshader" id="35_ea6x8"]
|
||||
[ext_resource type="Texture2D" uid="uid://ds1n0xhxqlp4b" path="res://base-environments/youth_room/shaders/universe_noise.png" id="36_bgk6f"]
|
||||
[ext_resource type="PackedScene" uid="uid://cg70r0102t8nl" path="res://base-environments/youth_room/fairylights.tscn" id="39_q6rov"]
|
||||
|
|
@ -974,7 +975,7 @@ func scene_finished(id: Scenes.id, _repeat: bool):
|
|||
queue(\"RESET\")
|
||||
|
||||
func play(anin_name: StringName = \"\", a: float = -1, b: float = 1, c: bool = false) -> void:
|
||||
print_debug(\"anim player accessed!\")
|
||||
print(\"anim player accessed!\")
|
||||
super.play(anin_name, a, b, c)
|
||||
"
|
||||
|
||||
|
|
@ -1732,11 +1733,11 @@ script/source = "extends Camera3D
|
|||
var camera: Camera3D
|
||||
|
||||
func _ready():
|
||||
camera = get_tree().root.get_viewport().get_camera_3d()
|
||||
camera = get_tree().root.get_viewport().get_camera_3d()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta):
|
||||
self.global_transform = camera.global_transform
|
||||
func _process(delta):
|
||||
self.global_transform = camera.global_transform
|
||||
"
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_icgq0"]
|
||||
|
|
@ -1757,6 +1758,7 @@ func hide():
|
|||
[node name="youth room" type="Node3D" groups=["serializable"]]
|
||||
process_mode = 1
|
||||
script = ExtResource("1_aitp0")
|
||||
save_game = ExtResource("2_h6j14")
|
||||
|
||||
[node name="logic" type="Node3D" parent="."]
|
||||
|
||||
|
|
@ -2037,8 +2039,6 @@ volume_db = -80.0
|
|||
bus = &"music"
|
||||
|
||||
[node name="childhood" parent="logic/ScenePlayer" instance=ExtResource("12_viwxf")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="VoiceTraining" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||
stream = ExtResource("10_wwwdq")
|
||||
|
|
@ -2048,15 +2048,11 @@ bus = &"music"
|
|||
[node name="JuiJutsu" parent="logic/ScenePlayer" instance=ExtResource("12_x3dlb")]
|
||||
|
||||
[node name="voice_training" parent="logic/ScenePlayer" instance=ExtResource("13_v3447")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="Jui_Jutsu" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||
bus = &"music"
|
||||
|
||||
[node name="draven" parent="logic/ScenePlayer" instance=ExtResource("19_d3c7p")]
|
||||
story_array = []
|
||||
paragraph_lengths = [1]
|
||||
|
||||
[node name="starlight_mesh" type="MeshInstance3D" parent="logic/ScenePlayer"]
|
||||
transform = Transform3D(0.999, 0, 0, 0, 0.999, 0, 0, 0, 0.999, 0, 0, 0)
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@
|
|||
[ext_resource type="Texture2D" uid="uid://dp1bv446sk2xf" path="res://addons/kenney_particle_pack/flare_01.png" id="2_ipdak"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_w4p0y"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Node3D
|
||||
|
||||
var has_stage
|
||||
|
||||
#@export_tool_button(\"Play Chest Animation\") var play_action = play_chest_animation
|
||||
@export_tool_button(\"Play Chest Animation\") var play_action = play_chest_animation
|
||||
|
||||
func _ready() -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
@tool
|
||||
class_name ThemedButton extends Button
|
||||
|
||||
#@export_tool_button("Rebuild") var rebuild_action := rebuild
|
||||
@onready var side_decor := load("res://import/interface-elements/button_active.png")
|
||||
@onready var top_corner_decor := load("res://import/interface-elements/top_corner.png")
|
||||
@onready var lower_corner_decor := load("res://import/interface-elements/lower_corner.png")
|
||||
@export_tool_button("Rebuild") var rebuild_action = rebuild
|
||||
@onready var side_decor: CompressedTexture2D = load("res://import/interface-elements/button_active.png")
|
||||
@onready var top_corner_decor: CompressedTexture2D = load("res://import/interface-elements/top_corner.png")
|
||||
@onready var lower_corner_decor: CompressedTexture2D = load("res://import/interface-elements/lower_corner.png")
|
||||
|
||||
func _ready() -> void:
|
||||
print_debug(owner)
|
||||
rebuild()
|
||||
theme_changed.connect(rebuild)
|
||||
resized.connect(rebuild)
|
||||
clip_contents = true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var container: PanelContainer
|
||||
func rebuild():
|
||||
|
|
@ -38,7 +38,7 @@ func rebuild():
|
|||
lower_corner.size = Vector2(size.y * lower_corner_decor.get_width() / lower_corner_decor.get_height(), size.y)
|
||||
lower_corner.set_anchors_preset(Control.PRESET_BOTTOM_RIGHT, true)
|
||||
lower_corner.position = size-lower_corner.size
|
||||
|
||||
|
||||
_:
|
||||
var side_thing:= TextureRect.new()
|
||||
side_thing.texture = side_decor
|
||||
|
|
@ -1 +0,0 @@
|
|||
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://dkn824t1gn0km
|
||||
|
|
@ -0,0 +1,731 @@
|
|||
[gd_scene load_steps=37 format=3 uid="uid://dxxiyefijv48j"]
|
||||
|
||||
[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"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfo05h6uah7b" path="res://import/interface-elements/USK_12.svg" id="2_ncfee"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="2_s1yf2"]
|
||||
[ext_resource type="Texture2D" uid="uid://buo4ntxw1vofu" path="res://addons/input_prompts/icons/keyboard/w.png" id="4_8e30h"]
|
||||
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="5_6w5b4"]
|
||||
[ext_resource type="Texture2D" uid="uid://yakqusko3p3h" path="res://addons/input_prompts/icons/keyboard/a.png" id="7_g425y"]
|
||||
[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://b3wlecqvelh22" path="res://logic-scenes/main menu/acessability_settings.tscn" id="11_kt5p7"]
|
||||
[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():
|
||||
child.queue_free()
|
||||
|
||||
loaded_room = room.instantiate()
|
||||
%Room.add_child(loaded_room)
|
||||
|
||||
var in_game: bool
|
||||
func _on_start_button_pressed():
|
||||
in_game = true
|
||||
var new_save = SaveGame.new()
|
||||
if DirAccess.dir_exists_absolute( State.user_saves_path ):
|
||||
var usr_dir = DirAccess.open(State.user_saves_path)
|
||||
for path in usr_dir.get_files():
|
||||
if path.ends_with(\".json\"):
|
||||
var found_save: = SaveGame.new(\"%s/%s\" % [State.user_saves_path, path.get_basename()])
|
||||
if found_save.is_demo:
|
||||
new_save = found_save
|
||||
break
|
||||
|
||||
State.active_save_game = new_save
|
||||
var vis_tween = get_tree().create_tween()
|
||||
vis_tween.tween_property(%Menu, \"modulate\", Color(1,1,1,0), .3)
|
||||
await vis_tween.finished
|
||||
%Menu.visible = false
|
||||
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_PASS
|
||||
loaded_room.start_room()
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if Input.is_action_just_pressed(\"reset_demo\"):
|
||||
_on_reset()
|
||||
|
||||
func _on_reset():
|
||||
load_room()
|
||||
%Menu.modulate = Color.WHITE
|
||||
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_STOP
|
||||
%Menu.visible = true
|
||||
|
||||
|
||||
func _on_cn_box_toggled(toggled_on: bool) -> void:
|
||||
State.show_content_notes = toggled_on
|
||||
|
||||
func _on_motion_box_toggled(toggled_on: bool) -> void:
|
||||
State.reduce_motion = toggled_on
|
||||
|
||||
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
|
||||
%TextButton.select(1)
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event is InputEvent and in_game:
|
||||
if event.is_action_pressed(\"ui_menu\") and not %Accessibility.is_active:
|
||||
toggle_pause_menu()
|
||||
|
||||
func show_accessibility_settings():
|
||||
%AccessibilityContainer.show()
|
||||
%Accessibility.is_active = true
|
||||
await %Accessibility.leave_stage
|
||||
%AccessibilityContainer.hide()
|
||||
|
||||
func toggle_pause_menu():
|
||||
if not get_tree().paused:
|
||||
get_tree().paused = true
|
||||
%PauseContainer.show()
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
else:
|
||||
get_tree().paused = false
|
||||
%PauseContainer.hide()
|
||||
|
||||
if State.stage_list[0] is Player:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
"
|
||||
|
||||
[sub_resource type="Shader" id="Shader_jirkf"]
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_premul_alpha;
|
||||
|
||||
uniform float nebula_brightness = 4;
|
||||
uniform vec2 nebula_scale = vec2(1.5);
|
||||
uniform sampler2D starlight_noise: repeat_enable;
|
||||
uniform sampler2D starlight_textures;
|
||||
uniform float rotation_speed = 0.02;
|
||||
uniform vec2 rotation_pivot = vec2(.8);
|
||||
uniform vec2 drift_compensation = vec2(0.1, -0.2);
|
||||
uniform float noise_strength = 0.2;
|
||||
|
||||
// https://gist.github.com/ayamflow/c06bc0c8a64f985dd431bd0ac5b557cd
|
||||
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation)
|
||||
{
|
||||
return vec2(
|
||||
cos(rotation) * (uv.x - pivot.x) + sin(rotation) * (uv.y - pivot.y) + pivot.x,
|
||||
cos(rotation) * (uv.y - pivot.y) - sin(rotation) * (uv.x - pivot.x) + pivot.y
|
||||
);
|
||||
}
|
||||
|
||||
//clamp(, .0, 1.0
|
||||
|
||||
void fragment() {
|
||||
COLOR *= vec4(.0,
|
||||
texture(starlight_textures,fract(UV*2.0)).x * 2.0*pow(max(sin(TIME + 10.0 * texture(starlight_textures,UV).y), .0), 5.0),
|
||||
texture(starlight_textures,
|
||||
clamp(
|
||||
UV / nebula_scale + drift_compensation + 1.0 *
|
||||
texture(starlight_noise, rotateUV(
|
||||
UV / nebula_scale + noise_strength * texture(starlight_noise, rotateUV(UV, -rotation_pivot, TIME*rotation_speed)).yz,
|
||||
rotation_pivot, TIME*rotation_speed)
|
||||
).xz,
|
||||
.0, 1.0))
|
||||
.z * nebula_brightness,
|
||||
clamp(pow(COLOR.x * 2.5 - (texture(starlight_noise, UV*2.0+TIME*.02).x + 0.8), 1.5), .0, 1.0)
|
||||
) * COLOR.w;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k41g6"]
|
||||
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")
|
||||
shader_parameter/starlight_textures = ExtResource("2_s1yf2")
|
||||
shader_parameter/rotation_speed = 0.02
|
||||
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_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_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_kt5p7"]
|
||||
device = -1
|
||||
physical_keycode = 87
|
||||
unicode = 119
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_mivr6"]
|
||||
device = -1
|
||||
axis = 1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_52c3j"]
|
||||
device = -1
|
||||
physical_keycode = 65
|
||||
unicode = 97
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_b7q2n"]
|
||||
device = -1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_qhf78"]
|
||||
device = -1
|
||||
physical_keycode = 68
|
||||
unicode = 100
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_gatj6"]
|
||||
device = -1
|
||||
axis_value = 1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_ol51q"]
|
||||
device = -1
|
||||
physical_keycode = 83
|
||||
unicode = 115
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_2rqk2"]
|
||||
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;
|
||||
|
||||
uniform float nebula_brightness = 4;
|
||||
uniform vec2 nebula_scale = vec2(1.5);
|
||||
uniform sampler2D starlight_noise: repeat_enable;
|
||||
uniform sampler2D starlight_textures;
|
||||
uniform float rotation_speed = 0.02;
|
||||
uniform vec2 rotation_pivot = vec2(.8);
|
||||
uniform vec2 drift_compensation = vec2(0.1, -0.2);
|
||||
uniform float noise_strength = 0.2;
|
||||
|
||||
// https://gist.github.com/ayamflow/c06bc0c8a64f985dd431bd0ac5b557cd
|
||||
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation)
|
||||
{
|
||||
return vec2(
|
||||
cos(rotation) * (uv.x - pivot.x) + sin(rotation) * (uv.y - pivot.y) + pivot.x,
|
||||
cos(rotation) * (uv.y - pivot.y) - sin(rotation) * (uv.x - pivot.x) + pivot.y
|
||||
);
|
||||
}
|
||||
|
||||
//clamp(, .0, 1.0
|
||||
|
||||
void fragment() {
|
||||
COLOR *= vec4(.0,
|
||||
texture(starlight_textures,fract(UV*2.0)).x * 2.0*pow(max(sin(TIME + 10.0 * texture(starlight_textures,UV).y), .0), 5.0),
|
||||
texture(starlight_textures,
|
||||
clamp(
|
||||
UV / nebula_scale + drift_compensation + 1.0 *
|
||||
texture(starlight_noise, rotateUV(
|
||||
UV / nebula_scale + noise_strength * texture(starlight_noise, rotateUV(UV, -rotation_pivot, TIME*rotation_speed)).yz,
|
||||
rotation_pivot, TIME*rotation_speed)
|
||||
).xz,
|
||||
.0, 1.0))
|
||||
.z * nebula_brightness,
|
||||
clamp(pow(COLOR.x * 2.5 - (texture(starlight_noise, UV*2.0+TIME*.02).x + 0.8), 1.5), .0, 1.0)
|
||||
) * COLOR.w;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ol51q"]
|
||||
shader = SubResource("Shader_gatj6")
|
||||
shader_parameter/nebula_brightness = 2.4
|
||||
shader_parameter/nebula_scale = Vector2(1.3, 1.6)
|
||||
shader_parameter/starlight_noise = ExtResource("1_t34p3")
|
||||
shader_parameter/starlight_textures = ExtResource("2_s1yf2")
|
||||
shader_parameter/rotation_speed = 0.02
|
||||
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_2rqk2"]
|
||||
interpolation_color_space = 2
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_w8m28"]
|
||||
gradient = SubResource("Gradient_2rqk2")
|
||||
width = 2048
|
||||
height = 1536
|
||||
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")
|
||||
|
||||
[node name="Room" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Menu" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect3" type="TextureRect" parent="Menu/Panel"]
|
||||
material = SubResource("ShaderMaterial_k41g6")
|
||||
layout_mode = 0
|
||||
offset_left = 2073.0
|
||||
offset_top = 1497.0
|
||||
offset_right = 4353.0
|
||||
offset_bottom = 3530.0
|
||||
rotation = -3.14159
|
||||
texture = SubResource("GradientTexture2D_jirkf")
|
||||
|
||||
[node name="TextureRect2" type="TextureRect" parent="Menu/Panel"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -395.0
|
||||
offset_top = -447.0
|
||||
offset_right = 1011.0
|
||||
offset_bottom = 959.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
scale = Vector2(0.2, 0.2)
|
||||
texture = ExtResource("2_ncfee")
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/Panel/TextureRect2"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -988.0
|
||||
offset_top = 99.0002
|
||||
offset_right = -590.0
|
||||
offset_bottom = 187.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
scale = Vector2(5, 5)
|
||||
text = "*Als Messe-Demo geprüft. Entspricht angestrebtem finalen Rating."
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -256.0
|
||||
offset_top = -281.5
|
||||
offset_right = 256.0
|
||||
offset_bottom = 281.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Menu/VBoxContainer2"]
|
||||
custom_minimum_size = Vector2(512, 512)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("1_61qpo")
|
||||
expand_mode = 2
|
||||
|
||||
[node name="PressStart" type="Button" parent="Menu/VBoxContainer2"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 45
|
||||
text = "Start the Demo!"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -392.0
|
||||
offset_top = -310.0
|
||||
offset_right = -78.0
|
||||
offset_bottom = -92.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Accessibility"
|
||||
|
||||
[node name="CNBox" type="CheckBox" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "show Content Notes"
|
||||
|
||||
[node name="MotionBox" type="CheckBox" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "reduce motion and flickering"
|
||||
|
||||
[node name="A11Y" type="Button" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "More Options"
|
||||
|
||||
[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"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 0
|
||||
item_count = 2
|
||||
popup/item_0/text = "englisch"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "deutsch"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Written Text"
|
||||
|
||||
[node name="TextButton" type="OptionButton" parent="Menu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
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="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
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -40.0
|
||||
offset_right = 40.0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="ActionPrompt" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 134.0
|
||||
offset_top = -282.0
|
||||
offset_right = 234.0
|
||||
offset_bottom = -182.0
|
||||
texture = ExtResource("4_8e30h")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_forwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_kt5p7"), SubResource("InputEventJoypadMotion_mivr6")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt2" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 70.0
|
||||
offset_top = -187.0
|
||||
offset_right = 170.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("7_g425y")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_left"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_52c3j"), SubResource("InputEventJoypadMotion_b7q2n")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt4" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 247.0
|
||||
offset_top = -187.0
|
||||
offset_right = 347.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("8_kj67n")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_right"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_qhf78"), SubResource("InputEventJoypadMotion_gatj6")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt3" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 158.0
|
||||
offset_top = -187.0
|
||||
offset_right = 258.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("9_xo70c")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_backwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_ol51q"), SubResource("InputEventJoypadMotion_2rqk2")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/Control"]
|
||||
layout_mode = 0
|
||||
offset_left = 72.0
|
||||
offset_top = -89.0
|
||||
offset_right = 374.0
|
||||
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
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PauseContainer"]
|
||||
material = SubResource("ShaderMaterial_ol51q")
|
||||
layout_mode = 2
|
||||
texture = SubResource("GradientTexture2D_w8m28")
|
||||
|
||||
[node name="PauseMenu" type="PanelContainer" parent="PauseContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
script = ExtResource("10_g425y")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PauseContainer/PauseMenu"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Game Paused"
|
||||
|
||||
[node name="ResumeButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Resume"
|
||||
|
||||
[node name="A11Y" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Accessibility"
|
||||
|
||||
[node name="BugButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("11_kj67n")
|
||||
metadata/_custom_type_script = "uid://sa15wakvpj2e"
|
||||
|
||||
[node name="ToMenuButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Return to Menu"
|
||||
|
||||
[node name="ToSettingsButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Open Settings"
|
||||
|
||||
[node name="ToDesktopButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Quit to Desktop"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 20)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FindHelplineButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Find Help-Lines"
|
||||
|
||||
[node name="Label2" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "opens findahelpline.com"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SkipStoryButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Skip this Story"
|
||||
|
||||
[node name="ending" parent="." instance=ExtResource("13_xo70c")]
|
||||
visible = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="AccessibilityContainer" type="CenterContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="AccessibilityPanel" type="PanelContainer" parent="AccessibilityContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_kt5p7")
|
||||
|
||||
[node name="Accessibility" parent="AccessibilityContainer/AccessibilityPanel" instance=ExtResource("11_kt5p7")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 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="pressed" from="Menu/VBoxContainer/A11Y" to="." method="show_accessibility_settings"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/SpeechButton" to="." method="_on_speech_button_item_selected"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/TextButton" to="." method="_on_text_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"]
|
||||
[connection signal="pressed" from="PauseContainer/PauseMenu/VBoxContainer/A11Y" to="." method="show_accessibility_settings"]
|
||||
|
|
@ -0,0 +1,787 @@
|
|||
[gd_scene load_steps=41 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"]
|
||||
[ext_resource type="Texture2D" uid="uid://sfo05h6uah7b" path="res://import/interface-elements/USK_12.svg" id="2_ncfee"]
|
||||
[ext_resource type="Texture2D" uid="uid://bdyg065h8vcdi" path="res://base-environments/youth_room/shaders/starlight-textures.png" id="2_s1yf2"]
|
||||
[ext_resource type="Texture2D" uid="uid://buo4ntxw1vofu" path="res://addons/input_prompts/icons/keyboard/w.png" id="4_8e30h"]
|
||||
[ext_resource type="Script" uid="uid://bbs1u7ojno7xo" path="res://addons/input_prompts/action_prompt/action_prompt.gd" id="5_6w5b4"]
|
||||
[ext_resource type="Texture2D" uid="uid://dep3kuio0xnui" path="res://import/interface-elements/lower_corner.png" id="5_b7q2n"]
|
||||
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://button_themer.gd" id="6_qhf78"]
|
||||
[ext_resource type="Texture2D" uid="uid://yakqusko3p3h" path="res://addons/input_prompts/icons/keyboard/a.png" id="7_g425y"]
|
||||
[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://b3wlecqvelh22" path="res://logic-scenes/main menu/acessability_settings.tscn" id="11_kt5p7"]
|
||||
[ext_resource type="PackedScene" uid="uid://gmxenhavh1lp" path="res://logic-scenes/main menu/video_settings.tscn" id="11_mivr6"]
|
||||
[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:
|
||||
set(stage):
|
||||
if stage:
|
||||
if not is_node_ready():
|
||||
await ready
|
||||
await get_tree().process_frame
|
||||
%PressStart.grab_focus()
|
||||
has_stage = stage
|
||||
|
||||
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
|
||||
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)
|
||||
$Menu/VBoxContainer/SpeechButton.item_selected.emit(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
|
||||
while ResourceLoader.load_threaded_get_status(\"res://base-environments/transition/first_platform.tscn\") != ResourceLoader.THREAD_LOAD_IN_PROGRESS:
|
||||
await get_tree().process_frame
|
||||
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():
|
||||
child.queue_free()
|
||||
|
||||
loaded_room = room.instantiate()
|
||||
%Room.add_child(loaded_room)
|
||||
|
||||
var in_game: bool
|
||||
func _on_start_button_pressed():
|
||||
in_game = true
|
||||
var new_save = SaveGame.new()
|
||||
if DirAccess.dir_exists_absolute( State.user_saves_path ):
|
||||
var usr_dir = DirAccess.open(State.user_saves_path)
|
||||
for path in usr_dir.get_files():
|
||||
if path.ends_with(\".json\"):
|
||||
var found_save: = SaveGame.new(\"%s/%s\" % [State.user_saves_path, path.get_basename()])
|
||||
if found_save.is_demo:
|
||||
new_save = found_save
|
||||
break
|
||||
|
||||
State.active_save_game = new_save
|
||||
var vis_tween = get_tree().create_tween()
|
||||
vis_tween.tween_property(%Menu, \"modulate\", Color(1,1,1,0), .3)
|
||||
await vis_tween.finished
|
||||
%Menu.visible = false
|
||||
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_PASS
|
||||
loaded_room.start_room()
|
||||
|
||||
#func _process(_delta: float) -> void:
|
||||
# if Input.is_action_just_pressed(\"reset_demo\"):
|
||||
# _on_reset()
|
||||
|
||||
func _on_reset():
|
||||
load_room()
|
||||
%Menu.modulate = Color.WHITE
|
||||
%Menu.mouse_filter = Control.MouseFilter.MOUSE_FILTER_STOP
|
||||
%Menu.visible = true
|
||||
|
||||
|
||||
func _on_cn_box_toggled(toggled_on: bool) -> void:
|
||||
State.show_content_notes = toggled_on
|
||||
|
||||
func _on_motion_box_toggled(toggled_on: bool) -> void:
|
||||
State.reduce_motion = toggled_on
|
||||
|
||||
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
|
||||
if index == 1:
|
||||
%TextButton.select(1)
|
||||
%TextButton.item_selected.emit(1)
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event is InputEvent and in_game:
|
||||
if event.is_action_pressed(\"ui_menu\"):
|
||||
toggle_pause_menu()
|
||||
|
||||
func show_accessibility_settings():
|
||||
%AccessibilityContainer.show()
|
||||
%Accessibility.is_active = true
|
||||
await %Accessibility.leave_stage
|
||||
%AccessibilityContainer.hide()
|
||||
if in_game:
|
||||
%ResumeButton.grab_focus()
|
||||
else:
|
||||
%PressStart.grab_focus()
|
||||
|
||||
func toggle_pause_menu():
|
||||
if not get_tree().paused:
|
||||
get_tree().paused = true
|
||||
%PauseContainer.show()
|
||||
%ResumeButton.grab_focus()
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
else:
|
||||
get_tree().paused = false
|
||||
%PauseContainer.hide()
|
||||
%ResumeButton.grab_focus()
|
||||
|
||||
if State.stage_list[0] is Player:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
"
|
||||
|
||||
[sub_resource type="Shader" id="Shader_jirkf"]
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_premul_alpha;
|
||||
|
||||
uniform float nebula_brightness = 4;
|
||||
uniform vec2 nebula_scale = vec2(1.5);
|
||||
uniform sampler2D starlight_noise: repeat_enable;
|
||||
uniform sampler2D starlight_textures;
|
||||
uniform float rotation_speed = 0.02;
|
||||
uniform vec2 rotation_pivot = vec2(.8);
|
||||
uniform vec2 drift_compensation = vec2(0.1, -0.2);
|
||||
uniform float noise_strength = 0.2;
|
||||
|
||||
// https://gist.github.com/ayamflow/c06bc0c8a64f985dd431bd0ac5b557cd
|
||||
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation)
|
||||
{
|
||||
return vec2(
|
||||
cos(rotation) * (uv.x - pivot.x) + sin(rotation) * (uv.y - pivot.y) + pivot.x,
|
||||
cos(rotation) * (uv.y - pivot.y) - sin(rotation) * (uv.x - pivot.x) + pivot.y
|
||||
);
|
||||
}
|
||||
|
||||
//clamp(, .0, 1.0
|
||||
|
||||
void fragment() {
|
||||
COLOR *= vec4(.0,
|
||||
texture(starlight_textures,fract(UV*2.0)).x * 2.0*pow(max(sin(TIME + 10.0 * texture(starlight_textures,UV).y), .0), 5.0),
|
||||
texture(starlight_textures,
|
||||
clamp(
|
||||
UV / nebula_scale + drift_compensation + 1.0 *
|
||||
texture(starlight_noise, rotateUV(
|
||||
UV / nebula_scale + noise_strength * texture(starlight_noise, rotateUV(UV, -rotation_pivot, TIME*rotation_speed)).yz,
|
||||
rotation_pivot, TIME*rotation_speed)
|
||||
).xz,
|
||||
.0, 1.0))
|
||||
.z * nebula_brightness,
|
||||
clamp(pow(COLOR.x * 2.5 - (texture(starlight_noise, UV*2.0+TIME*.02).x + 0.8), 1.5), .0, 1.0)
|
||||
) * COLOR.w;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_k41g6"]
|
||||
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")
|
||||
shader_parameter/starlight_textures = ExtResource("2_s1yf2")
|
||||
shader_parameter/rotation_speed = 0.02
|
||||
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_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_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_b7q2n"]
|
||||
device = -1
|
||||
physical_keycode = 87
|
||||
unicode = 119
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_qhf78"]
|
||||
device = -1
|
||||
axis = 1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_gatj6"]
|
||||
device = -1
|
||||
physical_keycode = 65
|
||||
unicode = 97
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_ol51q"]
|
||||
device = -1
|
||||
axis_value = -1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_2rqk2"]
|
||||
device = -1
|
||||
physical_keycode = 68
|
||||
unicode = 100
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_w8m28"]
|
||||
device = -1
|
||||
axis_value = 1.0
|
||||
|
||||
[sub_resource type="InputEventKey" id="InputEventKey_kwpdx"]
|
||||
device = -1
|
||||
physical_keycode = 83
|
||||
unicode = 115
|
||||
|
||||
[sub_resource type="InputEventJoypadMotion" id="InputEventJoypadMotion_2xua5"]
|
||||
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;
|
||||
|
||||
uniform float nebula_brightness = 4;
|
||||
uniform vec2 nebula_scale = vec2(1.5);
|
||||
uniform sampler2D starlight_noise: repeat_enable;
|
||||
uniform sampler2D starlight_textures;
|
||||
uniform float rotation_speed = 0.02;
|
||||
uniform vec2 rotation_pivot = vec2(.8);
|
||||
uniform vec2 drift_compensation = vec2(0.1, -0.2);
|
||||
uniform float noise_strength = 0.2;
|
||||
|
||||
// https://gist.github.com/ayamflow/c06bc0c8a64f985dd431bd0ac5b557cd
|
||||
vec2 rotateUV(vec2 uv, vec2 pivot, float rotation)
|
||||
{
|
||||
return vec2(
|
||||
cos(rotation) * (uv.x - pivot.x) + sin(rotation) * (uv.y - pivot.y) + pivot.x,
|
||||
cos(rotation) * (uv.y - pivot.y) - sin(rotation) * (uv.x - pivot.x) + pivot.y
|
||||
);
|
||||
}
|
||||
|
||||
//clamp(, .0, 1.0
|
||||
|
||||
void fragment() {
|
||||
COLOR *= vec4(.0,
|
||||
texture(starlight_textures,fract(UV*2.0)).x * 2.0*pow(max(sin(TIME + 10.0 * texture(starlight_textures,UV).y), .0), 5.0),
|
||||
texture(starlight_textures,
|
||||
clamp(
|
||||
UV / nebula_scale + drift_compensation + 1.0 *
|
||||
texture(starlight_noise, rotateUV(
|
||||
UV / nebula_scale + noise_strength * texture(starlight_noise, rotateUV(UV, -rotation_pivot, TIME*rotation_speed)).yz,
|
||||
rotation_pivot, TIME*rotation_speed)
|
||||
).xz,
|
||||
.0, 1.0))
|
||||
.z * nebula_brightness,
|
||||
clamp(pow(COLOR.x * 2.5 - (texture(starlight_noise, UV*2.0+TIME*.02).x + 0.8), 1.5), .0, 1.0)
|
||||
) * COLOR.w;
|
||||
}
|
||||
"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ol51q"]
|
||||
shader = SubResource("Shader_gatj6")
|
||||
shader_parameter/nebula_brightness = 2.4
|
||||
shader_parameter/nebula_scale = Vector2(1.3, 1.6)
|
||||
shader_parameter/starlight_noise = ExtResource("1_t34p3")
|
||||
shader_parameter/starlight_textures = ExtResource("2_s1yf2")
|
||||
shader_parameter/rotation_speed = 0.02
|
||||
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_2rqk2"]
|
||||
interpolation_color_space = 2
|
||||
colors = PackedColorArray(1, 1, 1, 1, 0, 0, 0, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_w8m28"]
|
||||
gradient = SubResource("Gradient_2rqk2")
|
||||
width = 2048
|
||||
height = 1536
|
||||
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")
|
||||
}
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_kt5p7"]
|
||||
script/source = "extends Label
|
||||
|
||||
func _ready() -> void:
|
||||
if not OS.has_feature(\"debug\"):
|
||||
hide()
|
||||
|
||||
func _process(_delta):
|
||||
text = \"%d/%d\" % [Engine.get_frames_per_second(), Engine.max_fps]
|
||||
"
|
||||
|
||||
[node name="DemoMain" type="Node3D"]
|
||||
process_mode = 3
|
||||
script = SubResource("GDScript_t34p3")
|
||||
|
||||
[node name="Room" type="Node3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Menu" type="Control" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect3" type="TextureRect" parent="Menu/Panel"]
|
||||
material = SubResource("ShaderMaterial_k41g6")
|
||||
layout_mode = 0
|
||||
offset_left = 2073.0
|
||||
offset_top = 1497.0
|
||||
offset_right = 4353.0
|
||||
offset_bottom = 3530.0
|
||||
rotation = -3.14159
|
||||
texture = SubResource("GradientTexture2D_jirkf")
|
||||
|
||||
[node name="TextureRect2" type="TextureRect" parent="Menu/Panel"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -395.0
|
||||
offset_top = -447.0
|
||||
offset_right = 1011.0
|
||||
offset_bottom = 959.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
scale = Vector2(0.2, 0.2)
|
||||
texture = ExtResource("2_ncfee")
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/Panel/TextureRect2"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -988.0
|
||||
offset_top = 99.0002
|
||||
offset_right = -590.0
|
||||
offset_bottom = 187.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
scale = Vector2(5, 5)
|
||||
text = "*Als Messe-Demo geprüft. Entspricht angestrebtem finalen Rating."
|
||||
horizontal_alignment = 1
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -256.0
|
||||
offset_top = -281.5
|
||||
offset_right = 256.0
|
||||
offset_bottom = 281.5
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="Menu/VBoxContainer2"]
|
||||
custom_minimum_size = Vector2(512, 512)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("1_61qpo")
|
||||
expand_mode = 2
|
||||
|
||||
[node name="PressStart" type="Button" parent="Menu/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
clip_contents = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
theme_type_variation = &"H1Button"
|
||||
text = "Start the Demo!"
|
||||
script = ExtResource("6_qhf78")
|
||||
metadata/_custom_type_script = "uid://cxton1pffwxk4"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="Menu"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 3
|
||||
anchor_left = 1.0
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = -392.0
|
||||
offset_top = -310.0
|
||||
offset_right = -78.0
|
||||
offset_bottom = -92.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="TextureRect2" type="TextureRect" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("5_b7q2n")
|
||||
expand_mode = 1
|
||||
stretch_mode = 4
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Accessibility"
|
||||
|
||||
[node name="CNBox" type="CheckBox" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "show Content Notes"
|
||||
|
||||
[node name="MotionBox" type="CheckBox" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "reduce motion and flickering"
|
||||
|
||||
[node name="A11Y" type="Button" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "More Options"
|
||||
|
||||
[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"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
selected = 0
|
||||
item_count = 2
|
||||
popup/item_0/text = "englisch"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "deutsch"
|
||||
popup/item_1/id = 1
|
||||
|
||||
[node name="Label2" type="Label" parent="Menu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderMedium"
|
||||
text = "Written Text"
|
||||
|
||||
[node name="TextButton" type="OptionButton" parent="Menu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
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="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
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -40.0
|
||||
offset_right = 40.0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="ActionPrompt" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 134.0
|
||||
offset_top = -282.0
|
||||
offset_right = 234.0
|
||||
offset_bottom = -182.0
|
||||
texture = ExtResource("4_8e30h")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_forwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_b7q2n"), SubResource("InputEventJoypadMotion_qhf78")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt2" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 70.0
|
||||
offset_top = -187.0
|
||||
offset_right = 170.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("7_g425y")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_left"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_gatj6"), SubResource("InputEventJoypadMotion_ol51q")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt4" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 247.0
|
||||
offset_top = -187.0
|
||||
offset_right = 347.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("8_kj67n")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_right"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_2rqk2"), SubResource("InputEventJoypadMotion_w8m28")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="ActionPrompt3" type="TextureRect" parent="Menu/Control"]
|
||||
texture_filter = 1
|
||||
layout_mode = 0
|
||||
offset_left = 158.0
|
||||
offset_top = -187.0
|
||||
offset_right = 258.0
|
||||
offset_bottom = -87.0
|
||||
texture = ExtResource("9_xo70c")
|
||||
stretch_mode = 5
|
||||
script = ExtResource("5_6w5b4")
|
||||
action = "player_backwards"
|
||||
icon = 4
|
||||
events = Array[InputEvent]([SubResource("InputEventKey_kwpdx"), SubResource("InputEventJoypadMotion_2xua5")])
|
||||
metadata/_custom_type_script = "uid://bbs1u7ojno7xo"
|
||||
|
||||
[node name="Label" type="Label" parent="Menu/Control"]
|
||||
layout_mode = 0
|
||||
offset_left = 72.0
|
||||
offset_top = -89.0
|
||||
offset_right = 374.0
|
||||
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="Video Settings" parent="Menu" instance=ExtResource("11_mivr6")]
|
||||
layout_mode = 1
|
||||
offset_left = 2330.0
|
||||
offset_top = 96.0
|
||||
offset_right = 2330.0
|
||||
offset_bottom = 96.0
|
||||
|
||||
[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
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="PauseContainer"]
|
||||
material = SubResource("ShaderMaterial_ol51q")
|
||||
layout_mode = 2
|
||||
texture = SubResource("GradientTexture2D_w8m28")
|
||||
|
||||
[node name="PauseMenu" type="PanelContainer" parent="PauseContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
script = ExtResource("10_g425y")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="PauseContainer/PauseMenu"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_type_variation = &"HeaderLarge"
|
||||
text = "Game Paused"
|
||||
|
||||
[node name="ResumeButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Resume"
|
||||
|
||||
[node name="A11Y2" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Accessibility"
|
||||
|
||||
[node name="BugButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
script = ExtResource("11_kj67n")
|
||||
metadata/_custom_type_script = "uid://sa15wakvpj2e"
|
||||
|
||||
[node name="ToMenuButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Return to Menu"
|
||||
|
||||
[node name="ToSettingsButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Open Settings"
|
||||
|
||||
[node name="ToDesktopButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Quit to Desktop"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
custom_minimum_size = Vector2(0, 20)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="FindHelplineButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Find Help-Lines"
|
||||
|
||||
[node name="Label2" type="Label" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "opens findahelpline.com"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SkipStoryButton" type="Button" parent="PauseContainer/PauseMenu/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
text = "Skip this Story"
|
||||
|
||||
[node name="ending" parent="." instance=ExtResource("13_xo70c")]
|
||||
visible = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="AccessibilityContainer" type="CenterContainer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="AccessibilityPanel" type="PanelContainer" parent="AccessibilityContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_kt5p7")
|
||||
|
||||
[node name="Accessibility" parent="AccessibilityContainer/AccessibilityPanel" instance=ExtResource("11_kt5p7")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="AudioStreamPlayer"]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_mivr6")
|
||||
}
|
||||
|
||||
[node name="FPSLabel" type="Label" parent="."]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 35.0
|
||||
script = SubResource("GDScript_kt5p7")
|
||||
|
||||
[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="pressed" from="Menu/VBoxContainer/A11Y" to="." method="show_accessibility_settings"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/SpeechButton" to="." method="_on_speech_button_item_selected"]
|
||||
[connection signal="item_selected" from="Menu/VBoxContainer/TextButton" to="." method="_on_text_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"]
|
||||
[connection signal="pressed" from="PauseContainer/PauseMenu/VBoxContainer/A11Y2" to="." method="show_accessibility_settings"]
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 40 KiB |
|
|
@ -0,0 +1,43 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c6r2y18qlqsvh"
|
||||
path="res://.godot/imported/demo-warning.svg-5bc85c9c263d3931745057454217e7fa.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://demo-warning.svg"
|
||||
dest_files=["res://.godot/imported/demo-warning.svg-5bc85c9c263d3931745057454217e7fa.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
|
|
@ -34,7 +34,7 @@ func _process(delta: float) -> void:
|
|||
_on_beat()
|
||||
_last_beat_timing = sync_to.get_playback_position()
|
||||
else:
|
||||
if not Engine.is_editor_hint(): print_debug(time_left)
|
||||
if not Engine.is_editor_hint(): print(time_left)
|
||||
|
||||
func start(time_sec: float = 0, starting_beat: int = 0, starting_bar: int = 0, sync_to_playback:AudioStreamPlayback = null) -> void:
|
||||
if starting_bar == 0 and starting_beat > 0: starting_bar = starting_beat / beats_per_bar
|
||||
|
|
|
|||
|
|
@ -26,4 +26,4 @@ func create_bug_report():
|
|||
DisplayServer.clipboard_set(debug_text)
|
||||
|
||||
|
||||
#print_debug("mailto:support@polynormal.games?subject=Frame%20of%20Mind%20Demo%20-%20Bug%20Report&body=" + debug_text)
|
||||
#print("mailto:support@polynormal.games?subject=Frame%20of%20Mind%20Demo%20-%20Bug%20Report&body=" + debug_text)
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ fill_from = Vector2(0.499433, 0.470085)
|
|||
fill_to = Vector2(0.23814, 0.858974)
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_2ph0d"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Sprite2D
|
||||
|
||||
var flame_progression: float = 0
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ func _process(_delta):
|
|||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event is InputEventAction:
|
||||
print_debug(event.action)
|
||||
print(event.action)
|
||||
|
||||
#func _unhandled_input(event):
|
||||
# viewport.push_input(event)
|
||||
|
|
@ -38,7 +38,7 @@ func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal
|
|||
viewport.push_input(e)
|
||||
|
||||
func _on_button_pressed():
|
||||
print_debug("Button pressed")
|
||||
print("Button pressed")
|
||||
|
||||
func _on_line_edit_text_submitted(new_text):
|
||||
print_debug("Text submitted: ", new_text)
|
||||
print("Text submitted: ", new_text)
|
||||
|
|
|
|||
|
|
@ -118,22 +118,22 @@ static func get_obscure_name(card_name: StringName):
|
|||
else:
|
||||
return card_name
|
||||
|
||||
func arrange(cards: Array[Card], rect: Rect2, _obstacles: Array[Area2D]) -> Array[Card]:
|
||||
#var total_cards := cards.size()
|
||||
func arrange(cards: Array[Card], rect: Rect2, obstacles: Array[Area2D]) -> Array[Card]:
|
||||
var total_cards = cards.size()
|
||||
|
||||
var x:int = 0
|
||||
var y:int = 0
|
||||
var i:int = 0
|
||||
var maximum:int = cards.size()
|
||||
var grid: int = ceil(sqrt(maximum))
|
||||
var max:int = cards.size()
|
||||
var grid: int = ceil(sqrt(max))
|
||||
var diameter:float = cards[0].diameter
|
||||
|
||||
var r_cards: Array[Card] = cards.duplicate()
|
||||
r_cards.shuffle()
|
||||
|
||||
while i < maximum:
|
||||
while x < grid and i < maximum:
|
||||
while y < ceil(sqrt(maximum)) and i < maximum:
|
||||
while i < max:
|
||||
while x < grid and i < max:
|
||||
while y < ceil(sqrt(max)) and i < max:
|
||||
r_cards[i].position = rect.size / Vector2(y, x) * (1.0 / (rect.size.x * diameter) ) + rect.position + Vector2(randf_range(diameter/2+5, diameter-5), randf_range(diameter/2+5, diameter-5))
|
||||
i += 1
|
||||
y += 1
|
||||
|
|
@ -204,8 +204,8 @@ static func get_cards_by_name_array(names: Array[StringName]) -> Dictionary:
|
|||
static func create_from_id(id:StringName) -> Area2D:
|
||||
var parsed: PackedStringArray = id.rsplit(".")
|
||||
|
||||
#var helper := card_id_reference
|
||||
#var keys := card_id_reference.keys()
|
||||
var helper = card_id_reference
|
||||
var keys = card_id_reference.keys()
|
||||
|
||||
if card_id_reference.values().has(id):
|
||||
return Card.new(parsed[1], id)
|
||||
|
|
@ -215,24 +215,24 @@ static func create_from_id(id:StringName) -> Area2D:
|
|||
push_error("Attempted to create Card or Sticky from non-existent ID!")
|
||||
return null
|
||||
|
||||
static func create_dev_board(parent: Control, _rect: Rect2) -> void:
|
||||
var scroll_container := ScrollContainer.new()
|
||||
var panel := Panel.new()
|
||||
static func create_dev_board(parent: Control, rect: Rect2) -> void:
|
||||
var scroll_container = ScrollContainer.new()
|
||||
var panel = Panel.new()
|
||||
|
||||
parent.add_child(scroll_container)
|
||||
scroll_container.add_child(panel)
|
||||
|
||||
for x in range(source_dicts.size()):
|
||||
var sub_parent := Panel.new()
|
||||
var sub_parent = Panel.new()
|
||||
sub_parent.position = Vector2( 128 + 256*x , 0)
|
||||
panel.add_child(sub_parent, false, Node.INTERNAL_MODE_BACK)
|
||||
var y := 1
|
||||
var y = 1
|
||||
for card_name in source_dicts[x].keys():
|
||||
var card:Card = create_from_id(card_id_reference[card_name])
|
||||
sub_parent.add_child(card, false, Node.INTERNAL_MODE_BACK)
|
||||
card.position = Vector2(0, card.diameter * y - card.diameter/2)
|
||||
|
||||
var z := 0
|
||||
var z = 0
|
||||
for sticky_name in get_child_names_of(card_name):
|
||||
var sticky: StickyNote = create_from_id(sticky_id_reference[sticky_name])
|
||||
card.add_child(sticky, false, Node.INTERNAL_MODE_BACK)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
extends TextureRect
|
||||
|
||||
@export var textures: Dictionary[String, Texture] = {}
|
||||
|
|
@ -12,7 +13,7 @@ func _get_configuration_warnings() -> PackedStringArray:
|
|||
func _ready() -> void:
|
||||
State.settings_changed.connect(update_img)
|
||||
update_img()
|
||||
|
||||
|
||||
func update_img() -> void:
|
||||
if textures.keys().has(TranslationServer.get_locale()):
|
||||
texture = textures[TranslationServer.get_locale()]
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func _ready() -> void:
|
|||
stream = AudioStreamPolyphonic.new()
|
||||
|
||||
func play(from_position: float = 0.0):
|
||||
print_debug("got called")
|
||||
print("got called")
|
||||
super.play(from_position)
|
||||
self._play(from_position)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
class_name RoomTemplate extends Node3D
|
||||
|
||||
var initialised: bool = false
|
||||
var id: State.rooms = State.rooms.NULL
|
||||
var id: State.rooms
|
||||
|
||||
var has_stage: bool:
|
||||
set(value):
|
||||
|
|
@ -10,31 +10,12 @@ var has_stage: bool:
|
|||
start_room()
|
||||
|
||||
|
||||
var save_game:SaveGame = null
|
||||
|
||||
signal proceed(next_scene_path: String)
|
||||
|
||||
func _ready() -> void:
|
||||
State.room = self
|
||||
State.current_room = id
|
||||
|
||||
func load():
|
||||
# Override this function to load the state of the chapter from State.save_game
|
||||
pass
|
||||
|
||||
func play() -> String:
|
||||
get_ready()
|
||||
start_room()
|
||||
return await proceed
|
||||
|
||||
|
||||
func get_ready():
|
||||
pass
|
||||
@export var save_game:SaveGame = null
|
||||
|
||||
func start_room():
|
||||
pass
|
||||
|
||||
func pull_save_state(_save: SaveGame) -> void:
|
||||
func pull_save_state(save: SaveGame) -> void:
|
||||
pass
|
||||
|
||||
func save_room():
|
||||
|
|
|
|||
|
|
@ -1,23 +1,18 @@
|
|||
@tool
|
||||
class_name SaveGame extends Resource
|
||||
|
||||
var _is_initialised: bool = false
|
||||
|
||||
var current_room_path: String:
|
||||
get():
|
||||
return Main.room_paths[current_room]
|
||||
|
||||
@export var filepath: String:
|
||||
set(value):
|
||||
print_debug("Savegame: setting filepath: %s" % value)
|
||||
filepath = value
|
||||
if _is_initialised:
|
||||
read_save_file()
|
||||
changed.emit()
|
||||
|
||||
@export var unique_save_name: String = "frame_of_mind_%s_%s" % [Time.get_date_string_from_system(), Time.get_time_string_from_system().replace(":", "-")] + "-" + str(randi()):
|
||||
set(value):
|
||||
@export var unique_save_name: String = "frame_of_mind_%s_%s" % [Time.get_date_string_from_system(), Time.get_time_string_from_system().replace(":", "-")]:
|
||||
set(value):
|
||||
unique_save_name = value
|
||||
if _is_initialised: changed.emit()
|
||||
|
||||
@export var current_room: State.rooms = State.rooms.NULL:
|
||||
set(value):
|
||||
current_room = value
|
||||
|
|
@ -75,27 +70,26 @@ func _init(initial_filepath = "") -> void:
|
|||
else:
|
||||
filepath = initial_filepath
|
||||
unique_save_name = initial_filepath.get_file()
|
||||
|
||||
read_save_file()
|
||||
_is_initialised = true
|
||||
|
||||
func read_save_file() -> void:
|
||||
if not DirAccess.dir_exists_absolute(filepath.get_base_dir()):
|
||||
DirAccess.make_dir_absolute(filepath.get_base_dir())
|
||||
DirAccess.make_dir_absolute(filepath.get_base_dir())
|
||||
|
||||
func read_save_file():
|
||||
if filepath == "DEBUG":
|
||||
if OS.has_feature("debug") or OS.has_feature("demo"):
|
||||
push_warning("Created DEBUG savegame. Progress will not be stored!")
|
||||
else:
|
||||
print_debug(get_stack())
|
||||
print(get_stack())
|
||||
push_error("Created DEBUG savegame outside of demo or debug environment. This is unintentional and will lead to data loss. Please contact support and attatch the stack above.")
|
||||
#TODO maybe cause a crash here?
|
||||
return
|
||||
|
||||
if FileAccess.file_exists(filepath):
|
||||
print_debug("Savegame: Reading from: %s" % filepath)
|
||||
var file := FileAccess.open(filepath, FileAccess.READ)
|
||||
var raw_json := FileAccess.get_file_as_string(filepath)
|
||||
print("Opening existing Savegame: %s" % filepath)
|
||||
var file = FileAccess.open(filepath, FileAccess.READ)
|
||||
var raw_json = FileAccess.get_file_as_string(filepath)
|
||||
file.close()
|
||||
var parsed: Dictionary = JSON.parse_string(raw_json)
|
||||
|
||||
|
|
@ -104,7 +98,7 @@ func read_save_file() -> void:
|
|||
if FileAccess.file_exists("%s/thumbnails/%s.png" % [filepath.get_base_dir(), unique_save_name]):
|
||||
tmp_img = Image.load_from_file("%s/thumbnails/%s.png" % [filepath.get_base_dir(), unique_save_name])
|
||||
|
||||
var are_types_valid := (
|
||||
var are_types_valid = (
|
||||
parsed["unique_save_name"] is String and
|
||||
parsed["current_room"] is float and
|
||||
parsed["mementos_complete"] is float and
|
||||
|
|
@ -153,7 +147,7 @@ func read_save_file() -> void:
|
|||
thumbnail = ImageTexture.create_from_image(tmp_img)
|
||||
is_empty = false
|
||||
else:
|
||||
print_debug("Savegame: Creating (in memory) for path: %s" % filepath)
|
||||
print("Creating empty Savegame: %s" % filepath)
|
||||
is_valid = true
|
||||
|
||||
func _get_save_dict() -> Dictionary:
|
||||
|
|
@ -169,32 +163,30 @@ func _get_save_dict() -> Dictionary:
|
|||
"is_demo": is_demo
|
||||
}
|
||||
|
||||
func save_to_file(screen_shot: Texture) -> void:
|
||||
print_debug("Savegame: Saving to file: %s" % filepath)
|
||||
|
||||
func save_to_file(current_screen: Texture):
|
||||
if filepath == "DEBUG":
|
||||
push_warning("Savegame: Saving DEBUG save skipped. This is intentional.")
|
||||
push_warning("Saving DEBUG save skipped. This is intentional.")
|
||||
return
|
||||
|
||||
if current_room == State.rooms.NULL:
|
||||
push_warning("Savegame: Not saving empty savegame.")
|
||||
print("Not saving empty savegame.")
|
||||
return
|
||||
|
||||
last_saved = int(Time.get_unix_time_from_system())
|
||||
var thumbnail_image: Image = screen_shot.get_image()
|
||||
last_saved = Time.get_unix_time_from_system()
|
||||
var thumbnail_image: Image = current_screen.get_image()
|
||||
thumbnail_image.convert(Image.Format.FORMAT_RGB8)
|
||||
thumbnail_image.linear_to_srgb()
|
||||
thumbnail_image.resize(384, 216, Image.INTERPOLATE_LANCZOS) # nonexistent call in ViewportTexture
|
||||
thumbnail_image.crop(384, 216)
|
||||
thumbnail_image.resize(384, 261, Image.INTERPOLATE_LANCZOS) # nonexistent call in ViewportTexturew
|
||||
|
||||
var save_dir := DirAccess.open(filepath.get_base_dir())
|
||||
var thumbnail_path: String = "%s/thumbnails/%s.png" % [filepath.get_base_dir(), unique_save_name]
|
||||
var save_dir = DirAccess.open(filepath.get_base_dir())
|
||||
if not save_dir.dir_exists("thumbnails"):
|
||||
save_dir.make_dir("thumbnails")
|
||||
|
||||
var thumbnail_path: String = "%s/thumbnails/%s.png" % [filepath.get_base_dir(), unique_save_name]
|
||||
thumbnail_image.save_png(thumbnail_path)
|
||||
print_debug(filepath.get_base_dir())
|
||||
var file := FileAccess.open(filepath, FileAccess.WRITE)
|
||||
thumbnail_image.save_png("%s/thumbnails/%s.png" % [filepath.get_base_dir(), unique_save_name])
|
||||
#thumbnail_image.save_png("%s/test.png" % State.user_saves_path)
|
||||
print(filepath.get_base_dir())
|
||||
var file = FileAccess.open(filepath, FileAccess.WRITE)
|
||||
file.store_string(JSON.stringify(_get_save_dict()))
|
||||
file.close()
|
||||
|
||||
|
|
@ -221,12 +213,14 @@ func validate_board_state() -> bool:
|
|||
push_error("Save %s could not be parsed: Corrupted Cards." % unique_save_name)
|
||||
return false
|
||||
for sticky in board_state.stickies.values():
|
||||
if not (sticky is int or sticky is Vector2 or sticky is float or board_state.cards.keys().has(sticky)):
|
||||
if not (sticky is int or sticky is Vector2 or board_state.cards.keys().has(sticky)):
|
||||
push_error("Save %s could not be parsed: Corrupted Sticky Notes.")
|
||||
return false
|
||||
|
||||
return true
|
||||
|
||||
return false
|
||||
|
||||
func parse_vec_from_string(string: String) -> Vector2:
|
||||
var string_array := string.replace("(", "").replace(")", "").split(", ")
|
||||
var string_array = string.replace("(", "").replace(")", "").split(", ")
|
||||
return Vector2(float(string_array[0]), float(string_array[1]))
|
||||
|
|
|
|||
|
|
@ -1,18 +1,11 @@
|
|||
class_name SettingsPopup extends PanelContainer
|
||||
|
||||
func _ready() -> void:
|
||||
get_parent_control().visible = false
|
||||
|
||||
func show_settings(id: int = -1):
|
||||
get_parent_control().visible = true
|
||||
$AnimationPlayer.play("reveal")
|
||||
await $AnimationPlayer.animation_finished
|
||||
if not id == -1:
|
||||
$TabContainer.current_tab = id
|
||||
State.pass_stage_to($TabContainer)
|
||||
|
||||
func vanish():
|
||||
State.save_settings()
|
||||
$AnimationPlayer.play("vanish")
|
||||
await $AnimationPlayer.animation_finished
|
||||
get_parent_control().visible = false
|
||||
State.save_settings()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=12 format=3 uid="uid://d0qqluenght6a"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro/shaders/stars.gdshader" id="1_8nej7"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro/textures/sky_textures_2.png" id="2_qoi7m"]
|
||||
[ext_resource type="Shader" uid="uid://d324neibxpomg" path="res://base-environments/intro_scene/shaders/stars.gdshader" id="1_8nej7"]
|
||||
[ext_resource type="Texture2D" uid="uid://dabnlcnuticww" path="res://base-environments/intro_scene/textures/sky_textures_2.png" id="2_qoi7m"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_d5lk6"]
|
||||
interpolation_mode = 2
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ func _process(delta):
|
|||
|
||||
|
||||
func _on_scene_actors_animation_finished(anim_name):
|
||||
print_debug(\"yay\")
|
||||
print(\"yay\")
|
||||
"
|
||||
|
||||
[sub_resource type="Shader" id="Shader_tcvor"]
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ func _on_pressed() -> void:
|
|||
script/source = "extends MenuButton
|
||||
|
||||
func _ready() -> void:
|
||||
mouse_entered.connect(func(id): print_debug(\"mouse_entered\"))
|
||||
get_popup().id_pressed.connect(func(id): print_debug(\"id_pressed\"))
|
||||
get_popup().index_pressed.connect(func(id): print_debug(\"id_pressed\"))
|
||||
get_popup().id_focused.connect(func(id): print_debug(\"id_focused\"))
|
||||
mouse_entered.connect(func(id): print(\"mouse_entered\"))
|
||||
get_popup().id_pressed.connect(func(id): print(\"id_pressed\"))
|
||||
get_popup().index_pressed.connect(func(id): print(\"id_pressed\"))
|
||||
get_popup().id_focused.connect(func(id): print(\"id_focused\"))
|
||||
|
||||
"
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
[ext_resource type="Script" uid="uid://bayuh2vafablg" path="res://addons/markdownlabel/header_formats/h4_format.gd" id="6_63x3b"]
|
||||
[ext_resource type="Script" uid="uid://dfr1w7u3jgni3" path="res://addons/markdownlabel/header_formats/h5_format.gd" id="7_sp2lx"]
|
||||
[ext_resource type="Script" uid="uid://bsi6dexoofpe6" path="res://addons/markdownlabel/header_formats/h6_format.gd" id="8_bd0uj"]
|
||||
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://code/button_themer.gd" id="9_pl7dp"]
|
||||
[ext_resource type="Script" uid="uid://cxton1pffwxk4" path="res://button_themer.gd" id="9_pl7dp"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_nkjm2"]
|
||||
script/source = "extends Panel
|
||||
|
|
@ -23,7 +23,7 @@ var focus_stickies:bool = true:
|
|||
else:
|
||||
current_dropzone_id = current_dropzone_id
|
||||
|
||||
var has_stage := false:
|
||||
var has_stage = false:
|
||||
set(focus):
|
||||
if focus:
|
||||
has_stage = true
|
||||
|
|
@ -181,23 +181,23 @@ func populate_board(card_names: Array[StringName]):
|
|||
#currently_active_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default
|
||||
currently_active_node = dropzone.get_child(0)
|
||||
|
||||
func add_card(card: Card, re_parent:bool = true):
|
||||
if re_parent:
|
||||
func add_card(card: Card, reparent:bool = true):
|
||||
if reparent:
|
||||
card.reparent(self)
|
||||
else:
|
||||
add_child(card)
|
||||
card.position = Vector2(randi_range(dropzone_padding, int(dropzone_size.x)), randi_range(dropzone_padding, int(dropzone_size.y)))
|
||||
card.position = Vector2(randi_range(dropzone_padding, dropzone_size.x), randi_range(dropzone_padding, dropzone_size.y))
|
||||
insert_area(dropzone, card)
|
||||
card.set_owner(self)
|
||||
card.is_dragable = true
|
||||
|
||||
func add_sticky_note(sticky: StickyNote, re_parent:bool = true):
|
||||
var new_panel := StickyNotePanel.new()
|
||||
func add_sticky_note(sticky: StickyNote, reparent:bool = true):
|
||||
var new_panel = StickyNotePanel.new()
|
||||
sticky_note_container.add_child(new_panel, true, Node.INTERNAL_MODE_DISABLED)
|
||||
#WARNING this for some reason would break the tweens
|
||||
new_panel.set_owner(self)
|
||||
sticky.current_handle = self
|
||||
new_panel.attatch_sticky_note(sticky, self, false, re_parent)
|
||||
new_panel.attatch_sticky_note(sticky, self, false, reparent)
|
||||
|
||||
# Checks if a Node is currently inside the dropzone
|
||||
func is_in_dropzone(to_check: Node) -> bool:
|
||||
|
|
@ -454,7 +454,7 @@ func _input(event):
|
|||
get_viewport().set_input_as_handled()
|
||||
|
||||
elif event.is_action_pressed("ui_left"): # right to switch context to the right
|
||||
print_debug(try_select_nearest_card(selection_position, Vector2.LEFT))
|
||||
print(try_select_nearest_card(selection_position, Vector2.LEFT))
|
||||
if focus_stickies:
|
||||
if current_context == NAVIGATE:
|
||||
focus_stickies = false
|
||||
|
|
@ -663,9 +663,10 @@ func rebuild_from_savedict(board_state:Dictionary):
|
|||
sticky.picked_random = randoms.has( sticky.sticky_id )
|
||||
|
||||
func validate_board():
|
||||
return
|
||||
if current_context == NAVIGATE:
|
||||
|
||||
var needs_rebuild := false
|
||||
var needs_rebuild = false
|
||||
for node in dropzone.get_children():
|
||||
if node is Card:
|
||||
match validate_card(node):
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
extends Area2D
|
||||
class_name Card
|
||||
|
||||
|
|
@ -114,7 +115,7 @@ signal has_burned
|
|||
burn_tween.tween_property(self, "burn_progress", 2.0, 2)
|
||||
burn_tween.tween_callback(_torch).set_delay(1.0)
|
||||
burned.TORCHED:
|
||||
print_debug("Card %s has been burned." % HardCards.get_obscure_name(name))
|
||||
print("Card %s has been burned." % HardCards.get_obscure_name(name))
|
||||
has_burned.emit()
|
||||
burn_state = burning
|
||||
|
||||
|
|
@ -285,7 +286,7 @@ func attach_sticky_note(sticky_note: StickyNote) -> bool:
|
|||
sticky_note.on_board = false
|
||||
sticky_note.is_dragable = false
|
||||
current_sticky_note = sticky_note
|
||||
#var former_parent = sticky_note.attached_to
|
||||
var former_parent = sticky_note.attached_to
|
||||
sticky_note.attached_to = self
|
||||
|
||||
if name == "c_hit" and sticky_note.name == "c_effort" and Steamworks.has_initialized:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
class_name StickyNotePanel
|
||||
extends Panel
|
||||
|
||||
|
|
@ -18,7 +19,7 @@ func _ready():
|
|||
custom_minimum_size = Vector2(custom_minimum_size.x, 0)
|
||||
|
||||
var is_attatching: bool = false
|
||||
func attatch_sticky_note(attatchment: StickyNote, custom_owner: Node, tween:bool = true, re_parent:bool = true):
|
||||
func attatch_sticky_note(attatchment: StickyNote, custom_owner: Node, tween:bool = true, reparent:bool = true):
|
||||
is_attatching = true
|
||||
attatchment.on_board = false
|
||||
attached_sticky_note = attatchment
|
||||
|
|
@ -27,7 +28,7 @@ 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)
|
||||
var target_post := get_global_transform().origin+ancor_position
|
||||
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)
|
||||
|
|
@ -38,7 +39,7 @@ func attatch_sticky_note(attatchment: StickyNote, custom_owner: Node, tween:bool
|
|||
attatchment.position = ancor_position
|
||||
else:
|
||||
custom_minimum_size = minimum_size
|
||||
if re_parent:
|
||||
if reparent:
|
||||
attatchment.reparent(self)
|
||||
else:
|
||||
add_child(attatchment)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
@tool
|
||||
|
||||
extends Area2D
|
||||
class_name StickyNote
|
||||
|
||||
|
|
@ -195,7 +197,7 @@ func _on_input_event(_viewport, event, _shape_idx):
|
|||
|
||||
func _move_sticky_note():
|
||||
if is_dragged:
|
||||
#var old_position = position
|
||||
var old_position = position
|
||||
position = initial_drag_position + get_viewport().get_mouse_position() - mouse_diff
|
||||
|
||||
if hovering_cards != []:
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
extends Node
|
||||
|
||||
# General housekeeping to set up a "normal"
|
||||
# game experience, e.g.
|
||||
# - ensure settings exist
|
||||
# - ensure savegames are healthy
|
||||
|
|
@ -1 +0,0 @@
|
|||
uid://cq25hqgfl2eiu
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://ccdfkvtu6sb36"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cq25hqgfl2eiu" path="res://logic-scenes/boot/boot.gd" id="1_hjvc4"]
|
||||
|
||||
[node name="Boot" type="Node"]
|
||||
script = ExtResource("1_hjvc4")
|
||||
|
|
@ -25,7 +25,7 @@ func _ready():
|
|||
%SkipButton.pressed.connect(card_burned.emit)
|
||||
|
||||
func burn_cards(_id):
|
||||
var random_card_names: Array = State.save_game.board_state["randoms"]
|
||||
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"):
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ var has_stage = false:
|
|||
var _input_locked = true
|
||||
var selection_state = INI:
|
||||
set(state):
|
||||
print_debug("Setting picker state to %s" % ["INI","CARDS","CARDS_SELECTED","TRANSITION","POSTS","POSTS_SELECTED","DONE"][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)
|
||||
|
||||
|
|
@ -58,8 +58,6 @@ signal cards_picked(cardnames: Array[String])
|
|||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
reset()
|
||||
return
|
||||
|
||||
#FIXME: can I make this less annoying somehow?
|
||||
if State.onready_room == State.rooms.YOUTH:
|
||||
|
|
@ -76,7 +74,8 @@ func _ready():
|
|||
Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_THERAPY, 1)
|
||||
Scenes.sign_up_for_sequence(pick_cards, Scenes.id.ADULT_BURNOUT, 1)
|
||||
else:
|
||||
assert(false, "Not Implemented")
|
||||
return
|
||||
assert(false)
|
||||
|
||||
if get_tree().root == self.get_parent():
|
||||
pick_cards(3, false)
|
||||
|
|
@ -173,7 +172,7 @@ func _input(event):
|
|||
|
||||
|
||||
func pick(id: int):
|
||||
print_debug("%s picked card %s at id %d" % [name, options[id].text, id])
|
||||
print("%s picked card %s at id %d" % [name, options[id].text, id])
|
||||
if id == -1:
|
||||
curr_selection_id = 0
|
||||
return
|
||||
|
|
@ -200,11 +199,11 @@ func pick(id: int):
|
|||
options.erase(option)
|
||||
anim_players[i].play("unshuffle")
|
||||
anim_players.remove_at(i)
|
||||
print_debug("Removed StickyNote %s from options pool" % HardCards.get_obscure_name(option.name))
|
||||
print("Removed StickyNote %s from options pool" % HardCards.get_obscure_name(option.name))
|
||||
i += 1
|
||||
|
||||
var winning_id
|
||||
print_debug("Randomly selected card %s" % HardCards.get_obscure_name(options[1].name))
|
||||
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()
|
||||
# investigate if this fixes error on line 197
|
||||
|
|
@ -269,7 +268,7 @@ func handle_mouse_button(button_event: InputEventMouseButton, new_selection: Nod
|
|||
var current_scene_id
|
||||
func pick_cards(id: int, repeat: bool):
|
||||
current_scene_id = id
|
||||
print_debug("Reached actor %s in sequence %s. Is%s repeating." % [name, Scenes.id.keys()[id], " not" if repeat else ""])
|
||||
print("Reached actor %s in sequence %s. Is%s repeating." % [name, Scenes.id.keys()[id], " not" if repeat else ""])
|
||||
if not repeat:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
fill_card_slots(id)
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
class_name ChatMessage extends Resource
|
||||
|
||||
@export_multiline var text: String = ""
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
class_name ChatView extends ScrollContainer
|
||||
|
||||
@export var messages: Array[ChatMessage]
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
@tool
|
||||
extends CenterContainer
|
||||
class_name Collectable_Ui
|
||||
|
||||
@export var scene:Scenes.id = 0 as Scenes.id
|
||||
@export var scene:Scenes.id = 0
|
||||
|
||||
@export var collapsed = true:
|
||||
set(collapse):
|
||||
|
|
@ -17,9 +18,9 @@ class_name Collectable_Ui
|
|||
if is_inside_tree():
|
||||
_show_buttons()
|
||||
collapsed = collapse
|
||||
|
||||
|
||||
if collapse and has_stage: State.leave_stage(self)
|
||||
|
||||
|
||||
@export var is_board: bool = false:
|
||||
set(board):
|
||||
is_board = board
|
||||
|
|
@ -29,10 +30,10 @@ class_name Collectable_Ui
|
|||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Collect Memento"
|
||||
@export var has_stage: bool = false:
|
||||
set(focused):
|
||||
print_debug("set focus of card to ", focused)
|
||||
|
||||
if has_stage == focused: return
|
||||
|
||||
print("set focus of card to ", focused)
|
||||
|
||||
if has_stage == focused: return
|
||||
|
||||
if focused:
|
||||
has_stage = true
|
||||
collapsed = false
|
||||
|
|
@ -41,7 +42,7 @@ class_name Collectable_Ui
|
|||
elif has_stage:
|
||||
has_stage = false
|
||||
get_viewport().gui_release_focus()
|
||||
|
||||
|
||||
# FIXME needs to be outsourced to scene reference state
|
||||
@export var collected: bool = false:
|
||||
set(set_collected):
|
||||
|
|
@ -56,9 +57,9 @@ class_name Collectable_Ui
|
|||
else:
|
||||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.disabled = true
|
||||
$Panel/Content/Buttons/VBoxContainer/put_back.show()
|
||||
else:
|
||||
else:
|
||||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.disabled = false
|
||||
|
||||
|
||||
@export var skipped: bool = false
|
||||
|
||||
@export var item_name: String = "":
|
||||
|
|
@ -83,7 +84,7 @@ func _ready():
|
|||
#$Panel/Content/Buttons/VBoxContainer/Summary.visible = State.provide_summaries
|
||||
#$Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping
|
||||
if visible and not collapsed: _show_buttons()
|
||||
|
||||
|
||||
content_notes = content_notes
|
||||
is_board = is_board
|
||||
item_name = item_name
|
||||
|
|
@ -92,7 +93,7 @@ func _hide_buttons():
|
|||
if is_inside_tree():
|
||||
if not State.reduce_motion:
|
||||
$AnimationPlayer.play_backwards("show_buttons")
|
||||
|
||||
|
||||
func _show_buttons():
|
||||
if is_inside_tree():
|
||||
if not State.reduce_motion:
|
||||
|
|
@ -101,7 +102,7 @@ func _show_buttons():
|
|||
$AnimationPlayer.play("RESET")
|
||||
else:
|
||||
$AnimationPlayer.play("RESET")
|
||||
|
||||
|
||||
func vanish():
|
||||
if visible:
|
||||
var tween = create_tween()
|
||||
|
|
@ -125,9 +126,9 @@ func reveal():
|
|||
func _yoink_focus():
|
||||
if not has_stage:
|
||||
State.transition_stage_to(self)
|
||||
|
||||
|
||||
func _on_pick_button_pressed():
|
||||
print_debug("card collected!")
|
||||
print("card collected!")
|
||||
if not is_board:
|
||||
Scenes.start_sequence(scene)
|
||||
State.leave_stage(self)
|
||||
|
|
@ -140,10 +141,10 @@ func _on_pick_button_pressed():
|
|||
|
||||
|
||||
func _on_skip_pressed():
|
||||
print_debug("Scene skipped!")
|
||||
print("Scene skipped!")
|
||||
if scene != null:
|
||||
emit_signal("scene_skipped", 1)
|
||||
skipped = true
|
||||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)"
|
||||
|
||||
|
||||
State.leave_stage(self)
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="3_63j61"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_g0qhf"]
|
||||
script/source = "
|
||||
script/source = "@tool
|
||||
extends Button
|
||||
|
||||
func hide():
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
@tool
|
||||
class_name CollectableUi extends CenterContainer
|
||||
|
||||
@export var has_stage: bool = false:
|
||||
set(focused):
|
||||
if has_stage == focused: return
|
||||
|
||||
if has_stage == focused: return
|
||||
|
||||
if focused:
|
||||
has_stage = true
|
||||
is_collapsed = false
|
||||
|
|
@ -27,7 +28,7 @@ class_name CollectableUi extends CenterContainer
|
|||
# if is_inside_tree():
|
||||
# _show_buttons()
|
||||
# collapsed = collapse
|
||||
#
|
||||
#
|
||||
# if collapse and has_stage: State.leave_stage(self)
|
||||
|
||||
@export var scene: Scenes.id = Scenes.id.YOUTH_DRAEVEN:
|
||||
|
|
@ -72,7 +73,7 @@ class_name CollectableUi extends CenterContainer
|
|||
Scenes.id.ADULT_BURNOUT:
|
||||
if title_override == "": title_label.text = TranslationServer.translate("Paperwork")
|
||||
if subtitle_override == "": cn_label.text = ""
|
||||
|
||||
|
||||
if not Engine.is_editor_hint():
|
||||
is_collected = Scenes.is_sequence_repeating(scene)
|
||||
@export var is_collected: bool = false:
|
||||
|
|
@ -160,7 +161,7 @@ func _ready() -> void:
|
|||
State.settings_changed.connect(_on_context_updated)
|
||||
%CollectButton.pressed.connect(collect_memento)
|
||||
##TODO: add functions for remaining buttons
|
||||
|
||||
|
||||
update_state()
|
||||
|
||||
func _on_context_updated():
|
||||
|
|
@ -188,7 +189,7 @@ func try_reveal() -> bool:
|
|||
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"):
|
||||
|
|
@ -217,7 +218,7 @@ func _input(event: InputEvent) -> void:
|
|||
|
||||
func vanish():
|
||||
if not visible: return
|
||||
|
||||
|
||||
if is_expanded:
|
||||
animation_player.play("vanish_all")
|
||||
else:
|
||||
|
|
@ -232,10 +233,10 @@ func collect_memento():
|
|||
is_collected = true
|
||||
|
||||
func _on_skip_pressed():
|
||||
print_debug("Scene skipped!")
|
||||
print("Scene skipped!")
|
||||
if scene != null:
|
||||
scene_skipped.emit(1)
|
||||
was_skipped = true
|
||||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "collect (un-skip)"
|
||||
|
||||
|
||||
State.leave_stage(self)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
extends VBoxContainer
|
||||
class_name AccessibilitySettings
|
||||
|
||||
signal changed
|
||||
signal leave_stage
|
||||
|
|
@ -19,7 +18,7 @@ var is_active:bool = false:
|
|||
State.leave_stage(self)
|
||||
leave_stage.emit()
|
||||
is_active = active
|
||||
|
||||
|
||||
if (is_active and not has_stage) and not get_tree().paused:
|
||||
push_warning("%s has been set active but not been given the stage while the tree is unpaused!")
|
||||
|
||||
|
|
@ -43,7 +42,7 @@ func _ready() -> void:
|
|||
else:
|
||||
%SaveButton.text = "menu_save"
|
||||
back_button.visible = false
|
||||
|
||||
|
||||
update_ui_from_state()
|
||||
|
||||
reduce_motion_check.pressed.connect(func(value): State.reduce_motion = value)
|
||||
|
|
@ -79,7 +78,7 @@ func update_ui_from_state():
|
|||
font_picker.selected = State.font_style
|
||||
subtitle_picker.selected = State.subtitles
|
||||
scale_slider.value = State.ui_scaling
|
||||
|
||||
|
||||
func _on_save_button_pressed() -> void:
|
||||
State.save_settings()
|
||||
is_active = false
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://b3wlecqvelh22"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cbax2lv4pstqk" path="res://ui/menu_main/accessibility_settings.gd" id="1_x3lym"]
|
||||
[ext_resource type="Script" uid="uid://cbax2lv4pstqk" path="res://logic-scenes/main menu/acessability_settings.gd" id="1_x3lym"]
|
||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_24dtk"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_v567h"]
|
||||
|
|
@ -19,7 +19,6 @@ func _ready() -> void:
|
|||
|
||||
[node name="Accessibility" type="VBoxContainer"]
|
||||
script = ExtResource("1_x3lym")
|
||||
is_in_beginning = null
|
||||
metadata/_tab_index = 0
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=9 format=3 uid="uid://dfhkfocy8axb8"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b2redm7dwpcne" path="res://ui/menu_main/audio_settings.gd" id="1_0lla1"]
|
||||
[ext_resource type="Script" uid="uid://b2redm7dwpcne" path="res://logic-scenes/main menu/audio_settings.gd" id="1_0lla1"]
|
||||
[ext_resource type="AudioStream" uid="uid://cl74a68tjwinh" path="res://base-environments/youth_room/audio/Youth Loop.wav" id="2_01rsa"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_lax27"]
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=22 format=3 uid="uid://chal0ioagspx0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://wybb38po3pbo" path="res://ui/menu_main/content_settings.gd" id="1_wnuvg"]
|
||||
[ext_resource type="Script" uid="uid://wybb38po3pbo" path="res://logic-scenes/main menu/content_settings.gd" id="1_wnuvg"]
|
||||
[ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="2_b7ja7"]
|
||||
[ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="3_00t14"]
|
||||
[ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="4_336xo"]
|
||||
|
|
@ -25,15 +25,14 @@ func _ready() -> void:
|
|||
input_sensitivity_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
||||
stream_overlay_picker.item_selected.connect(func(value): State.stream_overlay = value)
|
||||
fov_slider.value_changed.connect(func(value): State.input_sensitivity = value)
|
||||
|
||||
|
||||
%SaveButton.pressed.connect(_on_exit_button_pressed)
|
||||
|
||||
func update_ui_from_state():
|
||||
y_switch_gamepad.button_pressed = State.inverty_y_axis
|
||||
input_sensitivity_slider.value = State.input_sensitivity
|
||||
stream_overlay_picker.select(State.stream_overlay_position)
|
||||
changed.emit()
|
||||
|
||||
|
||||
func _on_exit_button_pressed() -> void:
|
||||
leave_stage.emit()
|
||||
State.save_settings()
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://dxwqkxq6qjk7i"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bsnktd8qk5fl7" path="res://ui/menu_main/gameplay_settings.gd" id="1_aurh1"]
|
||||
[ext_resource type="Script" uid="uid://bsnktd8qk5fl7" path="res://logic-scenes/main menu/gameplay_settings.gd" id="1_aurh1"]
|
||||
|
||||
[sub_resource type="InputEventAction" id="InputEventAction_gy6yb"]
|
||||
action = &"ui_cancel"
|
||||
|
|
@ -3,15 +3,15 @@
|
|||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d3ewjumh0b0g6"
|
||||
path="res://.godot/imported/logo.png-60c22783798a3cd4fe9bcc3ba1860498.ctex"
|
||||
path="res://.godot/imported/logo.png-2a2bb67beae729051be0dd4ef4434919.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/menu_main/logo.png"
|
||||
dest_files=["res://.godot/imported/logo.png-60c22783798a3cd4fe9bcc3ba1860498.ctex"]
|
||||
source_file="res://logic-scenes/main menu/logo.png"
|
||||
dest_files=["res://.godot/imported/logo.png-2a2bb67beae729051be0dd4ef4434919.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
class_name MainMenu extends Panel
|
||||
|
||||
var has_stage: bool = false:
|
||||
set(value):
|
||||
has_stage = value
|
||||
if is_node_ready():
|
||||
if save_game_handle.get_most_recent_save().current_room == 0:
|
||||
continue_button.visible = false
|
||||
continue_button.disabled = true
|
||||
new_game_button.theme_type_variation = "H1Button"
|
||||
else:
|
||||
continue_button.visible = true
|
||||
continue_button.disabled = not has_stage
|
||||
new_game_button.theme_type_variation = ""
|
||||
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
||||
for child: Control in $PanelContainer.get_children():
|
||||
child.focus_mode = FOCUS_ALL if has_stage else FOCUS_NONE
|
||||
child.modulate = Color.WHITE if has_stage else Color.WEB_GRAY
|
||||
child.mouse_filter = Control.MOUSE_FILTER_STOP if has_stage else Control.MOUSE_FILTER_IGNORE
|
||||
if has_stage:
|
||||
if continue_button.visible:
|
||||
continue_button.grab_focus()
|
||||
else:
|
||||
new_game_button.grab_focus()
|
||||
|
||||
signal start_game(savegame: SaveGame)
|
||||
signal open_settings(new_game: bool)
|
||||
signal roll_credits
|
||||
|
||||
@onready var new_game_button: Button = $PanelContainer/NewGameButton
|
||||
@onready var continue_button: Button = $PanelContainer/ContinueGameButton
|
||||
@onready var load_game_button: Button = $PanelContainer/LoadGameButton
|
||||
@onready var settings_button: Button = $PanelContainer/SettingsButton
|
||||
@onready var settings_popup: SettingsPopup = %SettingsPopup
|
||||
@onready var credits_button: Button = $PanelContainer/CreditsButton
|
||||
@onready var quit_button: Button = $PanelContainer/QuitButton
|
||||
@onready var save_game_handle: SaveGameHandle = %SaveGameHandle
|
||||
@export var save_game_exists: bool = false:
|
||||
set(value):
|
||||
save_game_exists = value
|
||||
|
||||
var await_new_game: bool = false
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
save_game_handle.picked.connect(_on_save_picked)
|
||||
if save_game_handle.get_most_recent_save().current_room == 0:
|
||||
continue_button.disabled = true
|
||||
continue_button.visible = false
|
||||
new_game_button.theme_type_variation = "H1Button"
|
||||
continue_button.pressed.connect(func(): start_game.emit(save_game_handle.get_most_recent_save()))
|
||||
new_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(true))
|
||||
load_game_button.pressed.connect(func(): save_game_handle.pick_save_slot(false))
|
||||
load_game_button.disabled = not save_game_handle.has_existing_saves()
|
||||
settings_button.pressed.connect(settings_popup.show_settings)
|
||||
quit_button.pressed.connect(get_tree().quit)
|
||||
credits_button.pressed.connect(roll_credits.emit)
|
||||
|
||||
State.take_stage(self)
|
||||
|
||||
func _on_save_picked(save: SaveGame):
|
||||
start_game.emit(save)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=4 format=3 uid="uid://u0bwjr5l6nkh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://vhppt23pmi6w" path="res://ui/menu_main/privacy_settings.gd" id="1_evre2"]
|
||||
[ext_resource type="Script" uid="uid://vhppt23pmi6w" path="res://logic-scenes/main menu/privacy_settings.gd" id="1_evre2"]
|
||||
|
||||
[sub_resource type="InputEventAction" id="InputEventAction_gy6yb"]
|
||||
action = &"ui_cancel"
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
@tool
|
||||
class_name SaveGameDisplay extends Button
|
||||
|
||||
var _is_built: bool = false
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue