141 lines
6.2 KiB
GDScript
141 lines
6.2 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
|
|
onready var ac_voice = $Voice
|
|
onready var ac_small_explosion = $SmallExplosion
|
|
onready var ac_mech_hurt = $MechHurt
|
|
onready var ac_mech_shoot = $MechShoot
|
|
#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_get.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_splash = preload("res://audio/sounds/splash.ogg")
|
|
const a_die_zap = preload("res://audio/sounds/spark.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_penny = preload("res://audio/sounds/good_job_penny.ogg")
|
|
const a_good_job_haze = preload("res://audio/sounds/good_job_haze.ogg")
|
|
const a_good_job_ivy = preload("res://audio/sounds/good_job_ivy.ogg")
|
|
const a_good_job_dog = preload("res://audio/sounds/good_job_dog.ogg")
|
|
const a_great_job_penny = preload("res://audio/sounds/great_job_penny.ogg")
|
|
const a_great_job_haze = preload("res://audio/sounds/great_job_haze.ogg")
|
|
const a_great_job_ivy = preload("res://audio/sounds/great_job_ivy.ogg")
|
|
const a_great_job_dog = preload("res://audio/sounds/great_job_dog.ogg")
|
|
const a_2600_charge = preload("res://audio/sounds/2600_charge.ogg")
|
|
const a_victory = preload("res://audio/sounds/victory_nobonus.ogg")
|
|
const a_time_bonus = preload("res://audio/sounds/victory_haze.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")
|
|
const a_famira = preload("res://audio/sounds/famira.ogg")
|
|
const a_vulcan = preload("res://audio/sounds/vulcan.ogg")
|
|
const a_grumble = preload("res://audio/sounds/fami_grumble.ogg")
|
|
const a_laser_ready = preload("res://audio/sounds/laser_ready.ogg")
|
|
const a_copsquash = preload("res://audio/sounds/copsquash.ogg")
|
|
const a_copsquash2 = preload("res://audio/sounds/cop_splat.ogg")
|
|
const a_fami_transform = preload("res://audio/sounds/fami_transform.ogg")
|
|
const a_ominous = preload("res://audio/sounds/ominous.ogg")
|
|
const a_bullet_casing = preload("res://audio/sounds/shell.ogg")
|
|
const a_gun_cock = preload("res://audio/sounds/gun_cock.ogg")
|
|
const a_famira_die = preload("res://audio/sounds/famira_die.ogg")
|
|
const a_small_explosion = preload("res://audio/sounds/explosion_small.ogg")
|
|
const a_mech_hurt_1 = preload("res://audio/sounds/mech_hurt_1.ogg")
|
|
const a_mech_hurt_2 = preload("res://audio/sounds/mech_hurt_2.ogg")
|
|
const a_mech_hurt_3 = preload("res://audio/sounds/mech_hurt_3.ogg")
|
|
const a_critical_heat = preload("res://audio/sounds/critical_heat.ogg")
|
|
const a_glass_crack = preload("res://audio/glass_crack.ogg")
|
|
const a_glass_break = preload("res://audio/glass_break.ogg")
|
|
const a_shield = preload("res://audio/sounds/stab.wav")
|
|
const a_shield_cooldown = preload("res://audio/sounds/coin.wav")
|
|
|
|
var loop_section = null
|
|
var has_looped = false
|
|
var r = 0
|
|
|
|
#Plays a sound
|
|
func play_sound(snd: AudioStream, player: AudioStreamPlayer, pitch: float = 1.0):
|
|
player.stream = snd
|
|
player.pitch_scale = pitch
|
|
player.play()
|
|
|
|
#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)
|
|
ac_pause_music.set_stream_paused(true)
|
|
var r = 0
|
|
if Game.deaths == 0:
|
|
if Game.shards == 4:
|
|
r = 40
|
|
else:
|
|
r = 40
|
|
if r <= 30: play_sound(a_good_job_penny,ac_shard)
|
|
if r > 30 && r <= 60: play_sound(a_good_job_haze,ac_shard)
|
|
if r > 60 && r <= 90: play_sound(a_good_job_ivy,ac_shard)
|
|
if r > 90: play_sound(a_good_job_dog,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)
|
|
if !get_tree().paused: ac_music.set_stream_paused(false)
|
|
ac_pause_music.set_stream_paused(false)
|
|
|
|
func great_job():
|
|
var idx = AudioServer.get_bus_index("sound")
|
|
AudioServer.set_bus_mute(idx, true)
|
|
ac_music.set_stream_paused(true)
|
|
ac_pause_music.set_stream_paused(true)
|
|
if Game.deaths == 0:
|
|
r = 40
|
|
else:
|
|
r = 40
|
|
if r <= 30: play_sound(a_great_job_penny,ac_shard)
|
|
if r > 30 && r <= 60: play_sound(a_great_job_haze,ac_shard)
|
|
if r > 60 && r <= 90: play_sound(a_great_job_ivy,ac_shard)
|
|
if r > 90: play_sound(a_great_job_dog,ac_shard)
|
|
|
|
func pause_all(paused: bool) -> void:
|
|
for player in get_children():
|
|
player.stream_paused = paused
|