Compare commits

...

7 commits

26 changed files with 251 additions and 20 deletions

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://b1e65rh58ff4r"
path="res://.godot/imported/Searchin theme solo.mp3-ba1aa75fc65ffa59161905daf9a1e136.mp3str"
[deps]
source_file="res://assets/sound/Searchin theme solo.mp3"
dest_files=["res://.godot/imported/Searchin theme solo.mp3-ba1aa75fc65ffa59161905daf9a1e136.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://dun7n7bl58ie6"
path="res://.godot/imported/open_file.ogg-905b966b8b0359e8d7b66becc069e0bb.oggvorbisstr"
[deps]
source_file="res://assets/sound/open_file.ogg"
dest_files=["res://.godot/imported/open_file.ogg-905b966b8b0359e8d7b66becc069e0bb.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bdij2w3kvirgw"
path="res://.godot/imported/paper ruffling.ogg-5265ac20f155f419aa8699744e1f796d.oggvorbisstr"
[deps]
source_file="res://assets/sound/paper ruffling.ogg"
dest_files=["res://.godot/imported/paper ruffling.ogg-5265ac20f155f419aa8699744e1f796d.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://ijkgcxklr2b8"
path="res://.godot/imported/paper tear.mp3-a93c9649152c24931058c061b7c4adfe.mp3str"
[deps]
source_file="res://assets/sound/paper tear.mp3"
dest_files=["res://.godot/imported/paper tear.mp3-a93c9649152c24931058c061b7c4adfe.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

Binary file not shown.

View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://bhkjl7abxtdlj"
path="res://.godot/imported/pickup_pin.ogg-8ce253a574bca497c5967fb7ee2609f8.oggvorbisstr"
[deps]
source_file="res://assets/sound/pickup_pin.ogg"
dest_files=["res://.godot/imported/pickup_pin.ogg-8ce253a574bca497c5967fb7ee2609f8.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://cjyr1b0fxfofx"]
[gd_scene load_steps=7 format=3 uid="uid://cjyr1b0fxfofx"]
[ext_resource type="Texture2D" uid="uid://cplpndk6qv7sx" path="res://assets/photo-images/Case_Button.png" id="1_3vy0q"]
[ext_resource type="Texture2D" uid="uid://2cn7xvs6k1r5" path="res://assets/photo-images/Case_file.png" id="2_vi7i2"]
[ext_resource type="AudioStream" uid="uid://dun7n7bl58ie6" path="res://assets/sound/open_file.ogg" id="3_vi7i2"]
[sub_resource type="QuadMesh" id="QuadMesh_7cefc"]
@ -15,6 +16,7 @@ func _on_input_event(viewport: Node, event: InputEvent, _shape_idx: int) -> void
$\"..\".request_open()
else:
$\"..\".request_close()
$\"../AudioStreamPlayer2D\".play()
viewport.set_input_as_handled()
"
@ -47,4 +49,7 @@ rotation = -1.5707964
scale = Vector2(1.0000002, 1.0000002)
shape = SubResource("RectangleShape2D_vo7lu")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_vi7i2")
[connection signal="input_event" from="Area2D" to="Area2D" method="_on_input_event"]

View file

@ -1,4 +1,9 @@
[gd_scene load_steps=6 format=3 uid="uid://btcmnw6q6g0h0"]
[gd_scene load_steps=11 format=3 uid="uid://btcmnw6q6g0h0"]
[ext_resource type="AudioStream" uid="uid://csur36h1ob0ua" path="res://assets/sound/pin1.ogg" id="1_ivb85"]
[ext_resource type="AudioStream" uid="uid://bi17uqa4u7qwp" path="res://assets/sound/pin2.ogg" id="2_c6pa1"]
[ext_resource type="AudioStream" uid="uid://c7g7s8t0m88qn" path="res://assets/sound/pin3.ogg" id="3_c8ajs"]
[ext_resource type="AudioStream" uid="uid://bhkjl7abxtdlj" path="res://assets/sound/pickup_pin.ogg" id="4_c8ajs"]
[sub_resource type="QuadMesh" id="QuadMesh_87mh6"]
@ -32,26 +37,38 @@ border_width_bottom = 2
border_color = Color(0, 0, 0, 1)
border_blend = true
[sub_resource type="GDScript" id="GDScript_wl1hl"]
script/source = "extends AudioStreamPlayer2D
@export var streams : Array[Resource]
var next : int = 0
func play_next() -> void:
stream = streams[next]
next = (next + 1) % streams.size()
play()
"
[node name="PinnedPhoto" type="PinnedPhoto"]
input_pickable = true
sync_to_physics = false
[node name="MeshInstance2D" type="MeshInstance2D" parent="."]
position = Vector2(0, 78.47222)
position = Vector2(0, 69.52778)
scale = Vector2(117.99999, -159.05556)
mesh = SubResource("QuadMesh_87mh6")
texture = SubResource("ImageTexture_usqe2")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(-0.5, 79)
position = Vector2(-0.5, 70.05556)
shape = SubResource("RectangleShape2D_usqe2")
[node name="PanelContainer" type="PanelContainer" parent="."]
z_index = 1
offset_left = -215.0
offset_top = 14.0
offset_top = 5.0555573
offset_right = -69.0
offset_bottom = 150.0
offset_bottom = 141.05556
theme_override_styles/panel = SubResource("StyleBoxFlat_wl1hl")
[node name="HoverLabel" type="RichTextLabel" parent="PanelContainer"]
@ -62,4 +79,12 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_ivb85")
text = "PLACEHOLDER TOOLTIP"
fit_content = true
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
[node name="PinnedSound" type="AudioStreamPlayer2D" parent="."]
script = SubResource("GDScript_wl1hl")
streams = [ExtResource("1_ivb85"), ExtResource("2_c6pa1"), ExtResource("3_c8ajs")]
[node name="PickupSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("4_c8ajs")
[connection signal="grabbed" from="." to="PickupSound" method="play"]
[connection signal="released" from="." to="PinnedSound" method="play_next"]

View file

@ -1,20 +1,21 @@
[gd_scene load_steps=6 format=3 uid="uid://qmb60kjx6yoe"]
[gd_scene load_steps=7 format=3 uid="uid://qmb60kjx6yoe"]
[ext_resource type="Texture2D" uid="uid://bwu83rfxi4mmh" path="res://assets/photo-images/Victim_Button.png" id="1_ajbhq"]
[ext_resource type="Texture2D" uid="uid://ckj2guah0egq0" path="res://assets/photo-images/Victim_file.png" id="2_ajbhq"]
[ext_resource type="AudioStream" uid="uid://dun7n7bl58ie6" path="res://assets/sound/open_file.ogg" id="3_oknob"]
[sub_resource type="QuadMesh" id="QuadMesh_7cefc"]
[sub_resource type="GDScript" id="GDScript_7cefc"]
script/source = "extends Area2D
func _on_input_event(viewport: Node, event: InputEvent, _shape_idx: int) -> void:
if event is InputEventMouseButton:
if not $\"..\".is_open():
$\"..\".request_open()
else:
$\"..\".request_close()
$\"../AudioStreamPlayer2D\".play()
viewport.set_input_as_handled()
"
@ -37,6 +38,10 @@ scale = Vector2(-667.5, 973.5)
mesh = SubResource("QuadMesh_7cefc")
texture = ExtResource("2_ajbhq")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
position = Vector2(29.00617, 176.89134)
stream = ExtResource("3_oknob")
[node name="Area2D" type="Area2D" parent="."]
position = Vector2(29.00617, 176.89134)
script = SubResource("GDScript_7cefc")

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=6 format=3 uid="uid://drcl138k0gym0"]
[gd_scene load_steps=7 format=3 uid="uid://drcl138k0gym0"]
[ext_resource type="Texture2D" uid="uid://dravu5852jgek" path="res://assets/photo-images/Witness_Button.png" id="1_a8epn"]
[ext_resource type="Texture2D" uid="uid://b17g56nxrdbti" path="res://assets/photo-images/Witness_file.png" id="2_a8epn"]
[ext_resource type="AudioStream" uid="uid://dun7n7bl58ie6" path="res://assets/sound/open_file.ogg" id="3_qp4tg"]
[sub_resource type="QuadMesh" id="QuadMesh_7cefc"]
@ -15,6 +16,7 @@ func _on_input_event(viewport: Node, event: InputEvent, _shape_idx: int) -> void
$\"..\".request_open()
else:
$\"..\".request_close()
$\"../AudioStreamPlayer2D\".play()
viewport.set_input_as_handled()
"
@ -47,4 +49,7 @@ rotation = -1.5707964
scale = Vector2(1.0000002, 1.0000002)
shape = SubResource("RectangleShape2D_vo7lu")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("3_qp4tg")
[connection signal="input_event" from="Area2D" to="Area2D" method="_on_input_event"]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=3 uid="uid://o3ri154wpbrx"]
[gd_scene load_steps=23 format=3 uid="uid://o3ri154wpbrx"]
[ext_resource type="PackedScene" uid="uid://btcmnw6q6g0h0" path="res://objects/pinned_photo.tscn" id="1_7cefc"]
[ext_resource type="PackedScene" uid="uid://kk4ecpjc4puc" path="res://scenes/results_ui.tscn" id="1_thvsl"]
@ -11,6 +11,8 @@
[ext_resource type="Texture2D" uid="uid://ulj00tq5b0kx" path="res://assets/photo-images/Untitled_Artwork.png" id="4_r41gl"]
[ext_resource type="Texture2D" uid="uid://dyagjhgq52sht" path="res://assets/photo-images/Envelope_Front.png" id="5_r41gl"]
[ext_resource type="Texture2D" uid="uid://be1xto717rt6n" path="res://assets/photo-images/Murder_Suspect_File.png" id="6_xic1t"]
[ext_resource type="AudioStream" uid="uid://b1e65rh58ff4r" path="res://assets/sound/Searchin theme solo.mp3" id="12_r41gl"]
[ext_resource type="Texture2D" uid="uid://dsote57os8rr4" path="res://assets/photo-images/Start_Screen.png" id="13_xic1t"]
[sub_resource type="GDScript" id="GDScript_thvsl"]
script/source = "extends Node2D
@ -72,6 +74,22 @@ func _on_any_slot_selection_changed(_new_value: int) -> void:
update_can_send()
"
[sub_resource type="GDScript" id="GDScript_r41gl"]
script/source = "extends Area2D
func _unhandled_input(event : InputEvent) -> void:
if not event.is_class(\"InputEventMouseButton\"):
return
var button : InputEventMouseButton = event
if button.button_index == MOUSE_BUTTON_LEFT:
get_viewport().set_input_as_handled()
queue_free();
"
[sub_resource type="RectangleShape2D" id="RectangleShape2D_r41gl"]
size = Vector2(1992, 1138)
[node name="Workspace" type="Node2D"]
script = SubResource("GDScript_thvsl")
conclusion_screen = ExtResource("1_thvsl")
@ -210,16 +228,37 @@ clue = 12
position = Vector2(814, 363)
clue = 11
[node name="VictimFile" parent="." instance=ExtResource("2_vo7lu")]
[node name="VictimFile" parent="." node_paths=PackedStringArray("open_position") instance=ExtResource("2_vo7lu")]
open_position = NodePath("../FilePositionTarget")
[node name="WitnessReport" parent="." instance=ExtResource("3_wjago")]
[node name="WitnessReport" parent="." node_paths=PackedStringArray("open_position") instance=ExtResource("3_wjago")]
open_position = NodePath("../FilePositionTarget")
[node name="CaseFile" parent="." instance=ExtResource("4_cnvne")]
[node name="CaseFile" parent="." node_paths=PackedStringArray("open_position") instance=ExtResource("4_cnvne")]
open_position = NodePath("../FilePositionTarget")
[node name="FilePositionTarget" type="Node2D" parent="."]
position = Vector2(678.00006, 63.999996)
rotation = -0.0034519732
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("12_r41gl")
volume_db = -13.79
autoplay = true
parameters/looping = true
[node name="Area2D" type="Area2D" parent="."]
script = SubResource("GDScript_r41gl")
[node name="Sprite2D" type="Sprite2D" parent="Area2D"]
position = Vector2(968, 543)
scale = Vector2(1.0489583, 1.0925926)
texture = ExtResource("13_xic1t")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(970, 544)
shape = SubResource("RectangleShape2D_r41gl")
[connection signal="selection_changed" from="Handin/WeaponSlot" to="Handin/SubmitButton" method="_on_any_slot_selection_changed"]
[connection signal="selection_changed" from="Handin/MotiveSlot" to="Handin/SubmitButton" method="_on_any_slot_selection_changed"]
[connection signal="selection_changed" from="Handin/MurdererSlot" to="Handin/SubmitButton" method="_on_any_slot_selection_changed"]

View file

@ -8,6 +8,8 @@
#include "you_done_it/conclusion_field.h"
#include "you_done_it/ydi_networking.h"
bool PinnedPhoto::a_photo_is_held{};
String const PinnedPhoto::sig_grabbed{ "grabbed" };
String const PinnedPhoto::sig_released{ "released" };
@ -44,8 +46,8 @@ void PinnedPhoto::process(double delta) {
void PinnedPhoto::on_input_event(Viewport *viewport, Ref<InputEvent> event, int shape) {
Ref<InputEventMouseButton> button{ event };
if (!this->is_held && button.is_valid() && button->is_pressed()) {
this->is_held = true;
if (!a_photo_is_held && !this->is_held && button.is_valid() && button->is_pressed()) {
a_photo_is_held = this->is_held = true;
viewport->set_input_as_handled();
if (this->conclusion_field) {
this->conclusion_field->notify_photo_picked(this);
@ -62,7 +64,7 @@ void PinnedPhoto::unhandled_input(Ref<InputEvent> const &event) {
Ref<InputEventMouseButton> button{ event };
if (this->is_held && button.is_valid() && button->is_released()) {
if (!this->near_fields.is_empty()) {
this->is_held = false;
a_photo_is_held = this->is_held = false;
this->conclusion_field = this->near_fields[this->near_fields.size() - 1];
this->conclusion_field->notify_photo_dropped(this);
get_viewport()->set_input_as_handled();
@ -71,7 +73,7 @@ void PinnedPhoto::unhandled_input(Ref<InputEvent> const &event) {
this->popup_container->set_visible(false);
emit_signal(sig_released);
} else if (this->can_drop) {
this->is_held = false;
a_photo_is_held = this->is_held = false;
get_viewport()->set_input_as_handled();
set_global_rotation(0.0);
this->popup_container->set_visible(false);

View file

@ -12,6 +12,7 @@ class ConclusionField;
class PinnedPhoto : public AnimatableBody2D {
GDCLASS(PinnedPhoto, AnimatableBody2D);
static void _bind_methods();
static bool a_photo_is_held;
void enter_tree();
void on_child_entered_tree(Node *node);
void process(double delta);

View file

@ -1,4 +1,4 @@
[gd_resource type="ClueDB" load_steps=39 format=3 uid="uid://dlf8dxiter8b8"]
[gd_resource type="ClueDB" load_steps=40 format=3 uid="uid://dlf8dxiter8b8"]
[ext_resource type="Texture2D" uid="uid://fiydbekjt06r" path="res://Screenshots/stapler.png" id="1_mhl4k"]
[ext_resource type="Texture2D" uid="uid://bwgimdlsfucwd" path="res://Screenshots/victim_blood.png" id="2_k2o5n"]
@ -13,6 +13,7 @@
[ext_resource type="Texture2D" uid="uid://bwl8soqxphntw" path="res://Screenshots/victim_blood_corner.png" id="9_fqtcy"]
[ext_resource type="Texture2D" uid="uid://c305cifiiewf2" path="res://Screenshots/fingerprints_phone.png" id="9_k6v75"]
[ext_resource type="Texture2D" uid="uid://cbtvb611mgvon" path="res://Screenshots/business_card_graves.png" id="9_qpqg2"]
[ext_resource type="Texture2D" uid="uid://boeo630rggcpn" path="res://Screenshots/hair.png" id="10_037ed"]
[sub_resource type="ClueData" id="ClueData_kxjsf"]
id = 0
@ -56,6 +57,7 @@ image = ExtResource("9_k6v75")
[sub_resource type="ClueData" id="ClueData_fqtcy"]
id = 10
image = ExtResource("10_037ed")
[sub_resource type="ClueData" id="ClueData_qpqg2"]
id = 11

View file

@ -0,0 +1,21 @@
[gd_resource type="AudioBusLayout" load_steps=3 format=3 uid="uid://nnoje36n6u0h"]
[sub_resource type="AudioEffectLowPassFilter" id="AudioEffectLowPassFilter_j3pel"]
resource_name = "LowPassFilter"
cutoff_hz = 2573.0
[sub_resource type="AudioEffectHighPassFilter" id="AudioEffectHighPassFilter_j3pel"]
resource_name = "HighPassFilter"
cutoff_hz = 500.0
[resource]
bus/1/name = &"Outside"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -0.11494255
bus/1/send = &"Master"
bus/1/effect/0/effect = SubResource("AudioEffectLowPassFilter_j3pel")
bus/1/effect/0/enabled = false
bus/1/effect/1/effect = SubResource("AudioEffectHighPassFilter_j3pel")
bus/1/effect/1/enabled = false

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=53 format=3 uid="uid://b5m5h30gog3pu"]
[gd_scene load_steps=54 format=3 uid="uid://b5m5h30gog3pu"]
[ext_resource type="PackedScene" uid="uid://2cbtvp67pwom" path="res://3D Models/Block Out VR.blend" id="1_w5aja"]
[ext_resource type="PackedScene" uid="uid://ctf3dsro4aqon" path="res://vr_base.tscn" id="2_onqr8"]
@ -49,6 +49,7 @@
[ext_resource type="PackedScene" uid="uid://c38tdehcvs0m0" path="res://3D Models/Work desk.blend" id="45_ww6lu"]
[ext_resource type="PackedScene" uid="uid://dk7l2fqdmgq04" path="res://objects/startup_prompt.tscn" id="48_v7uyc"]
[ext_resource type="Texture2D" uid="uid://dlfiwrdk15pjb" path="res://Sprites/Fingerprint.png" id="49_cjr1f"]
[ext_resource type="AudioStream" uid="uid://bknsmoeg3rs1i" path="res://sounds/Detective SFX/Searchin theme solo.mp3" id="50_nlhev"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_onqr8"]
sky_top_color = Color(1, 0.35000002, 0.55583334, 1)
@ -448,3 +449,14 @@ lower_fade = 1e-05
[node name="ClueMarker" type="ClueMarker" parent="FingerPrint"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.9849193e-10, 0.022176072, -1.5133992e-09)
clue_id = 9
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]
transform = Transform3D(-0.99949795, 0, 0.031689886, 0, 1, 0, -0.031689867, 0, -0.99949783, -0.50875837, 0.99705124, 4.78734)
stream = ExtResource("50_nlhev")
volume_db = -5.712
autoplay = true
panning_strength = 1.5
bus = &"Outside"
emission_angle_enabled = true
emission_angle_degrees = 88.0
parameters/looping = true

View file

@ -0,0 +1,19 @@
[remap]
importer="mp3"
type="AudioStreamMP3"
uid="uid://bknsmoeg3rs1i"
path="res://.godot/imported/Searchin theme solo.mp3-7d5723c3e1380fc25f737edebdcbdf2c.mp3str"
[deps]
source_file="res://sounds/Detective SFX/Searchin theme solo.mp3"
dest_files=["res://.godot/imported/Searchin theme solo.mp3-7d5723c3e1380fc25f737edebdcbdf2c.mp3str"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4