hero-mark-2/autoloads/audio.gd
2023-11-29 23:52:31 -05:00

75 lines
3.1 KiB
GDScript

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
onready var ac_land = $LandSound
#Sounds
const a_key = preload("res://audio/sounds/key.ogg")
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.ogg")
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/double_jump.ogg")
const a_shoot = preload("res://audio/sounds/shoot_arrow.ogg")
const a_die = preload("res://audio/sounds/die.ogg")
const a_die_skeleton = preload("res://audio/sounds/die_skeleton.ogg")
const a_scrump_die = preload("res://audio/sounds/scrump_die.ogg")
const a_explosion = preload("res://audio/sounds/explosion.ogg")
const a_game_over = preload("res://audio/sounds/gover.ogg")
const a_scrump_hurt = preload("res://audio/sounds/scrump_hurt.ogg")
const a_bubble = preload("res://audio/sounds/bubble.ogg")
const a_select = preload("res://audio/sounds/select.ogg")
const a_confirm = preload("res://audio/sounds/confirm.ogg")
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")
const a_land = preload("res://audio/sounds/land.ogg")
const a_teleport = preload("res://audio/sounds/teleport.ogg")
const a_mkey = preload("res://audio/sounds/mkey.ogg")
const a_msx_die = preload("res://audio/sounds/msx_die.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)