diff --git a/audio/sounds/gover.wav b/audio/sounds/gover.wav new file mode 100644 index 0000000..f0b5ae3 Binary files /dev/null and b/audio/sounds/gover.wav differ diff --git a/audio/sounds/gover.wav.import b/audio/sounds/gover.wav.import new file mode 100644 index 0000000..c6270d2 --- /dev/null +++ b/audio/sounds/gover.wav.import @@ -0,0 +1,23 @@ +[remap] + +importer="wav" +type="AudioStreamSample" +path="res://.import/gover.wav-fb994db7cb276d7598aad5c659b45fb3.sample" + +[deps] + +source_file="res://audio/sounds/gover.wav" +dest_files=[ "res://.import/gover.wav-fb994db7cb276d7598aad5c659b45fb3.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_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/game.gd b/game.gd index 315cfac..a55cf29 100644 --- a/game.gd +++ b/game.gd @@ -34,6 +34,7 @@ const a_sword = preload("res://audio/sounds/sword.ogg") const a_doublejump = preload("res://audio/sounds/a_bree.wav") const a_shoot = preload("res://audio/sounds/a_egg_shoot.ogg") const a_die = preload("res://audio/sounds/die.wav") +const a_gover = preload("res://audio/sounds/gover.wav") #Objects const block_text = preload("res://objects/hud/blocktext.tscn") const pause_screen = preload("res://objects/hud/pause_screen.tscn") @@ -118,6 +119,10 @@ func restart_level(): Game.arrows = 0 Game.lives = 2 Game.ac_climb.stop() + Game.ac_die.stop() + Engine.time_scale = 1.0 + for tween in get_tree().get_processed_tweens(): + tween.kill() Game.change_map(load(Game.get_map().filename)) #Freeze frame diff --git a/objects/player/player.gd b/objects/player/player.gd index 7691ba3..066c0b9 100644 --- a/objects/player/player.gd +++ b/objects/player/player.gd @@ -12,7 +12,7 @@ onready var dust_particles = $DustParticles #Map onready var map = get_owner() ##States -enum State {IDLE,WALK,JUMP,FALL,STUNNED,CLIMB,SWORD,SHOOT} +enum State {IDLE,WALK,JUMP,FALL,STUNNED,CLIMB,SWORD,SHOOT,INACTIVE} var current_state = State.IDLE ##Runtime var axis = Vector2.ZERO #Current direction being held @@ -41,6 +41,8 @@ func _physics_process(delta): #Check ladder check_ladder() match current_state: + State.INACTIVE: + return State.IDLE: _process_idle() continue @@ -69,7 +71,8 @@ func _physics_process(delta): _process_shoot() #Gravity - if current_state != State.CLIMB: velocity.y += gravity + if current_state != State.CLIMB: + velocity.y += gravity #Cut y velocity when hitting ceiling if is_on_ceiling(): current_state = State.FALL @@ -251,14 +254,25 @@ func die(): new_particles.global_position = global_position new_particles.emitting = true sprite.visible = false - Game.play_sound(Game.a_die,Game.ac_die) - yield(Game.freeze_frame(0.3), "timeout") - position = Game.respawn_point - sprite.visible = true - current_state = State.IDLE Game.lives -= 1 if Game.lives < 0: + new_particles.amount = 64 + new_particles.lifetime = 0.45 + new_particles.speed_scale = 1.5 + current_state = State.INACTIVE + Game.play_sound(Game.a_gover, Game.ac_die) + var time_tween = get_tree().create_tween() + time_tween.tween_property(Engine, "time_scale", 0.1, 0.3) + Game.ac_music.stop() + yield(time_tween, "finished") + yield(get_tree().create_timer(1.0 * 0.1), "timeout") Game.call_deferred("restart_level") + else: + Game.play_sound(Game.a_die, Game.ac_die) + yield(Game.freeze_frame(0.3), "timeout") + position = Game.respawn_point + current_state = State.IDLE + sprite.visible = true func _on_AnimationPlayer_animation_finished(anim_name): #Return to idle after slash