extends Node #Audio Channels onready var ac_jump = $JumpSound onready var ac_collectible = $CollectibleSound onready var ac_climb = $ClimbSound onready var ac_die = $DieSound onready var ac_music = $Music onready var ac_cheat = $CodeEntrySound onready var ac_boss = $BossSound onready var ac_shard = $ShardSound onready var ac_pause_music = $PauseMusic onready var ac_menu = $MenuSound #Sounds const a_gold = preload("res://audio/sounds/key.wav") const a_arrow = preload("res://audio/sounds/arrow_collect.ogg") const a_jump = preload("res://audio/sounds/jump.ogg") const a_star = preload("res://audio/sounds/star.ogg") const a_shard = preload("res://audio/sounds/shard.wav") const a_climb_up = preload("res://audio/sounds/a_climb.ogg") const a_climb_down = preload("res://audio/sounds/a_bmilc.ogg") 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/shoot_arrow.ogg") const a_die = preload("res://audio/sounds/die.wav") const a_die_skeleton = preload("res://audio/sounds/die_skeleton.wav") const a_scrump_die = preload("res://audio/sounds/scrump_die.wav") const a_die_robot = preload("res://audio/sounds/die_robot.wav") const a_gover = preload("res://audio/sounds/gover.wav") const a_boss_hurt = preload("res://audio/sounds/boss_hurt.wav") const a_bubble = preload("res://audio/sounds/bubble.wav") const a_select = preload("res://audio/sounds/select.wav") const a_confirm = preload("res://audio/sounds/confirm.wav") const a_bullet_barrage = preload("res://audio/sounds/bullet_barrage.ogg") const a_rainbow_laser = preload("res://audio/sounds/rainbow_laser.ogg") const a_spaghetti = preload("res://audio/sounds/spaghetti.ogg") const a_good_job = preload("res://audio/sounds/good_job.ogg") const a_2600_charge = preload("res://audio/sounds/2600_charge.ogg") const a_victory = preload("res://audio/sounds/victory.ogg") const a_shard_results = preload("res://audio/sounds/shard_results.ogg") const a_fail_shard = preload("res://audio/sounds/fail_shard.ogg") const a_final_score = preload("res://audio/sounds/final_score.ogg") var loop_section = null var has_looped = false #Plays a sound func play_sound(snd,player): player.set_stream(snd) player._set_playing(true) #Play music, if same track is already playing do nothing func play_music(song): if Audio.ac_music.stream != song or Audio.ac_music.playing == false: play_sound(song,ac_music) #Play shard sound, this silences all other sounds including music until the sound ends func play_shard_sound(): var idx = AudioServer.get_bus_index("sound") AudioServer.set_bus_mute(idx, true) ac_music.set_stream_paused(true) if Game.deaths == 0: play_sound(a_good_job,ac_shard) else: play_sound(a_shard,ac_shard) func _on_ShardSound_finished(): var idx = AudioServer.get_bus_index("sound") AudioServer.set_bus_mute(idx, false) ac_music.set_stream_paused(false)