1
0
Fork 0

Compare commits

...

4 Commits

Author SHA1 Message Date
Manu 002b806e03 changed background color 2021-04-26 14:00:01 +02:00
Manu 2bd5662036 add and integrated sfx 2021-04-26 13:51:52 +02:00
Manu bc02e0888e add reset button 2021-04-26 01:44:38 +02:00
Manu 8e9cfd94f3 reservoir indicator 2021-04-26 01:34:40 +02:00
81 changed files with 1035 additions and 23 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=2]
[gd_scene load_steps=27 format=2]
[ext_resource path="res://Scenes/Grid.tscn" type="PackedScene" id=1]
[ext_resource path="res://Scenes/Player.tscn" type="PackedScene" id=2]
@ -7,6 +7,25 @@
[ext_resource path="res://Music/Calm/bass_double_v1.mp3" type="AudioStream" id=5]
[ext_resource path="res://Music/Calm/drums_calm_v1.mp3" type="AudioStream" id=6]
[ext_resource path="res://Sprites/stairs.tres" type="SpriteFrames" id=7]
[ext_resource path="res://Sprites/reservoir.tres" type="SpriteFrames" id=8]
[ext_resource path="res://Sounds/sfx_discovery.wav" type="AudioStream" id=9]
[ext_resource path="res://addons/randomAudioStreamPlayer/random_audio_stream_player.gd" type="Script" id=10]
[ext_resource path="res://Sounds/sfx_trash_10.wav" type="AudioStream" id=11]
[ext_resource path="res://Sounds/sfx_trash_01.wav" type="AudioStream" id=12]
[ext_resource path="res://Sounds/sfx_trash_14.wav" type="AudioStream" id=13]
[ext_resource path="res://Sounds/sfx_trash_06.wav" type="AudioStream" id=14]
[ext_resource path="res://Sounds/sfx_trash_15.wav" type="AudioStream" id=15]
[ext_resource path="res://Sounds/sfx_trash_11.wav" type="AudioStream" id=16]
[ext_resource path="res://Sounds/sfx_trash_07.wav" type="AudioStream" id=17]
[ext_resource path="res://Sounds/sfx_trash_13.wav" type="AudioStream" id=18]
[ext_resource path="res://Sounds/sfx_trash_02.wav" type="AudioStream" id=19]
[ext_resource path="res://Sounds/sfx_trash_00.wav" type="AudioStream" id=20]
[ext_resource path="res://Sounds/sfx_trash_09.wav" type="AudioStream" id=21]
[ext_resource path="res://Sounds/sfx_trash_12.wav" type="AudioStream" id=22]
[ext_resource path="res://Sounds/sfx_trash_04.wav" type="AudioStream" id=23]
[ext_resource path="res://Sounds/sfx_trash_03.wav" type="AudioStream" id=24]
[ext_resource path="res://Sounds/sfx_trash_05.wav" type="AudioStream" id=25]
[ext_resource path="res://Sounds/sfx_trash_08.wav" type="AudioStream" id=26]
[node name="Floor" instance=ExtResource( 1 )]
tile_data = PoolIntArray( 262149, 1, 0, 262150, 1, 0, 262151, 1, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 327685, 1, 0, 327686, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 0, 327690, 1, 0, 327691, 1, 0, 327692, 1, 0, 393216, 0, 0, 393217, 0, 0, 393219, 0, 0, 393221, 1, 0, 393222, 1, 0, 393223, 1, 0, 393224, 1, 0, 393225, 1, 0, 393226, 1, 0, 393227, 1, 0, 393228, 1, 0, 458757, 1, 0, 458758, 1, 0, 458759, 1, 0, 458760, 1, 0, 458761, 1, 0, 458762, 1, 0, 458763, 1, 0, 458764, 1, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 589829, 1, 0, 589830, 1, 0, 589831, 1, 0, 589832, 1, 0, 589833, 1, 0, 589834, 1, 0, 589835, 1, 0, 589836, 1, 0, 655365, 1, 0, 655366, 1, 0, 655367, 1, 0, 655368, 1, 0, 655369, 1, 0, 655370, 1, 0, 655371, 1, 0, 655372, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 0, 720904, 1, 0, 720905, 1, 0, 720906, 1, 0, 720907, 1, 0, 720908, 1, 0 )
@ -27,20 +46,30 @@ tile_data = PoolIntArray( 393216, 0, 0, 393217, 0, 0, 393219, 0, 0, 393220, 0, 0
[node name="Waste" parent="." index="2" instance=ExtResource( 1 )]
tile_data = PoolIntArray( 327691, 15, 0, 524295, 14, 0, 655370, 11, 0 )
[node name="Sound" type="AudioStreamPlayer" parent="Waste" index="0"]
bus = "sfx"
script = ExtResource( 10 )
streams = [ ExtResource( 20 ), ExtResource( 12 ), ExtResource( 19 ), ExtResource( 24 ), ExtResource( 23 ), ExtResource( 25 ), ExtResource( 14 ), ExtResource( 17 ), ExtResource( 26 ), ExtResource( 21 ), ExtResource( 11 ), ExtResource( 16 ), ExtResource( 22 ), ExtResource( 18 ), ExtResource( 13 ), ExtResource( 15 ) ]
random_strategy = 2
[node name="Player" parent="." index="3" instance=ExtResource( 2 )]
position = Vector2( 880, 520 )
speed = 10.0
speed_dash = 70.0
reservoir = 6
reservoir = 5
[node name="Stairs" type="AnimatedSprite" parent="." index="4"]
modulate = Color( 1, 1, 1, 0.5 )
visible = false
show_behind_parent = true
position = Vector2( 800, 560 )
frames = ExtResource( 7 )
frame = 4
offset = Vector2( -20, 0 )
[node name="Sound" type="AudioStreamPlayer" parent="Stairs" index="0"]
stream = ExtResource( 9 )
bus = "sfx"
[node name="Drum" type="AudioStreamPlayer" parent="." index="5"]
stream = ExtResource( 6 )
autoplay = true
@ -55,3 +84,8 @@ bus = "drum"
stream = ExtResource( 4 )
autoplay = true
bus = "drum"
[node name="Reservoir" type="AnimatedSprite" parent="." index="8"]
position = Vector2( 1550, 820 )
frames = ExtResource( 8 )
frame = 5

View File

@ -1,7 +1,25 @@
[gd_scene load_steps=4 format=2]
[gd_scene load_steps=22 format=2]
[ext_resource path="res://Sprites/Player.tres" type="SpriteFrames" id=1]
[ext_resource path="res://addons/randomAudioStreamPlayer/random_audio_stream_player.gd" type="Script" id=2]
[ext_resource path="res://Script/Player.gd" type="Script" id=3]
[ext_resource path="res://Sounds/sfx_step_00.wav" type="AudioStream" id=4]
[ext_resource path="res://Sounds/sfx_step_14.wav" type="AudioStream" id=5]
[ext_resource path="res://Sounds/sfx_step_07.wav" type="AudioStream" id=6]
[ext_resource path="res://Sounds/sfx_step_09.wav" type="AudioStream" id=7]
[ext_resource path="res://Sounds/sfx_step_01.wav" type="AudioStream" id=8]
[ext_resource path="res://Sounds/sfx_step_02.wav" type="AudioStream" id=9]
[ext_resource path="res://Sounds/sfx_step_04.wav" type="AudioStream" id=10]
[ext_resource path="res://Sounds/sfx_step_05.wav" type="AudioStream" id=11]
[ext_resource path="res://Sounds/sfx_step_06.wav" type="AudioStream" id=12]
[ext_resource path="res://Sounds/sfx_step_12.wav" type="AudioStream" id=13]
[ext_resource path="res://Sounds/sfx_step_13.wav" type="AudioStream" id=14]
[ext_resource path="res://Sounds/sfx_step_03.wav" type="AudioStream" id=15]
[ext_resource path="res://Sounds/sfx_step_08.wav" type="AudioStream" id=16]
[ext_resource path="res://Sounds/sfx_step_11.wav" type="AudioStream" id=17]
[ext_resource path="res://Sounds/sfx_step_10.wav" type="AudioStream" id=18]
[ext_resource path="res://Sounds/sfx_no.wav" type="AudioStream" id=19]
[ext_resource path="res://Sounds/sfx_dash_02.wav" type="AudioStream" id=20]
[sub_resource type="CapsuleShape2D" id=1]
radius = 32.0
@ -23,3 +41,16 @@ animation = "front"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 0, -16 )
shape = SubResource( 1 )
[node name="FootSteps" type="AudioStreamPlayer" parent="."]
bus = "sfx"
script = ExtResource( 2 )
streams = [ ExtResource( 4 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 15 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 6 ), ExtResource( 16 ), ExtResource( 7 ), ExtResource( 18 ), ExtResource( 17 ), ExtResource( 13 ), ExtResource( 14 ), ExtResource( 5 ) ]
[node name="Deny" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 19 )
bus = "sfx"
[node name="Hoover" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 20 )
bus = "sfx"

View File

@ -8,6 +8,8 @@ onready var _props := $Props as TileMap
onready var _waste := $Waste as TileMap
onready var _player := $Player as Player
onready var _stairs := $Stairs as AnimatedSprite
onready var _reservoir := $Reservoir as AnimatedSprite
onready var _wastesound := $Waste/Sound as AudioStreamPlayer
export var start_x := 0
export var start_y := 0
@ -37,6 +39,11 @@ func _process(delta):
_stairs = $Stairs as AnimatedSprite
_stairs.position = map_to_world(Vector2(stairs_x, stairs_y))
if not _reservoir is AnimatedSprite:
_reservoir = $Reservoir as AnimatedSprite
update_reservoir()
class Tile:
@ -111,6 +118,7 @@ class Tile:
for tile in waste_line:
tile.set_tile(level._waste, -1)
level.check_completed()
level.waste_sound(waste_line.size())
return waste_line.back() if not waste_line.empty() else self
func get_tile_v(var position :Vector2) -> Tile:
@ -133,3 +141,12 @@ func show_stairs() -> void:
_stairs.frame = 0
_stairs.visible = true
_stairs.play()
($Stairs/Sound as AudioStreamPlayer).play()
func update_reservoir() -> void:
_reservoir.frame = _player.reservoir
func waste_sound(var number :int):
for i in range(number):
_wastesound.play()
yield(_wastesound, "finished")

View File

@ -9,6 +9,8 @@ export var rest : float = 1
export var reservoir : int = 1
var level
onready var footsteps = $FootSteps
onready var deny = $Deny
var tile_position := Vector2(0,0)
var last_move_time := 0.0
@ -38,16 +40,18 @@ class Sweep:
var tile_limit
var waste_limit
var cost: int
var sound: AudioStreamPlayer
func _init(_action, _tlimit, _wlimit, _cost):
func _init(_action, _tlimit, _wlimit, _cost, _sound):
action = _action
tile_limit = _tlimit
waste_limit = _wlimit
cost = _cost
sound = _sound
var sweeps = [
Sweep.new("dash", INF, INF, 3),
Sweep.new("whoosh", INF, 1, 2)
onready var sweeps = [
Sweep.new("dash", INF, INF, 3, $Hoover),
Sweep.new("whoosh", INF, 1, 2, null)
]
var movement_queue = []
@ -60,6 +64,9 @@ func _process(delta):
if Engine.editor_hint:
return
if Input.is_action_pressed("reset"):
get_tree().reload_current_scene()
if (last_move_time + rest) * 1000 < OS.get_ticks_msec():
for movement in movements:
if Input.is_action_pressed(movement.action):
@ -84,6 +91,7 @@ func _process(delta):
movement_queue.pop_front()
else:
tile.push(current_movement.direction)
footsteps.play()
if current_target != null:
tile_position += current_movement.direction * delta * (speed_dash if dashing else speed)
@ -105,19 +113,30 @@ func _process(delta):
for sweep in sweeps:
if reservoir >= sweep.cost and Input.is_action_just_pressed(sweep.action):
if not current_target == null:
tile_position = current_target
if Input.is_action_just_pressed(sweep.action):
var current = level.get_tile_v(tile_position)
var end = current.dash(current_direction.direction, sweep.tile_limit, sweep.waste_limit)
if current != end:
movement_queue = [current_direction]
current_target = Vector2 (end.x, end.y)
dashing = true
reservoir = reservoir - sweep.cost
break
if reservoir >= sweep.cost:
if not current_target == null:
tile_position = current_target
var current = level.get_tile_v(tile_position)
var end = current.dash(current_direction.direction, sweep.tile_limit, sweep.waste_limit)
if current != end:
movement_queue = [current_direction]
current_target = Vector2 (end.x, end.y)
dashing = true
reservoir = reservoir - sweep.cost
level.update_reservoir()
if sweep.sound != null:
sweep.sound.play()
break
else:
deny.play()
else:
deny.play()
func update_position():
@ -125,4 +144,4 @@ func update_position():
func update_animation():
sprite.animation = current_direction.animation
sprite.frame = step_count % 2 + (0 if reservoir > 1 else 2)
sprite.frame = step_count % 2 + (0 if reservoir > 0 else 2)

BIN
Sounds/sfx_dash_02.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_dash_02.wav-5a63ac5280bae73b48c38dd77fcd0c14.sample"
[deps]
source_file="res://Sounds/sfx_dash_02.wav"
dest_files=[ "res://.import/sfx_dash_02.wav-5a63ac5280bae73b48c38dd77fcd0c14.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_discovery.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_discovery.wav-40522442197679b2b5881817ee38fdc5.sample"
[deps]
source_file="res://Sounds/sfx_discovery.wav"
dest_files=[ "res://.import/sfx_discovery.wav-40522442197679b2b5881817ee38fdc5.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_no.wav Normal file

Binary file not shown.

21
Sounds/sfx_no.wav.import Normal file
View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_no.wav-71a61c6cce4124a3e07d81f467d3433f.sample"
[deps]
source_file="res://Sounds/sfx_no.wav"
dest_files=[ "res://.import/sfx_no.wav-71a61c6cce4124a3e07d81f467d3433f.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_00.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_00.wav-409e2fe4a999c4b7b988ed50344bf9fb.sample"
[deps]
source_file="res://Sounds/sfx_step_00.wav"
dest_files=[ "res://.import/sfx_step_00.wav-409e2fe4a999c4b7b988ed50344bf9fb.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_01.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_01.wav-71013d266af0503582ebf63126a59942.sample"
[deps]
source_file="res://Sounds/sfx_step_01.wav"
dest_files=[ "res://.import/sfx_step_01.wav-71013d266af0503582ebf63126a59942.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_02.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_02.wav-f6168fe959137c9ec8f58beb1a530ae6.sample"
[deps]
source_file="res://Sounds/sfx_step_02.wav"
dest_files=[ "res://.import/sfx_step_02.wav-f6168fe959137c9ec8f58beb1a530ae6.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_03.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_03.wav-86109e0d135c0b7f148e44f9f6038b26.sample"
[deps]
source_file="res://Sounds/sfx_step_03.wav"
dest_files=[ "res://.import/sfx_step_03.wav-86109e0d135c0b7f148e44f9f6038b26.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_04.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_04.wav-9516bc86d5ab65f594c42499847a3710.sample"
[deps]
source_file="res://Sounds/sfx_step_04.wav"
dest_files=[ "res://.import/sfx_step_04.wav-9516bc86d5ab65f594c42499847a3710.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_05.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_05.wav-dd5a80bd05932d4519bb838297061500.sample"
[deps]
source_file="res://Sounds/sfx_step_05.wav"
dest_files=[ "res://.import/sfx_step_05.wav-dd5a80bd05932d4519bb838297061500.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_06.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_06.wav-9a555b52a5adcbd3e7b0e4e27b012f4a.sample"
[deps]
source_file="res://Sounds/sfx_step_06.wav"
dest_files=[ "res://.import/sfx_step_06.wav-9a555b52a5adcbd3e7b0e4e27b012f4a.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_07.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_07.wav-f925a462e766426d22aaab64d3bf6400.sample"
[deps]
source_file="res://Sounds/sfx_step_07.wav"
dest_files=[ "res://.import/sfx_step_07.wav-f925a462e766426d22aaab64d3bf6400.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_08.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_08.wav-58f69fe8028ce86a17551e8a89b8acb3.sample"
[deps]
source_file="res://Sounds/sfx_step_08.wav"
dest_files=[ "res://.import/sfx_step_08.wav-58f69fe8028ce86a17551e8a89b8acb3.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_09.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_09.wav-33db26cac16d8c0f10a7a93f0bf55a68.sample"
[deps]
source_file="res://Sounds/sfx_step_09.wav"
dest_files=[ "res://.import/sfx_step_09.wav-33db26cac16d8c0f10a7a93f0bf55a68.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_10.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_10.wav-e4284625be7cc7b6e47d202acf29fa77.sample"
[deps]
source_file="res://Sounds/sfx_step_10.wav"
dest_files=[ "res://.import/sfx_step_10.wav-e4284625be7cc7b6e47d202acf29fa77.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_11.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_11.wav-ec3b1555d78774c90dfc79ea08edacb7.sample"
[deps]
source_file="res://Sounds/sfx_step_11.wav"
dest_files=[ "res://.import/sfx_step_11.wav-ec3b1555d78774c90dfc79ea08edacb7.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_12.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_12.wav-9b6215e07c890dabb6ede11b00239b07.sample"
[deps]
source_file="res://Sounds/sfx_step_12.wav"
dest_files=[ "res://.import/sfx_step_12.wav-9b6215e07c890dabb6ede11b00239b07.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_13.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_13.wav-9311e2a407842d90ee348950f4fadf64.sample"
[deps]
source_file="res://Sounds/sfx_step_13.wav"
dest_files=[ "res://.import/sfx_step_13.wav-9311e2a407842d90ee348950f4fadf64.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_step_14.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_step_14.wav-b453ba03bbcf2f46f5fb48b41ec15632.sample"
[deps]
source_file="res://Sounds/sfx_step_14.wav"
dest_files=[ "res://.import/sfx_step_14.wav-b453ba03bbcf2f46f5fb48b41ec15632.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_00.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_00.wav-f43a2d7a45244c27b9459564e9859965.sample"
[deps]
source_file="res://Sounds/sfx_trash_00.wav"
dest_files=[ "res://.import/sfx_trash_00.wav-f43a2d7a45244c27b9459564e9859965.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_01.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_01.wav-8459a98b46dd444a5b87f39053bfe2e0.sample"
[deps]
source_file="res://Sounds/sfx_trash_01.wav"
dest_files=[ "res://.import/sfx_trash_01.wav-8459a98b46dd444a5b87f39053bfe2e0.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_02.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_02.wav-8bbc48bf32b784c2725c54e02096f318.sample"
[deps]
source_file="res://Sounds/sfx_trash_02.wav"
dest_files=[ "res://.import/sfx_trash_02.wav-8bbc48bf32b784c2725c54e02096f318.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_03.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_03.wav-2385e098691ae28003d08674a3ba5fb0.sample"
[deps]
source_file="res://Sounds/sfx_trash_03.wav"
dest_files=[ "res://.import/sfx_trash_03.wav-2385e098691ae28003d08674a3ba5fb0.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_04.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_04.wav-422f973fccd9799196ba8c8f5dfcbc06.sample"
[deps]
source_file="res://Sounds/sfx_trash_04.wav"
dest_files=[ "res://.import/sfx_trash_04.wav-422f973fccd9799196ba8c8f5dfcbc06.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_05.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_05.wav-d0cfe7acf2fb9c653abd321bbe5924cb.sample"
[deps]
source_file="res://Sounds/sfx_trash_05.wav"
dest_files=[ "res://.import/sfx_trash_05.wav-d0cfe7acf2fb9c653abd321bbe5924cb.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_06.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_06.wav-059285b74b5eb8862dda7f065ee3975d.sample"
[deps]
source_file="res://Sounds/sfx_trash_06.wav"
dest_files=[ "res://.import/sfx_trash_06.wav-059285b74b5eb8862dda7f065ee3975d.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_07.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_07.wav-edb26adc9a27d87df1887860e73a24ca.sample"
[deps]
source_file="res://Sounds/sfx_trash_07.wav"
dest_files=[ "res://.import/sfx_trash_07.wav-edb26adc9a27d87df1887860e73a24ca.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_08.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_08.wav-8fe055e10523c90b2fa86deca5b347a5.sample"
[deps]
source_file="res://Sounds/sfx_trash_08.wav"
dest_files=[ "res://.import/sfx_trash_08.wav-8fe055e10523c90b2fa86deca5b347a5.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_09.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_09.wav-9307e62abaeeaddab71d9c551766b72b.sample"
[deps]
source_file="res://Sounds/sfx_trash_09.wav"
dest_files=[ "res://.import/sfx_trash_09.wav-9307e62abaeeaddab71d9c551766b72b.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_10.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_10.wav-3fd0b9f9f7f5ef7a711af8a9ce41af2f.sample"
[deps]
source_file="res://Sounds/sfx_trash_10.wav"
dest_files=[ "res://.import/sfx_trash_10.wav-3fd0b9f9f7f5ef7a711af8a9ce41af2f.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_11.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_11.wav-7488de91994b44f5696258905ad82d25.sample"
[deps]
source_file="res://Sounds/sfx_trash_11.wav"
dest_files=[ "res://.import/sfx_trash_11.wav-7488de91994b44f5696258905ad82d25.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_12.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_12.wav-61762d363c106c0a5293ae9d89edd534.sample"
[deps]
source_file="res://Sounds/sfx_trash_12.wav"
dest_files=[ "res://.import/sfx_trash_12.wav-61762d363c106c0a5293ae9d89edd534.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_13.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_13.wav-611bf9458c0685e24a919652c9b99cca.sample"
[deps]
source_file="res://Sounds/sfx_trash_13.wav"
dest_files=[ "res://.import/sfx_trash_13.wav-611bf9458c0685e24a919652c9b99cca.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_14.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_14.wav-1975ce9c6af438d2897ca0de7f9ccaaf.sample"
[deps]
source_file="res://Sounds/sfx_trash_14.wav"
dest_files=[ "res://.import/sfx_trash_14.wav-1975ce9c6af438d2897ca0de7f9ccaaf.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

BIN
Sounds/sfx_trash_15.wav Normal file

Binary file not shown.

View File

@ -0,0 +1,21 @@
[remap]
importer="wav"
type="AudioStreamSample"
path="res://.import/sfx_trash_15.wav-9666db5e18a5f335b3e8bd8795667a87.sample"
[deps]
source_file="res://Sounds/sfx_trash_15.wav"
dest_files=[ "res://.import/sfx_trash_15.wav-9666db5e18a5f335b3e8bd8795667a87.sample" ]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop=false
compress/mode=0

55
Sprites/reservoir.tres Normal file
View File

@ -0,0 +1,55 @@
[gd_resource type="SpriteFrames" load_steps=13 format=2]
[ext_resource path="res://Textures/tank.png" type="Texture" id=1]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 1 )
region = Rect2( 0, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 1 )
region = Rect2( 460, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 1 )
region = Rect2( 920, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 1 )
region = Rect2( 1380, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 1 )
region = Rect2( 1840, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 1 )
region = Rect2( 2300, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 1 )
region = Rect2( 2760, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 1 )
region = Rect2( 3220, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 1 )
region = Rect2( 3680, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 1 )
region = Rect2( 4140, 0, 460, 400 )
[sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 1 )
region = Rect2( 4600, 0, 460, 400 )
[resource]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ) ],
"loop": true,
"name": "default",
"speed": 5.0
} ]

BIN
Textures/tank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

34
Textures/tank.png.import Normal file
View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/tank.png-6972dd8753ba4d11d49c8e9f14cccd36.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Textures/tank.png"
dest_files=[ "res://.import/tank.png-6972dd8753ba4d11d49c8e9f14cccd36.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -0,0 +1,19 @@
Copyright (c) 2020 Tim Krief.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -0,0 +1,7 @@
[plugin]
name="Random Audio Stream Player"
description="Custom Audio Stream Player nodes that will play randomly a stream from an array of streams with the possibility to choose the random strategy and to randomize the volume and the pitch."
author="Tim Krief"
version="1.0.0"
script="random_audio.gd"

View File

@ -0,0 +1,12 @@
tool
extends EditorPlugin
func _enter_tree():
add_custom_type("RandomAudioStreamPlayer", "AudioStreamPlayer", preload("random_audio_stream_player.gd"), preload("icon_random_audio_stream_player.svg"))
add_custom_type("RandomAudioStreamPlayer2D", "AudioStreamPlayer2D", preload("random_audio_stream_player_2D.gd"), preload("icon_random_audio_stream_player_2_d.svg"))
add_custom_type("RandomAudioStreamPlayer3D", "AudioStreamPlayer3D", preload("random_audio_stream_player_3D.gd"), preload("icon_random_audio_stream_player_3_d.svg"))
func _exit_tree():
remove_custom_type("RandomAudioStreamPlayer")
remove_custom_type("RandomAudioStreamPlayer2D")
remove_custom_type("RandomAudioStreamPlayer3D")

View File

@ -0,0 +1,58 @@
tool
extends AudioStreamPlayer
export(Array, AudioStream) var streams
export(int, "Pure", "No consecutive repetition", "Use all samples before repeat") var random_strategy = 0
export(bool) var randomize_volume = false
export(float, -80, 24) var volume_min = 0
export(float, -80, 24) var volume_max = 0
export(bool) var randomize_pitch = false
export(float, 0.01, 32) var pitch_min = 1
export(float, 0.01, 32) var pitch_max = 1
var playing_sample_nb : int = -1
var last_played_sample_nb : int = -1 # only used if random_strategy = 1
var to_play = [] # only used if random_strategy = 2
func play(from_position=0.0):
playing = true
var number_of_samples = len(streams)
if number_of_samples > 0:
if playing_sample_nb < 0:
if number_of_samples == 1:
playing_sample_nb = 0
else:
randomize()
match random_strategy:
1:
playing_sample_nb = randi() % (number_of_samples - 1)
if last_played_sample_nb == playing_sample_nb:
playing_sample_nb += 1
last_played_sample_nb = playing_sample_nb
2:
if len(to_play) == 0:
for i in range(number_of_samples):
if i != last_played_sample_nb:
to_play.append(i)
to_play.shuffle()
playing_sample_nb = to_play.pop_back()
last_played_sample_nb = playing_sample_nb
_:
playing_sample_nb = randi() % number_of_samples
if randomize_volume:
set_volume_db(rand_range(volume_min, volume_max))
if randomize_pitch:
set_pitch_scale(rand_range(pitch_min, pitch_max))
set_stream(streams[playing_sample_nb])
.play(from_position)
func _ready():
connect("finished", self, "reset_playing_sample_nb")
func reset_playing_sample_nb():
if playing_sample_nb >= 0:
playing_sample_nb = -1

View File

@ -5,7 +5,7 @@ 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 = 0.0694828
bus/1/send = "Master"
bus/2/name = "drum"
bus/2/solo = false
@ -25,3 +25,9 @@ bus/4/mute = false
bus/4/bypass_fx = false
bus/4/volume_db = 0.0
bus/4/send = "music"
bus/5/name = "sfx"
bus/5/solo = false
bus/5/mute = false
bus/5/bypass_fx = false
bus/5/volume_db = 0.0
bus/5/send = "Master"

View File

@ -62,6 +62,12 @@ whoosh={
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
]
}
reset={
"deadzone": 0.5,
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
]
}
[physics]
@ -72,4 +78,4 @@ common/enable_pause_aware_picking=true
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_clear_color=Color( 0, 0, 0, 1 )
environment/default_clear_color=Color( 0.054902, 0.0745098, 0.152941, 1 )