diff --git a/scripts/purge.gd b/scripts/purge.gd index b86dbcb..9f559e1 100644 --- a/scripts/purge.gd +++ b/scripts/purge.gd @@ -1,6 +1,7 @@ extends Node2D const ELITE_DAMAGE_PCT := 0.75 +const FLASH_HOLD_DURATION := 0.1 const FLASH_FADE_DURATION := 0.6 var _build_up_sound = preload("res://assets/music&sfx/sfx/purge_build_up.wav") @@ -21,15 +22,27 @@ func _ready() -> void: camera.shake(2.0, 0.5) _play_sfx(_build_up_sound, "SFX") -func _on_summon_circle_frame_changed() -> void: - if summon_circle.frame == 77: - _play_sfx(_flash_sound, "SFX", -10.0) +const _SIGIL_TICK_PITCHES := { + 34: 0.500, + 38: 0.595, + 47: 0.707, + 56: 0.841, + 63: 0.707, +} -func _play_sfx(stream: AudioStream, bus: String, volume_db: float = 0.0) -> void: +func _on_summon_circle_frame_changed() -> void: + var frame := summon_circle.frame + if frame == 77: + _play_sfx(_flash_sound, "SFX", -10.0) + elif _SIGIL_TICK_PITCHES.has(frame): + _play_sfx(_flash_sound, "SFX", -16.0, _SIGIL_TICK_PITCHES[frame]) + +func _play_sfx(stream: AudioStream, bus: String, volume_db: float = 0.0, pitch_scale: float = 1.0) -> void: var asp = AudioStreamPlayer.new() asp.stream = stream asp.bus = bus asp.volume_db = volume_db + asp.pitch_scale = pitch_scale get_parent().add_child(asp) asp.play() asp.finished.connect(asp.queue_free) @@ -67,6 +80,7 @@ func _flash() -> void: var tween = create_tween() tween.set_pause_mode(Tween.TWEEN_PAUSE_PROCESS) + tween.tween_interval(FLASH_HOLD_DURATION) tween.tween_property(rect, "color:a", 0.0, FLASH_FADE_DURATION) await tween.finished queue_free()