Merge remote-tracking branch 'origin/main' into adi_dev
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
## Music
|
## Music
|
||||||
- [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0
|
- [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0
|
||||||
|
- [10 Ambient RPG Tracks](https://alkakrab.itch.io/free-10-rpg-game-ambient-tracks-music-pack-no-copyright) by [alkakrab](https://alkakrab.itch.io/) *"Absolutely Free For Commercial use."*
|
||||||
|
|
||||||
## Sounds Effects
|
## Sounds Effects
|
||||||
- [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0
|
- [Rain on Windows, Interior](https://freesound.org/people/InspectorJ/sounds/346641/) by [InspectorJ](https://freesound.org/people/InspectorJ/) CC-BY 3.0
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 309 KiB |
|
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 256 KiB |
|
|
@ -35,11 +35,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689078114,
|
"lastModified": 1689752456,
|
||||||
"narHash": "sha256-osG8BrX5RpKJ7wH+vI6auOU+ctvNOblT4XXCgknK47c=",
|
"narHash": "sha256-VOChdECcEI8ixz8QY+YC4JaNEFwQd1V8bA0G4B28Ki0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b6cc7ff8fee93789bc871a267ab876c3fca042cb",
|
"rev": "7f256d7da238cb627ef189d56ed590739f42f13b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -30,3 +30,10 @@ func _update_scene(new_mode) -> int:
|
||||||
emit_signal("freeze")
|
emit_signal("freeze")
|
||||||
|
|
||||||
return new_mode
|
return new_mode
|
||||||
|
|
||||||
|
func get_ready():
|
||||||
|
self.show()
|
||||||
|
$sfx/distant_rain.play()
|
||||||
|
$"sfx/rain on window".play()
|
||||||
|
await get_tree().create_timer(0.1).timeout
|
||||||
|
$logic/UI/board.hide()
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=105 format=3 uid="uid://b3b0gyvklqn50"]
|
[gd_scene load_steps=113 format=3 uid="uid://b3b0gyvklqn50"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
[ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
|
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_xqd4w"]
|
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_xqd4w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"]
|
[ext_resource type="PackedScene" uid="uid://bnskiyx1sksww" path="res://logic-scenes/board/physics-board.tscn" id="4_gyjxx"]
|
||||||
[ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="5_fe1yj"]
|
[ext_resource type="AudioStream" uid="uid://1tvopjmo6dp2" path="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3" id="5_fe1yj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://citwb7f4dl3l1" path="res://thank-you.tscn" id="5_kts6y"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://wuxbl6u3s8yo" path="res://base-environments/youth_room/shaders/starlight-mesh.res" id="6_gy6jv"]
|
[ext_resource type="ArrayMesh" uid="uid://wuxbl6u3s8yo" path="res://base-environments/youth_room/shaders/starlight-mesh.res" id="6_gy6jv"]
|
||||||
[ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draeven.ogg" id="7_125rh"]
|
[ext_resource type="AudioStream" uid="uid://d1r1tvb1paup4" path="res://base-environments/youth_room/audio/draeven.ogg" id="7_125rh"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cudna8k7fw06t" path="res://base-environments/youth_room/audio/Moving Loop.wav" id="8_egnow"]
|
[ext_resource type="AudioStream" uid="uid://cudna8k7fw06t" path="res://base-environments/youth_room/audio/Moving Loop.wav" id="8_egnow"]
|
||||||
|
|
@ -24,6 +25,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://bdnesuqroi7ss" path="res://vfx/collectable_particles.tscn" id="12_qxx2k"]
|
[ext_resource type="PackedScene" uid="uid://bdnesuqroi7ss" path="res://vfx/collectable_particles.tscn" id="12_qxx2k"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="12_xnele"]
|
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="12_xnele"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d005qvnbnishb" path="res://import/interface-elements/cursor_grab.png" id="13_lqj71"]
|
[ext_resource type="Texture2D" uid="uid://d005qvnbnishb" path="res://import/interface-elements/cursor_grab.png" id="13_lqj71"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dvwuhobhka78d" path="res://logic-scenes/misc/skip_control.tscn" id="15_7nc4e"]
|
||||||
[ext_resource type="PackedScene" uid="uid://brk4hjdf2x81a" path="res://logic-scenes/card_picker/card_picker.tscn" id="19_a4n1o"]
|
[ext_resource type="PackedScene" uid="uid://brk4hjdf2x81a" path="res://logic-scenes/card_picker/card_picker.tscn" id="19_a4n1o"]
|
||||||
[ext_resource type="ArrayMesh" uid="uid://bfc3d4g40n0wy" path="res://logic-scenes/collectable/import/old-mask.res" id="19_jr2bb"]
|
[ext_resource type="ArrayMesh" uid="uid://bfc3d4g40n0wy" path="res://logic-scenes/collectable/import/old-mask.res" id="19_jr2bb"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dwtxjvprjyx8p" path="res://base-environments/youth_room/lava-lamp.tscn" id="21_0k2gr"]
|
[ext_resource type="PackedScene" uid="uid://dwtxjvprjyx8p" path="res://base-environments/youth_room/lava-lamp.tscn" id="21_0k2gr"]
|
||||||
|
|
@ -31,9 +33,6 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"]
|
[ext_resource type="PackedScene" uid="uid://bpjympn3ps3wo" path="res://logic-scenes/luna/luna_imported.tscn" id="27_pb1jl"]
|
||||||
[ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"]
|
[ext_resource type="Material" uid="uid://ct7uc5i5yp5qf" path="res://base-environments/youth_room/import/materials/wall.tres" id="28_oiweb"]
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_0eexn"]
|
|
||||||
size = Vector3(0.0600758, 0.423278, 0.723589)
|
|
||||||
|
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_j3mqx"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_j3mqx"]
|
||||||
size = Vector3(0.711297, 2.53136, 1.74815)
|
size = Vector3(0.711297, 2.53136, 1.74815)
|
||||||
|
|
||||||
|
|
@ -121,6 +120,27 @@ size = Vector3(1.63347, 0.305693, 0.775269)
|
||||||
[sub_resource type="BoxShape3D" id="BoxShape3D_bq15k"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_bq15k"]
|
||||||
size = Vector3(0.244565, 1, 0.245859)
|
size = Vector3(0.244565, 1, 0.245859)
|
||||||
|
|
||||||
|
[sub_resource type="InputEventKey" id="InputEventKey_p2hyr"]
|
||||||
|
device = -1
|
||||||
|
keycode = 88
|
||||||
|
unicode = 120
|
||||||
|
|
||||||
|
[sub_resource type="InputEventJoypadButton" id="InputEventJoypadButton_e2vy5"]
|
||||||
|
button_index = 2
|
||||||
|
pressed = true
|
||||||
|
|
||||||
|
[sub_resource type="Shortcut" id="Shortcut_b3maf"]
|
||||||
|
events = [SubResource("InputEventKey_p2hyr"), SubResource("InputEventJoypadButton_e2vy5")]
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_uy50s"]
|
||||||
|
script/source = "extends Panel
|
||||||
|
|
||||||
|
|
||||||
|
func show():
|
||||||
|
mouse_filter = MOUSE_FILTER_STOP
|
||||||
|
visible = true
|
||||||
|
"
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_nwry8"]
|
[sub_resource type="Animation" id="Animation_nwry8"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
|
|
@ -145,7 +165,7 @@ tracks/1/keys = {
|
||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [-80.0]
|
"values": [0.0]
|
||||||
}
|
}
|
||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
|
|
@ -157,7 +177,7 @@ tracks/2/keys = {
|
||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.0]
|
"values": [-80.0]
|
||||||
}
|
}
|
||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
|
|
@ -169,7 +189,7 @@ tracks/3/keys = {
|
||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.0]
|
"values": [-80.0]
|
||||||
}
|
}
|
||||||
tracks/4/type = "value"
|
tracks/4/type = "value"
|
||||||
tracks/4/imported = false
|
tracks/4/imported = false
|
||||||
|
|
@ -639,6 +659,18 @@ tracks/42/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Color(1, 1, 1, 1)]
|
"values": [Color(1, 1, 1, 1)]
|
||||||
}
|
}
|
||||||
|
tracks/43/type = "value"
|
||||||
|
tracks/43/imported = false
|
||||||
|
tracks/43/enabled = true
|
||||||
|
tracks/43/path = NodePath("ScenePlayer/Jui_Jutsu:volume_db")
|
||||||
|
tracks/43/interp = 1
|
||||||
|
tracks/43/loop_wrap = true
|
||||||
|
tracks/43/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [0.0]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_g5l1m"]
|
[sub_resource type="Animation" id="Animation_g5l1m"]
|
||||||
resource_name = "childhood"
|
resource_name = "childhood"
|
||||||
|
|
@ -785,7 +817,7 @@ tracks/11/path = NodePath("ScenePlayer")
|
||||||
tracks/11/interp = 1
|
tracks/11/interp = 1
|
||||||
tracks/11/loop_wrap = true
|
tracks/11/loop_wrap = true
|
||||||
tracks/11/keys = {
|
tracks/11/keys = {
|
||||||
"times": PackedFloat32Array(9.7),
|
"times": PackedFloat32Array(93.7),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
|
|
@ -1037,7 +1069,7 @@ tracks/19/path = NodePath("ScenePlayer")
|
||||||
tracks/19/interp = 1
|
tracks/19/interp = 1
|
||||||
tracks/19/loop_wrap = true
|
tracks/19/loop_wrap = true
|
||||||
tracks/19/keys = {
|
tracks/19/keys = {
|
||||||
"times": PackedFloat32Array(138.4),
|
"times": PackedFloat32Array(140.5),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
|
|
@ -1349,7 +1381,7 @@ tracks/19/path = NodePath("ScenePlayer")
|
||||||
tracks/19/interp = 1
|
tracks/19/interp = 1
|
||||||
tracks/19/loop_wrap = true
|
tracks/19/loop_wrap = true
|
||||||
tracks/19/keys = {
|
tracks/19/keys = {
|
||||||
"times": PackedFloat32Array(205.6),
|
"times": PackedFloat32Array(204.5),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
|
|
@ -1466,7 +1498,7 @@ tracks/8/path = NodePath("ScenePlayer")
|
||||||
tracks/8/interp = 1
|
tracks/8/interp = 1
|
||||||
tracks/8/loop_wrap = true
|
tracks/8/loop_wrap = true
|
||||||
tracks/8/keys = {
|
tracks/8/keys = {
|
||||||
"times": PackedFloat32Array(95.2),
|
"times": PackedFloat32Array(95.1),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"values": [{
|
"values": [{
|
||||||
"args": [],
|
"args": [],
|
||||||
|
|
@ -1517,14 +1549,19 @@ _data = {
|
||||||
script/source = "extends AnimationPlayer
|
script/source = "extends AnimationPlayer
|
||||||
|
|
||||||
var has_stage
|
var has_stage
|
||||||
|
var is_repeating = false
|
||||||
|
|
||||||
func start_soundtrack():
|
func start_soundtrack():
|
||||||
$Moving.play(70)
|
$Moving.play(70)
|
||||||
$Childhood.play(70)
|
$Childhood.play(70)
|
||||||
$VoiceTraining.play(70)
|
$VoiceTraining.play(70)
|
||||||
|
|
||||||
func play_scene(id: int):
|
func play_scene(id: int, repeat = false):
|
||||||
State.queue_for_stage(self)
|
get_tree().call_group(\"interactables\", \"collapse\")
|
||||||
|
State.pass_stage_to(self)
|
||||||
|
State.lock_focus = true
|
||||||
|
is_repeating = repeat
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_HIDDEN
|
||||||
match id:
|
match id:
|
||||||
Scenes.id.YOUTH_CHILDHOOD:
|
Scenes.id.YOUTH_CHILDHOOD:
|
||||||
play(\"childhood\")
|
play(\"childhood\")
|
||||||
|
|
@ -1532,24 +1569,34 @@ func play_scene(id: int):
|
||||||
play(\"voice training\")
|
play(\"voice training\")
|
||||||
Scenes.id.YOUTH_JUI_JUTSU:
|
Scenes.id.YOUTH_JUI_JUTSU:
|
||||||
play(\"jui_jutsu\")
|
play(\"jui_jutsu\")
|
||||||
|
Scenes.id.YOUTH_DRAEVEN:
|
||||||
|
play(\"draeven\")
|
||||||
|
|
||||||
func _on_ini_room():
|
func _on_ini_room():
|
||||||
play(\"intro\")
|
play(\"intro\")
|
||||||
|
|
||||||
func on_childhood_done():
|
func on_childhood_done():
|
||||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD)
|
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_CHILDHOOD, is_repeating)
|
||||||
|
$childhood.hide()
|
||||||
|
State.lock_focus = is_repeating
|
||||||
|
|
||||||
func on_voice_training_done():
|
func on_voice_training_done():
|
||||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING)
|
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_VOICE_TRAINING, is_repeating)
|
||||||
|
$\"Voice Training\".hide()
|
||||||
|
State.lock_focus = is_repeating
|
||||||
|
|
||||||
func on_jui_jutsu_done():
|
func on_jui_jutsu_done():
|
||||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU)
|
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_JUI_JUTSU, is_repeating)
|
||||||
|
$jui_jutsu.hide()
|
||||||
|
State.lock_focus = is_repeating
|
||||||
|
|
||||||
func on_draeven_done():
|
func on_draeven_done():
|
||||||
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN)
|
get_tree().call_group(\"animation_player\", \"scene_finished\", Scenes.id.YOUTH_DRAEVEN, is_repeating)
|
||||||
|
$draeven.hide()
|
||||||
|
State.lock_focus = is_repeating
|
||||||
|
|
||||||
func scene_finished(_id):
|
func scene_finished(_id):
|
||||||
play(\"RESET\")
|
queue(\"RESET\")
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_2cudi"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_2cudi"]
|
||||||
|
|
@ -1743,6 +1790,15 @@ viewport_path = NodePath("logic/clothes_interaction/UiWrapper/UiSprite/SubViewpo
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_nn6wl"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_nn6wl"]
|
||||||
viewport_path = NodePath("logic/Comic-interaction/UiWrapper/UiSprite/SubViewport")
|
viewport_path = NodePath("logic/Comic-interaction/UiWrapper/UiSprite/SubViewport")
|
||||||
|
|
||||||
|
[sub_resource type="ViewportTexture" id="ViewportTexture_8rywf"]
|
||||||
|
viewport_path = NodePath("logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport")
|
||||||
|
|
||||||
|
[sub_resource type="SphereShape3D" id="SphereShape3D_c7buh"]
|
||||||
|
radius = 0.469631
|
||||||
|
|
||||||
|
[sub_resource type="ViewportTexture" id="ViewportTexture_hdmps"]
|
||||||
|
viewport_path = NodePath("logic/Mind Board/UiWrapper/UiSprite/SubViewport")
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_35dmj"]
|
[sub_resource type="GDScript" id="GDScript_35dmj"]
|
||||||
script/source = "extends SpotLight3D
|
script/source = "extends SpotLight3D
|
||||||
|
|
||||||
|
|
@ -1879,10 +1935,10 @@ script/source = "extends AnimationPlayer
|
||||||
func _on_ini_room():
|
func _on_ini_room():
|
||||||
play(\"light_up\")
|
play(\"light_up\")
|
||||||
|
|
||||||
func play_scene(_id: int):
|
func play_scene(_id: int, _repeat):
|
||||||
queue(\"lights_out\")
|
queue(\"lights_out\")
|
||||||
|
|
||||||
func scene_finished(_id: int):
|
func scene_finished(_id: int, _repeat):
|
||||||
queue(\"light_up\")
|
queue(\"light_up\")
|
||||||
"
|
"
|
||||||
|
|
||||||
|
|
@ -1973,11 +2029,11 @@ func focus_object():
|
||||||
var dof_strength_tween: Tween = create_tween()
|
var dof_strength_tween: Tween = create_tween()
|
||||||
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.4, 1)
|
dof_strength_tween.tween_property(camera_attributes, \"dof_blur_amount\", 0.4, 1)
|
||||||
|
|
||||||
func play_scene(_id: int):
|
func play_scene(_id: int, _repeat):
|
||||||
focus_object()
|
focus_object()
|
||||||
|
|
||||||
func scene_finished(_id: int):
|
func _on_picker_cards_picked(_cards):
|
||||||
pass
|
focus_env()
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id="QuadMesh_n875y"]
|
[sub_resource type="QuadMesh" id="QuadMesh_n875y"]
|
||||||
|
|
@ -2009,13 +2065,6 @@ script = ExtResource("1_aitp0")
|
||||||
|
|
||||||
[node name="logic" type="Node3D" parent="."]
|
[node name="logic" type="Node3D" parent="."]
|
||||||
|
|
||||||
[node name="Area3D" type="Area3D" parent="logic"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.896754, 0.847242, 1.36975)
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="logic/Area3D"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.346071, 0.364297)
|
|
||||||
shape = SubResource("BoxShape3D_0eexn")
|
|
||||||
|
|
||||||
[node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")]
|
[node name="PlayerController" parent="logic" groups=["camera_owner"] instance=ExtResource("3_foj4y")]
|
||||||
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925)
|
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 0.63, 0, 0.925)
|
||||||
|
|
||||||
|
|
@ -2180,6 +2229,20 @@ grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
mouse_filter = 1
|
mouse_filter = 1
|
||||||
|
|
||||||
|
[node name="ending_button" type="Button" parent="logic/UI"]
|
||||||
|
visible = false
|
||||||
|
top_level = true
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 16.0
|
||||||
|
offset_top = 12.0
|
||||||
|
offset_right = 400.0
|
||||||
|
offset_bottom = 100.0
|
||||||
|
shortcut = SubResource("Shortcut_b3maf")
|
||||||
|
text = "You have completed
|
||||||
|
ordering your thoughts.
|
||||||
|
This is as far as the alpha goes.
|
||||||
|
Press x or [ ] to wrap up."
|
||||||
|
|
||||||
[node name="picker" parent="logic/UI" groups=["animation_player"] instance=ExtResource("19_a4n1o")]
|
[node name="picker" parent="logic/UI" groups=["animation_player"] instance=ExtResource("19_a4n1o")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
|
|
@ -2189,6 +2252,12 @@ layout_mode = 1
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
|
|
||||||
|
[node name="ending" parent="logic/UI" instance=ExtResource("5_kts6y")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
mouse_filter = 2
|
||||||
|
script = SubResource("GDScript_uy50s")
|
||||||
|
|
||||||
[node name="ScenePlayer" type="AnimationPlayer" parent="logic" groups=["animation_player"]]
|
[node name="ScenePlayer" type="AnimationPlayer" parent="logic" groups=["animation_player"]]
|
||||||
autoplay = "RESET"
|
autoplay = "RESET"
|
||||||
libraries = {
|
libraries = {
|
||||||
|
|
@ -2201,11 +2270,11 @@ bus = &"text"
|
||||||
|
|
||||||
[node name="Moving" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
[node name="Moving" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||||
stream = ExtResource("8_egnow")
|
stream = ExtResource("8_egnow")
|
||||||
volume_db = -80.0
|
|
||||||
bus = &"music"
|
bus = &"music"
|
||||||
|
|
||||||
[node name="Childhood" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
[node name="Childhood" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||||
stream = ExtResource("9_i8mqk")
|
stream = ExtResource("9_i8mqk")
|
||||||
|
volume_db = -80.0
|
||||||
bus = &"music"
|
bus = &"music"
|
||||||
|
|
||||||
[node name="childhood" type="CenterContainer" parent="logic/ScenePlayer"]
|
[node name="childhood" type="CenterContainer" parent="logic/ScenePlayer"]
|
||||||
|
|
@ -2342,8 +2411,12 @@ texture = ExtResource("3_xqd4w")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
|
[node name="skip_control" parent="logic/ScenePlayer/childhood/PanelContainer" instance=ExtResource("15_7nc4e")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="VoiceTraining" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
[node name="VoiceTraining" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||||
stream = ExtResource("10_wwwdq")
|
stream = ExtResource("10_wwwdq")
|
||||||
|
volume_db = -80.0
|
||||||
bus = &"music"
|
bus = &"music"
|
||||||
|
|
||||||
[node name="Voice Training" type="CenterContainer" parent="logic/ScenePlayer"]
|
[node name="Voice Training" type="CenterContainer" parent="logic/ScenePlayer"]
|
||||||
|
|
@ -2427,13 +2500,14 @@ texture = ExtResource("3_xqd4w")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
|
[node name="skip_control2" parent="logic/ScenePlayer/Voice Training/PanelContainer" instance=ExtResource("15_7nc4e")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Jui_Jutsu" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
[node name="Jui_Jutsu" type="AudioStreamPlayer" parent="logic/ScenePlayer"]
|
||||||
volume_db = -10.0
|
|
||||||
bus = &"music"
|
bus = &"music"
|
||||||
|
|
||||||
[node name="jui_jutsu" type="CenterContainer" parent="logic/ScenePlayer"]
|
[node name="jui_jutsu" type="CenterContainer" parent="logic/ScenePlayer"]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(1, 1, 1, 0)
|
|
||||||
self_modulate = Color(1, 1, 1, 0.923078)
|
self_modulate = Color(1, 1, 1, 0.923078)
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -2485,7 +2559,7 @@ vertical_scroll_mode = 3
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
text = "Why do i still have this junk lying around? It’s not like I want to do ju jutsu ever again. I just fucked it.
|
text = "Why do i still have this junk lying around? It’s 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 golt 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.
|
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 shool thanks to him.
|
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 shool thanks to him.
|
||||||
He also helped me so much with jui jitsu, as he properly floored me when I slipped up. Also - unlike everyone else - he understood that I didn’t want people to mind my chest. So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.
|
He also helped me so much with jui jitsu, as he properly floored me when I slipped up. Also - unlike everyone else - he understood that I didn’t want people to mind my chest. So Fighting for wins with him was actually rewarding even tho more often than not I ended up having to tap out.
|
||||||
|
|
@ -2517,7 +2591,7 @@ That was good. He was a sweet angel. Why must he be so bad at comforting?
|
||||||
autowrap_mode = 3
|
autowrap_mode = 3
|
||||||
visible_characters = 43
|
visible_characters = 43
|
||||||
visible_characters_behavior = 1
|
visible_characters_behavior = 1
|
||||||
visible_ratio = 0.0169225
|
visible_ratio = 0.0169291
|
||||||
|
|
||||||
[node name="StartBottom" type="TextureRect" parent="logic/ScenePlayer/jui_jutsu/PanelContainer/VBoxContainer"]
|
[node name="StartBottom" type="TextureRect" parent="logic/ScenePlayer/jui_jutsu/PanelContainer/VBoxContainer"]
|
||||||
custom_minimum_size = Vector2(0, 64)
|
custom_minimum_size = Vector2(0, 64)
|
||||||
|
|
@ -2561,6 +2635,9 @@ visible = false
|
||||||
scale = Vector2(0.4, 0.4)
|
scale = Vector2(0.4, 0.4)
|
||||||
texture = ExtResource("12_xnele")
|
texture = ExtResource("12_xnele")
|
||||||
|
|
||||||
|
[node name="skip_control3" parent="logic/ScenePlayer/jui_jutsu/PanelContainer" instance=ExtResource("15_7nc4e")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="draeven" type="CenterContainer" parent="logic/ScenePlayer"]
|
[node name="draeven" type="CenterContainer" parent="logic/ScenePlayer"]
|
||||||
visible = false
|
visible = false
|
||||||
modulate = Color(1, 1, 1, 0)
|
modulate = Color(1, 1, 1, 0)
|
||||||
|
|
@ -2634,6 +2711,9 @@ texture = ExtResource("3_xqd4w")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
|
[node name="skip_control4" parent="logic/ScenePlayer/draeven/PanelContainer" instance=ExtResource("15_7nc4e")]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="starlight_mesh" type="MeshInstance3D" parent="logic/ScenePlayer/draeven"]
|
[node name="starlight_mesh" type="MeshInstance3D" parent="logic/ScenePlayer/draeven"]
|
||||||
transform = Transform3D(0.999, 0, 0, 0, 0.999, 0, 0, 0, 0.999, 0, 0, 0)
|
transform = Transform3D(0.999, 0, 0, 0, 0.999, 0, 0, 0, 0.999, 0, 0, 0)
|
||||||
layers = 2
|
layers = 2
|
||||||
|
|
@ -2802,7 +2882,7 @@ render_target_update_mode = 4
|
||||||
visible = false
|
visible = false
|
||||||
scene = 1
|
scene = 1
|
||||||
is_story = true
|
is_story = true
|
||||||
item_name = "my secret comic stash"
|
item_name = "comic stash"
|
||||||
content_notes = "internalised mysoginy, genitals, bullying, fictional guns"
|
content_notes = "internalised mysoginy, genitals, bullying, fictional guns"
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Comic-interaction"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Comic-interaction"]
|
||||||
|
|
@ -2810,7 +2890,7 @@ transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.23
|
||||||
shape = SubResource("CapsuleShape3D_72g2i")
|
shape = SubResource("CapsuleShape3D_72g2i")
|
||||||
|
|
||||||
[node name="Draeven-interaction" type="Area3D" parent="logic" groups=["interactables"]]
|
[node name="Draeven-interaction" type="Area3D" parent="logic" groups=["interactables"]]
|
||||||
transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 3.5364, 0.447547, -0.697444)
|
transform = Transform3D(0.86043, 0, -0.509567, 0, 1, 0, 0.509567, 0, 0.86043, 0.122875, 2.03863, -0.132712)
|
||||||
collision_layer = 16
|
collision_layer = 16
|
||||||
script = ExtResource("11_6fwv8")
|
script = ExtResource("11_6fwv8")
|
||||||
|
|
||||||
|
|
@ -2830,7 +2910,7 @@ shape = SubResource("BoxShape3D_cb3g8")
|
||||||
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
|
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
|
||||||
pixel_size = 0.015
|
pixel_size = 0.015
|
||||||
no_depth_test = true
|
no_depth_test = true
|
||||||
texture = SubResource("ViewportTexture_nn6wl")
|
texture = SubResource("ViewportTexture_8rywf")
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="logic/Draeven-interaction/UiWrapper/UiSprite"]
|
[node name="SubViewport" type="SubViewport" parent="logic/Draeven-interaction/UiWrapper/UiSprite"]
|
||||||
transparent_bg = true
|
transparent_bg = true
|
||||||
|
|
@ -2839,10 +2919,50 @@ render_target_update_mode = 4
|
||||||
|
|
||||||
[node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
|
[node name="Collectable_ui" parent="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
|
||||||
visible = false
|
visible = false
|
||||||
item_name = "Mind Board"
|
scene = 3
|
||||||
|
is_story = true
|
||||||
|
item_name = "Starlight"
|
||||||
|
content_notes = "Alienation"
|
||||||
|
|
||||||
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Draeven-interaction"]
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Draeven-interaction"]
|
||||||
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -2.98023e-08, 0, 1, 0, -0.237872, 0)
|
||||||
|
shape = SubResource("SphereShape3D_c7buh")
|
||||||
|
|
||||||
|
[node name="Mind Board" type="Area3D" parent="logic" groups=["interactables"]]
|
||||||
|
transform = Transform3D(-4.37114e-08, 0, 0.999999, 0, 1, 0, -0.999999, 0, -4.37114e-08, -0.907206, 1.17661, 1.74337)
|
||||||
|
collision_layer = 16
|
||||||
|
script = ExtResource("11_6fwv8")
|
||||||
|
|
||||||
|
[node name="collectable_particles" parent="logic/Mind Board" instance=ExtResource("12_qxx2k")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00898492, -0.14171, 0.152755)
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="UiWrapper" type="Area3D" parent="logic/Mind Board"]
|
||||||
|
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||||
|
script = ExtResource("11_7uxd8")
|
||||||
|
billboard = false
|
||||||
|
|
||||||
|
[node name="UI_click_collider" type="CollisionShape3D" parent="logic/Mind Board/UiWrapper"]
|
||||||
|
transform = Transform3D(2.56, -5.96046e-08, 4.76837e-07, 1.78814e-07, 2.56, -4.17233e-07, -2.38419e-07, -5.96046e-08, 2.56, 0, 1.90735e-06, 0.238397)
|
||||||
|
shape = SubResource("BoxShape3D_cb3g8")
|
||||||
|
|
||||||
|
[node name="UiSprite" type="Sprite3D" parent="logic/Mind Board/UiWrapper"]
|
||||||
|
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
|
||||||
|
pixel_size = 0.015
|
||||||
|
no_depth_test = true
|
||||||
|
texture = SubResource("ViewportTexture_hdmps")
|
||||||
|
|
||||||
|
[node name="SubViewport" type="SubViewport" parent="logic/Mind Board/UiWrapper/UiSprite"]
|
||||||
|
transparent_bg = true
|
||||||
|
size = Vector2i(300, 350)
|
||||||
|
render_target_update_mode = 4
|
||||||
|
|
||||||
|
[node name="Collectable_ui" parent="logic/Mind Board/UiWrapper/UiSprite/SubViewport" instance=ExtResource("11_jxai0")]
|
||||||
|
visible = false
|
||||||
|
item_name = "Mind Board"
|
||||||
|
|
||||||
|
[node name="HoverDetect" type="CollisionShape3D" parent="logic/Mind Board"]
|
||||||
|
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||||
shape = SubResource("CapsuleShape3D_72g2i")
|
shape = SubResource("CapsuleShape3D_72g2i")
|
||||||
|
|
||||||
[node name="sfx" type="Node3D" parent="."]
|
[node name="sfx" type="Node3D" parent="."]
|
||||||
|
|
@ -2852,7 +2972,6 @@ transform = Transform3D(-0.410985, -0.460061, 0.787042, -0.904759, 0.311726, -0.
|
||||||
stream = ExtResource("2_3haaq")
|
stream = ExtResource("2_3haaq")
|
||||||
attenuation_model = 1
|
attenuation_model = 1
|
||||||
volume_db = -15.367
|
volume_db = -15.367
|
||||||
autoplay = true
|
|
||||||
panning_strength = 0.5
|
panning_strength = 0.5
|
||||||
bus = &"sfx"
|
bus = &"sfx"
|
||||||
emission_angle_enabled = true
|
emission_angle_enabled = true
|
||||||
|
|
@ -2868,7 +2987,6 @@ bus = &"sfx"
|
||||||
stream = ExtResource("22_xrkbj")
|
stream = ExtResource("22_xrkbj")
|
||||||
attenuation_model = 3
|
attenuation_model = 3
|
||||||
pitch_scale = 0.8
|
pitch_scale = 0.8
|
||||||
autoplay = true
|
|
||||||
panning_strength = 0.2
|
panning_strength = 0.2
|
||||||
bus = &"outside-rain"
|
bus = &"outside-rain"
|
||||||
|
|
||||||
|
|
@ -3059,14 +3177,15 @@ surface_material_override/0 = SubResource("StandardMaterial3D_5u6i4")
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.57896, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.57896, 0)
|
||||||
material_override = SubResource("StandardMaterial3D_qifbj")
|
material_override = SubResource("StandardMaterial3D_qifbj")
|
||||||
amount = 1000
|
amount = 1000
|
||||||
visibility_aabb = AABB(-2.68266, -0.69998, -0.431825, 5.36533, 1.39996, 0.86365)
|
visibility_aabb = AABB(-2.68266, -2.50574, -0.431825, 5.36533, 5.01148, 0.86365)
|
||||||
process_material = SubResource("ParticleProcessMaterial_g3ayx")
|
process_material = SubResource("ParticleProcessMaterial_g3ayx")
|
||||||
draw_pass_1 = SubResource("QuadMesh_rb6dt")
|
draw_pass_1 = SubResource("QuadMesh_rb6dt")
|
||||||
|
|
||||||
|
[node name="VoxelGI" type="VoxelGI" parent="."]
|
||||||
|
|
||||||
[connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"]
|
[connection signal="ini_room" from="." to="logic/PlayerController" method="_on_ini_room"]
|
||||||
[connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"]
|
[connection signal="ini_room" from="." to="logic/ScenePlayer" method="_on_ini_room"]
|
||||||
[connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"]
|
[connection signal="ini_room" from="." to="visuals/lights/light_animation" method="_on_ini_room"]
|
||||||
[connection signal="mouse_entered" from="logic/Area3D" to="." method="_on_area_3d_mouse_entered"]
|
|
||||||
[connection signal="ui_entered" from="logic/PlayerController" to="SceneUI" method="show"]
|
[connection signal="ui_entered" from="logic/PlayerController" to="SceneUI" method="show"]
|
||||||
[connection signal="ui_exited" from="logic/PlayerController" to="SceneUI" method="hide"]
|
[connection signal="ui_exited" from="logic/PlayerController" to="SceneUI" method="hide"]
|
||||||
[connection signal="body_entered" from="logic/Bed and Ladders/ladder_trigger" to="logic/PlayerController" method="_on_bed_enter"]
|
[connection signal="body_entered" from="logic/Bed and Ladders/ladder_trigger" to="logic/PlayerController" method="_on_bed_enter"]
|
||||||
|
|
@ -3076,11 +3195,29 @@ draw_pass_1 = SubResource("QuadMesh_rb6dt")
|
||||||
[connection signal="body_entered" from="logic/Bed and Ladders/bed_enter" to="logic/PlayerController" method="_on_bed_enter"]
|
[connection signal="body_entered" from="logic/Bed and Ladders/bed_enter" to="logic/PlayerController" method="_on_bed_enter"]
|
||||||
[connection signal="body_exited" from="logic/Bed and Ladders/bed_reset" to="logic/PlayerController" method="_on_bed_exit"]
|
[connection signal="body_exited" from="logic/Bed and Ladders/bed_reset" to="logic/PlayerController" method="_on_bed_exit"]
|
||||||
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
[connection signal="body_exited" from="logic/Bed and Ladders/reset_failover" to="logic/PlayerController" method="_on_bed_exit"]
|
||||||
|
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending_button" method="hide"]
|
||||||
|
[connection signal="pressed" from="logic/UI/ending_button" to="logic/UI/ending" method="show"]
|
||||||
[connection signal="cards_picked" from="logic/UI/picker" to="logic/UI/board" method="populate_board"]
|
[connection signal="cards_picked" from="logic/UI/picker" to="logic/UI/board" method="populate_board"]
|
||||||
|
[connection signal="cards_picked" from="logic/UI/picker" to="WorldEnvironment" method="_on_picker_cards_picked"]
|
||||||
|
[connection signal="board_completed" from="logic/UI/board" to="logic/UI/ending_button" method="show"]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/childhood/PanelContainer/skip_control" to="logic/ScenePlayer" method="on_childhood_done"]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/childhood/PanelContainer/skip_control" to="logic/ScenePlayer" method="play" binds= ["RESET"]]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/Voice Training/PanelContainer/skip_control2" to="logic/ScenePlayer" method="on_voice_training_done"]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/Voice Training/PanelContainer/skip_control2" to="logic/ScenePlayer" method="play" binds= ["RESET"]]
|
||||||
[connection signal="input_event" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_input_event" flags=18]
|
[connection signal="input_event" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_input_event" flags=18]
|
||||||
[connection signal="mouse_entered" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_entered" flags=18]
|
[connection signal="mouse_entered" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_entered" flags=18]
|
||||||
[connection signal="mouse_exited" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_exited" flags=18]
|
[connection signal="mouse_exited" from="logic/ScenePlayer/jui_jutsu/PanelContainer/card" to="logic/ScenePlayer/jui_jutsu/PanelContainer/card" method="_on_mouse_exited" flags=18]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/jui_jutsu/PanelContainer/skip_control3" to="logic/ScenePlayer" method="on_jui_jutsu_done"]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/jui_jutsu/PanelContainer/skip_control3" to="logic/ScenePlayer" method="play" binds= ["RESET"]]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/draeven/PanelContainer/skip_control4" to="logic/ScenePlayer" method="on_draeven_done"]
|
||||||
|
[connection signal="skip" from="logic/ScenePlayer/draeven/PanelContainer/skip_control4" to="logic/ScenePlayer" method="play" binds= ["RESET"]]
|
||||||
[connection signal="input_event" from="logic/Mask-interaction/UiWrapper" to="logic/Mask-interaction/UiWrapper" method="_on_input_event" flags=18]
|
[connection signal="input_event" from="logic/Mask-interaction/UiWrapper" to="logic/Mask-interaction/UiWrapper" method="_on_input_event" flags=18]
|
||||||
|
[connection signal="scene_skipped" from="logic/Mask-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"]
|
||||||
[connection signal="input_event" from="logic/clothes_interaction/UiWrapper" to="logic/clothes_interaction/UiWrapper" method="_on_input_event" flags=18]
|
[connection signal="input_event" from="logic/clothes_interaction/UiWrapper" to="logic/clothes_interaction/UiWrapper" method="_on_input_event" flags=18]
|
||||||
|
[connection signal="scene_skipped" from="logic/clothes_interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"]
|
||||||
[connection signal="input_event" from="logic/Comic-interaction/UiWrapper" to="logic/Comic-interaction/UiWrapper" method="_on_input_event" flags=18]
|
[connection signal="input_event" from="logic/Comic-interaction/UiWrapper" to="logic/Comic-interaction/UiWrapper" method="_on_input_event" flags=18]
|
||||||
|
[connection signal="scene_skipped" from="logic/Comic-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"]
|
||||||
[connection signal="input_event" from="logic/Draeven-interaction/UiWrapper" to="logic/Draeven-interaction/UiWrapper" method="_on_input_event" flags=18]
|
[connection signal="input_event" from="logic/Draeven-interaction/UiWrapper" to="logic/Draeven-interaction/UiWrapper" method="_on_input_event" flags=18]
|
||||||
|
[connection signal="scene_skipped" from="logic/Draeven-interaction/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="on_scene_skipped"]
|
||||||
|
[connection signal="input_event" from="logic/Mind Board/UiWrapper" to="logic/Mind Board/UiWrapper" method="_on_input_event" flags=18]
|
||||||
|
[connection signal="open_board" from="logic/Mind Board/UiWrapper/UiSprite/SubViewport/Collectable_ui" to="logic/UI/board" method="claim_focus"]
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://bvowj4l8dtceu"]
|
[gd_scene load_steps=4 format=3 uid="uid://bvowj4l8dtceu"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://dev-util/devs_board.gd" id="1_ols6o"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="1_xrckx"]
|
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="1_xrckx"]
|
||||||
[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="2_ucudl"]
|
[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="2_ucudl"]
|
||||||
|
|
||||||
|
|
@ -10,6 +11,7 @@ anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_ols6o")
|
||||||
|
|
||||||
[node name="childhood" type="Control" parent="."]
|
[node name="childhood" type="Control" parent="."]
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
|
|
@ -21,11 +23,11 @@ offset_bottom = 181.0
|
||||||
[node name="c_homework" parent="childhood" instance=ExtResource("1_xrckx")]
|
[node name="c_homework" parent="childhood" instance=ExtResource("1_xrckx")]
|
||||||
text = "I never put in much effort for homework "
|
text = "I never put in much effort for homework "
|
||||||
|
|
||||||
[node name="p_good_grades" parent="childhood/c_homework" groups=["c_body", "c_boy_stuff", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_good_grades" parent="childhood/c_homework" groups=["c_body", "c_boy_stuff", "c_homework", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "but at least I get good grades."
|
text = "but at least I get good grades."
|
||||||
|
|
||||||
[node name="p_upset_peers" parent="childhood/c_homework" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_upset_peers" parent="childhood/c_homework" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "my peers were upset about that."
|
text = "my peers were upset about that."
|
||||||
|
|
||||||
|
|
@ -33,23 +35,23 @@ text = "my peers were upset about that."
|
||||||
position = Vector2(0, 300)
|
position = Vector2(0, 300)
|
||||||
text = "I like my teachers more than my classmates "
|
text = "I like my teachers more than my classmates "
|
||||||
|
|
||||||
[node name="p_volunteering" parent="childhood/c_teachers" groups=["c_Joy", "c_backlash", "c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
[node name="p_volunteering" parent="childhood/c_teachers" groups=["c_boy_stuff", "c_comic_heroes", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "doing voluntary social service at my school would be great."
|
text = "doing voluntary social service at my school would be great."
|
||||||
|
|
||||||
[node name="p_becoming_teacher" parent="childhood/c_teachers" groups=["c_Joy", "c_backlash", "c_homework"] instance=ExtResource("2_ucudl")]
|
[node name="p_becoming_teacher" parent="childhood/c_teachers" groups=["c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "maybe I want to become a teacher."
|
text = "maybe I want to become a teacher."
|
||||||
|
|
||||||
[node name="c_Joy" parent="childhood" instance=ExtResource("1_xrckx")]
|
[node name="c_joy" parent="childhood" instance=ExtResource("1_xrckx")]
|
||||||
position = Vector2(0, 600)
|
position = Vector2(0, 600)
|
||||||
text = "I can put ages into things I enjoy "
|
text = "I can put ages into things I enjoy "
|
||||||
|
|
||||||
[node name="p_worried_mother" parent="childhood/c_Joy" groups=["c_Joy", "c_body", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_worried_mother" parent="childhood/c_joy" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "my mother would be worried about that"
|
text = "my mother would be worried about that"
|
||||||
|
|
||||||
[node name="p_thomas" parent="childhood/c_Joy" groups=["c_Joy", "c_backlash", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_thomas" parent="childhood/c_joy" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "Mr Thomas thinks that makes me gifted."
|
text = "Mr Thomas thinks that makes me gifted."
|
||||||
|
|
||||||
|
|
@ -63,11 +65,11 @@ offset_bottom = 141.0
|
||||||
[node name="c_comic_heroes" parent="voice_training" instance=ExtResource("1_xrckx")]
|
[node name="c_comic_heroes" parent="voice_training" instance=ExtResource("1_xrckx")]
|
||||||
text = "Comic heroes are my role models "
|
text = "Comic heroes are my role models "
|
||||||
|
|
||||||
[node name="p_effort" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_hit", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_effort" parent="voice_training/c_comic_heroes" groups=["c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "when I put in the effort, I can make the world a better place"
|
text = "when I put in the effort, I can make the world a better place"
|
||||||
|
|
||||||
[node name="p_agent_q" parent="voice_training/c_comic_heroes" groups=["c_Joy", "c_body", "c_boy_stuff", "c_hit"] instance=ExtResource("2_ucudl")]
|
[node name="p_agent_q" parent="voice_training/c_comic_heroes" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "and I want to be like agent q!"
|
text = "and I want to be like agent q!"
|
||||||
|
|
||||||
|
|
@ -75,25 +77,25 @@ text = "and I want to be like agent q!"
|
||||||
position = Vector2(0, 300)
|
position = Vector2(0, 300)
|
||||||
text = "I like boy stuff "
|
text = "I like boy stuff "
|
||||||
|
|
||||||
[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_hit", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_pretending" parent="voice_training/c_boy_stuff" groups=["c_body", "c_boy_stuff", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "yet they think I'm just pretending"
|
text = "yet they think I'm just pretending"
|
||||||
|
|
||||||
[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_Joy", "c_body", "c_comic_heroes", "c_hit", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_girls" parent="voice_training/c_boy_stuff" groups=["c_body", "c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "and girls don't get that."
|
text = "and girls don't get that."
|
||||||
|
|
||||||
[node name="c_backlash" parent="voice_training" instance=ExtResource("1_xrckx")]
|
[node name="c_teasing" parent="voice_training" instance=ExtResource("1_xrckx")]
|
||||||
position = Vector2(0, 600)
|
position = Vector2(0, 600)
|
||||||
text = "Despite the backlash, I protected my friend"
|
text = "When Jojo got teased for trying, I pretty much exploded"
|
||||||
|
|
||||||
[node name="p_cross_friend" parent="voice_training/c_backlash" groups=["c_Joy", "c_boy_stuff", "c_comic_heroes", "c_hit"] instance=ExtResource("2_ucudl")]
|
[node name="p_stubborn" parent="voice_training/c_teasing" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "I wouldn't never not do that, even if it was for my own good"
|
text = "I wouldn't have it any other way, even if it was for my own good"
|
||||||
|
|
||||||
[node name="p_reward" parent="voice_training/c_backlash" groups=["c_Joy"] instance=ExtResource("2_ucudl")]
|
[node name="p_good_intended" parent="voice_training/c_teasing" groups=["c_comic_heroes", "c_hit", "c_out-of-world", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "those who put in the effort should be rewarded."
|
text = "I will always stand up for the good intended"
|
||||||
|
|
||||||
[node name="juijutsu" type="Control" parent="."]
|
[node name="juijutsu" type="Control" parent="."]
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
|
|
@ -102,39 +104,39 @@ offset_top = 141.0
|
||||||
offset_right = 884.0
|
offset_right = 884.0
|
||||||
offset_bottom = 141.0
|
offset_bottom = 141.0
|
||||||
|
|
||||||
[node name="c_body" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
[node name="c_fighting" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
text = "my body makes me uncomfortable "
|
text = "I stopped doing Jui Jitsu."
|
||||||
|
|
||||||
[node name="p_boobs" parent="juijutsu/c_body" groups=["c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
[node name="p_body" parent="juijutsu/c_fighting" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_out-of-world"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "boobs are just not made for fighting."
|
text = "My body just didn't feel right"
|
||||||
|
|
||||||
[node name="p_fat" parent="juijutsu/c_body" instance=ExtResource("2_ucudl")]
|
[node name="p_girly" parent="juijutsu/c_fighting" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "I despise all the fat on my hips."
|
text = "I just hate being treated like a girl"
|
||||||
|
|
||||||
[node name="c_hit" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
|
||||||
position = Vector2(0, 300)
|
|
||||||
text = "I know how to properly hit people "
|
|
||||||
|
|
||||||
[node name="p_confidence" parent="juijutsu/c_hit" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")]
|
|
||||||
position = Vector2(-32, 50)
|
|
||||||
text = "..., that gives me a lot of confidence."
|
|
||||||
|
|
||||||
[node name="p_vent" parent="juijutsu/c_hit" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
|
||||||
position = Vector2(-32, 140)
|
|
||||||
text = "and that’s a great vent."
|
|
||||||
|
|
||||||
[node name="c_void" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
[node name="c_void" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
position = Vector2(0, 600)
|
position = Vector2(0, 600)
|
||||||
|
|
||||||
[node name="p_wet" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
[node name="p_wet" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "… I was wet, so I must have been into it."
|
text = "I was wet, so I must have been into it."
|
||||||
|
|
||||||
[node name="p_stop" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
[node name="p_stop" parent="juijutsu/c_void" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "… I didn’t say stop."
|
text = "I didn’t say stop."
|
||||||
|
|
||||||
|
[node name="c_hit" parent="juijutsu" instance=ExtResource("1_xrckx")]
|
||||||
|
position = Vector2(0, 300)
|
||||||
|
text = "I know how to properly hit people "
|
||||||
|
|
||||||
|
[node name="p_confidence" parent="juijutsu/c_hit" groups=["c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
|
position = Vector2(-32, 50)
|
||||||
|
text = "..., that gives me a lot of confidence."
|
||||||
|
|
||||||
|
[node name="p_vent" parent="juijutsu/c_hit" groups=["c_boy_stuff", "c_comic_heroes", "c_hit", "c_homework", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
|
position = Vector2(-32, 140)
|
||||||
|
text = "and that’s a great vent."
|
||||||
|
|
||||||
[node name="draeven" type="Control" parent="."]
|
[node name="draeven" type="Control" parent="."]
|
||||||
anchors_preset = 0
|
anchors_preset = 0
|
||||||
|
|
@ -146,11 +148,11 @@ offset_bottom = 181.0
|
||||||
[node name="c_out-of-world" parent="draeven" instance=ExtResource("1_xrckx")]
|
[node name="c_out-of-world" parent="draeven" instance=ExtResource("1_xrckx")]
|
||||||
text = "I feel like I am not from of this world"
|
text = "I feel like I am not from of this world"
|
||||||
|
|
||||||
[node name="p_random11" parent="draeven/c_out-of-world" groups=["c_boy_stuff"] instance=ExtResource("2_ucudl")]
|
[node name="p_unique" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_confusion", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "I like being unique like that"
|
text = "I like being unique like that"
|
||||||
|
|
||||||
[node name="p_random12" parent="draeven/c_out-of-world" instance=ExtResource("2_ucudl")]
|
[node name="p_few_friends" parent="draeven/c_out-of-world" groups=["c_comic_heroes", "c_fighting", "c_joy", "c_out-of-world", "c_rejection", "c_teachers", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "I am thankful for the few friends that get me"
|
text = "I am thankful for the few friends that get me"
|
||||||
|
|
||||||
|
|
@ -158,11 +160,11 @@ text = "I am thankful for the few friends that get me"
|
||||||
position = Vector2(0, 300)
|
position = Vector2(0, 300)
|
||||||
text = "I fear being rejected"
|
text = "I fear being rejected"
|
||||||
|
|
||||||
[node name="p_friends" parent="draeven/c_rejection" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")]
|
[node name="p_friends" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_fighting", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "that makes it hard to find friends"
|
text = "that makes it hard to find friends"
|
||||||
|
|
||||||
[node name="p_laughed" parent="draeven/c_rejection" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_laughed" parent="draeven/c_rejection" groups=["c_boy_stuff", "c_comic_heroes", "c_confusion", "c_homework", "c_joy", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "I'm afraid I will just get laughed at"
|
text = "I'm afraid I will just get laughed at"
|
||||||
|
|
||||||
|
|
@ -170,11 +172,11 @@ text = "I'm afraid I will just get laughed at"
|
||||||
position = Vector2(0, 600)
|
position = Vector2(0, 600)
|
||||||
text = "I am just too many things at once"
|
text = "I am just too many things at once"
|
||||||
|
|
||||||
[node name="p_random21" parent="draeven/c_confusion" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
[node name="p_inner_conflict" parent="draeven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_homework", "c_rejection", "c_teasing"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "it is just so overwhealming for me"
|
text = "it is just so overwhealming for me"
|
||||||
|
|
||||||
[node name="p_random22" parent="draeven/c_confusion" groups=["c_void"] instance=ExtResource("2_ucudl")]
|
[node name="p_outer_conflict" parent="draeven/c_confusion" groups=["c_boy_stuff", "c_confusion", "c_fighting", "c_hit", "c_homework", "c_joy", "c_out-of-world", "c_rejection", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "this is just too much for others"
|
text = "this is just too much for others"
|
||||||
|
|
||||||
|
|
@ -198,11 +200,11 @@ text = "random 1"
|
||||||
[node name="c_pick" parent="test2" instance=ExtResource("1_xrckx")]
|
[node name="c_pick" parent="test2" instance=ExtResource("1_xrckx")]
|
||||||
position = Vector2(0, 300)
|
position = Vector2(0, 300)
|
||||||
|
|
||||||
[node name="p_pick" parent="test2/c_pick" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework"] instance=ExtResource("2_ucudl")]
|
[node name="p_pick" parent="test2/c_pick" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 50)
|
position = Vector2(-32, 50)
|
||||||
text = "pick me 2"
|
text = "pick me 2"
|
||||||
|
|
||||||
[node name="p_goof" parent="test2/c_pick" groups=["c_Joy", "c_backlash", "c_boy_stuff", "c_comic_heroes", "c_homework", "c_teachers"] instance=ExtResource("2_ucudl")]
|
[node name="p_goof" parent="test2/c_pick" groups=["c_boy_stuff", "c_comic_heroes", "c_homework", "c_joy", "c_teachers"] instance=ExtResource("2_ucudl")]
|
||||||
position = Vector2(-32, 140)
|
position = Vector2(-32, 140)
|
||||||
text = "you done goofed"
|
text = "you done goofed"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,17 @@
|
||||||
extends Area3D
|
extends Area3D
|
||||||
|
|
||||||
|
@export var billboard = true
|
||||||
@onready var sprite: Sprite3D = $UiSprite
|
@onready var sprite: Sprite3D = $UiSprite
|
||||||
@onready var viewport: SubViewport = $UiSprite/SubViewport
|
@onready var viewport: SubViewport = $UiSprite/SubViewport
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
var camera = get_viewport().get_camera_3d()
|
if billboard:
|
||||||
|
var camera = get_viewport().get_camera_3d()
|
||||||
|
|
||||||
var up = (camera.global_position - global_position)
|
var up = (camera.global_position - global_position)
|
||||||
up = up.cross(Vector3.UP).cross(up)
|
up = up.cross(Vector3.UP).cross(up)
|
||||||
|
|
||||||
look_at(global_position - (camera.global_position - global_position), up)
|
look_at(global_position - (camera.global_position - global_position), up)
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _unhandled_input(event):
|
||||||
viewport.push_input(event)
|
viewport.push_input(event)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
func get_cards_by_scene_id(id: int) -> Array:
|
||||||
|
var output:Array
|
||||||
|
|
||||||
|
var scene = get_child(id)
|
||||||
|
|
||||||
|
for i in range(scene.get_child_count()):
|
||||||
|
output.append(scene.get_child(i))
|
||||||
|
for post in output[i].get_children():
|
||||||
|
if post is PostIt:
|
||||||
|
output[i].remove_child(post)
|
||||||
|
|
||||||
|
for card in output:
|
||||||
|
card.transform = Transform3D()
|
||||||
|
for postIt in card.own_postits:
|
||||||
|
postIt.transform = Transform3D()
|
||||||
|
|
||||||
|
return output
|
||||||
|
|
||||||
|
func get_cards_by_name_array(names: Array) -> Dictionary:
|
||||||
|
var output:Dictionary = {
|
||||||
|
"cards": [],
|
||||||
|
"postIts": []
|
||||||
|
}
|
||||||
|
|
||||||
|
for scene in get_children():
|
||||||
|
for card in scene.get_children():
|
||||||
|
for postIt in card.get_children():
|
||||||
|
if names.has(postIt.name):
|
||||||
|
postIt.transform = Transform3D()
|
||||||
|
output['postIts'].append(postIt)
|
||||||
|
|
||||||
|
if names.has(card.name):
|
||||||
|
card.transform = Transform3D()
|
||||||
|
output['cards'].append(card)
|
||||||
|
for child in card.get_children():
|
||||||
|
if child is PostIt:
|
||||||
|
card.remove_child(child)
|
||||||
|
return output
|
||||||
|
|
@ -83,10 +83,13 @@ text = "Welcome to the frame of mind alpha"
|
||||||
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
text = "Thank you for participating in our public alpha. The goal is to see if the premise of our game works, if the mechanics are interesting and, if the game makes sense.
|
text = "Thank you for participating in our public alpha. The goal is to see if the core of
|
||||||
|
our game works, if the mechanics are interesting and, if the game makes sense.
|
||||||
|
|
||||||
We would like to inform you: especially the acessibility settings right now are not functional. This will be our main focus while we wait for the first batch of alpha feedback.
|
Right now and acessibility settings are spotty.
|
||||||
There are also no save-games yet.
|
They will be worked on while the alpha is running.
|
||||||
|
You will also not be able to help Lisa find a better frame of mind, as the second chapter is not yet implemented. Please know that many disruptive thoughts Lisa has in the first chapter were designed to be resolved later in the game.
|
||||||
|
The game also does not support save games yet.
|
||||||
|
|
||||||
Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License.
|
Frame of Mind uses a Creative Commons Non Commercial Share Alike 4.0 license. You can use the game and it's assets freely, as long as you also contribute back to the creative Commons Community. Feel free to reach out if you need a commercial License.
|
||||||
Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project."
|
Twokinds is created by Thomas J. Fischbach, who granted us permission to use it in a Creative Commons Project."
|
||||||
|
|
@ -98,7 +101,7 @@ layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
theme_override_fonts/font = ExtResource("2_rmsdo")
|
theme_override_fonts/font = ExtResource("2_rmsdo")
|
||||||
theme_override_font_sizes/font_size = 50
|
theme_override_font_sizes/font_size = 50
|
||||||
text = "Start the alpha!"
|
text = "I understand, please start the alpha"
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
||||||
|
|
@ -8,18 +8,17 @@ custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="../build/linux/frame-of-mind.x86_64"
|
export_path="../../export-testing/frame-of-mind.x86_64"
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
encrypt_pck=false
|
encrypt_pck=false
|
||||||
encrypt_directory=false
|
encrypt_directory=false
|
||||||
script_encryption_key=""
|
|
||||||
|
|
||||||
[preset.0.options]
|
[preset.0.options]
|
||||||
|
|
||||||
custom_template/debug=""
|
custom_template/debug=""
|
||||||
custom_template/release=""
|
custom_template/release=""
|
||||||
debug/export_console_script=1
|
debug/export_console_wrapper=1
|
||||||
binary_format/embed_pck=false
|
binary_format/embed_pck=false
|
||||||
texture_format/bptc=true
|
texture_format/bptc=true
|
||||||
texture_format/s3tc=true
|
texture_format/s3tc=true
|
||||||
|
|
@ -38,3 +37,65 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||||
rm -rf \"{temp_dir}\""
|
rm -rf \"{temp_dir}\""
|
||||||
|
|
||||||
|
[preset.1]
|
||||||
|
|
||||||
|
name="Windows Desktop"
|
||||||
|
platform="Windows Desktop"
|
||||||
|
runnable=true
|
||||||
|
dedicated_server=false
|
||||||
|
custom_features=""
|
||||||
|
export_filter="all_resources"
|
||||||
|
include_filter=""
|
||||||
|
exclude_filter=""
|
||||||
|
export_path="../../export-testing/frame-of-mind.exe"
|
||||||
|
encryption_include_filters=""
|
||||||
|
encryption_exclude_filters=""
|
||||||
|
encrypt_pck=false
|
||||||
|
encrypt_directory=false
|
||||||
|
|
||||||
|
[preset.1.options]
|
||||||
|
|
||||||
|
custom_template/debug=""
|
||||||
|
custom_template/release=""
|
||||||
|
debug/export_console_wrapper=1
|
||||||
|
binary_format/embed_pck=false
|
||||||
|
texture_format/bptc=true
|
||||||
|
texture_format/s3tc=true
|
||||||
|
texture_format/etc=false
|
||||||
|
texture_format/etc2=false
|
||||||
|
binary_format/architecture="x86_64"
|
||||||
|
codesign/enable=false
|
||||||
|
codesign/timestamp=true
|
||||||
|
codesign/timestamp_server_url=""
|
||||||
|
codesign/digest_algorithm=1
|
||||||
|
codesign/description=""
|
||||||
|
codesign/custom_options=PackedStringArray()
|
||||||
|
application/modify_resources=true
|
||||||
|
application/icon=""
|
||||||
|
application/console_wrapper_icon=""
|
||||||
|
application/icon_interpolation=4
|
||||||
|
application/file_version=""
|
||||||
|
application/product_version=""
|
||||||
|
application/company_name=""
|
||||||
|
application/product_name=""
|
||||||
|
application/file_description=""
|
||||||
|
application/copyright=""
|
||||||
|
application/trademarks=""
|
||||||
|
ssh_remote_deploy/enabled=false
|
||||||
|
ssh_remote_deploy/host="user@host_ip"
|
||||||
|
ssh_remote_deploy/port="22"
|
||||||
|
ssh_remote_deploy/extra_args_ssh=""
|
||||||
|
ssh_remote_deploy/extra_args_scp=""
|
||||||
|
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||||
|
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||||
|
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||||
|
$settings = New-ScheduledTaskSettingsSet
|
||||||
|
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||||
|
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||||
|
Start-ScheduledTask -TaskName godot_remote_debug
|
||||||
|
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||||
|
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||||
|
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||||
|
Remove-Item -Recurse -Force '{temp_dir}'"
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ var has_stage = false:
|
||||||
if focus:
|
if focus:
|
||||||
has_stage = true
|
has_stage = true
|
||||||
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||||
|
get_tree().call_group("interactables", "collapse")
|
||||||
else:
|
else:
|
||||||
has_stage = false
|
has_stage = false
|
||||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
|
|
@ -22,11 +23,14 @@ var has_stage = false:
|
||||||
child.process_mode = Node.PROCESS_MODE_INHERIT
|
child.process_mode = Node.PROCESS_MODE_INHERIT
|
||||||
else:
|
else:
|
||||||
child.process_mode = Node.PROCESS_MODE_DISABLED
|
child.process_mode = Node.PROCESS_MODE_DISABLED
|
||||||
|
visible = has_stage
|
||||||
|
|
||||||
@onready var dropzone = $HBoxContainer/dropzone
|
@onready var dropzone = $HBoxContainer/dropzone
|
||||||
|
var dropzone_size: Vector2
|
||||||
|
@export var dropzone_padding = 100
|
||||||
@onready var postit_container = $HBoxContainer/ScrollContainer/VBoxContainer
|
@onready var postit_container = $HBoxContainer/ScrollContainer/VBoxContainer
|
||||||
@onready var board_of_devs = $"board of devs"
|
@onready var board_of_devs = $"board of devs"
|
||||||
@onready var base_postit_panel = $HBoxContainer/ScrollContainer/VBoxContainer/Panel
|
var base_postit_panel: Panel
|
||||||
@onready var active_context = ui_context.DROPZONE # 0 = dropzone, 1 = post it list
|
@onready var active_context = ui_context.DROPZONE # 0 = dropzone, 1 = post it list
|
||||||
@onready var instructions = $instructions_panel/HBoxContainer/cards_remaining
|
@onready var instructions = $instructions_panel/HBoxContainer/cards_remaining
|
||||||
|
|
||||||
|
|
@ -52,14 +56,21 @@ var selected_dropzone_element: int = -1
|
||||||
var selected_postit_list_element: int = 0
|
var selected_postit_list_element: int = 0
|
||||||
var selected_card_for_assignment
|
var selected_card_for_assignment
|
||||||
|
|
||||||
|
var cache: Array = []
|
||||||
|
|
||||||
|
signal board_completed
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
|
base_postit_panel = $HBoxContainer/ScrollContainer/VBoxContainer/Panel
|
||||||
|
postit_container.remove_child(base_postit_panel)
|
||||||
|
|
||||||
#var test_arr = ["c_Joy","p_effort","c_backlash","c_body","c_hit","p_slut","p_worried_mother","p_cross_friend"]
|
dropzone_size = get_viewport_rect().size - Vector2(dropzone_padding + base_postit_panel.custom_minimum_size.x, dropzone_padding)
|
||||||
#var test_arr = ["c_Joy","c_body","c_hit"]
|
|
||||||
|
if get_parent() == get_tree().root:
|
||||||
|
populate_board(["c_void", 'c_joy', "p_wet", "p_thomas"])
|
||||||
|
populate_board(["c_fighting", 'c_hit', "p_girly", "p_vent"])
|
||||||
|
|
||||||
#populate_board(test_arr)
|
|
||||||
#reorder_areas("dropzone_content")
|
|
||||||
active_context = ui_context.DROPZONE
|
active_context = ui_context.DROPZONE
|
||||||
|
|
||||||
has_stage = has_stage
|
has_stage = has_stage
|
||||||
|
|
@ -73,66 +84,34 @@ func _process(delta):
|
||||||
is_area_dragged = false
|
is_area_dragged = false
|
||||||
currently_dragged_area = null
|
currently_dragged_area = null
|
||||||
|
|
||||||
# we should maybe consider moving this to _input() for consistency
|
|
||||||
if Input.is_action_just_pressed("ui_cancel"):
|
|
||||||
populate_board(["c_Joy","p_effort","c_backlash","c_body","c_void","p_reward","p_worried_mother","p_cross_friend"])
|
|
||||||
|
|
||||||
|
|
||||||
# Will be used later to spawn Cards and Post-Its and remember them in the dictionary
|
# Will be used later to spawn Cards and Post-Its and remember them in the dictionary
|
||||||
func populate_board(card_names: Array):
|
func populate_board(card_names: Array):
|
||||||
|
|
||||||
mementos_collected += 1
|
mementos_collected += 1
|
||||||
|
|
||||||
var all_cards = Array()
|
var all_new:Dictionary = board_of_devs.get_cards_by_name_array(card_names)
|
||||||
var all_postits = Array()
|
|
||||||
|
|
||||||
# to remember panel positions
|
var new_cards:Array = all_new["cards"]
|
||||||
area_dict["post_it_panels"] = [base_postit_panel]
|
var new_postits:Array = all_new["postIts"]
|
||||||
|
|
||||||
# check how many post-it panels we need
|
# spawning the cards and adding them to the dictionary
|
||||||
var amount = -1 # starting with -1 to compensate for the base panel
|
for new_card in all_new["cards"]:
|
||||||
for card_name in card_names:
|
new_card.position = Vector2(randi_range(dropzone_padding, dropzone_size.x), randi_range(dropzone_padding, dropzone_size.y))
|
||||||
if "p_" in card_name:
|
new_card.reparent(dropzone, false)
|
||||||
amount += 1
|
new_card.set_owner(self)
|
||||||
while amount > 0: # creating panels up to the number of post-its
|
area_dict["dropzone_content"].push_back(new_card)
|
||||||
|
area_dict["cards"].push_back(new_card)
|
||||||
|
new_card.is_dragable = true
|
||||||
|
for new_postit in all_new["postIts"]: # spawning a post-it
|
||||||
var new_panel = base_postit_panel.duplicate()
|
var new_panel = base_postit_panel.duplicate()
|
||||||
postit_container.add_child(new_panel)
|
postit_container.add_child(new_panel)
|
||||||
new_panel.set_owner(self)
|
new_panel.set_owner(self)
|
||||||
area_dict["post_it_panels"].push_back(new_panel)
|
area_dict["post_it_panels"].append(new_panel)
|
||||||
amount -= 1
|
new_panel.add_child(new_postit)
|
||||||
|
new_postit.set_owner(self)
|
||||||
# get all the cards and post-its from the board of devs
|
area_dict["post_its_in_list"].push_back(new_postit)
|
||||||
for child in board_of_devs.get_children():
|
new_postit.position = new_panel.get_child(0).position
|
||||||
for child_2 in child.get_children(): # put all cards in all_cards array
|
new_postit.is_dragable = true
|
||||||
all_cards.push_back(child_2)
|
|
||||||
for child_3 in child_2.get_children(): # put all post-its in all_postits array
|
|
||||||
if "p_" in child_3.name: # post-its are currently children of cards.
|
|
||||||
all_postits.push_back(child_3) # If this changes, this logic needs to be adjusted.
|
|
||||||
|
|
||||||
# spawning the cards and adding them to the dictionary
|
|
||||||
for card_name in card_names:
|
|
||||||
if "c_" in card_name: # spawning a card
|
|
||||||
var new_card = _find_area_by_string(all_cards, card_name).duplicate()
|
|
||||||
for child in new_card.get_children(): # We need to clear all the post-its from the cards on the dev-board
|
|
||||||
if "p_" in child.name:
|
|
||||||
new_card.remove_child(child) # dev-board has post-its attached to the cards, which need to be removed
|
|
||||||
new_card.position = Vector2(randi_range(0, dropzone.size.x), randi_range(0, dropzone.size.y))
|
|
||||||
dropzone.add_child(new_card)
|
|
||||||
new_card.set_owner(self)
|
|
||||||
area_dict["dropzone_content"].push_back(new_card)
|
|
||||||
area_dict["cards"].push_back(new_card)
|
|
||||||
#new_card.position = Vector2(randf_range(new_card.diameter, dropzone.size.x), randf_range(new_card.diameter, dropzone.size.y)) - Vector2(new_card.diameter/2, new_card.diameter/2)
|
|
||||||
new_card.is_dragable = true
|
|
||||||
if "p_" in card_name: # spawning a post-it
|
|
||||||
var new_postit = _find_area_by_string(all_postits, card_name).duplicate()
|
|
||||||
for panel in area_dict["post_it_panels"]: # still mad I can't use the return_postit-func for this...
|
|
||||||
if panel.get_child_count() == 1:
|
|
||||||
panel.add_child(new_postit)
|
|
||||||
new_postit.set_owner(self)
|
|
||||||
area_dict["post_its_in_list"].push_back(new_postit)
|
|
||||||
new_postit.position = panel.get_child(0).position
|
|
||||||
new_postit.is_dragable = true
|
|
||||||
break
|
|
||||||
|
|
||||||
currently_selected_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default
|
currently_selected_node = area_dict["dropzone_content"][0] # set first Card as currently selected node by default
|
||||||
|
|
||||||
|
|
@ -140,15 +119,6 @@ func populate_board(card_names: Array):
|
||||||
reorder_areas("cards")
|
reorder_areas("cards")
|
||||||
reorder_areas("post_its_in_list")
|
reorder_areas("post_its_in_list")
|
||||||
|
|
||||||
|
|
||||||
# Handy function to filter an array of areas by the name of a card
|
|
||||||
func _find_area_by_string(area_arr: Array, name: String) -> Area2D:
|
|
||||||
for area in area_arr:
|
|
||||||
if area.name == name:
|
|
||||||
return area
|
|
||||||
return null
|
|
||||||
|
|
||||||
|
|
||||||
# Checks if a Node is currently inside the dropzone
|
# Checks if a Node is currently inside the dropzone
|
||||||
func is_in_dropzone(to_check: Node) -> bool:
|
func is_in_dropzone(to_check: Node) -> bool:
|
||||||
if (dropzone.size.x < to_check.global_position.x or dropzone.size.y < to_check.global_position.y):
|
if (dropzone.size.x < to_check.global_position.x or dropzone.size.y < to_check.global_position.y):
|
||||||
|
|
@ -174,37 +144,37 @@ func handle_mouse_button(to_handle: Area2D, input: InputEvent):
|
||||||
# TODO: We need a better way to recognize whether "to_handle" is a Card or a Post-It.
|
# TODO: We need a better way to recognize whether "to_handle" is a Card or a Post-It.
|
||||||
# (Tried checking for a script, didn't work, because script has no name attached.
|
# (Tried checking for a script, didn't work, because script has no name attached.
|
||||||
# Alternative might be to check for specific values within the script ("is_card" f.e))
|
# Alternative might be to check for specific values within the script ("is_card" f.e))
|
||||||
match to_handle.get_meta("type"):
|
if to_handle is Card:
|
||||||
"card": # 1 = Card
|
|
||||||
active_context = ui_context.DROPZONE
|
active_context = ui_context.DROPZONE
|
||||||
if input.is_pressed():
|
if input.is_pressed():
|
||||||
reorder_areas("dropzone_content")
|
reorder_areas("dropzone_content")
|
||||||
reorder_areas("cards")
|
reorder_areas("cards")
|
||||||
|
else:
|
||||||
|
dropzone.move_child(currently_dragged_area, -1)
|
||||||
|
currently_dragged_area = null
|
||||||
|
elif to_handle is PostIt:
|
||||||
|
if input.is_pressed():
|
||||||
|
to_handle.reparent(dropzone)
|
||||||
|
to_handle.on_board = true
|
||||||
|
to_handle.set_owner(self) # needs to be here otherwise the owner disappears
|
||||||
|
area_dict["post_its_in_list"].erase(to_handle)
|
||||||
|
area_dict["dropzone_content"].push_back(to_handle)
|
||||||
|
# TODO (if needed): Add function to rearrange the array based on positions in the dropzone
|
||||||
|
else:
|
||||||
|
if is_in_dropzone(to_handle):
|
||||||
|
if to_handle.has_overlapping_areas():
|
||||||
|
for area in to_handle.get_overlapping_areas():
|
||||||
|
if area is Card:
|
||||||
|
if !area.has_postit_attached():
|
||||||
|
attach_postit_to_card(to_handle, area)
|
||||||
|
else:
|
||||||
|
to_handle.rotation = to_handle.base_rotation
|
||||||
|
to_handle.scale = to_handle.base_scale
|
||||||
else:
|
else:
|
||||||
dropzone.move_child(currently_dragged_area, -1)
|
active_context = ui_context.POST_IT_LIST
|
||||||
currently_dragged_area = null
|
_return_postit_to_panels(to_handle)
|
||||||
"post-it": # 2 = PostIt
|
currently_dragged_area = null
|
||||||
if input.is_pressed():
|
|
||||||
to_handle.reparent(dropzone)
|
|
||||||
to_handle.on_board = true
|
|
||||||
to_handle.set_owner(self) # needs to be here otherwise the owner disappears
|
|
||||||
area_dict["post_its_in_list"].erase(to_handle)
|
|
||||||
area_dict["dropzone_content"].push_back(to_handle)
|
|
||||||
# TODO (if needed): Add function to rearrange the array based on positions in the dropzone
|
|
||||||
else:
|
|
||||||
if is_in_dropzone(to_handle):
|
|
||||||
if to_handle.has_overlapping_areas():
|
|
||||||
for area in to_handle.get_overlapping_areas():
|
|
||||||
if area.get_meta("type") == "card":
|
|
||||||
if !area.has_postit_attached():
|
|
||||||
attach_postit_to_card(to_handle, area)
|
|
||||||
else:
|
|
||||||
to_handle.rotation = to_handle.base_rotation
|
|
||||||
to_handle.scale = to_handle.base_scale
|
|
||||||
else:
|
|
||||||
active_context = ui_context.POST_IT_LIST
|
|
||||||
_return_postit_to_panels(to_handle)
|
|
||||||
currently_dragged_area = null
|
|
||||||
|
|
||||||
|
|
||||||
# Logic for attaching a postit to a card. Also reset postit positions if the card cannot be attached
|
# Logic for attaching a postit to a card. Also reset postit positions if the card cannot be attached
|
||||||
|
|
@ -230,6 +200,12 @@ func attach_postit_to_card(postit: Area2D, card: Area2D, update_dict = false):
|
||||||
reorder_areas("cards")
|
reorder_areas("cards")
|
||||||
reorder_areas("post_its_in_list")
|
reorder_areas("post_its_in_list")
|
||||||
|
|
||||||
|
if mementos_collected == 4:
|
||||||
|
for fluff in area_dict["dropzone_content"]:
|
||||||
|
if fluff is Card:
|
||||||
|
if not fluff.has_postit_attached():
|
||||||
|
return
|
||||||
|
emit_signal("board_completed")
|
||||||
|
|
||||||
# Mark area that was hovered over as currently selected
|
# Mark area that was hovered over as currently selected
|
||||||
func handle_hover(to_handle: Area2D):
|
func handle_hover(to_handle: Area2D):
|
||||||
|
|
@ -264,6 +240,9 @@ func reorder_areas(reorder: String):
|
||||||
|
|
||||||
# Takes the inputs for control inputs
|
# Takes the inputs for control inputs
|
||||||
func _input(event):
|
func _input(event):
|
||||||
|
|
||||||
|
if event.is_action_pressed("ui_cancel"):
|
||||||
|
State.leave_stage(self)
|
||||||
# Return, if the input is a mouse event (mouse events are handled separately)
|
# Return, if the input is a mouse event (mouse events are handled separately)
|
||||||
if event is InputEventMouse or !has_stage or not is_instance_valid(currently_selected_node): return
|
if event is InputEventMouse or !has_stage or not is_instance_valid(currently_selected_node): return
|
||||||
|
|
||||||
|
|
@ -346,7 +325,7 @@ func _input(event):
|
||||||
# Sets everything up to enter the context where postits can be assigned via button controls
|
# Sets everything up to enter the context where postits can be assigned via button controls
|
||||||
func _enter_assignment_context():
|
func _enter_assignment_context():
|
||||||
# cards are currently not moved, only post its. Exit function if a card should be moved.
|
# cards are currently not moved, only post its. Exit function if a card should be moved.
|
||||||
if currently_selected_node == null or currently_selected_node.get_meta("type") != "post-it" : return
|
if currently_selected_node == null or not currently_selected_node is PostIt : return
|
||||||
|
|
||||||
# if the postit is already attached, remove it and return it to the post it panels
|
# if the postit is already attached, remove it and return it to the post it panels
|
||||||
if currently_selected_node.is_postit_attached():
|
if currently_selected_node.is_postit_attached():
|
||||||
|
|
@ -377,17 +356,21 @@ func _leave_assignment_context():
|
||||||
# handles everything to return a post it to the panels
|
# handles everything to return a post it to the panels
|
||||||
func _return_postit_to_panels(post_it: Area2D):
|
func _return_postit_to_panels(post_it: Area2D):
|
||||||
for panel in area_dict["post_it_panels"]:
|
for panel in area_dict["post_it_panels"]:
|
||||||
|
print(area_dict["post_it_panels"])
|
||||||
if panel.get_child_count() == 1:
|
if panel.get_child_count() == 1:
|
||||||
area_dict["dropzone_content"].erase(post_it)
|
area_dict["dropzone_content"].erase(post_it)
|
||||||
post_it.on_board = false
|
post_it.on_board = false
|
||||||
area_dict["post_its_in_list"].push_back(post_it)
|
area_dict["post_its_in_list"].push_back(post_it)
|
||||||
post_it.tween_transform_to(panel.get_child(0).position)
|
#post_it.tween_transform_to(panel.get_child(0).position)
|
||||||
post_it.rotation = post_it.base_rotation
|
|
||||||
post_it.scale = post_it.base_scale
|
|
||||||
post_it.reparent(panel)
|
post_it.reparent(panel)
|
||||||
|
post_it.transform = panel.get_child(0).transform
|
||||||
post_it.set_owner(self)
|
post_it.set_owner(self)
|
||||||
reorder_areas("dropzone_content")
|
reorder_areas("dropzone_content")
|
||||||
reorder_areas("post_its_in_list")
|
reorder_areas("post_its_in_list")
|
||||||
break
|
break
|
||||||
|
|
||||||
|
func on_scene_skipped(i: int):
|
||||||
|
mementos_collected += i
|
||||||
|
|
||||||
|
func claim_focus():
|
||||||
|
State.pass_stage_to(self)
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,6 @@ var scale_tween
|
||||||
if !Engine.is_editor_hint():
|
if !Engine.is_editor_hint():
|
||||||
wiggle_pos = float(text.hash() % 100)
|
wiggle_pos = float(text.hash() % 100)
|
||||||
_handle_wiggle(0)
|
_handle_wiggle(0)
|
||||||
if get_children() != [] and !Engine.is_editor_hint() and text == "":
|
|
||||||
$BackgroundSprite.void_active = true
|
|
||||||
@export var wiggle_strength: float = 0.2
|
@export var wiggle_strength: float = 0.2
|
||||||
@export var wiggle_speed: float = 5
|
@export var wiggle_speed: float = 5
|
||||||
@export_range(1, 2) var scale_bump: float = 1.05
|
@export_range(1, 2) var scale_bump: float = 1.05
|
||||||
|
|
@ -65,8 +63,6 @@ var mouse_offset: Vector2
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
||||||
self.set_meta("type", "card") # set type information to find out if this node is a card
|
|
||||||
|
|
||||||
_handle_wiggle(0)
|
_handle_wiggle(0)
|
||||||
if not Engine.is_editor_hint() and is_inside_tree():
|
if not Engine.is_editor_hint() and is_inside_tree():
|
||||||
for postit in self.get_children():
|
for postit in self.get_children():
|
||||||
|
|
@ -83,7 +79,6 @@ func _ready():
|
||||||
|
|
||||||
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||||
$Label.text = self.text
|
$Label.text = self.text
|
||||||
if not Engine.is_editor_hint(): $BackgroundSprite.void_active = text == ""
|
|
||||||
|
|
||||||
wiggle_pos = float(text.hash() % 100)
|
wiggle_pos = float(text.hash() % 100)
|
||||||
if not Engine.is_editor_hint():
|
if not Engine.is_editor_hint():
|
||||||
|
|
@ -98,12 +93,15 @@ func _process(delta: float) -> void:
|
||||||
if area is Card or area is CardCollider:
|
if area is Card or area is CardCollider:
|
||||||
if area is CardCollider:
|
if area is CardCollider:
|
||||||
position += area.direction * delta
|
position += area.direction * delta
|
||||||
elif not area.highlighted or self.highlighted:
|
elif not (area.highlighted or self.highlighted) and area.is_dragable:
|
||||||
var diff:Vector2 = position - area.position
|
var diff:Vector2 = position - area.position
|
||||||
position -= diff.normalized() * ((diff.length()-diameter)/diameter) * bounce_speed * (delta/(1.0/60))
|
position -= diff.normalized() * ((diff.length()-diameter)/diameter) * bounce_speed * (delta/(1.0/60))
|
||||||
|
|
||||||
_move_card()
|
_move_card()
|
||||||
|
|
||||||
|
func get_text() -> String:
|
||||||
|
return $Label.text
|
||||||
|
|
||||||
func _handle_wiggle(delta):
|
func _handle_wiggle(delta):
|
||||||
wiggle_pos += delta * wiggle_speed * wiggle_intensity
|
wiggle_pos += delta * wiggle_speed * wiggle_intensity
|
||||||
|
|
||||||
|
|
@ -155,7 +153,7 @@ func _move_card():
|
||||||
func has_postit_attached() -> bool:
|
func has_postit_attached() -> bool:
|
||||||
var all_children = get_children()
|
var all_children = get_children()
|
||||||
for child in all_children:
|
for child in all_children:
|
||||||
if child.get_meta("type") == "post-it":
|
if child is PostIt:
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
[gd_scene load_steps=21 format=3 uid="uid://dy5rd437h5hsw"]
|
[gd_scene load_steps=11 format=3 uid="uid://dy5rd437h5hsw"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_emip0"]
|
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_emip0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_ioijn"]
|
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_ioijn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://kpmk21d8rlso" path="res://logic-scenes/board/particle_textures/star.png" id="3_bwtbh"]
|
|
||||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_rktsa"]
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_rktsa"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_fwm1k"]
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"]
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"]
|
||||||
radius = 110.0
|
radius = 110.0
|
||||||
|
|
@ -53,105 +51,6 @@ animations = [{
|
||||||
"speed": 5.0
|
"speed": 5.0
|
||||||
}]
|
}]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_8bs16"]
|
|
||||||
script/source = "extends AnimatedSprite2D
|
|
||||||
|
|
||||||
@onready var particles = $GPUParticles2D
|
|
||||||
@onready var initial_position = position
|
|
||||||
var noise_position = randf()
|
|
||||||
var noise: Noise = FastNoiseLite.new()
|
|
||||||
var void_active:
|
|
||||||
set(become_void):
|
|
||||||
if not (void_active == become_void):
|
|
||||||
if is_inside_tree():
|
|
||||||
$GPUParticles2D.is_void = become_void
|
|
||||||
$GPUParticles2D.emitting = become_void
|
|
||||||
$Sprite2D.is_void = become_void
|
|
||||||
void_active = become_void
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
|
|
||||||
if void_active != $GPUParticles2D.is_void:
|
|
||||||
$GPUParticles2D.is_void = void_active
|
|
||||||
$GPUParticles2D.emitting = void_active
|
|
||||||
$Sprite2D.is_void = void_active
|
|
||||||
|
|
||||||
if void_active and not State.reduce_motion:
|
|
||||||
|
|
||||||
noise_position += delta * 10
|
|
||||||
|
|
||||||
var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position))
|
|
||||||
|
|
||||||
random_position = random_position.normalized() * pow(random_position.length()*2, 3) * 5
|
|
||||||
|
|
||||||
position = initial_position - random_position
|
|
||||||
|
|
||||||
rotation = noise.get_noise_1d(noise_position*10) * random_position.length() * 0.01
|
|
||||||
|
|
||||||
particles.position = random_position
|
|
||||||
|
|
||||||
else: position = initial_position
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="Gradient" id="Gradient_v70nd"]
|
|
||||||
interpolation_mode = 2
|
|
||||||
offsets = PackedFloat32Array(0, 0.0529197, 0.191606, 1)
|
|
||||||
colors = PackedColorArray(1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0.491329, 1, 1, 1, 0)
|
|
||||||
|
|
||||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_xxq8p"]
|
|
||||||
gradient = SubResource("Gradient_v70nd")
|
|
||||||
|
|
||||||
[sub_resource type="Curve" id="Curve_q6cmf"]
|
|
||||||
_data = [Vector2(0, 0), 0.0, 3.16529, 0, 0, Vector2(0.241056, 0.191336), 0.132446, 0.132446, 0, 0, Vector2(1, 1), 3.94797, 0.0, 0, 0]
|
|
||||||
point_count = 3
|
|
||||||
|
|
||||||
[sub_resource type="CurveTexture" id="CurveTexture_cg0w1"]
|
|
||||||
curve = SubResource("Curve_q6cmf")
|
|
||||||
|
|
||||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_by44l"]
|
|
||||||
emission_shape = 6
|
|
||||||
emission_ring_axis = Vector3(0, 0, 1)
|
|
||||||
emission_ring_height = 0.0
|
|
||||||
emission_ring_radius = 180.0
|
|
||||||
emission_ring_inner_radius = 185.0
|
|
||||||
particle_flag_disable_z = true
|
|
||||||
spread = 180.0
|
|
||||||
gravity = Vector3(0, 0, 0)
|
|
||||||
initial_velocity_min = -10.0
|
|
||||||
initial_velocity_max = 10.0
|
|
||||||
angular_velocity_min = -150.0
|
|
||||||
angular_velocity_max = -150.0
|
|
||||||
orbit_velocity_min = 0.0
|
|
||||||
orbit_velocity_max = 0.0
|
|
||||||
radial_accel_min = -20.0
|
|
||||||
radial_accel_max = -5.0
|
|
||||||
tangential_accel_min = 20.0
|
|
||||||
tangential_accel_max = 30.0
|
|
||||||
scale_min = 3.0
|
|
||||||
scale_max = 5.0
|
|
||||||
scale_curve = SubResource("CurveTexture_cg0w1")
|
|
||||||
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
|
||||||
turbulence_noise_strength = 0.1
|
|
||||||
attractor_interaction_enabled = false
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_vjwk7"]
|
|
||||||
script/source = "extends GPUParticles2D
|
|
||||||
|
|
||||||
var is_void:bool = false
|
|
||||||
|
|
||||||
func _process(_delta):
|
|
||||||
self.visible = !State.reduce_motion and is_void
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_tgc0b"]
|
|
||||||
script/source = "extends Sprite2D
|
|
||||||
|
|
||||||
var is_void:bool = false
|
|
||||||
|
|
||||||
func _process(_delta):
|
|
||||||
self.visible = State.reduce_motion and is_void
|
|
||||||
"
|
|
||||||
|
|
||||||
[node name="card" type="Area2D"]
|
[node name="card" type="Area2D"]
|
||||||
script = ExtResource("1_emip0")
|
script = ExtResource("1_emip0")
|
||||||
metadata/type = "card"
|
metadata/type = "card"
|
||||||
|
|
@ -166,25 +65,6 @@ clip_children = 2
|
||||||
scale = Vector2(0.6, 0.6)
|
scale = Vector2(0.6, 0.6)
|
||||||
sprite_frames = SubResource("SpriteFrames_ckivt")
|
sprite_frames = SubResource("SpriteFrames_ckivt")
|
||||||
frame = 1
|
frame = 1
|
||||||
script = SubResource("GDScript_8bs16")
|
|
||||||
|
|
||||||
[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"]
|
|
||||||
visible = false
|
|
||||||
amount = 500
|
|
||||||
process_material = SubResource("ParticleProcessMaterial_by44l")
|
|
||||||
texture = ExtResource("3_bwtbh")
|
|
||||||
lifetime = 2.5
|
|
||||||
speed_scale = 1.3
|
|
||||||
explosiveness = 0.2
|
|
||||||
randomness = 0.14
|
|
||||||
local_coords = true
|
|
||||||
script = SubResource("GDScript_vjwk7")
|
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"]
|
|
||||||
visible = false
|
|
||||||
scale = Vector2(0.4, 0.4)
|
|
||||||
texture = ExtResource("4_fwm1k")
|
|
||||||
script = SubResource("GDScript_tgc0b")
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
[gd_scene format=3 uid="uid://chwf61qpn2sqw"]
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel"]
|
||||||
|
self_modulate = Color(1, 1, 1, 0)
|
||||||
|
custom_minimum_size = Vector2(400, 120)
|
||||||
|
mouse_filter = 1
|
||||||
|
|
||||||
|
[node name="post-it_anchor1" type="Node2D" parent="."]
|
||||||
|
position = Vector2(105, 57)
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://bnskiyx1sksww"]
|
[gd_scene load_steps=11 format=3 uid="uid://bnskiyx1sksww"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"]
|
[ext_resource type="Texture2D" uid="uid://bi3xqdknw5tpe" path="res://logic-scenes/board/board-texture/Cork002_2K_Color.png" id="1_8brxc"]
|
||||||
[ext_resource type="Shader" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"]
|
[ext_resource type="Shader" path="res://logic-scenes/board/physics-board.gdshader" id="1_ggnth"]
|
||||||
[ext_resource type="Script" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"]
|
[ext_resource type="Script" path="res://logic-scenes/board/card-board.gd" id="3_8v4c4"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="3_mg053"]
|
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="3_mg053"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bvowj4l8dtceu" path="res://dev-util/board of devs.tscn" id="4_sskx2"]
|
[ext_resource type="PackedScene" uid="uid://bvowj4l8dtceu" path="res://dev-util/board of devs.tscn" id="4_sskx2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://chwf61qpn2sqw" path="res://logic-scenes/board/empty_postIt_panel.tscn" id="5_dr0qs"]
|
||||||
[ext_resource type="Script" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"]
|
[ext_resource type="Script" path="res://logic-scenes/board/card collider.gd" id="6_wpxls"]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ttqei"]
|
||||||
|
|
@ -61,14 +62,8 @@ horizontal_scroll_mode = 0
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ScrollContainer"]
|
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/ScrollContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Panel" type="Panel" parent="HBoxContainer/ScrollContainer/VBoxContainer"]
|
[node name="Panel" parent="HBoxContainer/ScrollContainer/VBoxContainer" instance=ExtResource("5_dr0qs")]
|
||||||
self_modulate = Color(1, 1, 1, 0)
|
|
||||||
custom_minimum_size = Vector2(400, 120)
|
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
mouse_filter = 1
|
|
||||||
|
|
||||||
[node name="post-it_anchor1" type="Node2D" parent="HBoxContainer/ScrollContainer/VBoxContainer/Panel"]
|
|
||||||
position = Vector2(105, 57)
|
|
||||||
|
|
||||||
[node name="board of devs" parent="." instance=ExtResource("4_sskx2")]
|
[node name="board of devs" parent="." instance=ExtResource("4_sskx2")]
|
||||||
process_mode = 4
|
process_mode = 4
|
||||||
|
|
@ -133,9 +128,11 @@ shape = SubResource("RectangleShape2D_ivo5o")
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="HBoxContainer" type="HBoxContainer" parent="instructions_panel"]
|
[node name="HBoxContainer" type="HBoxContainer" parent="instructions_panel"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="VSeparator2" type="VSeparator" parent="instructions_panel/HBoxContainer"]
|
[node name="VSeparator2" type="VSeparator" parent="instructions_panel/HBoxContainer"]
|
||||||
custom_minimum_size = Vector2(15, 0)
|
custom_minimum_size = Vector2(15, 0)
|
||||||
|
|
@ -144,7 +141,7 @@ layout_mode = 2
|
||||||
[node name="cards_remaining" type="Label" parent="instructions_panel/HBoxContainer"]
|
[node name="cards_remaining" type="Label" parent="instructions_panel/HBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
text = "Collect Mementos to fill the mind-board."
|
text = "Collect all four Mementos to fill the mind-board. "
|
||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,8 +57,6 @@ var on_board = false
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|
||||||
self.set_meta("type", "post-it") # set type information to find out if this node is a post-it
|
|
||||||
|
|
||||||
$Content/Label.text = self.text
|
$Content/Label.text = self.text
|
||||||
$Content/BackgroundSprite.frame = text.hash() % $Content/BackgroundSprite.sprite_frames.get_frame_count($Content/BackgroundSprite.animation)
|
$Content/BackgroundSprite.frame = text.hash() % $Content/BackgroundSprite.sprite_frames.get_frame_count($Content/BackgroundSprite.animation)
|
||||||
|
|
||||||
|
|
@ -118,7 +116,7 @@ func _move_post_it():
|
||||||
position += (get_viewport().get_mouse_position() - position) - mouse_offset
|
position += (get_viewport().get_mouse_position() - position) - mouse_offset
|
||||||
|
|
||||||
func is_postit_attached() -> bool:
|
func is_postit_attached() -> bool:
|
||||||
if self.get_parent().get_meta("type") == "card":
|
if self.get_parent() is Card:
|
||||||
return true
|
return true
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=20 format=3 uid="uid://dp4eps03igd3w"]
|
[gd_scene load_steps=21 format=3 uid="uid://dp4eps03igd3w"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_6ceun"]
|
[ext_resource type="Script" path="res://logic-scenes/board/card.gd" id="1_6ceun"]
|
||||||
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_buevv"]
|
[ext_resource type="Texture2D" uid="uid://sv0nhkkur1tt" path="res://logic-scenes/board/card-textures/cardsheet.png" id="2_buevv"]
|
||||||
|
|
@ -6,6 +6,10 @@
|
||||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_mi4ah"]
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_mi4ah"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_jam8u"]
|
[ext_resource type="Texture2D" uid="uid://bqilajx05t0eb" path="res://logic-scenes/board/particle_textures/void_nomotion.png" id="4_jam8u"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_foovg"]
|
||||||
|
radius = 110.0
|
||||||
|
height = 336.0
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_ykk13"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_ykk13"]
|
||||||
atlas = ExtResource("2_buevv")
|
atlas = ExtResource("2_buevv")
|
||||||
region = Rect2(0, 0, 600, 440)
|
region = Rect2(0, 0, 600, 440)
|
||||||
|
|
@ -56,17 +60,11 @@ script/source = "extends AnimatedSprite2D
|
||||||
@onready var initial_position = position
|
@onready var initial_position = position
|
||||||
var noise_position = randf()
|
var noise_position = randf()
|
||||||
var noise: Noise = FastNoiseLite.new()
|
var noise: Noise = FastNoiseLite.new()
|
||||||
var void_active:
|
|
||||||
set(become_void):
|
|
||||||
if not (void_active == become_void):
|
|
||||||
if is_inside_tree():
|
|
||||||
$GPUParticles2D.is_void = become_void
|
|
||||||
$GPUParticles2D.emitting = become_void
|
|
||||||
$Sprite2D.is_void = become_void
|
|
||||||
void_active = become_void
|
|
||||||
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if void_active and not State.reduce_motion:
|
|
||||||
|
if not State.reduce_motion:
|
||||||
|
|
||||||
noise_position += delta * 10
|
noise_position += delta * 10
|
||||||
|
|
||||||
var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position))
|
var random_position = Vector2(noise.get_noise_1d(noise_position*2), noise.get_noise_1d(-noise_position))
|
||||||
|
|
@ -116,8 +114,8 @@ radial_accel_min = -20.0
|
||||||
radial_accel_max = -5.0
|
radial_accel_max = -5.0
|
||||||
tangential_accel_min = 20.0
|
tangential_accel_min = 20.0
|
||||||
tangential_accel_max = 30.0
|
tangential_accel_max = 30.0
|
||||||
scale_min = 1.5
|
scale_min = 3.0
|
||||||
scale_max = 3.0
|
scale_max = 5.0
|
||||||
scale_curve = SubResource("CurveTexture_cg0w1")
|
scale_curve = SubResource("CurveTexture_cg0w1")
|
||||||
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
color_ramp = SubResource("GradientTexture1D_xxq8p")
|
||||||
turbulence_noise_strength = 0.1
|
turbulence_noise_strength = 0.1
|
||||||
|
|
@ -126,37 +124,31 @@ attractor_interaction_enabled = false
|
||||||
[sub_resource type="GDScript" id="GDScript_vjwk7"]
|
[sub_resource type="GDScript" id="GDScript_vjwk7"]
|
||||||
script/source = "extends GPUParticles2D
|
script/source = "extends GPUParticles2D
|
||||||
|
|
||||||
var is_void:bool = false
|
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
self.visible = !State.reduce_motion and is_void
|
self.visible = !State.reduce_motion
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_tgc0b"]
|
[sub_resource type="GDScript" id="GDScript_tgc0b"]
|
||||||
script/source = "extends Sprite2D
|
script/source = "extends Sprite2D
|
||||||
|
|
||||||
var is_void:bool = false
|
|
||||||
|
|
||||||
func _process(_delta):
|
func _process(_delta):
|
||||||
self.visible = State.reduce_motion and is_void
|
self.visible = State.reduce_motion
|
||||||
"
|
"
|
||||||
|
|
||||||
[node name="card" type="Control"]
|
[node name="card" type="Area2D"]
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 0
|
|
||||||
offset_left = -150.0
|
|
||||||
offset_top = -110.0
|
|
||||||
offset_right = 150.0
|
|
||||||
offset_bottom = 110.0
|
|
||||||
focus_mode = 2
|
|
||||||
script = ExtResource("1_6ceun")
|
script = ExtResource("1_6ceun")
|
||||||
|
metadata/type = "card"
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
position = Vector2(-0.0713516, 0.997451)
|
||||||
|
rotation = 1.5708
|
||||||
|
shape = SubResource("CapsuleShape2D_foovg")
|
||||||
|
|
||||||
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="."]
|
[node name="BackgroundSprite" type="AnimatedSprite2D" parent="."]
|
||||||
clip_children = 2
|
clip_children = 2
|
||||||
position = Vector2(150, 110)
|
|
||||||
scale = Vector2(0.6, 0.6)
|
scale = Vector2(0.6, 0.6)
|
||||||
sprite_frames = SubResource("SpriteFrames_ckivt")
|
sprite_frames = SubResource("SpriteFrames_ckivt")
|
||||||
frame = 2
|
frame = 1
|
||||||
script = SubResource("GDScript_8bs16")
|
script = SubResource("GDScript_8bs16")
|
||||||
|
|
||||||
[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"]
|
[node name="GPUParticles2D" type="GPUParticles2D" parent="BackgroundSprite"]
|
||||||
|
|
@ -167,6 +159,7 @@ lifetime = 2.5
|
||||||
speed_scale = 1.3
|
speed_scale = 1.3
|
||||||
explosiveness = 0.2
|
explosiveness = 0.2
|
||||||
randomness = 0.14
|
randomness = 0.14
|
||||||
|
local_coords = true
|
||||||
script = SubResource("GDScript_vjwk7")
|
script = SubResource("GDScript_vjwk7")
|
||||||
|
|
||||||
[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"]
|
[node name="Sprite2D" type="Sprite2D" parent="BackgroundSprite"]
|
||||||
|
|
@ -176,7 +169,6 @@ texture = ExtResource("4_jam8u")
|
||||||
script = SubResource("GDScript_tgc0b")
|
script = SubResource("GDScript_tgc0b")
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
|
|
@ -192,13 +184,9 @@ theme = ExtResource("3_mi4ah")
|
||||||
theme_type_variation = &"card_text"
|
theme_type_variation = &"card_text"
|
||||||
autowrap_mode = 3
|
autowrap_mode = 3
|
||||||
|
|
||||||
[node name="postit anchor" type="Control" parent="."]
|
[node name="postit anchor" type="Node2D" parent="."]
|
||||||
anchors_preset = 0
|
position = Vector2(-65.6478, 60.3852)
|
||||||
offset_left = 100.0
|
|
||||||
offset_top = 148.0
|
|
||||||
offset_right = 140.0
|
|
||||||
offset_bottom = 188.0
|
|
||||||
|
|
||||||
[connection signal="focus_entered" from="." to="." method="_on_focus_entered"]
|
[connection signal="input_event" from="." to="." method="_on_input_event"]
|
||||||
[connection signal="focus_exited" from="." to="." method="_on_focus_exited"]
|
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
|
||||||
[connection signal="focus_entered" from="postit anchor" to="." method="_on_postit_anchor_focus_entered"]
|
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
|
||||||
|
|
|
||||||
|
|
@ -7,22 +7,23 @@ enum {
|
||||||
CARDS_SELECTED,
|
CARDS_SELECTED,
|
||||||
TRANSITION,
|
TRANSITION,
|
||||||
POSTS,
|
POSTS,
|
||||||
|
POSTS_SELECTED,
|
||||||
DONE
|
DONE
|
||||||
}
|
}
|
||||||
|
|
||||||
@onready var debug_board:Control = $"board of devs"
|
@onready var source_board:Control = $"board of devs"
|
||||||
|
|
||||||
var has_stage = false:
|
var has_stage = false:
|
||||||
set(focus):
|
set(focus):
|
||||||
if not focus == has_stage:
|
if not focus == has_stage:
|
||||||
if focus:
|
if focus:
|
||||||
if selection_state == INI or CARDS:
|
process_mode = Node.PROCESS_MODE_INHERIT
|
||||||
for player in anim_players: player.play("reveal")
|
|
||||||
self.show()
|
self.show()
|
||||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||||
else:
|
else:
|
||||||
self.mouse_filter = Control.MOUSE_FILTER_STOP
|
self.mouse_filter = Control.MOUSE_FILTER_STOP
|
||||||
self.hide()
|
self.hide()
|
||||||
|
process_mode = Node.PROCESS_MODE_DISABLED
|
||||||
has_stage = focus
|
has_stage = focus
|
||||||
|
|
||||||
var _input_locked = true
|
var _input_locked = true
|
||||||
|
|
@ -31,7 +32,10 @@ var selection_state = INI:
|
||||||
selection_state = state
|
selection_state = state
|
||||||
_input_locked = !(state == CARDS or state == POSTS)
|
_input_locked = !(state == CARDS or state == POSTS)
|
||||||
|
|
||||||
var anim_players:Array
|
if state == DONE:
|
||||||
|
reset()
|
||||||
|
|
||||||
|
var anim_players:Array = []
|
||||||
var curr_selection_id: int = -1:
|
var curr_selection_id: int = -1:
|
||||||
set(new_id):
|
set(new_id):
|
||||||
if selection_state == CARDS or selection_state == POSTS:
|
if selection_state == CARDS or selection_state == POSTS:
|
||||||
|
|
@ -47,40 +51,59 @@ var curr_selection_id: int = -1:
|
||||||
|
|
||||||
print(curr_selection_id)
|
print(curr_selection_id)
|
||||||
|
|
||||||
var output:Array
|
var output:Array = []
|
||||||
var options:Array
|
var options:Array = []
|
||||||
|
|
||||||
signal cards_picked(Array)
|
signal cards_picked(Array)
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
if get_parent() == get_tree().root: selection_state = CARDS
|
reset()
|
||||||
|
|
||||||
|
func reset():
|
||||||
|
output = []
|
||||||
|
options = []
|
||||||
|
anim_players = []
|
||||||
var card_controls = $cards.get_children()
|
var card_controls = $cards.get_children()
|
||||||
for control in card_controls:
|
for control in card_controls:
|
||||||
options.append(control.get_child(1))
|
options.append(control.get_child(1))
|
||||||
anim_players.append(control.get_child(0))
|
anim_players.append(control.get_child(0))
|
||||||
|
curr_selection_id = 0
|
||||||
fill_card_slots(0)
|
for player in anim_players: player.play("reveal")
|
||||||
|
|
||||||
func fill_card_slots(id: int):
|
func fill_card_slots(id: int):
|
||||||
for i in range($cards.get_child_count()):
|
var new_cards = source_board.get_cards_by_scene_id(id)
|
||||||
var card:Card = $cards.get_child(i).get_child(1)
|
|
||||||
card.replace_with(debug_board.get_child(id).get_child(i) as Card)
|
for i in range(new_cards.size()):
|
||||||
card.connect("mouse_entered", Callable(self, "get_highlight"))
|
$cards.get_child(i).remove_child($cards.get_child(i).get_child(1))
|
||||||
card.owner = self
|
var new_card = new_cards[i]
|
||||||
|
new_card.reparent($cards.get_child(i), false)
|
||||||
|
new_card.owner = self
|
||||||
|
new_card.connect("mouse_entered", Callable(self, "get_highlight"))
|
||||||
|
options.append(new_card)
|
||||||
|
anim_players.append($cards.get_child(i).get_child(0))
|
||||||
|
reset()
|
||||||
|
|
||||||
func fill_post_slots():
|
func fill_post_slots():
|
||||||
var post_its: Array[PostIt] = []
|
var post_its: Array[PostIt] = []
|
||||||
for card in output:
|
for card in output:
|
||||||
post_its.append_array(card.own_postits)
|
post_its.append_array(card.own_postits)
|
||||||
print(card.own_postits)
|
|
||||||
|
post_its.shuffle()
|
||||||
|
options = []
|
||||||
|
for ancor in $postIts.get_children():
|
||||||
|
ancor.remove_child(ancor.get_child(1))
|
||||||
|
|
||||||
for i in range(post_its.size()):
|
for i in range(post_its.size()):
|
||||||
options[i].replace_with(post_its[i])
|
options.append(post_its[i])
|
||||||
|
$postIts.get_child(i).add_child(options[i], false)
|
||||||
options[i].owner = self
|
options[i].owner = self
|
||||||
|
|
||||||
func _unhandled_input(event):
|
func _input(event):
|
||||||
|
if event.is_action_pressed("ui_end"):
|
||||||
|
fill_card_slots(3)
|
||||||
|
selection_state = CARDS
|
||||||
|
|
||||||
if has_stage and not _input_locked:
|
if has_stage and not _input_locked:
|
||||||
if event.is_action_pressed("ui_up") or event.is_action_pressed("ui_left") or event.is_action_pressed("ui_focus_next"):
|
if event.is_action_pressed("ui_up") or event.is_action_pressed("ui_left") or event.is_action_pressed("ui_focus_next"):
|
||||||
curr_selection_id -= 1
|
curr_selection_id -= 1
|
||||||
|
|
@ -88,10 +111,9 @@ func _unhandled_input(event):
|
||||||
curr_selection_id += 1
|
curr_selection_id += 1
|
||||||
if event.is_action_pressed("ui_accept"):
|
if event.is_action_pressed("ui_accept"):
|
||||||
pick(curr_selection_id)
|
pick(curr_selection_id)
|
||||||
if event.is_action_pressed("ui_end"):
|
|
||||||
scene_finished(1)
|
|
||||||
|
|
||||||
func pick(id: int):
|
func pick(id: int):
|
||||||
|
print("PICK")
|
||||||
if id == -1:
|
if id == -1:
|
||||||
curr_selection_id = 0
|
curr_selection_id = 0
|
||||||
return
|
return
|
||||||
|
|
@ -99,29 +121,35 @@ func pick(id: int):
|
||||||
if selection_state == CARDS:
|
if selection_state == CARDS:
|
||||||
selection_state = CARDS_SELECTED
|
selection_state = CARDS_SELECTED
|
||||||
elif selection_state == POSTS:
|
elif selection_state == POSTS:
|
||||||
selection_state = DONE
|
selection_state = POSTS_SELECTED
|
||||||
|
|
||||||
anim_players[id].play("pick")
|
anim_players[id].play("pick")
|
||||||
var yield_to = anim_players[id].animation_finished
|
var yield_to = anim_players[id].animation_finished
|
||||||
output.append(options[id])
|
output.append(options[id])
|
||||||
|
|
||||||
var sibling_id = -1
|
|
||||||
if selection_state == POSTS:
|
|
||||||
|
|
||||||
sibling_id = options.find(options[id].sibling)
|
|
||||||
|
|
||||||
print("yeet sibling ", sibling_id)
|
|
||||||
|
|
||||||
options.remove_at(id)
|
options.remove_at(id)
|
||||||
anim_players.remove_at(id)
|
anim_players.remove_at(id)
|
||||||
|
|
||||||
randomize()
|
var sibling_id = -1
|
||||||
var winning_id = randi() % options.size()
|
if selection_state == POSTS_SELECTED:
|
||||||
|
sibling_id = options.find(output.back().sibling)
|
||||||
|
options.remove_at(sibling_id)
|
||||||
|
anim_players[sibling_id].play("unshuffle")
|
||||||
|
anim_players.remove_at(sibling_id)
|
||||||
|
print("yeet sibling ", sibling_id)
|
||||||
|
|
||||||
print("Winning ID ", id)
|
var winning_id
|
||||||
|
print(options[1].text)
|
||||||
|
if !(options[1].text == "" and not id == 1):
|
||||||
|
randomize()
|
||||||
|
winning_id = randi() % options.size()
|
||||||
|
|
||||||
if winning_id == sibling_id:
|
print("Winning ID ", id)
|
||||||
winning_id = (winning_id + 1) % options.size()
|
|
||||||
|
elif options[0].text == "":
|
||||||
|
winning_id = 0
|
||||||
|
else:
|
||||||
|
winning_id = 1
|
||||||
|
|
||||||
output.append(options.pop_at(winning_id))
|
output.append(options.pop_at(winning_id))
|
||||||
anim_players.pop_at(winning_id).play("shuffle")
|
anim_players.pop_at(winning_id).play("shuffle")
|
||||||
|
|
@ -145,11 +173,13 @@ func pick(id: int):
|
||||||
|
|
||||||
await anim_players[0].animation_finished
|
await anim_players[0].animation_finished
|
||||||
selection_state = POSTS
|
selection_state = POSTS
|
||||||
elif selection_state == DONE:
|
elif selection_state == POSTS_SELECTED:
|
||||||
var out_str:Array[String] = []
|
var out_str:Array[String] = []
|
||||||
for card in output:
|
for card in output:
|
||||||
out_str.append(card.name)
|
out_str.append(card.name)
|
||||||
emit_signal("cards_picked", out_str)
|
emit_signal("cards_picked", out_str)
|
||||||
|
print(out_str)
|
||||||
|
selection_state = DONE
|
||||||
State.leave_stage(self)
|
State.leave_stage(self)
|
||||||
|
|
||||||
func handle_hover(new_highlight):
|
func handle_hover(new_highlight):
|
||||||
|
|
@ -161,10 +191,13 @@ func handle_mouse_button(new_selection: Node, button_event: InputEventMouseButto
|
||||||
if button_event.button_index == MOUSE_BUTTON_LEFT and button_event.pressed:
|
if button_event.button_index == MOUSE_BUTTON_LEFT and button_event.pressed:
|
||||||
pick(options.find(new_selection))
|
pick(options.find(new_selection))
|
||||||
|
|
||||||
func scene_finished(id: int):
|
func scene_finished(id: int, repeat):
|
||||||
fill_card_slots(id)
|
print(name, id, repeat)
|
||||||
State.transition_stage_to(self)
|
if not repeat:
|
||||||
selection_state = CARDS
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
|
fill_card_slots(id)
|
||||||
|
State.transition_stage_to(self)
|
||||||
|
selection_state = CARDS
|
||||||
|
|
||||||
func play_scene(_id):
|
func play_scene(_id, _repeat):
|
||||||
pass
|
pass
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,18 @@ tracks/1/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.174533, -0.109599]
|
"values": [0.174533, -0.109599]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath(".:scale")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0.5),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_ldr2c"]
|
[sub_resource type="Animation" id="Animation_ldr2c"]
|
||||||
resource_name = "select"
|
resource_name = "select"
|
||||||
|
|
@ -369,6 +381,18 @@ tracks/1/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.349066, 0.0]
|
"values": [0.349066, 0.0]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath(".:scale")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0.5),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_2c94q"]
|
[sub_resource type="Animation" id="Animation_2c94q"]
|
||||||
resource_name = "select"
|
resource_name = "select"
|
||||||
|
|
@ -599,6 +623,18 @@ tracks/1/keys = {
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [0.349066, 0.10472]
|
"values": [0.349066, 0.10472]
|
||||||
}
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath(".:scale")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0.5),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(1, 1)]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_pcu23"]
|
[sub_resource type="Animation" id="Animation_pcu23"]
|
||||||
resource_name = "select"
|
resource_name = "select"
|
||||||
|
|
@ -1589,6 +1625,5 @@ libraries = {
|
||||||
text = "Post 4"
|
text = "Post 4"
|
||||||
|
|
||||||
[node name="board of devs" parent="." instance=ExtResource("4_1kvte")]
|
[node name="board of devs" parent="." instance=ExtResource("4_1kvte")]
|
||||||
process_mode = 4
|
|
||||||
visible = false
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,11 @@ class_name Collectable_Ui
|
||||||
|
|
||||||
if collapse and has_stage: State.leave_stage(self)
|
if collapse and has_stage: State.leave_stage(self)
|
||||||
|
|
||||||
@export var is_story: bool = false
|
@export var is_story: bool = false:
|
||||||
|
set(story):
|
||||||
|
is_story = story
|
||||||
|
if not story:
|
||||||
|
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.text = "Order Thoughts"
|
||||||
@export var has_stage: bool = false:
|
@export var has_stage: bool = false:
|
||||||
set(focused):
|
set(focused):
|
||||||
print("set focus of card to ", focused)
|
print("set focus of card to ", focused)
|
||||||
|
|
@ -30,13 +34,9 @@ class_name Collectable_Ui
|
||||||
|
|
||||||
if focused:
|
if focused:
|
||||||
has_stage = true
|
has_stage = true
|
||||||
print(visible)
|
|
||||||
if not visible: show()
|
|
||||||
collapsed = false
|
collapsed = false
|
||||||
if collected:
|
if not visible: show()
|
||||||
$Panel/Content/Buttons/VBoxContainer/put_back.grab_focus()
|
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus()
|
||||||
else:
|
|
||||||
$Panel/Content/Buttons/VBoxContainer/collect_or_listen.grab_focus()
|
|
||||||
elif has_stage:
|
elif has_stage:
|
||||||
has_stage = false
|
has_stage = false
|
||||||
get_viewport().gui_release_focus()
|
get_viewport().gui_release_focus()
|
||||||
|
|
@ -72,6 +72,8 @@ class_name Collectable_Ui
|
||||||
$Panel/Content/ContentNotes.text = new_notes
|
$Panel/Content/ContentNotes.text = new_notes
|
||||||
|
|
||||||
signal card_collected
|
signal card_collected
|
||||||
|
signal open_board
|
||||||
|
signal scene_skipped(i: int)
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
|
|
@ -82,6 +84,7 @@ func _ready():
|
||||||
|
|
||||||
item_name = item_name
|
item_name = item_name
|
||||||
content_notes = content_notes
|
content_notes = content_notes
|
||||||
|
is_story = is_story
|
||||||
|
|
||||||
func _hide_buttons():
|
func _hide_buttons():
|
||||||
if is_inside_tree():
|
if is_inside_tree():
|
||||||
|
|
@ -108,6 +111,8 @@ func hide():
|
||||||
|
|
||||||
func show():
|
func show():
|
||||||
if !visible:
|
if !visible:
|
||||||
|
$Panel/Content/ContentNotes.visible = State.show_content_notes
|
||||||
|
$Panel/Content/Buttons/VBoxContainer/skip.visible = State.allow_skipping and is_story and not skipped
|
||||||
if not collapsed:
|
if not collapsed:
|
||||||
_show_buttons()
|
_show_buttons()
|
||||||
modulate = Color()
|
modulate = Color()
|
||||||
|
|
@ -122,8 +127,20 @@ func _yoink_focus():
|
||||||
func _on_pick_button_pressed():
|
func _on_pick_button_pressed():
|
||||||
print("card collected!")
|
print("card collected!")
|
||||||
if scene != null:
|
if scene != null:
|
||||||
get_tree().call_group("animation_player", "play_scene", scene)
|
State.leave_stage(self)
|
||||||
State.leave_stage(self)
|
get_tree().call_group("animation_player", "play_scene", scene, collected)
|
||||||
|
if skipped: emit_signal("scene_skipped", -1)
|
||||||
func _on_pick_button_released():
|
collected = true
|
||||||
|
else:
|
||||||
|
emit_signal("open_board")
|
||||||
hide()
|
hide()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_skip_pressed():
|
||||||
|
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)
|
||||||
|
|
|
||||||
|
|
@ -133,22 +133,25 @@ size_flags_vertical = 3
|
||||||
[node name="collect_or_listen" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
[node name="collect_or_listen" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Take this with you, and listen to it's story."
|
tooltip_text = "Take this with you, and listen to it's story."
|
||||||
text = "Collect"
|
text = "Order Thoughts"
|
||||||
script = SubResource("GDScript_g0qhf")
|
script = SubResource("GDScript_g0qhf")
|
||||||
|
|
||||||
[node name="Summary" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
[node name="Summary" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Take this with you, but get a neutral description of it's story."
|
tooltip_text = "Take this with you, but get a neutral description of it's story."
|
||||||
text = "get neutral summary"
|
text = "get neutral summary"
|
||||||
script = SubResource("GDScript_g0qhf")
|
script = SubResource("GDScript_g0qhf")
|
||||||
|
|
||||||
[node name="skip" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
[node name="skip" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
tooltip_text = "Choose this to entirely skip this Item without being unable to progress in the story. Skipped Segments can still be interacted with via the Pause Screen, if you decide to change your mind."
|
tooltip_text = "Choose this to entirely skip this Item without being unable to progress in the story. Skipped Segments can still be interacted with via the Pause Screen, if you decide to change your mind."
|
||||||
text = "skip"
|
text = "skip"
|
||||||
script = SubResource("GDScript_g0qhf")
|
script = SubResource("GDScript_g0qhf")
|
||||||
|
|
||||||
[node name="put_back" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
[node name="put_back" type="Button" parent="Panel/Content/Buttons/VBoxContainer"]
|
||||||
|
visible = false
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "put back"
|
text = "put back"
|
||||||
script = SubResource("GDScript_g0qhf")
|
script = SubResource("GDScript_g0qhf")
|
||||||
|
|
@ -166,10 +169,9 @@ libraries = {
|
||||||
"": SubResource("AnimationLibrary_jad23")
|
"": SubResource("AnimationLibrary_jad23")
|
||||||
}
|
}
|
||||||
|
|
||||||
[connection signal="resized" from="Panel/Content/Buttons/VBoxContainer" to="Panel/Content/Buttons" method="_on_v_box_container_resized"]
|
|
||||||
[connection signal="button_up" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_released"]
|
|
||||||
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_yoink_focus"]
|
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_yoink_focus"]
|
||||||
[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_pressed"]
|
[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/collect_or_listen" to="." method="_on_pick_button_pressed"]
|
||||||
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/Summary" to="." method="_yoink_focus"]
|
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/Summary" to="." method="_yoink_focus"]
|
||||||
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_yoink_focus"]
|
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_yoink_focus"]
|
||||||
|
[connection signal="pressed" from="Panel/Content/Buttons/VBoxContainer/skip" to="." method="_on_skip_pressed"]
|
||||||
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/put_back" to="." method="_yoink_focus"]
|
[connection signal="focus_entered" from="Panel/Content/Buttons/VBoxContainer/put_back" to="." method="_yoink_focus"]
|
||||||
|
|
|
||||||
|
|
@ -89,6 +89,7 @@ bones/61/rotation = Quaternion(-0.0756927, -0.222034, 0.0605057, 0.970211)
|
||||||
bones/62/rotation = Quaternion(-0.139385, -0.0586047, 0.0728769, 0.985813)
|
bones/62/rotation = Quaternion(-0.139385, -0.0586047, 0.0728769, 0.985813)
|
||||||
|
|
||||||
[node name="Loona_main" parent="Armature/Skeleton3D" index="0"]
|
[node name="Loona_main" parent="Armature/Skeleton3D" index="0"]
|
||||||
|
gi_mode = 2
|
||||||
surface_material_override/0 = SubResource("StandardMaterial3D_jdvnl")
|
surface_material_override/0 = SubResource("StandardMaterial3D_jdvnl")
|
||||||
|
|
||||||
[node name="wings" parent="Armature/Skeleton3D" index="1"]
|
[node name="wings" parent="Armature/Skeleton3D" index="1"]
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
signal skip
|
||||||
|
@export var skip_delay: float = 0.5
|
||||||
|
@export var costum_owner: NodePath
|
||||||
|
var time_pressed: float = 0
|
||||||
|
@onready var button: Button = $"Skip Button"
|
||||||
|
@onready var progress: ProgressBar = $ProgressBar
|
||||||
|
var pressed: bool
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
owner = get_node(costum_owner)
|
||||||
|
|
||||||
|
if owner == null:
|
||||||
|
owner = get_parent().get_parent()
|
||||||
|
|
||||||
|
owner.connect("visibility_changed", Callable(self, "owner_visibility_changed"))
|
||||||
|
visible = owner.visible
|
||||||
|
|
||||||
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
|
func _process(delta):
|
||||||
|
if pressed and visible:
|
||||||
|
time_pressed += delta
|
||||||
|
progress.value = time_pressed / skip_delay
|
||||||
|
if time_pressed >= skip_delay:
|
||||||
|
emit_signal("skip")
|
||||||
|
pressed = false
|
||||||
|
time_pressed = 0
|
||||||
|
|
||||||
|
func _input(event):
|
||||||
|
if visible:
|
||||||
|
if event.is_action_pressed("skip"):
|
||||||
|
pressed = true
|
||||||
|
elif event.is_action_released("skip"):
|
||||||
|
pressed = false
|
||||||
|
time_pressed = 0
|
||||||
|
|
||||||
|
func owner_visibility_changed():
|
||||||
|
visible = owner.visible
|
||||||
|
|
||||||
|
func _on_skip_button_toggled(button_pressed):
|
||||||
|
if button_pressed:
|
||||||
|
pressed = true
|
||||||
|
else:
|
||||||
|
pressed = false
|
||||||
|
time_pressed = 0
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://dvwuhobhka78d"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://logic-scenes/misc/skip_control.gd" id="1_s6riu"]
|
||||||
|
|
||||||
|
[node name="skip_control" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
size_flags_horizontal = 4
|
||||||
|
size_flags_vertical = 8
|
||||||
|
script = ExtResource("1_s6riu")
|
||||||
|
|
||||||
|
[node name="ProgressBar" type="ProgressBar" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -160.0
|
||||||
|
offset_top = -19.5
|
||||||
|
offset_right = 160.0
|
||||||
|
offset_bottom = 19.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
max_value = 1.0
|
||||||
|
show_percentage = false
|
||||||
|
|
||||||
|
[node name="Skip Button" type="Button" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -108.0
|
||||||
|
offset_top = -21.5
|
||||||
|
offset_right = 108.0
|
||||||
|
offset_bottom = 21.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
text = "hold x or [ ] to skip"
|
||||||
|
|
||||||
|
[connection signal="toggled" from="Skip Button" to="." method="_on_skip_button_toggled"]
|
||||||
|
|
@ -164,10 +164,14 @@ func _input(event:InputEvent):
|
||||||
State.take_stage(self, true)
|
State.take_stage(self, true)
|
||||||
get_tree().call_group("interactables", "collapse")
|
get_tree().call_group("interactables", "collapse")
|
||||||
|
|
||||||
func play_scene(id: int):
|
func play_scene(id: int, _repeat):
|
||||||
if id == Scenes.id.YOUTH_DRAEVEN:
|
if id == Scenes.id.YOUTH_DRAEVEN:
|
||||||
var rotation_tween = create_tween()
|
var rotation_tween = create_tween()
|
||||||
|
|
||||||
|
func scene_finished(_id, repeat: bool):
|
||||||
|
if repeat:
|
||||||
|
State.take_stage(self, true)
|
||||||
|
|
||||||
func _on_bed_enter(_body):
|
func _on_bed_enter(_body):
|
||||||
if not (crouched or on_crouch_cooldown):
|
if not (crouched or on_crouch_cooldown):
|
||||||
$PlayerAnimationPlayer.queue("crouch")
|
$PlayerAnimationPlayer.queue("crouch")
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,16 @@ func _on_provide_summaries_toggled(button_pressed):
|
||||||
|
|
||||||
func _on_allow_skipping_toggled(button_pressed):
|
func _on_allow_skipping_toggled(button_pressed):
|
||||||
State.allow_skipping = button_pressed
|
State.allow_skipping = button_pressed
|
||||||
|
|
||||||
|
func hide():
|
||||||
|
get_parent().get_child(0).get_ready()
|
||||||
|
var child_tween = create_tween()
|
||||||
|
child_tween.tween_property($CenterContainer, \"modulate\", Color(1, 1, 1, 0), .5)
|
||||||
|
await child_tween.finished
|
||||||
|
var self_tween = create_tween()
|
||||||
|
self_tween.tween_property(self, \"modulate\", Color(1, 1, 1, 0), .5)
|
||||||
|
await self_tween.finished
|
||||||
|
self.visible = false
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_ia432"]
|
[sub_resource type="GDScript" id="GDScript_ia432"]
|
||||||
|
|
@ -252,11 +262,16 @@ layout_mode = 2
|
||||||
theme_type_variation = &"HeaderLarge"
|
theme_type_variation = &"HeaderLarge"
|
||||||
text = "physical Accessibility"
|
text = "physical Accessibility"
|
||||||
|
|
||||||
|
[node name="Label4" type="Label" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "sorry none of these work yet :c"
|
||||||
|
|
||||||
[node name="Container2" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
[node name="Container2" type="VBoxContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
[node name="Screenreader" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
[node name="Screenreader" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
disabled = true
|
||||||
text = "activate Screenreader"
|
text = "activate Screenreader"
|
||||||
script = SubResource("GDScript_v567h")
|
script = SubResource("GDScript_v567h")
|
||||||
|
|
||||||
|
|
@ -270,6 +285,7 @@ text = "disable rendering"
|
||||||
|
|
||||||
[node name="simplified controls" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
[node name="simplified controls" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
disabled = true
|
||||||
text = "simplified Controls"
|
text = "simplified Controls"
|
||||||
|
|
||||||
[node name="margin" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
[node name="margin" type="MarginContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2"]
|
||||||
|
|
@ -295,6 +311,7 @@ layout_mode = 2
|
||||||
[node name="ItemList" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
[node name="ItemList" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
disabled = true
|
||||||
item_count = 5
|
item_count = 5
|
||||||
selected = 1
|
selected = 1
|
||||||
popup/item_0/text = "messy handwriting"
|
popup/item_0/text = "messy handwriting"
|
||||||
|
|
@ -319,6 +336,7 @@ layout_mode = 2
|
||||||
[node name="ItemList2" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
[node name="ItemList2" type="OptionButton" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
|
disabled = true
|
||||||
item_count = 3
|
item_count = 3
|
||||||
selected = 1
|
selected = 1
|
||||||
popup/item_0/text = "none"
|
popup/item_0/text = "none"
|
||||||
|
|
@ -339,6 +357,7 @@ layout_mode = 2
|
||||||
[node name="HSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
[node name="HSlider" type="HSlider" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility/Container2/GridContainer"]
|
||||||
custom_minimum_size = Vector2(0, 60)
|
custom_minimum_size = Vector2(0, 60)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
editable = false
|
||||||
|
|
||||||
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/physical Accessibility"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -391,7 +410,7 @@ size_flags_horizontal = 3
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
max_value = 1.0
|
max_value = 1.0
|
||||||
step = 0.05
|
step = 0.05
|
||||||
value = 1.0
|
value = 0.5
|
||||||
ticks_on_borders = true
|
ticks_on_borders = true
|
||||||
script = ExtResource("3_q2gbh")
|
script = ExtResource("3_q2gbh")
|
||||||
|
|
||||||
|
|
@ -573,17 +592,18 @@ You can always choose to just get a neutral summary of scenes or skip them entir
|
||||||
[/ul]"
|
[/ul]"
|
||||||
fit_content = true
|
fit_content = true
|
||||||
|
|
||||||
[node name="CheckBox" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
[node name="content_notes" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "show content notes relevant to the current context"
|
text = "show content notes during the game"
|
||||||
|
|
||||||
[node name="CheckBox2" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
[node name="allow_skipping" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "prompt me with content notes before playing a scene"
|
text = "allow me to skip scenes"
|
||||||
|
|
||||||
[node name="CheckBox3" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
[node name="provide_summary" type="CheckBox" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "I would like to be able to skip scenes and get a summary."
|
disabled = true
|
||||||
|
text = "Provide me with an optional neutral summary when skipping a scene."
|
||||||
|
|
||||||
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
[node name="navbuttons" type="VSplitContainer" parent="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -655,6 +675,7 @@ size_flags_vertical = 8
|
||||||
text = "skip all"
|
text = "skip all"
|
||||||
|
|
||||||
[node name="CheckBox" type="CheckBox" parent="continue"]
|
[node name="CheckBox" type="CheckBox" parent="continue"]
|
||||||
|
visible = false
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 8
|
anchors_preset = 8
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
|
|
@ -687,11 +708,12 @@ text = "I stream this game, please show content notes."
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Audio Settings/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes" method="show"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes" method="show"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" method="set_disabled" binds= [true]]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/show content Notes" method="set_disabled" binds= [true]]
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox" to="." method="_on_content_notes_toggled"]
|
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/content_notes" to="." method="_on_content_notes_toggled"]
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox2" to="." method="_on_provide_summaries_toggled"]
|
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/allow_skipping" to="." method="_on_provide_summaries_toggled"]
|
||||||
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/CheckBox3" to="." method="_on_allow_skipping_toggled"]
|
[connection signal="toggled" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/ScrollContainer/Content Notes/VBoxContainer5/VBoxContainer/provide_summary" to="." method="_on_allow_skipping_toggled"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Content Notes/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="next"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/Next" to="." method="hide"]
|
||||||
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
[connection signal="pressed" from="CenterContainer/PanelContainer/VBoxContainer/TabContainer/Managing Expectations/navbuttons/previous" to="CenterContainer/PanelContainer/VBoxContainer/TabContainer" method="previous"]
|
||||||
|
[connection signal="pressed" from="continue" to="." method="hide"]
|
||||||
[connection signal="toggled" from="continue/CheckBox" to="." method="_on_streaming_notes_toggled"]
|
[connection signal="toggled" from="continue/CheckBox" to="." method="_on_streaming_notes_toggled"]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
[gd_scene load_steps=10 format=3 uid="uid://befxf8uruwnrl"]
|
[gd_scene load_steps=9 format=3 uid="uid://befxf8uruwnrl"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://balmcptv73l2j" path="res://dev-util/menu_background.png" id="1_0oiki"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"]
|
[ext_resource type="PackedScene" uid="uid://gldtxysavetf" path="res://logic-scenes/startup/startup.tscn" id="1_v5rpm"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b3b0gyvklqn50" path="res://base-environments/youth_room/youth_room.tscn" id="2_23ia3"]
|
[ext_resource type="PackedScene" uid="uid://b3b0gyvklqn50" path="res://base-environments/youth_room/youth_room.tscn" id="2_23ia3"]
|
||||||
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_8hrj7"]
|
[ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/messy.theme" id="3_8hrj7"]
|
||||||
|
|
@ -13,21 +12,12 @@
|
||||||
[sub_resource type="GDScript" id="GDScript_8sq0u"]
|
[sub_resource type="GDScript" id="GDScript_8sq0u"]
|
||||||
script/source = "extends Label
|
script/source = "extends Label
|
||||||
|
|
||||||
func _process(delta):
|
func _process(_delta):
|
||||||
text = str(Engine.get_frames_per_second())
|
text = str(Engine.get_frames_per_second())
|
||||||
"
|
"
|
||||||
|
|
||||||
[node name="root" type="Node3D"]
|
[node name="root" type="Node3D"]
|
||||||
|
|
||||||
[node name="MenuBackground" type="TextureRect" parent="."]
|
|
||||||
visible = false
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
texture = ExtResource("1_0oiki")
|
|
||||||
|
|
||||||
[node name="youth room" parent="." instance=ExtResource("2_23ia3")]
|
[node name="youth room" parent="." instance=ExtResource("2_23ia3")]
|
||||||
|
|
||||||
[node name="Main Menu" type="Panel" parent="."]
|
[node name="Main Menu" type="Panel" parent="."]
|
||||||
|
|
@ -76,7 +66,6 @@ offset_bottom = 35.0
|
||||||
script = SubResource("GDScript_8sq0u")
|
script = SubResource("GDScript_8sq0u")
|
||||||
|
|
||||||
[node name="Startup Menu" parent="." instance=ExtResource("1_v5rpm")]
|
[node name="Startup Menu" parent="." instance=ExtResource("1_v5rpm")]
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="Disclaimer" parent="." instance=ExtResource("7_t45fc")]
|
[node name="Disclaimer" parent="." instance=ExtResource("7_t45fc")]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,11 @@ config_version=5
|
||||||
|
|
||||||
config/name="Frame of Mind"
|
config/name="Frame of Mind"
|
||||||
run/main_scene="res://main.tscn"
|
run/main_scene="res://main.tscn"
|
||||||
config/features=PackedStringArray("4.0", "Forward Plus")
|
config/features=PackedStringArray("4.1", "Forward Plus")
|
||||||
run/max_fps=60
|
run/max_fps=60
|
||||||
|
boot_splash/bg_color=Color(0.0313726, 0.0117647, 0.129412, 1)
|
||||||
|
boot_splash/image="res://splash.png"
|
||||||
|
boot_splash/fullsize=false
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
@ -77,7 +80,7 @@ player_backwards={
|
||||||
}
|
}
|
||||||
mouse_left={
|
mouse_left={
|
||||||
"deadzone": 0.5,
|
"deadzone": 0.5,
|
||||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null)
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
look_right={
|
look_right={
|
||||||
|
|
@ -100,6 +103,12 @@ look_down={
|
||||||
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":1.0,"script":null)
|
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":1.0,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
skip={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [null, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":88,"key_label":0,"unicode":120,"echo":false,"script":null)
|
||||||
|
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":true,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ func _ready():
|
||||||
|
|
||||||
# Intented for use when an actor wants focus for itself, can reclaim focus, thus dropping the stack that focused.
|
# Intented for use when an actor wants focus for itself, can reclaim focus, thus dropping the stack that focused.
|
||||||
func take_stage(actor: Object, reclaim: bool = false) -> bool:
|
func take_stage(actor: Object, reclaim: bool = false) -> bool:
|
||||||
|
if lock_focus: return false
|
||||||
if reclaim:
|
if reclaim:
|
||||||
stage_list.front().has_stage = false
|
stage_list.front().has_stage = false
|
||||||
if stage_list.has(actor):
|
if stage_list.has(actor):
|
||||||
|
|
@ -36,11 +37,11 @@ func take_stage(actor: Object, reclaim: bool = false) -> bool:
|
||||||
|
|
||||||
# Element no longer wants focus, if Element itself is also dropped, this option can be chosen aswell.
|
# Element no longer wants focus, if Element itself is also dropped, this option can be chosen aswell.
|
||||||
func leave_stage(actor:Object, dropObject: bool = false) -> bool:
|
func leave_stage(actor:Object, dropObject: bool = false) -> bool:
|
||||||
if lock_focus or get_tree().paused:
|
if get_tree().paused:
|
||||||
push_error(actor, " wanted to drop focus while it was locked or tree is paused.")
|
push_error(actor, " wanted to drop focus while tree is paused.")
|
||||||
|
|
||||||
if not dropObject: actor.has_stage = false
|
if not dropObject: actor.has_stage = false
|
||||||
|
lock_focus = false
|
||||||
stage_list.erase(actor)
|
stage_list.erase(actor)
|
||||||
|
|
||||||
if stage_list != []:
|
if stage_list != []:
|
||||||
|
|
@ -53,10 +54,10 @@ func leave_stage(actor:Object, dropObject: bool = false) -> bool:
|
||||||
func get_current_actor(): return stage_list.front()
|
func get_current_actor(): return stage_list.front()
|
||||||
|
|
||||||
# Used to put a new target on top of the Focus Stack.
|
# Used to put a new target on top of the Focus Stack.
|
||||||
func pass_stage_to(target:Object) -> bool:
|
func pass_stage_to(target:Object, force = false) -> bool:
|
||||||
if "pass_to_actor" in target:
|
if "pass_to_actor" in target:
|
||||||
pass_stage_to(target.pass_to_actor)
|
pass_stage_to(target.pass_to_actor)
|
||||||
if lock_focus or get_tree().paused:
|
if (lock_focus or get_tree().paused) and not force:
|
||||||
push_error(target, " requested focus while it was locked or tree is paused.")
|
push_error(target, " requested focus while it was locked or tree is paused.")
|
||||||
elif !is_instance_valid(target):
|
elif !is_instance_valid(target):
|
||||||
push_error("Focus instance not valid")
|
push_error("Focus instance not valid")
|
||||||
|
|
@ -77,13 +78,14 @@ func pass_stage_to(target:Object) -> bool:
|
||||||
|
|
||||||
# Currently focused element loses focus, but remains in stack.
|
# Currently focused element loses focus, but remains in stack.
|
||||||
func free_focus():
|
func free_focus():
|
||||||
|
if lock_focus: return false
|
||||||
if stage_list.size() > 0: stage_list.front().has_stage = false
|
if stage_list.size() > 0: stage_list.front().has_stage = false
|
||||||
|
|
||||||
func transition_stage_to(thief: Object):
|
func transition_stage_to(thief: Object):
|
||||||
if stage_list.size() > 0:
|
if stage_list.size() > 0:
|
||||||
if stage_list.front().has_stage:
|
if stage_list.front().has_stage:
|
||||||
stage_list.pop_front().has_stage = false
|
stage_list.pop_front().has_stage = false
|
||||||
return pass_stage_to(thief)
|
return pass_stage_to(thief, true)
|
||||||
|
|
||||||
func queue_for_stage(target: Object, index: int = 1):
|
func queue_for_stage(target: Object, index: int = 1):
|
||||||
stage_list.insert(index, target)
|
stage_list.insert(index, target)
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 71 KiB |
|
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cnv7ggin2e0nk"
|
||||||
|
path="res://.godot/imported/splash.png-929ed8a00b89ba36c51789452f874c77.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://splash.png"
|
||||||
|
dest_files=["res://.godot/imported/splash.png-929ed8a00b89ba36c51789452f874c77.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
|
|
@ -1,15 +1,18 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://citwb7f4dl3l1"]
|
[gd_scene load_steps=9 format=3 uid="uid://citwb7f4dl3l1"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_picwm"]
|
[ext_resource type="Texture2D" uid="uid://d0ucjqi8tx6vt" path="res://import/interface-elements/frame.png" id="1_picwm"]
|
||||||
[ext_resource type="FontFile" uid="uid://cb66e4mqysgf8" path="res://import/fonts/title_handwriting.tres" id="2_jb5y5"]
|
[ext_resource type="FontFile" uid="uid://cb66e4mqysgf8" path="res://import/fonts/title_handwriting.tres" id="2_jb5y5"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_oob40"]
|
[ext_resource type="Texture2D" uid="uid://bwicl5q0lw06q" path="res://import/interface-elements/bottom.png" id="3_oob40"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="4_48hwg"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://vkcdj8c3ytbq" path="res://logic-scenes/board/post-it.tscn" id="5_sfuv4"]
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_d32iw"]
|
[sub_resource type="GDScript" id="GDScript_ugp0t"]
|
||||||
script/source = "extends Button
|
script/source = "extends Button
|
||||||
|
|
||||||
|
|
||||||
func _pressed():
|
func _pressed():
|
||||||
OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/wikis/home\")
|
OS.shell_open(\"https://cryptpad.fr/form/#/2/form/view/T9XKMBPfCz85HoGGnt8nwl1OMyU18dMi7ubZZUJlBTM/\")
|
||||||
|
get_tree().quit()
|
||||||
"
|
"
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_m3ofj"]
|
[sub_resource type="GDScript" id="GDScript_m3ofj"]
|
||||||
|
|
@ -20,6 +23,14 @@ func _pressed():
|
||||||
OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/blob/main/design/contributions.md\")
|
OS.shell_open(\"https://gitlab.com/betalars/frame-of-mind/-/blob/main/design/contributions.md\")
|
||||||
"
|
"
|
||||||
|
|
||||||
|
[sub_resource type="GDScript" id="GDScript_unahj"]
|
||||||
|
script/source = "extends Button
|
||||||
|
|
||||||
|
|
||||||
|
func _on_pressed():
|
||||||
|
get_tree().quit()
|
||||||
|
"
|
||||||
|
|
||||||
[node name="ending" type="Panel"]
|
[node name="ending" type="Panel"]
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
|
@ -33,6 +44,7 @@ layout_mode = 1
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
|
offset_right = -478.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
|
||||||
|
|
@ -74,7 +86,8 @@ horizontal_alignment = 1
|
||||||
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label2" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 3
|
size_flags_horizontal = 3
|
||||||
text = "By testing the alpha, you help us make the game as good as it can get.
|
text = "We are sorry, that you did not yet have the ability to resolve Lisas thoughts.
|
||||||
|
By testing the alpha, you help us make the game as good as it can get.
|
||||||
|
|
||||||
Frame of mind is
|
Frame of mind is
|
||||||
made by betalars
|
made by betalars
|
||||||
|
|
@ -101,7 +114,7 @@ size_flags_horizontal = 4
|
||||||
theme_override_fonts/font = ExtResource("2_jb5y5")
|
theme_override_fonts/font = ExtResource("2_jb5y5")
|
||||||
theme_override_font_sizes/font_size = 50
|
theme_override_font_sizes/font_size = 50
|
||||||
text = "Quit and fill out the Survey"
|
text = "Quit and fill out the Survey"
|
||||||
script = SubResource("GDScript_d32iw")
|
script = SubResource("GDScript_ugp0t")
|
||||||
|
|
||||||
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
[node name="Label3" type="Label" parent="childhood/PanelContainer/VBoxContainer"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
@ -124,3 +137,36 @@ size_flags_vertical = 8
|
||||||
texture = ExtResource("3_oob40")
|
texture = ExtResource("3_oob40")
|
||||||
expand_mode = 2
|
expand_mode = 2
|
||||||
stretch_mode = 4
|
stretch_mode = 4
|
||||||
|
|
||||||
|
[node name="card" parent="childhood/PanelContainer" instance=ExtResource("4_48hwg")]
|
||||||
|
process_mode = 4
|
||||||
|
position = Vector2(1164, 301)
|
||||||
|
text = "Lukas did not ask for consent, he didn't explain a thing, I didn’t even move! Yet he dared to assume, that "
|
||||||
|
|
||||||
|
[node name="post-it" parent="childhood/PanelContainer/card" instance=ExtResource("5_sfuv4")]
|
||||||
|
position = Vector2(-61, 110)
|
||||||
|
text = "I was wet so I must have been into it"
|
||||||
|
|
||||||
|
[node name="card2" parent="childhood/PanelContainer" instance=ExtResource("4_48hwg")]
|
||||||
|
process_mode = 4
|
||||||
|
position = Vector2(1170, 589)
|
||||||
|
text = "Lukas jumped me, he didn't even explain a thing or ask consent. I was confused and paralised, so "
|
||||||
|
|
||||||
|
[node name="post-it" parent="childhood/PanelContainer/card2" instance=ExtResource("5_sfuv4")]
|
||||||
|
position = Vector2(-61, 110)
|
||||||
|
text = "I didn't say stop"
|
||||||
|
|
||||||
|
[node name="Button" type="Button" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 1
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
offset_left = -75.0
|
||||||
|
offset_top = 17.0
|
||||||
|
offset_right = -24.0
|
||||||
|
offset_bottom = 60.0
|
||||||
|
grow_horizontal = 0
|
||||||
|
text = "quit"
|
||||||
|
script = SubResource("GDScript_unahj")
|
||||||
|
|
||||||
|
[connection signal="pressed" from="Button" to="Button" method="_on_pressed"]
|
||||||
|
|
|
||||||