feat: basic tutorial ready

This commit is contained in:
Jakob Feldmann 2023-08-08 17:50:54 +02:00
parent 29e3c60d1a
commit 85fd6a6c80
110 changed files with 1500 additions and 257 deletions

View File

@ -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 )

View File

@ -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

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

BIN
assets/sounds/crumch.wav Normal file

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

BIN
assets/sounds/huuray.wav Normal file

Binary file not shown.

View File

@ -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

Binary file not shown.

View File

@ -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

View File

@ -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

Binary file not shown.

View File

@ -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

BIN
assets/sounds/vibing.wav Normal file

Binary file not shown.

View File

@ -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

BIN
assets/sounds/wrong.wav Normal file

Binary file not shown.

View File

@ -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

View File

@ -1,4 +1,4 @@
[gd_resource type="DynamicFont" format=2]
[resource]
size = 10
size = 20

View File

@ -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 )

View File

@ -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,

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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")

View File

@ -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"

View File

@ -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

View File

@ -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"]

View File

@ -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

View File

@ -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"]

View File

@ -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

View File

@ -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"]

View File

@ -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)

View File

@ -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

View File

@ -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"]

View File

@ -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"]

View File

@ -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"]

View File

@ -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"]

View File

@ -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

View File

@ -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")

View File

@ -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")

View File

@ -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

Some files were not shown because too many files have changed in this diff Show More