Merge branch 'main' into adi_dev
This commit is contained in:
commit
df9018ec9e
|
|
@ -0,0 +1,38 @@
|
|||
## Summary
|
||||
|
||||
(This template will help you publicly describe an issue you have encountered. Contact email support, when you do not with to openly describe your Issue.)
|
||||
|
||||
(Fill out what is relevant to your issue and delete what's not)
|
||||
|
||||
## Steps to reproduce
|
||||
(What did you do before finding the issue? Providing a step by step guide can help us solve it. Try if the issue still persists after restarting the game.)
|
||||
|
||||
Example
|
||||
1. Load the first Level
|
||||
2. Go to the Laptop and click the screen 4 times
|
||||
3. Run at the window.
|
||||
|
||||
### What did you expect to happen?
|
||||
(The player hits the window)
|
||||
|
||||
### What happend?
|
||||
(The player floats up towards the sky)
|
||||
|
||||
## Did you change any settings?
|
||||
|
||||
(We will provide you with an option to just dump your config here in the future, but for now just describe what you did.)
|
||||
|
||||
## How do you play the game?
|
||||
|
||||
(With a racing wheel and a touch screen, obviousely)
|
||||
|
||||
## Please give us some System Info
|
||||
|
||||
- OS: GameOS 42
|
||||
- Processor: intel Ryzen 1234XD
|
||||
- Graphics Card: Radeon Battlemage Pro
|
||||
|
||||
## Possible Fixes
|
||||
(This is the section for nerds, that already dug up our source code and know exactly what is going on.)
|
||||
|
||||
/label ~bug
|
||||
|
|
@ -20,14 +20,16 @@
|
|||
- [Wood Substance 009](https://ambientcg.com/view?id=WoodSubstance009)
|
||||
- [Wicker 010 B](https://ambientcg.com/view?id=Wicker010B)
|
||||
|
||||
|
||||
## Comic Illustrations
|
||||
|
||||
- by [Fernand0FC](https://www.deviantart.com/fernand0fc), CC-BY-3.0
|
||||
+ [Corporate level bodyguard](https://www.deviantart.com/fernand0fc/art/Corporate-level-bodyguard-803579124)
|
||||
+ [Into the glowing sea](https://www.deviantart.com/fernand0fc/art/Into-the-glowing-sea-834238466)
|
||||
+ [Anti-Hero](https://www.deviantart.com/fernand0fc/art/Anti-Hero-555054767)
|
||||
|
||||
|
||||
## Music
|
||||
- [Foundations I by Azure Studios](https://azurestudios.bandcamp.com/album/foundations-i-24bit), CC-BY 3.0
|
||||
|
||||
## 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 and thunder](https://freesound.org/people/MrAuralization/sounds/241294/) by [MrAuralization](https://freesound.org/people/MrAuralization/) CC-BY 3.0
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 282 KiB |
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 1.2 MiB |
30
flake.lock
30
flake.lock
|
|
@ -17,12 +17,15 @@
|
|||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1678901627,
|
||||
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -32,11 +35,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1679793451,
|
||||
"narHash": "sha256-JafTtgMDATE8dZOImBhWMA9RCn9AP8FVOpN+9K/tTlg=",
|
||||
"lastModified": 1689078114,
|
||||
"narHash": "sha256-osG8BrX5RpKJ7wH+vI6auOU+ctvNOblT4XXCgknK47c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "0cd51a933d91078775b300cf0f29aa3495231aa2",
|
||||
"rev": "b6cc7ff8fee93789bc871a267ab876c3fca042cb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -50,6 +53,21 @@
|
|||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@
|
|||
|
||||
mkdir -p $out/share/${pname}
|
||||
# This just copies the export template and packs the game files next to it
|
||||
godot --headless --export-release "linux" $out/share/${pname}/${pname}
|
||||
godot4 --headless --export-release "linux" $out/share/${pname}/${pname}
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,19 @@
|
|||
extends Area3D
|
||||
|
||||
@onready var pass_to_actor = $UiWrapper/UiSprite/SubViewport/Collectable_ui
|
||||
@onready var wrapper = $UiWrapper
|
||||
@onready var ui = $UiWrapper/UiSprite/SubViewport.get_child(0)
|
||||
|
||||
var revealed: bool = false:
|
||||
set(on_stage):
|
||||
revealed = on_stage
|
||||
if on_stage:
|
||||
wrapper.show()
|
||||
ui.show()
|
||||
else:
|
||||
wrapper.hide()
|
||||
ui.hide()
|
||||
|
||||
var has_mouse: bool = false
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
|
|
@ -9,9 +22,11 @@ func _ready():
|
|||
|
||||
func _on_mouse_entered():
|
||||
input_ray_pickable = false
|
||||
$UiWrapper.show()
|
||||
$UiWrapper/UiSprite/SubViewport/Collectable_ui.show()
|
||||
ui.collapsed = false
|
||||
has_mouse = true
|
||||
|
||||
func _on_mouse_exited():
|
||||
assert(false)
|
||||
|
||||
func reveal():
|
||||
revealed = true
|
||||
|
|
|
|||
BIN
src/base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3 (Stored with Git LFS)
Normal file
BIN
src/base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3 (Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://1tvopjmo6dp2"
|
||||
path="res://.godot/imported/Azure Studios - mgd-723687677.mp3-ffcb00059cdac7ecd24487bd9e38d9cb.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://base-environments/youth_room/audio/Azure Studios - mgd-723687677.mp3"
|
||||
dest_files=["res://.godot/imported/Azure Studios - mgd-723687677.mp3-ffcb00059cdac7ecd24487bd9e38d9cb.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
|
|
@ -11,6 +11,8 @@ enum Modes {
|
|||
|
||||
signal freeze
|
||||
signal unfreeze
|
||||
signal ini_room
|
||||
signal resume_room
|
||||
|
||||
var current_mode: int = Modes.FREEZE:
|
||||
set(new_mode):
|
||||
|
|
@ -18,9 +20,7 @@ var current_mode: int = Modes.FREEZE:
|
|||
current_mode = _update_scene(new_mode)
|
||||
|
||||
func start():
|
||||
$light_animation.play("light_up")
|
||||
$AudioPlayer.play("intro")
|
||||
State.pass_stage_to($PlayerController)
|
||||
emit_signal("ini_room")
|
||||
current_mode = Modes.WALKING
|
||||
|
||||
func _update_scene(new_mode) -> int:
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ uniform float nebula_brightness = 4;
|
|||
uniform vec2 nebula_scale = vec2(1.5);
|
||||
uniform sampler2D starlight_noise;
|
||||
uniform sampler2D starlight_textures;
|
||||
uniform float rotation_speed = 0.05;
|
||||
uniform float rotation_speed = 0.02;
|
||||
uniform vec2 rotation_pivot = vec2(.8);
|
||||
uniform vec2 drift_compensation = vec2(0.1, -0.2);
|
||||
uniform float noise_strength = 0.2;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,7 +1,6 @@
|
|||
[gd_resource type="AudioBusLayout" format=3 uid="uid://djkwd76o033io"]
|
||||
|
||||
[resource]
|
||||
bus/0/mute = true
|
||||
bus/1/name = &"text"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
[gd_scene load_steps=3 format=3 uid="uid://bvowj4l8dtceu"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bvowj4l8dtceu"]
|
||||
|
||||
[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"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_cr445"]
|
||||
script/source = "extends Control
|
||||
|
||||
var has_stage: bool = false
|
||||
"
|
||||
|
||||
[node name="board of devs" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
|
|
@ -10,6 +16,7 @@ anchor_right = 1.0
|
|||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = SubResource("GDScript_cr445")
|
||||
|
||||
[node name="childhood" type="Control" parent="."]
|
||||
anchors_preset = 0
|
||||
|
|
|
|||
|
|
@ -14,11 +14,6 @@ func _process(_delta):
|
|||
look_at(look, Vector3.UP)
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event is InputEventMouse:
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_RIGHT:
|
||||
assert(false)
|
||||
return
|
||||
viewport.push_input(event)
|
||||
|
||||
func _on_input_event(_camera: Camera3D, event: InputEvent, pos: Vector3, _normal: Vector3, _shape_idx: int):
|
||||
|
|
|
|||
|
|
@ -5,13 +5,18 @@ enum ui_context {DROPZONE, POST_IT_LIST, ASSIGN_POST_IT}
|
|||
|
||||
var has_stage = false:
|
||||
set(focus):
|
||||
if focus != has_stage:
|
||||
if focus:
|
||||
has_stage = true
|
||||
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||
else:
|
||||
has_stage = false
|
||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
if focus:
|
||||
has_stage = true
|
||||
self.mouse_filter = Control.MOUSE_FILTER_PASS
|
||||
else:
|
||||
has_stage = false
|
||||
self.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
if is_node_ready():
|
||||
#fixme: thie should be replaced by a reference that holds all children ...
|
||||
for child in dropzone.get_children():
|
||||
child.on_stage = has_stage
|
||||
for child in postit_container.get_children():
|
||||
child.get_child(1).on_stage = has_stage
|
||||
|
||||
@onready var dropzone = $HBoxContainer/dropzone
|
||||
@onready var postit_container = $HBoxContainer/ScrollContainer/VBoxContainer
|
||||
|
|
@ -36,6 +41,7 @@ func _ready():
|
|||
reorder_areas("dropzone_content")
|
||||
active_context = ui_context.DROPZONE
|
||||
|
||||
has_stage = has_stage
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
|
|
|
|||
|
|
@ -10,16 +10,18 @@ var noise: Noise = FastNoiseLite.new()
|
|||
var wiggle_tween
|
||||
var scale_tween
|
||||
|
||||
var on_stage = false
|
||||
|
||||
@export var text: String = "" :
|
||||
set (value):
|
||||
set(value):
|
||||
text = value
|
||||
if is_inside_tree() or Engine.is_editor_hint():
|
||||
if get_children() != [] or Engine.is_editor_hint():
|
||||
$Label.text = value
|
||||
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||
if is_inside_tree() and !Engine.is_editor_hint():
|
||||
if !Engine.is_editor_hint():
|
||||
wiggle_pos = float(text.hash() % 100)
|
||||
_handle_wiggle(0)
|
||||
if is_inside_tree() and value == "":
|
||||
if get_children() != [] and !Engine.is_editor_hint() and text == "":
|
||||
$BackgroundSprite.void_active = true
|
||||
@export var wiggle_strength: float = 0.2
|
||||
@export var wiggle_speed: float = 5
|
||||
|
|
@ -74,17 +76,18 @@ func _ready():
|
|||
|
||||
$BackgroundSprite.frame = text.hash() % $BackgroundSprite.sprite_frames.get_frame_count($BackgroundSprite.animation)
|
||||
$Label.text = self.text
|
||||
if not Engine.is_editor_hint(): $BackgroundSprite.void_active = text == ""
|
||||
|
||||
wiggle_pos = float(text.hash() % 100)
|
||||
if not Engine.is_editor_hint():
|
||||
_handle_wiggle(0)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
|
||||
if highlighted:
|
||||
_handle_wiggle(delta)
|
||||
|
||||
_move_card()
|
||||
if self.on_stage:
|
||||
if highlighted:
|
||||
_handle_wiggle(delta)
|
||||
|
||||
_move_card()
|
||||
|
||||
func _handle_wiggle(delta):
|
||||
wiggle_pos += delta * wiggle_speed * wiggle_intensity
|
||||
|
|
@ -104,23 +107,25 @@ func _on_focus_exited():
|
|||
print(self, "is not focused")
|
||||
|
||||
func _on_mouse_entered():
|
||||
if not Input.is_action_pressed("mouse_left"):
|
||||
highlighted = true
|
||||
if "handle_hover" in owner:
|
||||
owner.handle_hover(self)
|
||||
if self.on_stage:
|
||||
if not Input.is_action_pressed("mouse_left"):
|
||||
highlighted = true
|
||||
if "handle_hover" in owner:
|
||||
owner.handle_hover(self)
|
||||
|
||||
func _on_mouse_exited():
|
||||
highlighted = false
|
||||
if self.on_stage:
|
||||
highlighted = false
|
||||
|
||||
func _on_input_event(viewport, event, shape_idx):
|
||||
|
||||
if event is InputEventMouseMotion:
|
||||
_move_card()
|
||||
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if is_dragable and "handle_mouse_button" in owner:
|
||||
owner.handle_mouse_button(self, event)
|
||||
if self.on_stage:
|
||||
if event is InputEventMouseMotion:
|
||||
_move_card()
|
||||
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if is_dragable and "handle_mouse_button" in owner:
|
||||
owner.handle_mouse_button(self, event)
|
||||
|
||||
func _move_card():
|
||||
if is_dragged:
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ var sibling
|
|||
var shift_tween
|
||||
var modulate_tween
|
||||
|
||||
var on_stage = false
|
||||
|
||||
@export var text: String = "" :
|
||||
set (value):
|
||||
if is_inside_tree() or Engine.is_editor_hint():
|
||||
|
|
@ -60,8 +62,8 @@ func replace_with(postit: PostIt):
|
|||
self.sibling = postit.sibling
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
_move_post_it()
|
||||
|
||||
if on_stage:
|
||||
_move_post_it()
|
||||
|
||||
func _on_focus_entered():
|
||||
print(self, "is focused")
|
||||
|
|
@ -70,7 +72,7 @@ func _on_focus_exited():
|
|||
print(self, "is not focused")
|
||||
|
||||
func _on_mouse_entered():
|
||||
if not Input.is_action_pressed("mouse_left"):
|
||||
if on_stage and not Input.is_action_pressed("mouse_left"):
|
||||
highlighted = true
|
||||
if "handle_hover" in owner:
|
||||
owner.handle_hover(self)
|
||||
|
|
@ -79,13 +81,14 @@ func _on_mouse_exited():
|
|||
highlighted = false
|
||||
|
||||
func _on_input_event(viewport, event, shape_idx):
|
||||
if event is InputEventMouseMotion:
|
||||
_move_post_it()
|
||||
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if is_dragable and "handle_mouse_button" in owner:
|
||||
owner.handle_mouse_button(self, event)
|
||||
if on_stage:
|
||||
if event is InputEventMouseMotion:
|
||||
_move_post_it()
|
||||
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if is_dragable and "handle_mouse_button" in owner:
|
||||
owner.handle_mouse_button(self, event)
|
||||
|
||||
func _move_post_it():
|
||||
if is_dragged:
|
||||
|
|
|
|||
|
|
@ -1491,7 +1491,6 @@ libraries = {
|
|||
|
||||
[node name="card" parent="cards/card_1" instance=ExtResource("2_dqebt")]
|
||||
text = "Slot 1"
|
||||
metadata/type = "card"
|
||||
|
||||
[node name="card_2" type="Control" parent="cards"]
|
||||
layout_mode = 2
|
||||
|
|
@ -1504,7 +1503,6 @@ libraries = {
|
|||
|
||||
[node name="card" parent="cards/card_2" instance=ExtResource("2_dqebt")]
|
||||
text = "Slot 2"
|
||||
metadata/type = "card"
|
||||
|
||||
[node name="card_3" type="Control" parent="cards"]
|
||||
layout_mode = 2
|
||||
|
|
@ -1522,7 +1520,6 @@ libraries = {
|
|||
|
||||
[node name="card" parent="cards/card_3" instance=ExtResource("2_dqebt")]
|
||||
text = "Slot 3"
|
||||
metadata/type = "card"
|
||||
|
||||
[node name="postIts" type="Panel" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
extends CenterContainer
|
||||
class_name Collectable_Ui
|
||||
|
||||
@export var scene = Scenes.id
|
||||
|
||||
@export var collapsed = true:
|
||||
set(collapse):
|
||||
if is_inside_tree() and not Engine.is_editor_hint():
|
||||
|
|
@ -17,6 +19,8 @@ class_name Collectable_Ui
|
|||
_show_buttons()
|
||||
collapsed = collapse
|
||||
|
||||
if collapse and has_stage: State.leave_stage(self)
|
||||
|
||||
@export var is_story: bool = false
|
||||
@export var has_stage: bool = false:
|
||||
set(focused):
|
||||
|
|
@ -36,9 +40,6 @@ class_name Collectable_Ui
|
|||
elif has_stage:
|
||||
has_stage = false
|
||||
get_viewport().gui_release_focus()
|
||||
#hide()
|
||||
|
||||
|
||||
|
||||
@export var collected: bool = false:
|
||||
set(set_collected):
|
||||
|
|
@ -100,22 +101,26 @@ func hide():
|
|||
_hide_buttons()
|
||||
await tween.finished
|
||||
visible = false
|
||||
if has_stage: State.leave_stage(self)
|
||||
|
||||
func show():
|
||||
if not collapsed:
|
||||
_show_buttons()
|
||||
modulate = Color()
|
||||
visible = true
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.4)
|
||||
if !visible:
|
||||
if not collapsed:
|
||||
_show_buttons()
|
||||
modulate = Color()
|
||||
visible = true
|
||||
var tween = create_tween()
|
||||
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.4)
|
||||
|
||||
func _yoink_focus():
|
||||
return # fixme
|
||||
if not has_stage:
|
||||
State.take_stage(self, true)
|
||||
State.transition_stage_to(self)
|
||||
|
||||
func _on_pick_button_pressed():
|
||||
hide()
|
||||
print("card collected!")
|
||||
emit_signal("card_collected")
|
||||
if scene != null:
|
||||
get_tree().call_group("animation_player", "play_scene", scene)
|
||||
State.leave_stage(self)
|
||||
|
||||
func _on_pick_button_released():
|
||||
hide()
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
theme = ExtResource("1_2apkb")
|
||||
script = ExtResource("1_tgjc2")
|
||||
scene = null
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
|
@ -170,6 +171,7 @@ libraries = {
|
|||
}
|
||||
|
||||
[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="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"]
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ signal ui_exited
|
|||
func _ready():
|
||||
_handle_jitter(0)
|
||||
|
||||
func _on_ini_room():
|
||||
State.take_stage(self)
|
||||
|
||||
func _process(_delta):
|
||||
|
||||
if focus_ray.get_collider() != null:
|
||||
|
|
@ -148,15 +151,17 @@ func _input(event:InputEvent):
|
|||
if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
|
||||
_handle_mouse_input(event)
|
||||
get_viewport().set_input_as_handled()
|
||||
if event is InputEventMouseButton and has_entered:
|
||||
if event is InputEventMouseButton and event.pressed:
|
||||
State.free_focus()
|
||||
get_viewport().set_input_as_handled()
|
||||
get_tree().call_group("interactables", "reveal")
|
||||
#if event.is_action_pressed("ui_accept"):
|
||||
# State.pass_stage_to(focus_ray.get_collider())
|
||||
# get_viewport().set_input_as_handled()
|
||||
|
||||
func _on_empty_click():
|
||||
State.take_stage(self, true)
|
||||
else:
|
||||
if event is InputEventMouseButton:
|
||||
if event.button_index == MOUSE_BUTTON_RIGHT and event.pressed:
|
||||
if !Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
||||
State.take_stage(self, true)
|
||||
|
||||
func _on_bed_enter(_body):
|
||||
if not (crouched or on_crouch_cooldown):
|
||||
|
|
@ -175,5 +180,3 @@ func _on_bed_exit(_body):
|
|||
on_crouch_cooldown = true
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
on_crouch_cooldown = false
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,10 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://mkccbig41bqb"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://mkccbig41bqb"]
|
||||
|
||||
[ext_resource type="Script" path="res://logic-scenes/player_controller/player_controller.gd" id="1_0b4mi"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://bfc3d4g40n0wy" path="res://logic-scenes/collectable/import/old-mask.res" id="2_vnej0"]
|
||||
|
||||
[sub_resource type="PhysicsMaterial" id="10"]
|
||||
friction = 0.0
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_r0b38"]
|
||||
script/source = "extends MeshInstance3D
|
||||
|
||||
func _process(delta):
|
||||
rotate_y(delta/3)
|
||||
"
|
||||
|
||||
[sub_resource type="SphereShape3D" id="8"]
|
||||
radius = 0.307047
|
||||
|
||||
|
|
@ -42,114 +34,6 @@ tracks/1/keys = {
|
|||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount/old_mask2:rotation")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(5.96046e-08, 1.74846e-07, -7.10543e-15)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount:position")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.11067, -0.0251684, -0.309266)]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount:rotation")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1.49012e-07, 0, 0)]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D:light_energy")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.4]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:light_energy")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [1.5]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/8/type = "value"
|
||||
tracks/8/imported = false
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:layers")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [1]
|
||||
}
|
||||
tracks/9/type = "value"
|
||||
tracks/9/imported = false
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:visible")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
tracks/10/type = "value"
|
||||
tracks/10/imported = false
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount/old_mask2:visible")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [false]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="12"]
|
||||
resource_name = "crouch"
|
||||
|
|
@ -179,106 +63,6 @@ tracks/1/keys = {
|
|||
"values": [Vector3(0, 0, 0), Vector3(-30, 0, -10), Vector3(-20, 0, 3), Vector3(0, 0, 0), Vector3(0, 0, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_5o0sk"]
|
||||
resource_name = "mask_reveal"
|
||||
length = 3.0
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount:position")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 3),
|
||||
"transitions": PackedFloat32Array(0.366021, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0.376781, -0.521269, -0.513588), Vector3(0.18, -0.025, -0.309)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount:rotation")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 3),
|
||||
"transitions": PackedFloat32Array(1, 0.378929),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, -0.698132, 0), Vector3(1.49012e-07, 0, 0)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D:light_energy")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0.8, 3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 0.4]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:light_energy")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0.2, 3),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.5]
|
||||
}
|
||||
tracks/4/type = "value"
|
||||
tracks/4/imported = false
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D:visible")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/5/type = "value"
|
||||
tracks/5/imported = false
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:layers")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [1]
|
||||
}
|
||||
tracks/6/type = "value"
|
||||
tracks/6/imported = false
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Yaw/Pitch/Mount/Camera3D/SpotLight3D2:visible")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
tracks/7/type = "value"
|
||||
tracks/7/imported = false
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Yaw/Pitch/Mount/Camera3D/memory mount/old_mask2:visible")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 1,
|
||||
"values": [false, true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="14"]
|
||||
resource_name = "stand_up"
|
||||
length = 3.0
|
||||
|
|
@ -289,10 +73,10 @@ tracks/0/path = NodePath("Yaw:position")
|
|||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.9, 1.7, 3),
|
||||
"times": PackedFloat32Array(0, 0.9, 1.8, 3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0.327816, 0), Vector3(0, 0.331, 0), Vector3(0, 1.3, 0), Vector3(0, 1.22534, 0)]
|
||||
"values": [Vector3(0, 0.327816, 0), Vector3(0, 0.331, 0), Vector3(0, 1, 0), Vector3(0, 1.22534, 0)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
|
|
@ -311,7 +95,6 @@ tracks/1/keys = {
|
|||
_data = {
|
||||
"RESET": SubResource("11"),
|
||||
"crouch": SubResource("12"),
|
||||
"mask_reveal": SubResource("Animation_5o0sk"),
|
||||
"stand_up": SubResource("14")
|
||||
}
|
||||
|
||||
|
|
@ -343,44 +126,6 @@ collision_mask = 17
|
|||
collide_with_areas = true
|
||||
collide_with_bodies = false
|
||||
|
||||
[node name="memory mount" type="Node3D" parent="Yaw/Pitch/Mount/Camera3D"]
|
||||
transform = Transform3D(0.8, 0, 0, 0, 0.8, -7.15258e-08, 0, 1.1921e-07, 0.48, 0.11067, -0.0251684, -0.309266)
|
||||
|
||||
[node name="old_mask2" type="MeshInstance3D" parent="Yaw/Pitch/Mount/Camera3D/memory mount"]
|
||||
transform = Transform3D(1, 1.75271e-14, 1.74846e-07, -7.10543e-15, 1, -5.96046e-08, -1.74846e-07, 5.96046e-08, 1, 0.0250661, 0, 0)
|
||||
visible = false
|
||||
mesh = ExtResource("2_vnej0")
|
||||
skeleton = NodePath("")
|
||||
script = SubResource("GDScript_r0b38")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="Yaw/Pitch/Mount/Camera3D/memory mount/old_mask2"]
|
||||
transform = Transform3D(1, -3.8743e-07, 5.96046e-08, 3.57628e-07, 1, 8.9407e-08, -5.96046e-08, -8.9407e-08, 1, 0.083235, -0.219628, 0.176047)
|
||||
light_color = Color(0.972549, 0.752941, 0.592157, 1)
|
||||
light_energy = 0.1
|
||||
light_specular = 0.0
|
||||
omni_range = 0.457129
|
||||
omni_attenuation = 0.659754
|
||||
|
||||
[node name="SpotLight3D" type="SpotLight3D" parent="Yaw/Pitch/Mount/Camera3D"]
|
||||
transform = Transform3D(0.584488, 0.621177, -0.522028, 0.363951, 0.374307, 0.852897, 0.725199, -0.688501, -0.00729993, 0.0601956, 0.21754, -0.271749)
|
||||
visible = false
|
||||
light_color = Color(0.97599, 0.669299, 0.509314, 1)
|
||||
light_energy = 0.4
|
||||
light_size = 0.1
|
||||
shadow_enabled = true
|
||||
spot_range = 0.394683
|
||||
spot_angle = 27.7927
|
||||
|
||||
[node name="SpotLight3D2" type="SpotLight3D" parent="Yaw/Pitch/Mount/Camera3D"]
|
||||
transform = Transform3D(0.456583, 0.0747244, 0.886537, 0.819566, -0.423063, -0.386432, 0.346185, 0.903014, -0.254405, 0.475638, -0.147216, -0.329875)
|
||||
visible = false
|
||||
light_color = Color(0.317647, 0.427451, 1, 1)
|
||||
light_energy = 1.5
|
||||
light_size = 0.1
|
||||
shadow_enabled = true
|
||||
spot_range = 0.624277
|
||||
spot_angle = 22.1657
|
||||
|
||||
[node name="PlayerCollision" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0.322255, 0)
|
||||
shape = SubResource("8")
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ config/icon="res://icon.png"
|
|||
[autoload]
|
||||
|
||||
State="*res://singletons/global_state.gd"
|
||||
Scenes="*res://singletons/scene_reference.gd"
|
||||
|
||||
[debug]
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ func take_stage(actor: Object, reclaim: bool = false) -> bool:
|
|||
if stage_list.has(actor):
|
||||
while stage_list.pop_front() != actor: break
|
||||
actor.has_stage = true
|
||||
stage_list.push_front(actor)
|
||||
return actor.has_stage
|
||||
push_warning(actor, " wanted to reclaim focus, but was not on list.")
|
||||
return pass_stage_to(actor)
|
||||
|
|
@ -58,10 +59,11 @@ func pass_stage_to(target:Object) -> bool:
|
|||
push_error("Focus instance not valid")
|
||||
elif !"has_stage" in target:
|
||||
push_error(target, " has no has focus method.")
|
||||
if stage_list.size() > 0:
|
||||
if stage_list.front() == target:
|
||||
push_warning(target, " is already target. Abort passing focus.")
|
||||
else:
|
||||
if stage_list.size() > 0:
|
||||
if stage_list.front() == target:
|
||||
push_warning(target, " is already target. Abort passing focus.")
|
||||
return false
|
||||
if not stage_list.size() == 0: stage_list.front().has_stage = false
|
||||
target.has_stage = true
|
||||
if target.has_stage:
|
||||
|
|
@ -72,7 +74,13 @@ func pass_stage_to(target:Object) -> bool:
|
|||
|
||||
# Currently focused element loses focus, but remains in stack.
|
||||
func free_focus():
|
||||
if not stage_list.front() == null: stage_list.front().has_stage = false
|
||||
if stage_list.size() > 0: stage_list.front().has_stage = false
|
||||
|
||||
func queue_for_stage(target: Object, index: int):
|
||||
func transition_stage_to(thief: Object):
|
||||
if stage_list.size() > 0:
|
||||
if stage_list.front().has_stage:
|
||||
stage_list.pop_front().has_stage = false
|
||||
return pass_stage_to(thief)
|
||||
|
||||
func queue_for_stage(target: Object, index: int = 1):
|
||||
stage_list.insert(index, target)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
extends Node
|
||||
|
||||
enum {
|
||||
enum id {
|
||||
YOUTH_CHILDHOOD,
|
||||
YOUTH_THEATRE,
|
||||
YOUTH_VOICE_TRAINING,
|
||||
YOUTH_JUI_JUTSU,
|
||||
ADULT_DND,
|
||||
ADULD_VOLUNTARY,
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ gradient = SubResource("Gradient_c8r4y")
|
|||
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_eegys"]
|
||||
emission_shape = 1
|
||||
emission_sphere_radius = 0.3
|
||||
emission_sphere_radius = 0.2
|
||||
spread = 180.0
|
||||
gravity = Vector3(0, 0.02, 0)
|
||||
initial_velocity_max = 0.2
|
||||
|
|
@ -37,7 +37,7 @@ turbulence_noise_scale = 2.0
|
|||
turbulence_noise_speed = Vector3(0.1, 0.3, 0.5)
|
||||
turbulence_noise_speed_random = 0.3
|
||||
turbulence_influence_min = 0.01
|
||||
turbulence_influence_max = 0.03
|
||||
turbulence_influence_max = 0.02
|
||||
turbulence_initial_displacement_max = 1.0
|
||||
|
||||
[sub_resource type="Shader" id="Shader_p2314"]
|
||||
|
|
@ -127,12 +127,13 @@ shader_parameter/texture_backlight = ExtResource("2_h5y3k")
|
|||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_ea2fp"]
|
||||
material = SubResource("ShaderMaterial_fgrmi")
|
||||
size = Vector2(0.1, 0.1)
|
||||
size = Vector2(0.06, 0.06)
|
||||
|
||||
[node name="collectable_particles" type="GPUParticles3D"]
|
||||
material_override = SubResource("ShaderMaterial_lpenh")
|
||||
cast_shadow = 0
|
||||
amount = 50
|
||||
lifetime = 10.0
|
||||
speed_scale = 0.5
|
||||
process_material = SubResource("ParticleProcessMaterial_eegys")
|
||||
draw_pass_1 = SubResource("QuadMesh_ea2fp")
|
||||
|
|
|
|||
Loading…
Reference in New Issue