Add battle turn audio cues
This commit is contained in:
@@ -9195,10 +9195,11 @@ func _update_hud() -> void:
|
|||||||
func _update_auto_end_turn_prompt() -> void:
|
func _update_auto_end_turn_prompt() -> void:
|
||||||
if auto_end_turn_prompt_panel == null:
|
if auto_end_turn_prompt_panel == null:
|
||||||
return
|
return
|
||||||
if _should_show_auto_end_turn_prompt():
|
var was_visible := auto_end_turn_prompt_panel.visible
|
||||||
auto_end_turn_prompt_panel.visible = true
|
var should_show := _should_show_auto_end_turn_prompt()
|
||||||
return
|
auto_end_turn_prompt_panel.visible = should_show
|
||||||
auto_end_turn_prompt_panel.visible = false
|
if should_show and not was_visible:
|
||||||
|
_play_ui_confirm()
|
||||||
|
|
||||||
|
|
||||||
func _should_show_auto_end_turn_prompt() -> bool:
|
func _should_show_auto_end_turn_prompt() -> bool:
|
||||||
@@ -10504,8 +10505,10 @@ func _format_hanja_number(value: int) -> String:
|
|||||||
|
|
||||||
func _show_turn_notice_for_log(message: String) -> void:
|
func _show_turn_notice_for_log(message: String) -> void:
|
||||||
if message == "적군 차례가 열렸습니다.":
|
if message == "적군 차례가 열렸습니다.":
|
||||||
|
_play_sfx("guard_block", UI_SFX_VOLUME_DB)
|
||||||
_show_command_notice("적군 군령", "제%d군령 · 적군 차례" % state.turn_number)
|
_show_command_notice("적군 군령", "제%d군령 · 적군 차례" % state.turn_number)
|
||||||
elif message == "아군 차례가 열렸습니다.":
|
elif message == "아군 차례가 열렸습니다.":
|
||||||
|
_play_ui_confirm()
|
||||||
_show_command_notice("아군 군령", "제%d군령 · 아군 차례" % state.turn_number)
|
_show_command_notice("아군 군령", "제%d군령 · 아군 차례" % state.turn_number)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ func _init() -> void:
|
|||||||
_check_scene_post_move_scrolled_view_positioning(failures)
|
_check_scene_post_move_scrolled_view_positioning(failures)
|
||||||
_check_scene_post_move_menu_tracks_map_scroll(failures)
|
_check_scene_post_move_menu_tracks_map_scroll(failures)
|
||||||
_check_scene_input_audio_cues(failures)
|
_check_scene_input_audio_cues(failures)
|
||||||
|
_check_scene_turn_notice_audio_cues(failures)
|
||||||
_check_scene_post_move_text_fit(failures)
|
_check_scene_post_move_text_fit(failures)
|
||||||
_check_scene_post_move_blocked_command_labels(failures)
|
_check_scene_post_move_blocked_command_labels(failures)
|
||||||
_check_scene_post_move_tactic_picker_flow(failures)
|
_check_scene_post_move_tactic_picker_flow(failures)
|
||||||
@@ -84,6 +85,8 @@ func _check_deferred_move_events(failures: Array[String]) -> void:
|
|||||||
func _check_auto_end_turn_prompt_flow(failures: Array[String]) -> void:
|
func _check_auto_end_turn_prompt_flow(failures: Array[String]) -> void:
|
||||||
var scene = BattleSceneScript.new()
|
var scene = BattleSceneScript.new()
|
||||||
scene._create_hud()
|
scene._create_hud()
|
||||||
|
scene._create_audio()
|
||||||
|
scene.title_sfx_enabled = true
|
||||||
if not scene.state.load_battle("res://data/scenarios/001_yellow_turbans.json"):
|
if not scene.state.load_battle("res://data/scenarios/001_yellow_turbans.json"):
|
||||||
failures.append("could not load opening battle for auto end turn prompt")
|
failures.append("could not load opening battle for auto end turn prompt")
|
||||||
scene.free()
|
scene.free()
|
||||||
@@ -115,11 +118,18 @@ func _check_auto_end_turn_prompt_flow(failures: Array[String]) -> void:
|
|||||||
if str(unit.get("team", "")) == BattleStateScript.TEAM_PLAYER and bool(unit.get("alive", true)) and bool(unit.get("deployed", true)) and bool(unit.get("controllable", true)):
|
if str(unit.get("team", "")) == BattleStateScript.TEAM_PLAYER and bool(unit.get("alive", true)) and bool(unit.get("deployed", true)) and bool(unit.get("controllable", true)):
|
||||||
unit["acted"] = true
|
unit["acted"] = true
|
||||||
unit["moved"] = true
|
unit["moved"] = true
|
||||||
|
scene.recent_sfx_keys.clear()
|
||||||
scene._update_hud()
|
scene._update_hud()
|
||||||
if not scene.auto_end_turn_prompt_panel.visible:
|
if not scene.auto_end_turn_prompt_panel.visible:
|
||||||
failures.append("auto end turn prompt should appear once every controllable ally has acted")
|
failures.append("auto end turn prompt should appear once every controllable ally has acted")
|
||||||
if not scene._is_input_locked():
|
if not scene._is_input_locked():
|
||||||
failures.append("auto end turn prompt should lock board input while visible")
|
failures.append("auto end turn prompt should lock board input while visible")
|
||||||
|
if not scene.recent_sfx_keys.has("menu_confirm"):
|
||||||
|
failures.append("auto end turn prompt should play a confirmation cue when it first appears: %s" % str(scene.recent_sfx_keys))
|
||||||
|
scene.recent_sfx_keys.clear()
|
||||||
|
scene._update_hud()
|
||||||
|
if not scene.recent_sfx_keys.is_empty():
|
||||||
|
failures.append("auto end turn prompt should not repeat audio while already visible: %s" % str(scene.recent_sfx_keys))
|
||||||
|
|
||||||
if not scene._handle_cancel_input():
|
if not scene._handle_cancel_input():
|
||||||
failures.append("right-click cancel should dismiss the auto end turn prompt")
|
failures.append("right-click cancel should dismiss the auto end turn prompt")
|
||||||
@@ -142,6 +152,30 @@ func _check_auto_end_turn_prompt_flow(failures: Array[String]) -> void:
|
|||||||
scene.free()
|
scene.free()
|
||||||
|
|
||||||
|
|
||||||
|
func _check_scene_turn_notice_audio_cues(failures: Array[String]) -> void:
|
||||||
|
var scene = BattleSceneScript.new()
|
||||||
|
scene._create_hud()
|
||||||
|
scene._create_audio()
|
||||||
|
scene.title_sfx_enabled = true
|
||||||
|
|
||||||
|
scene.recent_sfx_keys.clear()
|
||||||
|
scene._on_log_added("적군 차례가 열렸습니다.")
|
||||||
|
if not scene.recent_sfx_keys.has("guard_block"):
|
||||||
|
failures.append("enemy turn notice should play a warning cue: %s" % str(scene.recent_sfx_keys))
|
||||||
|
|
||||||
|
scene.recent_sfx_keys.clear()
|
||||||
|
scene._on_log_added("아군 차례가 열렸습니다.")
|
||||||
|
if not scene.recent_sfx_keys.has("menu_confirm"):
|
||||||
|
failures.append("player turn notice should play a confirmation cue: %s" % str(scene.recent_sfx_keys))
|
||||||
|
|
||||||
|
scene.title_sfx_enabled = false
|
||||||
|
scene.recent_sfx_keys.clear()
|
||||||
|
scene._on_log_added("아군 차례가 열렸습니다.")
|
||||||
|
if not scene.recent_sfx_keys.is_empty():
|
||||||
|
failures.append("disabled SFX should suppress turn notice audio: %s" % str(scene.recent_sfx_keys))
|
||||||
|
scene.free()
|
||||||
|
|
||||||
|
|
||||||
func _check_scene_post_move_menu_flow(failures: Array[String]) -> void:
|
func _check_scene_post_move_menu_flow(failures: Array[String]) -> void:
|
||||||
var scene = BattleSceneScript.new()
|
var scene = BattleSceneScript.new()
|
||||||
scene._create_hud()
|
scene._create_hud()
|
||||||
@@ -320,6 +354,7 @@ func _check_scene_input_audio_cues(failures: Array[String]) -> void:
|
|||||||
var scene = BattleSceneScript.new()
|
var scene = BattleSceneScript.new()
|
||||||
scene._create_hud()
|
scene._create_hud()
|
||||||
scene._create_audio()
|
scene._create_audio()
|
||||||
|
scene.title_sfx_enabled = true
|
||||||
if not scene.state.load_battle("res://data/scenarios/001_yellow_turbans.json"):
|
if not scene.state.load_battle("res://data/scenarios/001_yellow_turbans.json"):
|
||||||
failures.append("could not load opening battle for input audio cues")
|
failures.append("could not load opening battle for input audio cues")
|
||||||
scene.free()
|
scene.free()
|
||||||
|
|||||||
Reference in New Issue
Block a user