diff --git a/assets/effects/pixelDissolve.tres b/assets/effects/pixelDissolve.tres index 1879bd4..5d442ba 100644 --- a/assets/effects/pixelDissolve.tres +++ b/assets/effects/pixelDissolve.tres @@ -8,6 +8,6 @@ resource_local_to_scene = true shader = ExtResource( 1 ) shader_param/progress = 0.0 shader_param/scale = 1.0 -shader_param/strength = 1.0 +shader_param/strength = 0.1 shader_param/noise_tex_normal = ExtResource( 2 ) shader_param/noise_tex = ExtResource( 2 ) diff --git a/assets/sounds/AMBIENCE_SciFi_Hum_01_loop_stereo.wav.import b/assets/sounds/AMBIENCE_SciFi_Hum_01_loop_stereo.wav.import index ec10453..c1c3335 100644 --- a/assets/sounds/AMBIENCE_SciFi_Hum_01_loop_stereo.wav.import +++ b/assets/sounds/AMBIENCE_SciFi_Hum_01_loop_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import b/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import index a3efd09..4dc7176 100644 --- a/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import +++ b/assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav.import @@ -16,8 +16,8 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false -edit/loop_mode=2 +edit/normalize=true +edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 compress/mode=0 diff --git a/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import b/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import index 3552b84..36fdae8 100644 --- a/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import +++ b/assets/sounds/AMBIENCE_SciFi_Static_Tonal_loop_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/BrokenWindows1.ogg b/assets/sounds/BrokenWindows1.ogg deleted file mode 100644 index a715916..0000000 Binary files a/assets/sounds/BrokenWindows1.ogg and /dev/null differ diff --git a/assets/sounds/BrokenWindows1.ogg.import b/assets/sounds/BrokenWindows1.ogg.import deleted file mode 100644 index c14262a..0000000 --- a/assets/sounds/BrokenWindows1.ogg.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/BrokenWindows1.ogg-52dc999606d355ddca62bd0f1eba2680.oggstr" - -[deps] - -source_file="res://assets/sounds/BrokenWindows1.ogg" -dest_files=[ "res://.import/BrokenWindows1.ogg-52dc999606d355ddca62bd0f1eba2680.oggstr" ] - -[params] - -loop=false -loop_offset=0 diff --git a/assets/sounds/BrokenWindows3.ogg b/assets/sounds/BrokenWindows3.ogg deleted file mode 100644 index c349e44..0000000 Binary files a/assets/sounds/BrokenWindows3.ogg and /dev/null differ diff --git a/assets/sounds/BrokenWindows3.ogg.import b/assets/sounds/BrokenWindows3.ogg.import deleted file mode 100644 index dea6210..0000000 --- a/assets/sounds/BrokenWindows3.ogg.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/BrokenWindows3.ogg-e3544c5113f25d18f9df16961970fd3b.oggstr" - -[deps] - -source_file="res://assets/sounds/BrokenWindows3.ogg" -dest_files=[ "res://.import/BrokenWindows3.ogg-e3544c5113f25d18f9df16961970fd3b.oggstr" ] - -[params] - -loop=false -loop_offset=0 diff --git a/assets/sounds/BrokenWindows4.ogg b/assets/sounds/BrokenWindows4.ogg deleted file mode 100644 index 042cd0b..0000000 Binary files a/assets/sounds/BrokenWindows4.ogg and /dev/null differ diff --git a/assets/sounds/BrokenWindows4.ogg.import b/assets/sounds/BrokenWindows4.ogg.import deleted file mode 100644 index 55ca35c..0000000 --- a/assets/sounds/BrokenWindows4.ogg.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/BrokenWindows4.ogg-2699cb87d5c38d0152d3f6b9f98dac00.oggstr" - -[deps] - -source_file="res://assets/sounds/BrokenWindows4.ogg" -dest_files=[ "res://.import/BrokenWindows4.ogg-2699cb87d5c38d0152d3f6b9f98dac00.oggstr" ] - -[params] - -loop=false -loop_offset=0 diff --git a/assets/sounds/BrokenWindows5.ogg b/assets/sounds/BrokenWindows5.ogg deleted file mode 100644 index 9e57eee..0000000 Binary files a/assets/sounds/BrokenWindows5.ogg and /dev/null differ diff --git a/assets/sounds/BrokenWindows5.ogg.import b/assets/sounds/BrokenWindows5.ogg.import deleted file mode 100644 index 549b731..0000000 --- a/assets/sounds/BrokenWindows5.ogg.import +++ /dev/null @@ -1,15 +0,0 @@ -[remap] - -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.import/BrokenWindows5.ogg-5f4850ed4b5f268be1329a7c0b84f7a0.oggstr" - -[deps] - -source_file="res://assets/sounds/BrokenWindows5.ogg" -dest_files=[ "res://.import/BrokenWindows5.ogg-5f4850ed4b5f268be1329a7c0b84f7a0.oggstr" ] - -[params] - -loop=false -loop_offset=0 diff --git a/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_01_mono.wav.import b/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_01_mono.wav.import index cb2afb9..23f0c9e 100644 --- a/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_01_mono.wav.import +++ b/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_01_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_02_mono.wav.import b/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_02_mono.wav.import index 45c23c8..38644c7 100644 --- a/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_02_mono.wav.import +++ b/assets/sounds/CAMERA_DSLR_AutoFocus_Motor_02_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CAMERA_DSLR_Shutter_04_mono.wav.import b/assets/sounds/CAMERA_DSLR_Shutter_04_mono.wav.import index 6127157..cf3430b 100644 --- a/assets/sounds/CAMERA_DSLR_Shutter_04_mono.wav.import +++ b/assets/sounds/CAMERA_DSLR_Shutter_04_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CARTOON_Boing_mono.wav.import b/assets/sounds/CARTOON_Boing_mono.wav.import index 44e419e..71b56d4 100644 --- a/assets/sounds/CARTOON_Boing_mono.wav.import +++ b/assets/sounds/CARTOON_Boing_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav.import b/assets/sounds/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav.import index d27c3f4..8c62b8f 100644 --- a/assets/sounds/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav.import +++ b/assets/sounds/CHARGE_Sci-Fi_High_Pass_Sweep_12_Semi_Up_1000ms_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav.import b/assets/sounds/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav.import index 758adba..b5f9dfd 100644 --- a/assets/sounds/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav.import +++ b/assets/sounds/CHARGE_Servo_24_Semi_Down_1000ms_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CLASP_Plastic_Close_stereo.wav.import b/assets/sounds/CLASP_Plastic_Close_stereo.wav.import index 1260120..8e92a8d 100644 --- a/assets/sounds/CLASP_Plastic_Close_stereo.wav.import +++ b/assets/sounds/CLASP_Plastic_Close_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/CLASP_Plastic_Open_stereo.wav.import b/assets/sounds/CLASP_Plastic_Open_stereo.wav.import index ad474ee..e24dfd9 100644 --- a/assets/sounds/CLASP_Plastic_Open_stereo.wav.import +++ b/assets/sounds/CLASP_Plastic_Open_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/COMPUTER_Sci-Fi_Processing_01_loop_mono.wav.import b/assets/sounds/COMPUTER_Sci-Fi_Processing_01_loop_mono.wav.import index f9008c6..f89d690 100644 --- a/assets/sounds/COMPUTER_Sci-Fi_Processing_01_loop_mono.wav.import +++ b/assets/sounds/COMPUTER_Sci-Fi_Processing_01_loop_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/DOOR_Elevator_Open_01_stereo.wav.import b/assets/sounds/DOOR_Elevator_Open_01_stereo.wav.import index 8103284..24bbbb1 100644 --- a/assets/sounds/DOOR_Elevator_Open_01_stereo.wav.import +++ b/assets/sounds/DOOR_Elevator_Open_01_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/DOOR_Fridge_Close_02_mono.wav.import b/assets/sounds/DOOR_Fridge_Close_02_mono.wav.import index 31223eb..de3a12a 100644 --- a/assets/sounds/DOOR_Fridge_Close_02_mono.wav.import +++ b/assets/sounds/DOOR_Fridge_Close_02_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/ELEVATOR_Movement_Loop_Mechanic_loop_mono.wav.import b/assets/sounds/ELEVATOR_Movement_Loop_Mechanic_loop_mono.wav.import index 7c04a18..3c5baeb 100644 --- a/assets/sounds/ELEVATOR_Movement_Loop_Mechanic_loop_mono.wav.import +++ b/assets/sounds/ELEVATOR_Movement_Loop_Mechanic_loop_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/ELEVATOR_Movement_Loop_Noisy_Smoothed_loop_mono.wav.import b/assets/sounds/ELEVATOR_Movement_Loop_Noisy_Smoothed_loop_mono.wav.import index 32796fd..8addfb0 100644 --- a/assets/sounds/ELEVATOR_Movement_Loop_Noisy_Smoothed_loop_mono.wav.import +++ b/assets/sounds/ELEVATOR_Movement_Loop_Noisy_Smoothed_loop_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/FABRIC_Flap_03_mono.wav.import b/assets/sounds/FABRIC_Flap_03_mono.wav.import index d6a19f3..eba0898 100644 --- a/assets/sounds/FABRIC_Flap_03_mono.wav.import +++ b/assets/sounds/FABRIC_Flap_03_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/FOLEY_Toaster_Eject_mono.wav.import b/assets/sounds/FOLEY_Toaster_Eject_mono.wav.import index 75fcc79..bc18614 100644 --- a/assets/sounds/FOLEY_Toaster_Eject_mono.wav.import +++ b/assets/sounds/FOLEY_Toaster_Eject_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav.import b/assets/sounds/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav.import index 377f162..e5bf587 100644 --- a/assets/sounds/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav.import +++ b/assets/sounds/FOOTSTEP_Trainers_Snow_Loose_Walk_Slow_RR1_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/Hurry! (LOOP).wav.import b/assets/sounds/Hurry! (LOOP).wav.import index 1873968..58ffa4b 100644 --- a/assets/sounds/Hurry! (LOOP).wav.import +++ b/assets/sounds/Hurry! (LOOP).wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/KEY_Unlocking_Metal_Door_mono.wav.import b/assets/sounds/KEY_Unlocking_Metal_Door_mono.wav.import index 016de62..c7862f3 100644 --- a/assets/sounds/KEY_Unlocking_Metal_Door_mono.wav.import +++ b/assets/sounds/KEY_Unlocking_Metal_Door_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/LOCK_Metal_Sliding_06_mono.wav.import b/assets/sounds/LOCK_Metal_Sliding_06_mono.wav.import index cfdd674..3dd3c7e 100644 --- a/assets/sounds/LOCK_Metal_Sliding_06_mono.wav.import +++ b/assets/sounds/LOCK_Metal_Sliding_06_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/LOFI_Checkout_01_mono.wav.import b/assets/sounds/LOFI_Checkout_01_mono.wav.import index 1ad5e9b..e0729df 100644 --- a/assets/sounds/LOFI_Checkout_01_mono.wav.import +++ b/assets/sounds/LOFI_Checkout_01_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav.import b/assets/sounds/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav.import index 4de2b24..122a5e0 100644 --- a/assets/sounds/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav.import +++ b/assets/sounds/LOTUS_FLUTE_Whistle_Down_Wobble_02_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav.import index 16c61bf..75700d1 100644 --- a/assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav.import index 2f8a0d3..54230cb 100644 --- a/assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Flame_03_mono.wav.import b/assets/sounds/MAGIC_SPELL_Flame_03_mono.wav.import index cc35fdc..a27c039 100644 --- a/assets/sounds/MAGIC_SPELL_Flame_03_mono.wav.import +++ b/assets/sounds/MAGIC_SPELL_Flame_03_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Metallic_Rain_Down_Subtle_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Metallic_Rain_Down_Subtle_stereo.wav.import index d077614..2559e0b 100644 --- a/assets/sounds/MAGIC_SPELL_Metallic_Rain_Down_Subtle_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Metallic_Rain_Down_Subtle_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Metallic_Rain_Up_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Metallic_Rain_Up_stereo.wav.import index 870c88b..fc712f3 100644 --- a/assets/sounds/MAGIC_SPELL_Metallic_Rain_Up_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Metallic_Rain_Up_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav.import index d281c15..436328c 100644 --- a/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_Deep_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav.import b/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav.import index 1cd06a1..50a2524 100644 --- a/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav.import +++ b/assets/sounds/MAGIC_SPELL_Morphing_Synth_Harp_Scales_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MAGIC_SPELL_Teleport_mono.wav.import b/assets/sounds/MAGIC_SPELL_Teleport_mono.wav.import index 3bc2971..15bc0f5 100644 --- a/assets/sounds/MAGIC_SPELL_Teleport_mono.wav.import +++ b/assets/sounds/MAGIC_SPELL_Teleport_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MONSTER_Cry_mono.wav.import b/assets/sounds/MONSTER_Cry_mono.wav.import index cf2a96e..e428ea6 100644 --- a/assets/sounds/MONSTER_Cry_mono.wav.import +++ b/assets/sounds/MONSTER_Cry_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MenuClick.wav.import b/assets/sounds/MenuClick.wav.import index 0d683ee..502910c 100644 --- a/assets/sounds/MenuClick.wav.import +++ b/assets/sounds/MenuClick.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MenuClickSingle.wav.import b/assets/sounds/MenuClickSingle.wav.import index 9b4bd0e..ad385c8 100644 --- a/assets/sounds/MenuClickSingle.wav.import +++ b/assets/sounds/MenuClickSingle.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/MenuSwish.wav.import b/assets/sounds/MenuSwish.wav.import index b08664e..41b034e 100644 --- a/assets/sounds/MenuSwish.wav.import +++ b/assets/sounds/MenuSwish.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/NOTIFICATION_Digital_03_mono.wav.import b/assets/sounds/NOTIFICATION_Digital_03_mono.wav.import index 23e3cf7..8143c34 100644 --- a/assets/sounds/NOTIFICATION_Digital_03_mono.wav.import +++ b/assets/sounds/NOTIFICATION_Digital_03_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/NOTIFICATION_Digital_04_mono.wav.import b/assets/sounds/NOTIFICATION_Digital_04_mono.wav.import index 2dbfa32..929fdd1 100644 --- a/assets/sounds/NOTIFICATION_Digital_04_mono.wav.import +++ b/assets/sounds/NOTIFICATION_Digital_04_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/NOTIFICATION_Digital_05_mono.wav.import b/assets/sounds/NOTIFICATION_Digital_05_mono.wav.import index 12c8b6b..32fb90f 100644 --- a/assets/sounds/NOTIFICATION_Digital_05_mono.wav.import +++ b/assets/sounds/NOTIFICATION_Digital_05_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/ROBOTIC_Insect_Movement_01_Footstep_stereo.wav.import b/assets/sounds/ROBOTIC_Insect_Movement_01_Footstep_stereo.wav.import index c64bce5..b546367 100644 --- a/assets/sounds/ROBOTIC_Insect_Movement_01_Footstep_stereo.wav.import +++ b/assets/sounds/ROBOTIC_Insect_Movement_01_Footstep_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/ROBOTIC_Transformation_Insect_02_Clicks_Digital_stereo.wav.import b/assets/sounds/ROBOTIC_Transformation_Insect_02_Clicks_Digital_stereo.wav.import index 6af1ea8..5e016c4 100644 --- a/assets/sounds/ROBOTIC_Transformation_Insect_02_Clicks_Digital_stereo.wav.import +++ b/assets/sounds/ROBOTIC_Transformation_Insect_02_Clicks_Digital_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/ROBOTIC_Transformation_Insect_03_Servos_Clicks_Digital_stereo.wav.import b/assets/sounds/ROBOTIC_Transformation_Insect_03_Servos_Clicks_Digital_stereo.wav.import index a8b2ca3..4afaaa2 100644 --- a/assets/sounds/ROBOTIC_Transformation_Insect_03_Servos_Clicks_Digital_stereo.wav.import +++ b/assets/sounds/ROBOTIC_Transformation_Insect_03_Servos_Clicks_Digital_stereo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/Shopping For The Future (LOOP).wav.import b/assets/sounds/Shopping For The Future (LOOP).wav.import index f1bc489..8e3fd94 100644 --- a/assets/sounds/Shopping For The Future (LOOP).wav.import +++ b/assets/sounds/Shopping For The Future (LOOP).wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/THUD_Medium_01_mono.wav.import b/assets/sounds/THUD_Medium_01_mono.wav.import index a79e76d..736e305 100644 --- a/assets/sounds/THUD_Medium_01_mono.wav.import +++ b/assets/sounds/THUD_Medium_01_mono.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/TerraZoo_Mammal_RingTailedLemur_EatingCelery_KMR81i.wav.import b/assets/sounds/TerraZoo_Mammal_RingTailedLemur_EatingCelery_KMR81i.wav.import index dca9a00..d0ccddc 100644 --- a/assets/sounds/TerraZoo_Mammal_RingTailedLemur_EatingCelery_KMR81i.wav.import +++ b/assets/sounds/TerraZoo_Mammal_RingTailedLemur_EatingCelery_KMR81i.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/biup.wav.import b/assets/sounds/biup.wav.import index f37785c..54a32d2 100644 --- a/assets/sounds/biup.wav.import +++ b/assets/sounds/biup.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/boingo.wav.import b/assets/sounds/boingo.wav.import index d0de217..f5d3116 100644 --- a/assets/sounds/boingo.wav.import +++ b/assets/sounds/boingo.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/click.wav.import b/assets/sounds/click.wav.import index 800e0f7..aefd778 100644 --- a/assets/sounds/click.wav.import +++ b/assets/sounds/click.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/crumch.wav b/assets/sounds/crumch.wav new file mode 100644 index 0000000..8b084b7 Binary files /dev/null and b/assets/sounds/crumch.wav differ diff --git a/assets/sounds/crumch.wav.import b/assets/sounds/crumch.wav.import new file mode 100644 index 0000000..b0f039c --- /dev/null +++ b/assets/sounds/crumch.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/crumch.wav-1baa773d20afe34e26211459c8f6b8d2.sample" + +[deps] + +source_file="res://assets/sounds/crumch.wav" +dest_files=[ "res://.import/crumch.wav-1baa773d20afe34e26211459c8f6b8d2.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sounds/ded.wav.import b/assets/sounds/ded.wav.import index e2195ee..8a6ad4b 100644 --- a/assets/sounds/ded.wav.import +++ b/assets/sounds/ded.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/download now.wav.import b/assets/sounds/download now.wav.import index 23a3eed..a32c095 100644 --- a/assets/sounds/download now.wav.import +++ b/assets/sounds/download now.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/falling.wav.import b/assets/sounds/falling.wav.import index 69dc61a..353fe19 100644 --- a/assets/sounds/falling.wav.import +++ b/assets/sounds/falling.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/gotShields.wav.import b/assets/sounds/gotShields.wav.import index a9441de..1964d15 100644 --- a/assets/sounds/gotShields.wav.import +++ b/assets/sounds/gotShields.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/huuray.wav b/assets/sounds/huuray.wav new file mode 100644 index 0000000..687028a Binary files /dev/null and b/assets/sounds/huuray.wav differ diff --git a/assets/sounds/huuray.wav.import b/assets/sounds/huuray.wav.import new file mode 100644 index 0000000..631bc89 --- /dev/null +++ b/assets/sounds/huuray.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/huuray.wav-6404f9c41e08ef6049caba6882aacc5f.sample" + +[deps] + +source_file="res://assets/sounds/huuray.wav" +dest_files=[ "res://.import/huuray.wav-6404f9c41e08ef6049caba6882aacc5f.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sounds/leavingspringmaybe.wav b/assets/sounds/leavingspringmaybe.wav new file mode 100644 index 0000000..d67d2ba Binary files /dev/null and b/assets/sounds/leavingspringmaybe.wav differ diff --git a/assets/sounds/leavingspringmaybe.wav.import b/assets/sounds/leavingspringmaybe.wav.import new file mode 100644 index 0000000..5b81ace --- /dev/null +++ b/assets/sounds/leavingspringmaybe.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/leavingspringmaybe.wav-2d1fcebdd0efaa53eb2f9a1ecb292383.sample" + +[deps] + +source_file="res://assets/sounds/leavingspringmaybe.wav" +dest_files=[ "res://.import/leavingspringmaybe.wav-2d1fcebdd0efaa53eb2f9a1ecb292383.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sounds/satisfyingClick.wav.import b/assets/sounds/satisfyingClick.wav.import index 8eb4ec6..a9d3099 100644 --- a/assets/sounds/satisfyingClick.wav.import +++ b/assets/sounds/satisfyingClick.wav.import @@ -16,7 +16,7 @@ force/mono=true force/max_rate=false force/max_rate_hz=44100 edit/trim=false -edit/normalize=false +edit/normalize=true edit/loop_mode=0 edit/loop_begin=0 edit/loop_end=-1 diff --git a/assets/sounds/slightlywron.wav b/assets/sounds/slightlywron.wav new file mode 100644 index 0000000..53c1daa Binary files /dev/null and b/assets/sounds/slightlywron.wav differ diff --git a/assets/sounds/slightlywron.wav.import b/assets/sounds/slightlywron.wav.import new file mode 100644 index 0000000..ff0f500 --- /dev/null +++ b/assets/sounds/slightlywron.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/slightlywron.wav-f2a75b9ffe5aed24b7dc12a8b85a0a8e.sample" + +[deps] + +source_file="res://assets/sounds/slightlywron.wav" +dest_files=[ "res://.import/slightlywron.wav-f2a75b9ffe5aed24b7dc12a8b85a0a8e.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sounds/vibing.wav b/assets/sounds/vibing.wav new file mode 100644 index 0000000..6ce9e9f Binary files /dev/null and b/assets/sounds/vibing.wav differ diff --git a/assets/sounds/vibing.wav.import b/assets/sounds/vibing.wav.import new file mode 100644 index 0000000..401eb60 --- /dev/null +++ b/assets/sounds/vibing.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/vibing.wav-6b83a2850e9433bfc1d40e144dbf2057.sample" + +[deps] + +source_file="res://assets/sounds/vibing.wav" +dest_files=[ "res://.import/vibing.wav-6b83a2850e9433bfc1d40e144dbf2057.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/sounds/wrong.wav b/assets/sounds/wrong.wav new file mode 100644 index 0000000..8fa8c5d Binary files /dev/null and b/assets/sounds/wrong.wav differ diff --git a/assets/sounds/wrong.wav.import b/assets/sounds/wrong.wav.import new file mode 100644 index 0000000..f23a715 --- /dev/null +++ b/assets/sounds/wrong.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/wrong.wav-b0ac6c8ef277f1a1766bf28d235febdf.sample" + +[deps] + +source_file="res://assets/sounds/wrong.wav" +dest_files=[ "res://.import/wrong.wav-b0ac6c8ef277f1a1766bf28d235febdf.sample" ] + +[params] + +force/8_bit=false +force/mono=true +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=true +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/assets/ui/fonts/kenny_space.tres b/assets/ui/fonts/kenny_space.tres index 30d68d0..404f131 100644 --- a/assets/ui/fonts/kenny_space.tres +++ b/assets/ui/fonts/kenny_space.tres @@ -1,4 +1,4 @@ [gd_resource type="DynamicFont" format=2] [resource] -size = 10 +size = 20 diff --git a/assets/ui/simpleGradient.tres b/assets/ui/simpleGradient.tres index 0b940d9..3cf8fed 100644 --- a/assets/ui/simpleGradient.tres +++ b/assets/ui/simpleGradient.tres @@ -1,14 +1,13 @@ [gd_resource type="GradientTexture2D" load_steps=2 format=2] -[sub_resource type="Gradient" id=4] +[sub_resource type="Gradient" id=7] interpolation_mode = 2 offsets = PoolRealArray( 0, 0.797721 ) colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 ) [resource] -gradient = SubResource( 4 ) -width = 640 -height = 326 +gradient = SubResource( 7 ) +width = 94 fill = 1 fill_from = Vector2( 0.547602, 0.536618 ) fill_to = Vector2( 1, 1 ) diff --git a/project.godot b/project.godot index ad115ae..6e57522 100644 --- a/project.godot +++ b/project.godot @@ -123,7 +123,7 @@ default_bus_layout="res://src/Sounds/default_bus_layout.tres" GlobalState="*res://src/Autoload/GlobalState.tscn" SaveManager="*res://src/Autoload/SaveManager.gd" ControllerIcons="*res://addons/controller_icons/ControllerIcons.gd" -AudioEventRegistration="*res://src/Autoload/AudioEventRegistration.gd" +GlobalAudio="*res://src/Autoload/GlobalAudio.tscn" [debug] @@ -174,14 +174,15 @@ texture={ "svg/scale": 1.0 } ogg_vorbis={ -"loop": false +"loop": false, +"loop_offset": 0 } wav={ "compress/mode": 0, "edit/loop_begin": 0, "edit/loop_end": -1, "edit/loop_mode": 0, -"edit/normalize": false, +"edit/normalize": true, "edit/trim": false, "force/8_bit": false, "force/max_rate": false, diff --git a/src/Actors/Blobby/Blobby.gd b/src/Actors/Blobby/Blobby.gd index aa50f2a..66505a1 100644 --- a/src/Actors/Blobby/Blobby.gd +++ b/src/Actors/Blobby/Blobby.gd @@ -441,8 +441,8 @@ func die(animation_number: int = 0) -> void: z_index = 1 $BlobbySprite.material = death_shader signalManager.emit_signal("player_died", animation_number) - $BlobbySprite/AnimationTree.active = false - $BlobbySprite/BlobbymationPlayer.play("dying3") + $"%BlobbymationTree".active = false + $"%BlobbymationPlayer".play("dying3") if animation_number < 1: $BlobbySprite/BlobbymationPlayer.play("expandingDisolve") diff --git a/src/Actors/Blobby/Blobby.tscn b/src/Actors/Blobby/Blobby.tscn index 949c768..da373e8 100644 --- a/src/Actors/Blobby/Blobby.tscn +++ b/src/Actors/Blobby/Blobby.tscn @@ -10,7 +10,7 @@ [ext_resource path="res://assets/effects/jump-point.png" type="Texture" id=8] [sub_resource type="RectangleShape2D" id=2] -extents = Vector2( 14.9127, 5.98593 ) +extents = Vector2( 12.9698, 8.9748 ) [sub_resource type="StreamTexture" id=62] load_path = "res://.import/blobby-spritesheet.png-205c8efc79bec685345a637ed2dcfc9b.stex" @@ -305,12 +305,12 @@ states/wallsliding/node = SubResource( 96 ) states/wallsliding/position = Vector2( 1795.54, 493.009 ) transitions = [ "falling", "wallsliding", SubResource( 138 ), "wallsliding", "idling", SubResource( 139 ), "wallsliding", "wallslideToJump", SubResource( 140 ), "wallslideToJump", "jumping", SubResource( 141 ), "idling", "jumping", SubResource( 147 ), "runToJump", "jumping", SubResource( 148 ), "ducking", "jumping", SubResource( 149 ), "jumping", "jumpToFall", SubResource( 150 ), "jumpToFall", "falling", SubResource( 151 ), "ducking", "duckTurn", SubResource( 152 ), "duckTurn", "ducking", SubResource( 153 ), "falling", "ducking", SubResource( 154 ), "ducking", "falling", SubResource( 155 ), "ducking", "walking", SubResource( 156 ), "walking", "ducking", SubResource( 157 ), "idling", "ducking", SubResource( 158 ), "ducking", "idling", SubResource( 159 ), "ducking", "running", SubResource( 160 ), "running", "ducking", SubResource( 161 ), "running", "falling", SubResource( 162 ), "falling", "running", SubResource( 163 ), "walking", "falling", SubResource( 164 ), "falling", "walking", SubResource( 165 ), "falling", "idling", SubResource( 166 ), "idling", "walking", SubResource( 167 ), "walking", "idling", SubResource( 168 ), "walking", "turnToRun", SubResource( 169 ), "turnToRun", "walking", SubResource( 170 ), "running", "turnToRun", SubResource( 171 ), "turnToRun", "running", SubResource( 172 ), "idling", "idleTurn", SubResource( 173 ), "walking", "idleTurn", SubResource( 174 ), "idleTurn", "walking", SubResource( 175 ), "idling", "turnToRun", SubResource( 176 ), "turnToRun", "idling", SubResource( 177 ), "running", "runToJump", SubResource( 178 ), "wallsliding", "falling", SubResource( 137 ), "jumping", "wallsliding", SubResource( 189 ), "jumping", "idling", SubResource( 193 ), "jumping", "walking", SubResource( 194 ), "runToJump", "wallsliding", SubResource( 195 ), "jumpToFall", "idling", SubResource( 196 ) ] start_node = "idling" -graph_offset = Vector2( 1057.54, -162.431 ) +graph_offset = Vector2( 1157.54, -22.431 ) [sub_resource type="AnimationNodeStateMachinePlayback" id=48] [sub_resource type="RectangleShape2D" id=1] -extents = Vector2( 12.971, 8.99662 ) +extents = Vector2( 12, 8.99662 ) [sub_resource type="Animation" id=17] length = 0.001 @@ -4202,7 +4202,7 @@ process_priority = -1 collision_mask = 254 [node name="CollisionPolygon2D" type="CollisionShape2D" parent="BlobbySkin"] -position = Vector2( 0.0286326, -10.0053 ) +position = Vector2( 1, -8.975 ) scale = Vector2( 1.03, 1.04 ) shape = SubResource( 2 ) @@ -4217,17 +4217,17 @@ visible = false [node name="BlobbySprite" type="Sprite" parent="."] material = ExtResource( 2 ) position = Vector2( 0, -16 ) -scale = Vector2( -1, 1 ) texture = SubResource( 62 ) offset = Vector2( 1, 0 ) hframes = 6 vframes = 6 -frame = 5 +frame = 8 __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PUJsb2JieVNwcml0ZS9CbG9iYnltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvYmxvYmJ5L2Jsb2JieS1zcHJpdGVzaGVldHQuYXNlcHJpdGUKbGF5ZXJ8PUJsb2JieQpvcF9leHB8PUZhbHNlCm9fZm9sZGVyfD0Kb19uYW1lfD0Kb25seV92aXNpYmxlfD1GYWxzZQpvX2V4X3B8PQo=" } -[node name="AnimationTree" type="AnimationTree" parent="BlobbySprite"] +[node name="BlobbymationTree" type="AnimationTree" parent="BlobbySprite"] +unique_name_in_owner = true tree_root = SubResource( 47 ) anim_player = NodePath("../BlobbymationPlayer") active = true @@ -4246,6 +4246,7 @@ parameters/wallslideToJump/blend_position = 1.0 parameters/wallsliding/blend_position = 1.0 [node name="BlobbymationPlayer" type="AnimationPlayer" parent="BlobbySprite"] +unique_name_in_owner = true playback_process_mode = 0 anims/RESET = SubResource( 17 ) anims/duckRun = SubResource( 67 ) @@ -4325,7 +4326,7 @@ position = Vector2( 0, -9 ) scale = Vector2( 0.48, 0.48 ) [node name="BlobbyBody" type="CollisionShape2D" parent="." groups=["player"]] -position = Vector2( 0.0392303, -10.002 ) +position = Vector2( 1, -8.975 ) shape = SubResource( 1 ) [node name="WallRaycasts" type="Node2D" parent="."] @@ -4334,13 +4335,13 @@ position = Vector2( 0, -1 ) [node name="LeftWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Left_Wallcast1" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -11.9763, -5 ) +position = Vector2( -12, -10.686 ) enabled = true cast_to = Vector2( -2, 0 ) collision_mask = 40 [node name="Left_Wallcast2" type="RayCast2D" parent="WallRaycasts/LeftWallRaycast"] -position = Vector2( -11.9763, 5 ) +position = Vector2( -12, -1.942 ) enabled = true cast_to = Vector2( -2, 0 ) collision_mask = 40 @@ -4348,13 +4349,13 @@ collision_mask = 40 [node name="RightWallRaycast" type="Node2D" parent="WallRaycasts"] [node name="Right_Wallcast1" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0551, -5 ) +position = Vector2( 14, -10.686 ) enabled = true cast_to = Vector2( 2, 0 ) collision_mask = 40 [node name="Right_Wallcast2" type="RayCast2D" parent="WallRaycasts/RightWallRaycast"] -position = Vector2( 12.0551, 5 ) +position = Vector2( 14, -1.942 ) enabled = true cast_to = Vector2( 2, 0 ) collision_mask = 40 diff --git a/src/Actors/BlobbyCam.tscn b/src/Actors/BlobbyCam.tscn index a35ae0d..f02c3f1 100644 --- a/src/Actors/BlobbyCam.tscn +++ b/src/Actors/BlobbyCam.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=53 format=2] +[gd_scene load_steps=57 format=2] [ext_resource path="res://src/Actors/BlobbyCam.gd" type="Script" id=1] [ext_resource path="res://assets/environment/background/starry-space-near.png" type="Texture" id=2] @@ -846,6 +846,32 @@ tracks/2/keys = { "values": [ 128 ] } +[sub_resource type="Gradient" id=20] +interpolation_mode = 2 +offsets = PoolRealArray( 0, 0.797721 ) +colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.4 ) + +[sub_resource type="GradientTexture2D" id=19] +gradient = SubResource( 20 ) +width = 640 +height = 360 +fill = 1 +fill_from = Vector2( 0.51066, 0.231548 ) +fill_to = Vector2( 1, 1 ) + +[sub_resource type="Gradient" id=21] +interpolation_mode = 2 +offsets = PoolRealArray( 0, 0.797721 ) +colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.4 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 21 ) +width = 1280 +height = 360 +fill = 1 +fill_from = Vector2( 0.507438, 0.866468 ) +fill_to = Vector2( 1, 0.994443 ) + [sub_resource type="SpriteFrames" id=7] animations = [ { "frames": [ ExtResource( 10 ), ExtResource( 12 ), ExtResource( 11 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 19 ), ExtResource( 16 ), ExtResource( 17 ), ExtResource( 20 ), ExtResource( 18 ), ExtResource( 21 ), ExtResource( 22 ), ExtResource( 23 ) ], @@ -950,6 +976,38 @@ color = Color( 1, 0, 0, 0.615686 ) material = ExtResource( 38 ) texture = ExtResource( 6 ) +[node name="TextureRect" type="TextureRect" parent="ParallaxBackground/ParallaxLayer4"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -583.0 +margin_top = -35.0 +margin_right = 567.0 +margin_bottom = 291.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = SubResource( 19 ) +expand = true +stretch_mode = 1 + +[node name="TextureRect2" type="TextureRect" parent="ParallaxBackground/ParallaxLayer4"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -583.0 +margin_top = -412.0 +margin_right = 567.0 +margin_bottom = -86.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +texture = SubResource( 22 ) +expand = true +stretch_mode = 1 + [node name="ParallaxLayer5" type="ParallaxLayer" parent="ParallaxBackground"] visible = false motion_scale = Vector2( 0.05, 0.05 ) @@ -972,10 +1030,10 @@ texture = ExtResource( 8 ) [node name="AnimatedSprite" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 7 ) -frame = 13 +frame = 4 playing = true [node name="AnimatedSprite2" type="AnimatedSprite" parent="ParallaxBackground/ParallaxLayer5"] frames = SubResource( 8 ) -frame = 4 +frame = 9 playing = true diff --git a/src/Autoload/AudioEventRegistration.gd b/src/Autoload/GlobalAudio.gd similarity index 87% rename from src/Autoload/AudioEventRegistration.gd rename to src/Autoload/GlobalAudio.gd index ae12560..487b284 100644 --- a/src/Autoload/AudioEventRegistration.gd +++ b/src/Autoload/GlobalAudio.gd @@ -1,4 +1,2 @@ extends Node - - diff --git a/src/Autoload/GlobalAudio.tscn b/src/Autoload/GlobalAudio.tscn new file mode 100644 index 0000000..b327b56 --- /dev/null +++ b/src/Autoload/GlobalAudio.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://src/Autoload/GlobalAudio.gd" type="Script" id=1] +[ext_resource path="res://assets/sounds/Shopping For The Future (LOOP).wav" type="AudioStream" id=2] + +[node name="GlobalAudio" type="Node"] +script = ExtResource( 1 ) + +[node name="MenuMusic" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 2 ) +volume_db = -15.0 +autoplay = true +bus = "Music" diff --git a/src/BenefitialObjects/Coin.gd b/src/BenefitialObjects/Coin.gd index 9bef6a2..5ba658b 100644 --- a/src/BenefitialObjects/Coin.gd +++ b/src/BenefitialObjects/Coin.gd @@ -10,7 +10,7 @@ func _on_body_entered(_body: Node) -> void: return levelState.currency += currencyValue $CollisionShape2D.disabled = true - self.monitoring = false + set_deferred("monitoring", false) $AudioStreamPlayer.play() anim_player.play("fade_out") diff --git a/src/BenefitialObjects/Coin.tscn b/src/BenefitialObjects/Coin.tscn index d1d39b3..594d330 100644 --- a/src/BenefitialObjects/Coin.tscn +++ b/src/BenefitialObjects/Coin.tscn @@ -465,7 +465,7 @@ rotation = -0.235619 scale = Vector2( 0.036, 0.036 ) frames = SubResource( 4 ) animation = "rotate" -frame = 32 +frame = 161 playing = true [node name="Sprite" type="Sprite" parent="."] @@ -475,6 +475,7 @@ texture = ExtResource( 317 ) [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource( 316 ) +volume_db = -10.0 pitch_scale = 1.1 bus = "Effects" diff --git a/src/Contraptions/Triggers/ElevatorButton.gd b/src/Contraptions/Triggers/ElevatorButton.gd index 6481b76..6450ebf 100644 --- a/src/Contraptions/Triggers/ElevatorButton.gd +++ b/src/Contraptions/Triggers/ElevatorButton.gd @@ -34,7 +34,8 @@ func selfActivate(): func _on_ActivatorArea_area_entered(area:Area2D) -> void: $Label.visible = true - $Label.text = " [e] \n Time: " + String(elevator_time) + " sec" + $Label.text = " Time: " + String(elevator_time) + " sec" + $Highlight.visible = true activatable = true func _on_ActivatorArea_area_exited(area:Area2D) -> void: @@ -42,6 +43,7 @@ func _on_ActivatorArea_area_exited(area:Area2D) -> void: func _on_Timer_timeout(): $Label.visible = false + $Highlight.visible = false activatable = false diff --git a/src/Contraptions/Triggers/ElevatorButton.tscn b/src/Contraptions/Triggers/ElevatorButton.tscn index 854d660..b6873ed 100644 --- a/src/Contraptions/Triggers/ElevatorButton.tscn +++ b/src/Contraptions/Triggers/ElevatorButton.tscn @@ -1,8 +1,22 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/button.png" type="Texture" id=2] [ext_resource path="res://assets/contraption/buttonStateIndicator.png" type="Texture" id=3] +[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=4] + +[sub_resource type="Gradient" id=23] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 0.752941, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 23 ) +width = 50 +height = 30 +use_hdr = true +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) [sub_resource type="Animation" id=2] resource_name = "pushing" @@ -20,7 +34,7 @@ tracks/0/keys = { "values": [ 0.0, 1.0, 2.0 ] } -[sub_resource type="Animation" id=10] +[sub_resource type="Animation" id=20] length = 0.1 tracks/0/type = "value" tracks/0/path = NodePath(".:frame") @@ -60,6 +74,34 @@ z_index = 2 script = ExtResource( 1 ) elevator_time = 3 +[node name="Highlight" type="TextureRect" parent="."] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -24.5 +margin_top = -18.5 +margin_right = 25.5 +margin_bottom = 31.5 +texture = SubResource( 22 ) + +[node name="Label" type="Label" parent="."] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -17.0 +margin_top = -23.0 +margin_right = 60.0 +margin_bottom = -9.0 +rect_scale = Vector2( 0.590909, 0.627907 ) +custom_fonts/font = ExtResource( 4 ) +text = "Time: 999sec" +align = 1 +valign = 1 + [node name="Button" type="Sprite" parent="."] position = Vector2( 0, -6 ) texture = ExtResource( 2 ) @@ -85,7 +127,7 @@ __meta__ = { [node name="IndicatorPlayer" type="AnimationPlayer" parent="Indicator"] unique_name_in_owner = true -anims/offing = SubResource( 10 ) +anims/offing = SubResource( 20 ) anims/onning = SubResource( 13 ) [node name="ActivatorArea" type="Area2D" parent="."] @@ -104,15 +146,6 @@ shape = SubResource( 18 ) wait_time = 0.333 one_shot = true -[node name="Label" type="Label" parent="."] -visible = false -margin_left = -5.0 -margin_top = -26.0 -margin_right = 13.0 -margin_bottom = -12.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "[e]" - [node name="GetBackTimer" type="Timer" parent="."] [connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"] diff --git a/src/Contraptions/Triggers/FrogFreeButton.gd b/src/Contraptions/Triggers/FrogFreeButton.gd index 97284ac..ec98154 100644 --- a/src/Contraptions/Triggers/FrogFreeButton.gd +++ b/src/Contraptions/Triggers/FrogFreeButton.gd @@ -23,6 +23,7 @@ func selfActivate(): func _on_ActivatorArea_area_entered(area:Area2D) -> void: $Label.visible = true + $Highlight.visible = true activatable = true func _on_ActivatorArea_area_exited(area:Area2D) -> void: @@ -30,4 +31,5 @@ func _on_ActivatorArea_area_exited(area:Area2D) -> void: func _on_Timer_timeout(): $Label.visible = false + $Highlight.visible = false activatable = false diff --git a/src/Contraptions/Triggers/FrogFreeButton.tscn b/src/Contraptions/Triggers/FrogFreeButton.tscn index 65856e8..579ca84 100644 --- a/src/Contraptions/Triggers/FrogFreeButton.tscn +++ b/src/Contraptions/Triggers/FrogFreeButton.tscn @@ -1,9 +1,22 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.gd" type="Script" id=1] [ext_resource path="res://assets/contraption/freeButton.png" type="Texture" id=2] [ext_resource path="res://assets/contraption/freeButtonSlider.png" type="Texture" id=3] [ext_resource path="res://assets/meta/digits.png" type="Texture" id=4] +[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=5] + +[sub_resource type="Gradient" id=23] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 0.752941, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 23 ) +width = 60 +height = 60 +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) [sub_resource type="Animation" id=19] length = 0.001 @@ -43,8 +56,29 @@ radius = 18.0 z_index = -1 script = ExtResource( 1 ) +[node name="Highlight" type="TextureRect" parent="."] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -30.0 +margin_top = -31.0 +margin_right = 30.0 +margin_bottom = 29.0 +texture = SubResource( 22 ) + +[node name="Label" type="Label" parent="."] +visible = false +margin_left = -9.0 +margin_top = -22.0 +margin_right = 47.0 +margin_bottom = -8.0 +rect_scale = Vector2( 0.590909, 0.627907 ) +custom_fonts/font = ExtResource( 5 ) +text = "[free]" + [node name="Button" type="Sprite" parent="."] -z_index = -2 texture = ExtResource( 2 ) __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PVNwcml0ZS9BbmltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvbmV1dHJhbCBvYmplY3QvYnV0dG9uLmFzZXByaXRlCmxheWVyfD0Kb3BfZXhwfD1GYWxzZQpvX2ZvbGRlcnw9Cm9fbmFtZXw9Cm9ubHlfdmlzaWJsZXw9RmFsc2UKb19leF9wfD0K" @@ -80,15 +114,6 @@ shape = SubResource( 18 ) wait_time = 0.333 one_shot = true -[node name="Label" type="Label" parent="."] -visible = false -margin_left = -5.0 -margin_top = -26.0 -margin_right = 13.0 -margin_bottom = -12.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "[e]" - [connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"] [connection signal="area_exited" from="ActivatorArea" to="." method="_on_ActivatorArea_area_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Contraptions/Triggers/GateButton.gd b/src/Contraptions/Triggers/GateButton.gd index c7807fe..2bfe018 100644 --- a/src/Contraptions/Triggers/GateButton.gd +++ b/src/Contraptions/Triggers/GateButton.gd @@ -23,6 +23,7 @@ func selfActivate(): func _on_ActivatorArea_area_entered(area:Area2D) -> void: $Label.visible = true + $Highlight.visible = true activatable = true if(area.get_parent().name == "WhatAreFrog"): selfActivate() @@ -32,4 +33,5 @@ func _on_ActivatorArea_area_exited(area:Area2D) -> void: func _on_Timer_timeout(): $Label.visible = false + $Highlight.visible = false activatable = false diff --git a/src/Contraptions/Triggers/GateButton.tscn b/src/Contraptions/Triggers/GateButton.tscn index d7b51e2..8848da3 100644 --- a/src/Contraptions/Triggers/GateButton.tscn +++ b/src/Contraptions/Triggers/GateButton.tscn @@ -1,9 +1,22 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://assets/meta/digits.png" type="Texture" id=1] [ext_resource path="res://assets/contraption/freeButtonSlider.png" type="Texture" id=2] [ext_resource path="res://assets/contraption/gateButton.png" type="Texture" id=3] [ext_resource path="res://src/Contraptions/Triggers/GateButton.gd" type="Script" id=4] +[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=5] + +[sub_resource type="Gradient" id=23] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 0.752941, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 23 ) +width = 60 +height = 60 +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) [sub_resource type="Animation" id=19] length = 0.001 @@ -43,8 +56,29 @@ radius = 18.0 z_index = -1 script = ExtResource( 4 ) +[node name="Highlight" type="TextureRect" parent="."] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -30.0 +margin_top = -31.0 +margin_right = 30.0 +margin_bottom = 29.0 +texture = SubResource( 22 ) + +[node name="Label" type="Label" parent="."] +visible = false +margin_left = -16.0 +margin_top = -22.0 +margin_right = 40.0 +margin_bottom = -8.0 +rect_scale = Vector2( 0.590909, 0.627907 ) +custom_fonts/font = ExtResource( 5 ) +text = "[activate]" + [node name="Button" type="Sprite" parent="."] -z_index = -2 texture = ExtResource( 3 ) __meta__ = { "_editor_description_": "YXNlcHJpdGVfd2l6YXJkX2NvbmZpZwpwbGF5ZXJ8PVNwcml0ZS9BbmltYXRpb25QbGF5ZXIKc291cmNlfD1yZXM6Ly9hc3NldHMvbmV1dHJhbCBvYmplY3QvYnV0dG9uLmFzZXByaXRlCmxheWVyfD0Kb3BfZXhwfD1GYWxzZQpvX2ZvbGRlcnw9Cm9fbmFtZXw9Cm9ubHlfdmlzaWJsZXw9RmFsc2UKb19leF9wfD0K" @@ -81,15 +115,6 @@ shape = SubResource( 18 ) wait_time = 0.333 one_shot = true -[node name="Label" type="Label" parent="."] -visible = false -margin_left = -5.0 -margin_top = -26.0 -margin_right = 13.0 -margin_bottom = -12.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "[e]" - [connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"] [connection signal="area_exited" from="ActivatorArea" to="." method="_on_ActivatorArea_area_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Contraptions/Triggers/ThreeWhyButtons.gd b/src/Contraptions/Triggers/ThreeWhyButtons.gd index fd3d99c..77378c5 100644 --- a/src/Contraptions/Triggers/ThreeWhyButtons.gd +++ b/src/Contraptions/Triggers/ThreeWhyButtons.gd @@ -5,5 +5,5 @@ extends Node2D signal child_button_activated(id) func _on_TreeWhyButtons_child_button_activated(id: int) -> void: - for button in get_children(): - button.activateIDIndicator(id) + for button in get_children(): + button.activateIDIndicator(id) diff --git a/src/Contraptions/VendingMachine.gd b/src/Contraptions/VendingMachine.gd index 8911c28..953ac4d 100644 --- a/src/Contraptions/VendingMachine.gd +++ b/src/Contraptions/VendingMachine.gd @@ -27,6 +27,7 @@ func selfActivate(): func _on_ActivatorArea_area_entered(area:Area2D) -> void: $Label.visible = true + $Highlight.visible = true activatable = true func _on_ActivatorArea_area_exited(area:Area2D) -> void: @@ -34,5 +35,6 @@ func _on_ActivatorArea_area_exited(area:Area2D) -> void: func _on_Timer_timeout(): if($ActivatorArea.get_overlapping_bodies().size() == 0): + $Highlight.visible = false $Label.visible = false activatable = false diff --git a/src/Contraptions/VendingMachine.tscn b/src/Contraptions/VendingMachine.tscn index b885d24..e308ca8 100644 --- a/src/Contraptions/VendingMachine.tscn +++ b/src/Contraptions/VendingMachine.tscn @@ -1,16 +1,51 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://assets/contraption/ShieldVendingMachine.png" type="Texture" id=1] [ext_resource path="res://src/Contraptions/VendingMachine.gd" type="Script" id=2] +[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-pixel.tres" type="DynamicFont" id=3] + +[sub_resource type="Gradient" id=21] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 0.752941, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=22] +gradient = SubResource( 21 ) +width = 60 +height = 60 +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) [sub_resource type="CircleShape2D" id=1] radius = 18.0 [node name="VendingMachine" type="Node2D"] +z_index = -1 script = ExtResource( 2 ) +[node name="Highlight" type="TextureRect" parent="."] +visible = false +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -30.0 +margin_top = -31.0 +margin_right = 30.0 +margin_bottom = 29.0 +texture = SubResource( 22 ) + +[node name="Label" type="Label" parent="."] +visible = false +margin_left = -18.0 +margin_top = -24.0 +margin_right = 48.0 +margin_bottom = -10.0 +rect_scale = Vector2( 0.590909, 0.627907 ) +custom_fonts/font = ExtResource( 3 ) +text = "[purchase]" + [node name="Sprite" type="Sprite" parent="."] -z_index = -1 texture = ExtResource( 1 ) [node name="ActivatorArea" type="Area2D" parent="."] @@ -28,15 +63,6 @@ shape = SubResource( 1 ) wait_time = 0.333 one_shot = true -[node name="Label" type="Label" parent="."] -visible = false -margin_left = -5.0 -margin_top = -26.0 -margin_right = 13.0 -margin_bottom = -12.0 -rect_scale = Vector2( 0.590909, 0.627907 ) -text = "[e]" - [connection signal="area_entered" from="ActivatorArea" to="." method="_on_ActivatorArea_area_entered"] [connection signal="area_exited" from="ActivatorArea" to="." method="_on_ActivatorArea_area_exited"] [connection signal="timeout" from="Timer" to="." method="_on_Timer_timeout"] diff --git a/src/Levels/1 Tutorial Level.tscn b/src/Levels/1 Tutorial Level.tscn index 2e1c110..85dc69e 100644 --- a/src/Levels/1 Tutorial Level.tscn +++ b/src/Levels/1 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=17 format=2] +[gd_scene load_steps=27 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=2] @@ -14,11 +14,131 @@ [ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=12] [ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=13] [ext_resource path="res://assets/sounds/Hurry! (LOOP).wav" type="AudioStream" id=14] +[ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=15] +[ext_resource path="res://assets/effects/pixelDissolve.gdshader" type="Shader" id=16] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=14] [sub_resource type="AnimationNodeStateMachinePlayback" id=5] +[sub_resource type="ShaderMaterial" id=11] +resource_local_to_scene = true +shader = ExtResource( 16 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 17 ) +shader_param/noise_tex = ExtResource( 17 ) + +[sub_resource type="ShaderMaterial" id=12] +resource_local_to_scene = true +shader = ExtResource( 16 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 17 ) +shader_param/noise_tex = ExtResource( 17 ) + +[sub_resource type="Animation" id=7] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Button:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} + +[sub_resource type="Animation" id=8] +resource_name = "cease_4_exist" +length = 0.618 +tracks/0/type = "value" +tracks/0/path = NodePath("Button:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 1.0 ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "_lesson_learned" +} ] +} + +[sub_resource type="ShaderMaterial" id=13] +resource_local_to_scene = true +shader = ExtResource( 16 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 17 ) +shader_param/noise_tex = ExtResource( 17 ) + +[sub_resource type="Animation" id=9] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Button:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} + +[sub_resource type="Animation" id=10] +resource_name = "cease_4_exist" +length = 0.618 +tracks/0/type = "value" +tracks/0/path = NodePath("Button:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 1.0 ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "_lesson_learned" +} ] +} + [node name="1 Tutorial Level" type="Node2D"] physics_interpolation_mode = 2 script = ExtResource( 1 ) @@ -44,18 +164,40 @@ unique_name_in_owner = true process_mode = 1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 0 +frame = 8 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 13 +frame = 7 [node name="Blobby" parent="." instance=ExtResource( 7 )] unique_name_in_owner = true position = Vector2( -70, -1.90735e-06 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] +position = Vector2( 0.0286326, -10.0053 ) + +[node name="BlobbySprite" parent="Blobby" index="3"] +scale = Vector2( -1, 1 ) +frame = 5 + +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 14 ) + +[node name="BlobbyBody" parent="Blobby" index="8"] +position = Vector2( 0.0392303, -10.002 ) + +[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] +position = Vector2( -11.9763, -5 ) + +[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] +position = Vector2( -11.9763, 5 ) + +[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] +position = Vector2( 12.0551, -5 ) + +[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] +position = Vector2( 12.0551, 5 ) [node name="WhatAreFrog" parent="." instance=ExtResource( 11 )] position = Vector2( 926, -25 ) @@ -403,10 +545,57 @@ position = Vector2( 785, 36 ) stream = ExtResource( 13 ) volume_db = -14.14 autoplay = true +bus = "Music" [node name="GetBackMusic" type="AudioStreamPlayer" parent="."] stream = ExtResource( 14 ) +[node name="Tutorials" type="Node2D" parent="."] + +[node name="JumpTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( 576, -15 ) +tutorial_text = "Press to jump:" + +[node name="Button" parent="Tutorials/JumpTut" index="0"] +material = SubResource( 11 ) + +[node name="CollisionShape2D" parent="Tutorials/JumpTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + +[node name="LeftTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( -40, -14 ) +action = "move_left" +tutorial_text = "Press to move left:" +press_limit = 2 +initial_wait_time = 7.0 + +[node name="Button" parent="Tutorials/LeftTut" index="0"] +material = SubResource( 12 ) + +[node name="AnimationPlayer" parent="Tutorials/LeftTut" index="5"] +anims/RESET = SubResource( 7 ) +anims/cease_4_exist = SubResource( 8 ) + +[node name="CollisionShape2D" parent="Tutorials/LeftTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + +[node name="RightTut" parent="Tutorials" instance=ExtResource( 15 )] +position = Vector2( -40, -56 ) +action = "move_right" +tutorial_text = "Press to move right:" +press_limit = 2 +initial_wait_time = 4.0 + +[node name="Button" parent="Tutorials/RightTut" index="0"] +material = SubResource( 13 ) + +[node name="AnimationPlayer" parent="Tutorials/RightTut" index="5"] +anims/RESET = SubResource( 9 ) +anims/cease_4_exist = SubResource( 10 ) + +[node name="CollisionShape2D" parent="Tutorials/RightTut/StartTutorialArea" index="0"] +position = Vector2( -24.5, 0 ) + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] @@ -416,3 +605,6 @@ stream = ExtResource( 14 ) [editable path="BlobbyCam"] [editable path="Blobby"] [editable path="WhatAreFrog"] +[editable path="Tutorials/JumpTut"] +[editable path="Tutorials/LeftTut"] +[editable path="Tutorials/RightTut"] diff --git a/src/Levels/2 Tutorial Level.tscn b/src/Levels/2 Tutorial Level.tscn index 2be630b..6056222 100644 --- a/src/Levels/2 Tutorial Level.tscn +++ b/src/Levels/2 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=17 format=2] +[gd_scene load_steps=22 format=2] [ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=1] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=2] @@ -14,8 +14,11 @@ [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=12] [ext_resource path="res://src/ObstacleObjects/PitArea.tscn" type="PackedScene" id=13] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=14] +[ext_resource path="res://src/UserInterface/TutorialComboThingy.tscn" type="PackedScene" id=15] +[ext_resource path="res://src/UserInterface/TutorialThingy.tscn" type="PackedScene" id=16] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=17] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -40,6 +43,62 @@ 0/shapes = [ ] 0/z_index = 0 +[sub_resource type="Shader" id=13] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=14] +resource_local_to_scene = true +shader = SubResource( 13 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 17 ) +shader_param/noise_tex = ExtResource( 17 ) + [node name="LevelTemplate" type="Node2D"] script = ExtResource( 1 ) __meta__ = { @@ -64,18 +123,40 @@ drag_margin_top = 0.1 drag_margin_bottom = 0.1 [node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] -frame = 12 +frame = 0 [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 11 +frame = 8 [node name="Blobby" parent="." instance=ExtResource( 8 )] unique_name_in_owner = true position = Vector2( -156, -51 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] +position = Vector2( 0.0286326, -10.0053 ) + +[node name="BlobbySprite" parent="Blobby" index="3"] +scale = Vector2( -1, 1 ) +frame = 5 + +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 6 ) + +[node name="BlobbyBody" parent="Blobby" index="8"] +position = Vector2( 0.0392303, -10.002 ) + +[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] +position = Vector2( -11.9763, -5 ) + +[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] +position = Vector2( -11.9763, 5 ) + +[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] +position = Vector2( 12.0551, -5 ) + +[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] +position = Vector2( 12.0551, 5 ) [node name="PitArea" parent="." instance=ExtResource( 13 )] position = Vector2( 1338, 198 ) @@ -153,6 +234,22 @@ position = Vector2( 788, 100 ) [node name="Coin" parent="." instance=ExtResource( 14 )] position = Vector2( 6, 0 ) +[node name="TutorialComboThingy" parent="." instance=ExtResource( 15 )] +visible = false +position = Vector2( 1104, -86 ) +action1 = "boost_move" +action2 = "move_right" +press_limit = 2 + +[node name="TutorialThingy" parent="." instance=ExtResource( 16 )] +position = Vector2( 1440, -90 ) +action = "interact" +tutorial_text = "Press to interact:" +press_limit = 1 + +[node name="Button" parent="TutorialThingy" index="0"] +material = SubResource( 14 ) + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] @@ -161,3 +258,4 @@ position = Vector2( 6, 0 ) [editable path="UserInterface/HUD"] [editable path="BlobbyCam"] [editable path="Blobby"] +[editable path="TutorialThingy"] diff --git a/src/Levels/3 Tutorial Level.tscn b/src/Levels/3 Tutorial Level.tscn index 58507a2..f5e0804 100644 --- a/src/Levels/3 Tutorial Level.tscn +++ b/src/Levels/3 Tutorial Level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=24 format=2] [ext_resource path="res://assets/environment/decor/platform-plants.png" type="Texture" id=1] [ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=2] @@ -17,8 +17,10 @@ [ext_resource path="res://src/Actors/Enemies/Caterpillar.tscn" type="PackedScene" id=15] [ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=16] [ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=17] +[ext_resource path="res://src/UserInterface/TutorialComboThingy.tscn" type="PackedScene" id=18] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=19] -[sub_resource type="AnimationNodeStateMachinePlayback" id=4] +[sub_resource type="AnimationNodeStateMachinePlayback" id=6] [sub_resource type="TileSet" id=5] 0/name = "platform-plants.png 0" @@ -43,6 +45,62 @@ 0/shapes = [ ] 0/z_index = 0 +[sub_resource type="Shader" id=13] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=14] +resource_local_to_scene = true +shader = SubResource( 13 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 19 ) +shader_param/noise_tex = ExtResource( 19 ) + [node name="LevelTemplate" type="Node2D"] script = ExtResource( 11 ) __meta__ = { @@ -64,16 +122,41 @@ wait_time = 20.0 [node name="BlobbyCam" parent="." instance=ExtResource( 9 )] unique_name_in_owner = true +[node name="AnimatedSprite" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="4"] +frame = 2 + [node name="AnimatedSprite2" parent="BlobbyCam/ParallaxBackground/ParallaxLayer5" index="5"] -frame = 12 +frame = 1 [node name="Blobby" parent="." instance=ExtResource( 10 )] unique_name_in_owner = true position = Vector2( -180, 112 ) scale = Vector2( 0.878906, 0.936025 ) -[node name="AnimationTree" parent="Blobby/BlobbySprite" index="0"] -parameters/playback = SubResource( 4 ) +[node name="CollisionPolygon2D" parent="Blobby/BlobbySkin" index="0"] +position = Vector2( 0.0286326, -10.0053 ) + +[node name="BlobbySprite" parent="Blobby" index="3"] +scale = Vector2( -1, 1 ) +frame = 5 + +[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"] +parameters/playback = SubResource( 6 ) + +[node name="BlobbyBody" parent="Blobby" index="8"] +position = Vector2( 0.0392303, -10.002 ) + +[node name="Left_Wallcast1" parent="Blobby/WallRaycasts/LeftWallRaycast" index="0"] +position = Vector2( -11.9763, -5 ) + +[node name="Left_Wallcast2" parent="Blobby/WallRaycasts/LeftWallRaycast" index="1"] +position = Vector2( -11.9763, 5 ) + +[node name="Right_Wallcast1" parent="Blobby/WallRaycasts/RightWallRaycast" index="0"] +position = Vector2( 12.0551, -5 ) + +[node name="Right_Wallcast2" parent="Blobby/WallRaycasts/RightWallRaycast" index="1"] +position = Vector2( 12.0551, 5 ) [node name="PitArea" parent="." instance=ExtResource( 3 )] position = Vector2( 416, 170 ) @@ -163,6 +246,33 @@ position = Vector2( 496, -337 ) position = Vector2( 680, -128 ) y_target = 112 +[node name="TutorialComboThingy" parent="." instance=ExtResource( 18 )] +visible = false +position = Vector2( 177, 8 ) +action1 = "boost_move" +action2 = "jump" +goal_state = "runToJump" +tutorial_text = "Move and press to runjump:" +press_limit = 1 + +[node name="Button1" parent="TutorialComboThingy" index="0"] +material = SubResource( 14 ) + +[node name="Button2" parent="TutorialComboThingy" index="1"] +material = SubResource( 14 ) + +[node name="CollisionShape2D" parent="TutorialComboThingy/StartTutorialArea" index="0"] +position = Vector2( 53, 30 ) + +[node name="TutorialComboThingy2" parent="." instance=ExtResource( 18 )] +visible = false +position = Vector2( 518, -187 ) +action1 = "boost_move" +action2 = "jump" +goal_state = "runToJump" +tutorial_text = "Move and press to runjump:" +press_limit = 1 + [connection signal="body_exited" from="Blobby/BlobbySkin" to="Blobby" method="_on_BlobbySkin_body_exited"] [editable path="SignalManager"] @@ -172,3 +282,4 @@ y_target = 112 [editable path="BlobbyCam"] [editable path="Blobby"] [editable path="FlyingPlatform2"] +[editable path="TutorialComboThingy"] diff --git a/src/Sounds/default_bus_layout.tres b/src/Sounds/default_bus_layout.tres index fe2aa04..1bc8bba 100644 --- a/src/Sounds/default_bus_layout.tres +++ b/src/Sounds/default_bus_layout.tres @@ -41,11 +41,12 @@ resource_name = "LowPassFilter" cutoff_hz = 3000.0 [resource] +bus/0/volume_db = -6.0206 bus/1/name = "Music" bus/1/solo = false bus/1/mute = false bus/1/bypass_fx = false -bus/1/volume_db = 0.0 +bus/1/volume_db = inf_neg bus/1/send = "Master" bus/1/effect/0/effect = SubResource( 1 ) bus/1/effect/0/enabled = false diff --git a/src/StateMachines/BlobbyStateMachine.gd b/src/StateMachines/BlobbyStateMachine.gd index 8bda016..7de7d52 100644 --- a/src/StateMachines/BlobbyStateMachine.gd +++ b/src/StateMachines/BlobbyStateMachine.gd @@ -4,9 +4,9 @@ signal got_grounded export var init_boost = false export var init_boost_type = "" -onready var anim_player = parent.get_node("BlobbySprite/BlobbymationPlayer") -onready var anim_state_playback = parent.get_node("BlobbySprite/AnimationTree").get("parameters/playback") -onready var anim_tree = parent.get_node("BlobbySprite/AnimationTree") +onready var anim_player = parent.get_node("%BlobbymationPlayer") +onready var anim_state_playback = parent.get_node("%BlobbymationTree").get("parameters/playback") +onready var anim_tree = parent.get_node("%BlobbymationTree") onready var running_particles = parent.get_node("RunningParticles") onready var jump_point_particles = parent.get_node("JumpPointParticles") onready var run_dust_res = load("res://assets/effects/run-dusting.png") diff --git a/src/UserInterface/Buttons/AudibleButton.gd b/src/UserInterface/Buttons/AudibleButton.gd index 017e679..17a238d 100644 --- a/src/UserInterface/Buttons/AudibleButton.gd +++ b/src/UserInterface/Buttons/AudibleButton.gd @@ -1,8 +1,8 @@ extends Button class_name AudibleButton -export(String, FILE) onready var focus_sound = "res://assets/sounds/Simple Switch Off.ogg" -export(String, FILE) onready var press_sound = "res://assets/sounds/Simple Switch On.ogg" +export(String, FILE) var focus_sound = "res://assets/sounds/Simple Switch Off.ogg" +export(String, FILE) var press_sound = "res://assets/sounds/Simple Switch On.ogg" var focus_player var press_player @@ -12,6 +12,7 @@ func _ready() -> void: var asrp = AudioStreamRandomPitch.new() asrp.audio_stream = GlobalState.sound_library[focus_sound] focus_player.stream = asrp + #focus_player.volume_db = 5 add_child(focus_player) connect("focus_exited", self, "focus_play") @@ -20,6 +21,7 @@ func _ready() -> void: var asrp2 = AudioStreamRandomPitch.new() asrp2.audio_stream = GlobalState.sound_library[press_sound] press_player.stream = asrp2 + #press_player.volume_db = 5 add_child(press_player) connect("button_down", self, "press_play") diff --git a/src/UserInterface/Screens/HUD.tscn b/src/UserInterface/Screens/HUD.tscn index 38622de..20789c8 100644 --- a/src/UserInterface/Screens/HUD.tscn +++ b/src/UserInterface/Screens/HUD.tscn @@ -37,7 +37,6 @@ tracks/0/keys = { [node name="HUD" type="Control"] pause_mode = 2 -visible = false anchor_right = 1.0 anchor_bottom = 1.0 mouse_filter = 1 @@ -59,6 +58,7 @@ margin_bottom = 354.0 [node name="Currency" type="Label" parent="HUDOverlay"] unique_name_in_owner = true +visible = false margin_left = 3.0 margin_top = 291.0 margin_right = 247.0 @@ -68,6 +68,7 @@ text = "Orbs: 100000000000000000" [node name="Kills" type="Label" parent="HUDOverlay"] unique_name_in_owner = true +visible = false margin_left = 3.0 margin_top = 315.0 margin_right = 357.0 @@ -77,6 +78,7 @@ text = "Destroyed Beings: 100000000000000000" [node name="Frees" type="Label" parent="HUDOverlay"] unique_name_in_owner = true +visible = false margin_left = 3.0 margin_top = 339.0 margin_right = 317.0 diff --git a/src/UserInterface/Screens/MainMenu/AudioMenu.gd b/src/UserInterface/Screens/MainMenu/AudioMenu.gd index 002c334..f555f7d 100644 --- a/src/UserInterface/Screens/MainMenu/AudioMenu.gd +++ b/src/UserInterface/Screens/MainMenu/AudioMenu.gd @@ -1,5 +1,7 @@ extends Control +export(String, FILE) onready var bus_resource_path = "res://src/Sounds/default_bus_layout.tres" + func _ready() -> void: if visible: @@ -7,4 +9,7 @@ func _ready() -> void: func _input(event: InputEvent) -> void: if visible && event.is_action("ui_cancel"): + var new_resource = AudioServer.generate_bus_layout() + ResourceSaver.save(bus_resource_path, new_resource) $Panel/Back.emit_signal("button_up") + diff --git a/src/UserInterface/Screens/MainMenu/AudioMenu.tscn b/src/UserInterface/Screens/MainMenu/AudioMenu.tscn index f99be28..3ac0282 100644 --- a/src/UserInterface/Screens/MainMenu/AudioMenu.tscn +++ b/src/UserInterface/Screens/MainMenu/AudioMenu.tscn @@ -57,6 +57,7 @@ stretch_mode = 1 anchor_right = 1.0 anchor_bottom = 1.0 texture = SubResource( 17 ) +expand = true [node name="Titel" type="Label" parent="."] anchor_left = 0.5 diff --git a/src/UserInterface/Screens/MainMenu/AudioSlider.gd b/src/UserInterface/Screens/MainMenu/AudioSlider.gd index 26f1ba8..52d4adc 100644 --- a/src/UserInterface/Screens/MainMenu/AudioSlider.gd +++ b/src/UserInterface/Screens/MainMenu/AudioSlider.gd @@ -2,6 +2,7 @@ extends HSlider export(String) var audio_bus := "Master" onready var _bus := AudioServer.get_bus_index(audio_bus) +onready var bus_resource_path := "res://src/Sounds/default_bus_layout.tres" func _ready() -> void: min_value = 0.0 diff --git a/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn b/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn index 5ba9e3b..6b127e1 100644 --- a/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn +++ b/src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn @@ -255,8 +255,6 @@ follow_focus = true [node name="ActionKeyList" type="VBoxContainer" parent="Panel/KeymapViewer/ScrollContainer"] unique_name_in_owner = true -margin_right = 600.0 -margin_bottom = 189.0 size_flags_horizontal = 3 size_flags_vertical = 3 script = ExtResource( 14 ) diff --git a/src/UserInterface/Screens/MainMenu/MainScreen.tscn b/src/UserInterface/Screens/MainMenu/MainScreen.tscn index 9c5f270..a764345 100644 --- a/src/UserInterface/Screens/MainMenu/MainScreen.tscn +++ b/src/UserInterface/Screens/MainMenu/MainScreen.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=2] +[gd_scene load_steps=19 format=2] [ext_resource path="res://src/UserInterface/Buttons/QuitButton.tscn" type="PackedScene" id=1] [ext_resource path="res://src/UserInterface/Titel.tscn" type="PackedScene" id=2] @@ -7,7 +7,6 @@ [ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=5] [ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=6] [ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=7] -[ext_resource path="res://assets/sounds/Simple Switch On.ogg" type="AudioStream" id=8] [ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelSelectButtonGroup.tres" type="ButtonGroup" id=9] [ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=10] [ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelList.gd" type="Script" id=11] @@ -15,26 +14,26 @@ [ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=13] [ext_resource path="res://src/UserInterface/Screens/MainMenu/MainScreen.gd" type="Script" id=14] -[sub_resource type="Gradient" id=4] +[sub_resource type="Gradient" id=6] interpolation_mode = 2 offsets = PoolRealArray( 0, 0.797721 ) colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 ) [sub_resource type="GradientTexture2D" id=5] -gradient = SubResource( 4 ) +gradient = SubResource( 6 ) width = 640 height = 360 fill = 1 fill_from = Vector2( 0.497242, 0.46915 ) fill_to = Vector2( 1, 1 ) -[sub_resource type="Gradient" id=2] +[sub_resource type="Gradient" id=7] interpolation_mode = 2 offsets = PoolRealArray( 0, 0.797721 ) colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 ) [sub_resource type="GradientTexture2D" id=3] -gradient = SubResource( 2 ) +gradient = SubResource( 7 ) width = 1280 height = 360 fill = 1 @@ -158,6 +157,7 @@ margin_bottom = 30.0 focus_neighbour_top = NodePath("../QuitButton") focus_neighbour_bottom = NodePath("../Controlls") theme = ExtResource( 13 ) +press_sound = "res://assets/sounds/MAGIC_SPELL_Bending_Synth_Climb_stereo.wav" next_scene_path = "res://src/Levels/1 Tutorial Level.tscn" [node name="Controlls" parent="MenuContainer/Buttons" instance=ExtResource( 3 )] @@ -243,8 +243,3 @@ focus_neighbour_left = NodePath("../../../../Buttons/PlayButton") size_flags_horizontal = 3 size_flags_vertical = 3 group = ExtResource( 9 ) - -[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 8 ) -volume_db = 9.546 -bus = "UI" diff --git a/src/UserInterface/TutorialComboThingy.gd b/src/UserInterface/TutorialComboThingy.gd new file mode 100644 index 0000000..2627a35 --- /dev/null +++ b/src/UserInterface/TutorialComboThingy.gd @@ -0,0 +1,131 @@ +extends Node2D +export var action1 = "move_right" +export var action2 = "boost_move" +export var goal_state = "" +export var tutorial_text = "" +export var velocity = Vector2(0.309,0.309) +export var press_limit = 3 +export var initial_wait_time:float = 0.0 + +onready var levelState := get_tree().root.get_child(4).get_node("%LevelState") +onready var cam = null +onready var blobby_state: AnimationNodeStateMachinePlayback = null +onready var button1 = $Button1 +onready var button2 = $Button2 + +var screen_size: Vector2 +var tex_size: Vector2 +var screen_stretch_factor: Vector2 +var rng = RandomNumberGenerator.new() +var moving = false +var tutorial_begun = false +var tutorial_area_entered = false + +func check_goal_state() -> void: + if(blobby_state == null): + blobby_state = get_tree().root.get_child(4).get_node("%Blobby").get_node("%BlobbymationTree").get("parameters/playback") + + #print(blobby_state.get_current_node()) + if(blobby_state.get_current_node() == goal_state): + press_limit -= 1 + if press_limit == -1 : + # Should delete itself from the progress dictionary when destroyed + if visible: + $Label.visible = false + $Label2.visible = false + $TextureRect.visible = false + $TextureRect2.visible = false + $TextureRect3.visible = false + $AudioStreamPlayer.play() + $AnimationPlayer.play("cease_4_exist") + +func _ready() -> void: + # Should save itself into the progress dictionary upon creation + if(!OS.is_debug_build()): + levelState.register_tutorial(tutorial_text) + if (!levelState.needs_tutorial(tutorial_text)): queue_free() + if initial_wait_time > 0.0: + var timer = Timer.new() + add_child(timer) + timer.wait_time = initial_wait_time + timer.one_shot = true + timer.connect("timeout",self,"finished_waiting") + timer.start() + $Button1/ControllerButton.path = action1 + $Button2/ControllerButton.path = action2 + $Label.text = tutorial_text + button1.texture = $Button1/ControllerButton.icon + button1.scale.x = 0.5 + button1.scale.y = 0.5 + button2.texture = $Button2/ControllerButton.icon + button2.scale.x = 0.5 + button2.scale.y = 0.5 + tex_size = Vector2(button1.texture.get_width(), button1.texture.get_height()/2) * button1.scale * 0.75 + $Area/CollisionShape2D.shape.extents = tex_size + set_physics_process(true) + +func finished_waiting() -> void: + if(tutorial_area_entered): start_tutorial() + +func _physics_process(delta: float) -> void: + check_goal_state() + if(cam == null): + cam = get_tree().root.get_child(4).get_node("%BlobbyCam") + return + if(moving == false): return + button1.texture = $Button1/ControllerButton.icon + button2.texture = $Button2/ControllerButton.icon + # TODO process less in each frame + var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size * self.scale) + var down_right_pos = cam.get_global_transform().affine_inverse() * (position + tex_size * self.scale) + + if up_left_pos.x <= cam.screen_left.x: + velocity.x = abs(velocity.x) + elif down_right_pos.x >= cam.screen_right.x: + velocity.x = -abs(velocity.x) + + if up_left_pos.y <= cam.screen_top.y: + velocity.y = abs(velocity.y) + elif down_right_pos.y >= cam.screen_bottom.y: + velocity.y = -abs(velocity.y) + + self.position += velocity + + + + +func _on_Area_area_entered(area: Area2D) -> void: + var d = area.global_position - position + print(d) + if(abs(d.y) > tex_size.y * 2 - 1): + velocity.y *= -1 + pass + else: + velocity.x *=-1 + +func _lesson_learned(animation_name: String) -> void: + if(animation_name != "cease_4_exist"): return + moving = false + if(!OS.is_debug_build()): + levelState.absolved_tutorial(tutorial_text) + blobby_state = null + queue_free() + +func start_tutorial(): + rng.randomize() + position.x += rng.randf_range(-100, 100) + position.y += rng.randf_range(-100, 100) + velocity.x = velocity.x * sign(rng.randf_range(-1,1)) + velocity.y = velocity.y * sign(rng.randf_range(-1,1)) + tutorial_begun = true + visible = true + moving = true + +func _on_StartTutorialArea_area_entered(area: Area2D) -> void: + tutorial_area_entered = true + if(tutorial_begun || initial_wait_time > 0): return + start_tutorial() + + # Erkenne ob der Spieler die Aktion für die das Tutorial ist schon kann + # Wenn der Spieler den Tutorialbereich betritte spawne das Thingy random auf dem Screen + # Füge zwei Inputs zusammen zu einem Thingy diff --git a/src/UserInterface/TutorialComboThingy.tscn b/src/UserInterface/TutorialComboThingy.tscn new file mode 100644 index 0000000..6251e48 --- /dev/null +++ b/src/UserInterface/TutorialComboThingy.tscn @@ -0,0 +1,274 @@ +[gd_scene load_steps=20 format=2] + +[ext_resource path="res://src/UserInterface/TutorialComboThingy.gd" type="Script" id=1] +[ext_resource path="res://assets/ui/sci-fi-godot-theme/Pixel Square 10.ttf" type="DynamicFontData" id=2] +[ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=3] +[ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] +[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] +[ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] +[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] + +[sub_resource type="Shader" id=13] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=12] +resource_local_to_scene = true +shader = SubResource( 13 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 8 ) +shader_param/noise_tex = ExtResource( 8 ) + +[sub_resource type="Gradient" id=9] +interpolation_mode = 2 +colors = PoolColorArray( 0, 0, 0, 0.784314, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=8] +gradient = SubResource( 9 ) +width = 300 +height = 75 +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) + +[sub_resource type="Gradient" id=15] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=11] +gradient = SubResource( 15 ) +width = 100 +height = 100 +use_hdr = true +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) + +[sub_resource type="DynamicFont" id=14] +size = 14 +font_data = ExtResource( 2 ) + +[sub_resource type="RectangleShape2D" id=3] + +[sub_resource type="Animation" id=4] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath("Button1:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ 0.0 ] +} + +[sub_resource type="Animation" id=5] +resource_name = "cease_4_exist" +length = 0.618 +tracks/0/type = "value" +tracks/0/path = NodePath("Button1:material:shader_param/progress") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 0.3 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ 0.0, 1.0 ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 0.4 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "_lesson_learned" +} ] +} + +[sub_resource type="RectangleShape2D" id=6] +extents = Vector2( 61, 8 ) + +[node name="TutorialComboThingy" type="Node2D"] +physics_interpolation_mode = 2 +script = ExtResource( 1 ) +goal_state = "running" +tutorial_text = "Press to run:" + +[node name="Button1" type="Sprite" parent="."] +physics_interpolation_mode = 2 +material = SubResource( 12 ) +position = Vector2( -30, 0 ) +scale = Vector2( 0.5, 0.5 ) +z_index = 3 +texture = ExtResource( 6 ) + +[node name="ControllerButton" type="Button" parent="Button1"] +visible = false +margin_right = 12.0 +margin_bottom = 20.0 +script = ExtResource( 3 ) + +[node name="Button2" type="Sprite" parent="."] +physics_interpolation_mode = 2 +material = SubResource( 12 ) +position = Vector2( 30, 0 ) +scale = Vector2( 0.5, 0.5 ) +z_index = 3 +texture = ExtResource( 6 ) + +[node name="ControllerButton" type="Button" parent="Button2"] +visible = false +margin_right = 12.0 +margin_bottom = 20.0 +script = ExtResource( 3 ) + +[node name="TextureRect" type="TextureRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -150.0 +margin_top = -75.0 +margin_right = 250.0 +margin_bottom = 125.0 +texture = SubResource( 8 ) + +[node name="TextureRect2" type="TextureRect" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -80.0 +margin_top = -50.0 +margin_right = 20.0 +margin_bottom = 50.0 +texture = SubResource( 11 ) + +[node name="TextureRect3" type="TextureRect" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -20.0 +margin_top = -50.0 +margin_right = 80.0 +margin_bottom = 50.0 +texture = SubResource( 11 ) + +[node name="Label" type="Label" parent="."] +physics_interpolation_mode = 2 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -68.0 +margin_top = -41.0 +margin_right = 65.0 +margin_bottom = 58.0 +custom_fonts/font = ExtResource( 5 ) +text = "This is a test +" +align = 1 +uppercase = true + +[node name="Label2" type="Label" parent="."] +physics_interpolation_mode = 2 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -4.0 +margin_top = -6.0 +margin_right = 6.0 +margin_bottom = 7.0 +custom_fonts/font = SubResource( 14 ) +text = "+" +align = 1 +valign = 1 +uppercase = true + +[node name="Area" type="Area2D" parent="."] +visible = false +collision_layer = 512 +collision_mask = 512 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Area"] +shape = SubResource( 3 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 4 ) +anims/cease_4_exist = SubResource( 5 ) + +[node name="Sprite" type="Sprite" parent="."] +visible = false +texture = ExtResource( 4 ) + +[node name="StartTutorialArea" type="Area2D" parent="."] +collision_layer = 0 +monitorable = false + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StartTutorialArea"] +shape = SubResource( 6 ) + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 7 ) +volume_db = -10.0 +bus = "UI" + +[connection signal="area_entered" from="Area" to="." method="_on_Area_area_entered"] +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_lesson_learned"] +[connection signal="area_entered" from="StartTutorialArea" to="." method="_on_StartTutorialArea_area_entered"] diff --git a/src/UserInterface/TutorialThingy.gd b/src/UserInterface/TutorialThingy.gd index 916e51b..5860224 100644 --- a/src/UserInterface/TutorialThingy.gd +++ b/src/UserInterface/TutorialThingy.gd @@ -1,9 +1,9 @@ extends Node2D export var action = "move_right" -export var action_combination = "" -export var combination_required = false +export var tutorial_text = "" export var velocity = Vector2(0.309,0.309) export var press_limit = 3 +export var initial_wait_time:float = 0.0 onready var levelState := get_tree().root.get_child(4).get_node("%LevelState") onready var cam = null @@ -12,28 +12,51 @@ onready var button = $Button var screen_size: Vector2 var tex_size: Vector2 var screen_stretch_factor: Vector2 +var rng = RandomNumberGenerator.new() +var moving = false +var tutorial_begun = false +var tutorial_area_entered = false func _unhandled_input(event: InputEvent) -> void: - print(event.as_text()) - if(ControllerIcons.parse_event(event) == button.texture): + if(event.is_action_pressed(action)): press_limit -= 1 - if press_limit < -1: + if press_limit == 0 : # Should delete itself from the progress dictionary when destroyed + if visible: + $Label.visible = false + $TextureRect.visible = false + $TextureRect2.visible = false + $AudioStreamPlayer.play() $AnimationPlayer.play("cease_4_exist") func _ready() -> void: # Should save itself into the progress dictionary upon creation + if(!OS.is_debug_build()): + levelState.register_tutorial(tutorial_text) + if (!levelState.needs_tutorial(tutorial_text)): queue_free() + if initial_wait_time > 0.0: + var timer = Timer.new() + add_child(timer) + timer.wait_time = initial_wait_time + timer.one_shot = true + timer.connect("timeout",self,"finished_waiting") + timer.start() $Button/ControllerButton.path = action + $Label.text = tutorial_text button.texture = $Button/ControllerButton.icon - button.scale.x = 0.4 - button.scale.y = 0.4 + button.scale.x = 0.5 + button.scale.y = 0.5 tex_size = Vector2(button.texture.get_width()/2, button.texture.get_height()/2) * button.scale * 0.75 $Area/CollisionShape2D.shape.extents = tex_size +func finished_waiting() -> void: + if(tutorial_area_entered): start_tutorial() + func _physics_process(delta: float) -> void: if(cam == null): cam = get_tree().root.get_child(4).get_node("%BlobbyCam") return + if(moving == false): return button.texture = $Button/ControllerButton.icon # TODO process less in each frame var up_left_pos = cam.get_global_transform().affine_inverse() * (position - tex_size * self.scale) @@ -61,10 +84,28 @@ func _on_Area_area_entered(area: Area2D) -> void: else: velocity.x *=-1 -func _lesson_learned() -> void: - levelState.absolved_tutorial(action) +func _lesson_learned(animation_name: String) -> void: + if(animation_name != "cease_4_exist"): return + moving = false + if(!OS.is_debug_build()): + levelState.absolved_tutorial(tutorial_text) queue_free() +func start_tutorial(): + rng.randomize() + position.x += rng.randf_range(-100, 100) + position.y += rng.randf_range(-100, 100) + velocity.x = velocity.x * sign(rng.randf_range(-1,1)) + velocity.y = velocity.y * sign(rng.randf_range(-1,1)) + tutorial_begun = true + visible = true + moving = true func _on_StartTutorialArea_area_entered(area: Area2D) -> void: - pass + tutorial_area_entered = true + if(tutorial_begun || initial_wait_time > 0): return + start_tutorial() + + # Erkenne ob der Spieler die Aktion für die das Tutorial ist schon kann + # Wenn der Spieler den Tutorialbereich betritte spawne das Thingy random auf dem Screen + # Füge zwei Inputs zusammen zu einem Thingy diff --git a/src/UserInterface/TutorialThingy.tscn b/src/UserInterface/TutorialThingy.tscn index 6f0a6b3..f04f82c 100644 --- a/src/UserInterface/TutorialThingy.tscn +++ b/src/UserInterface/TutorialThingy.tscn @@ -1,9 +1,93 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=18 format=2] -[ext_resource path="res://assets/effects/pixelDissolve.tres" type="Material" id=1] [ext_resource path="res://src/UserInterface/TutorialThingy.gd" type="Script" id=2] [ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=3] [ext_resource path="res://assets/environment/decor/screen/Screen3.png" type="Texture" id=4] +[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=5] +[ext_resource path="res://addons/controller_icons/assets/ps4/cross.png" type="Texture" id=6] +[ext_resource path="res://assets/sounds/huuray.wav" type="AudioStream" id=7] +[ext_resource path="res://assets/effects/noise.png" type="Texture" id=8] + +[sub_resource type="Shader" id=13] +code = "shader_type canvas_item; + +uniform sampler2D noise_tex_normal; +uniform sampler2D noise_tex; +uniform float progress : hint_range(0.0, 1.0); +uniform float scale : hint_range(0.0, 100.0); +uniform float strength = 1.0; + +// If your sprite doesn't have enough space and the explosion gets clipped, +// you can uncomment this and adjust the scale +void vertex() { + VERTEX *= scale; + + UV *= scale; + UV -= (scale - 1.0) / 2.0; +} + +void fragment() { + vec2 direction = texture(noise_tex_normal, UV).xy; // We're using normal map as direction + direction -= 0.5; // Since our normal map is a texture, it ranges from 0.0 to 1.0... + direction *= 2.0; // ...so we're going to make it range from -1.0 to 1.0. + direction = direction * strength * progress; + + // UV for exploded texture + vec2 tex_size = 1.0 / TEXTURE_PIXEL_SIZE; // Real texture size in pixels + vec2 uv = floor(UV * tex_size) / (tex_size - 1.0); // Pixelate UV to snap pixels + uv = uv - direction; // Distort UV + + // Texture with exploded UV + vec4 tex = texture(TEXTURE, uv); + + // Dissolve alpha + float dissolve = texture(noise_tex, UV).x; + dissolve = step(progress, dissolve); + tex.a *= dissolve; + + // Border (in case the edge of your sprite stretches, otherwise you can remove this block) + vec2 border_uv = uv * 2.0 - 1.0; + border_uv = clamp(abs(border_uv), 0.0, 1.0); + float border = max(border_uv.x, border_uv.y); + border = ceil(1.0 - border); + tex.a *= border; + + COLOR = tex; +}" + +[sub_resource type="ShaderMaterial" id=12] +resource_local_to_scene = true +shader = SubResource( 13 ) +shader_param/progress = 0.0 +shader_param/scale = 1.0 +shader_param/strength = 0.1 +shader_param/noise_tex_normal = ExtResource( 8 ) +shader_param/noise_tex = ExtResource( 8 ) + +[sub_resource type="Gradient" id=9] +interpolation_mode = 2 +colors = PoolColorArray( 0, 0, 0, 0.784314, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=8] +gradient = SubResource( 9 ) +width = 300 +height = 75 +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) + +[sub_resource type="Gradient" id=10] +interpolation_mode = 2 +colors = PoolColorArray( 1, 1, 1, 1, 0, 0, 0, 0 ) + +[sub_resource type="GradientTexture2D" id=11] +gradient = SubResource( 10 ) +width = 100 +height = 100 +use_hdr = true +fill = 1 +fill_from = Vector2( 0.5, 0.5 ) +fill_to = Vector2( 0.155994, 0.791965 ) [sub_resource type="RectangleShape2D" id=3] @@ -53,15 +137,21 @@ tracks/1/keys = { } [sub_resource type="RectangleShape2D" id=6] -extents = Vector2( 86, 71 ) +extents = Vector2( 62, 71 ) [node name="TutorialThingy" type="Node2D"] +physics_interpolation_mode = 2 +visible = false script = ExtResource( 2 ) action = "jump" +tutorial_text = "Press to Jump:" [node name="Button" type="Sprite" parent="."] -material = ExtResource( 1 ) +physics_interpolation_mode = 2 +material = SubResource( 12 ) +scale = Vector2( 0.4, 0.4 ) z_index = 3 +texture = ExtResource( 6 ) [node name="ControllerButton" type="Button" parent="Button"] visible = false @@ -69,17 +159,40 @@ margin_right = 12.0 margin_bottom = 20.0 script = ExtResource( 3 ) -[node name="Label" type="Label" parent="."] -margin_left = -34.0 -margin_top = -49.0 -margin_right = 99.0 +[node name="TextureRect" type="TextureRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -150.0 +margin_top = -75.0 +margin_right = 250.0 +margin_bottom = 125.0 +texture = SubResource( 8 ) + +[node name="TextureRect2" type="TextureRect" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -50.0 +margin_top = -50.0 +margin_right = 50.0 margin_bottom = 50.0 -text = "Move Right: - - - +texture = SubResource( 11 ) +[node name="Label" type="Label" parent="."] +physics_interpolation_mode = 2 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -68.0 +margin_top = -41.0 +margin_right = 65.0 +margin_bottom = 58.0 +custom_fonts/font = ExtResource( 5 ) +text = "This is a test " +align = 1 uppercase = true [node name="Area" type="Area2D" parent="."] @@ -99,10 +212,17 @@ visible = false texture = ExtResource( 4 ) [node name="StartTutorialArea" type="Area2D" parent="."] +collision_layer = 0 monitorable = false [node name="CollisionShape2D" type="CollisionShape2D" parent="StartTutorialArea"] shape = SubResource( 6 ) +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource( 7 ) +volume_db = -10.0 +bus = "UI" + [connection signal="area_entered" from="Area" to="." method="_on_Area_area_entered"] +[connection signal="animation_finished" from="AnimationPlayer" to="." method="_lesson_learned"] [connection signal="area_entered" from="StartTutorialArea" to="." method="_on_StartTutorialArea_area_entered"] diff --git a/src/Utilities/LevelState.gd b/src/Utilities/LevelState.gd index 9ba3a47..bd08715 100644 --- a/src/Utilities/LevelState.gd +++ b/src/Utilities/LevelState.gd @@ -44,16 +44,21 @@ func set_frees(value: int) -> void: func set_dead(value: bool) -> void: is_dead = value -func register_tutorial(action_path: String) -> void: - if(GlobalState.gsr.tutorial_prompts.has(action_path)): +func needs_tutorial(lesson: String) -> bool: + if(!GlobalState.gsr.tutorial_prompts.has(lesson)): + return false + return GlobalState.gsr.tutorial_prompts[lesson] + +func register_tutorial(lesson: String) -> void: + if(GlobalState.gsr.tutorial_prompts.has(lesson)): return - GlobalState.gsr.tutorial_prompts[action_path] = true + GlobalState.gsr.tutorial_prompts[lesson] = true GlobalState.save() -func absolved_tutorial(action_path: String) -> void: - if(!GlobalState.gsr.tutorial_prompts.has(action_path)): +func absolved_tutorial(lesson: String) -> void: + if(!GlobalState.gsr.tutorial_prompts.has(lesson)): return - GlobalState.gsr.tutorial_prompts[action_path] = false + GlobalState.gsr.tutorial_prompts[lesson] = false GlobalState.save() # Spends the currency when enough is available