操作
リファクタ #211
完了ロボライバル機能を本体から削除し izu-IR 側に移管する
リファクタ #211:
ロボライバル機能を本体から削除し izu-IR 側に移管する
説明
refs #195
#187 の方針「ロボライバル機能を IR 側に」に従い、beatoraja 本体のローカルロボライバル実装を整理・削除する。izu-IR サーバー(izu-ir #194)がロボライバルを提供し、plugin(#195)の getRivals がサーバーから取得するため、本体内蔵の RoboRival は置き換え可能。
背景¶
- 現状 beatoraja にはローカルの偽 IR としてのロボライバル機能がある(
RoboRivalIRConnectionなど)。 - izu-IR 移管後はサーバーがロボライバルスコアを返すため、本体側の重複実装は不要になる見込み。
影響範囲(要整理)¶
grep -ri RoboRival src で本体 18 ファイル + テスト 4 ファイルに分布。主な箸所:
- IR:
ir/RoboRivalIRConnection.java,ir/RankingData.java - ランチャー UI:
launcher/RoboRivalConfigurationView.java/.fxml,launcher/PlayConfigurationView.java/.fxml - 設定/永続化:
RoboRivalConfig.java,PlayerConfig.java,PlayerConfigPersistenceDto.java,PlayerConfigValidator.java,RivalDataAccessor.java - プレイ/ターゲット:
play/RoboRivalRotationTargetProperty.java,play/TargetProperty.java,play/BMSPlayer.java,MainController.java - リザルト:
result/MusicResult.java,result/CourseResult.java - テスト:
RoboRivalTest.java,play/RoboRivalRotationTargetPropertyTest.java,launcher/LauncherFxmlLoadSmokeTest.java,PlayerConfigFileCompatibilityTest.java
やること(要仕様決定)¶
- 本体のロボライバル UI・設定・コネクション(
RoboRivalIRConnection他)を削除するか、izu-IR 経由に一本化するかを決定。 - **ターゲット表示(RIVAL/ロボライバルをプレイ中ターゲットにする機能)**を残すかを要決定。残す場合は IR から取得したライバルスコアをターゲット源にする形へ組み替えが必要。
-
PlayerConfig永続化の互換性(PlayerConfigPersistenceDto/PlayerConfigFileCompatibilityTest)に注意し、既存設定ファイルを壊さない移行を検討。 - 関連テストの削除/更新。
注意¶
- 影響範囲が広く(プレイ/リザルト/設定永続化)大きなリファクタ。着手時にサブタスク分解推奨。
- 本体での RoboRival 削除は IR 有効化(#210)・ izu-IR ロボライバル取得の動作確認後に行うのが安全。
関連¶
- #187(仕様ブレスト: ロボライバルを IR 側に)
- #210(IR 有効化)
- izu-ir #194(server の ranking/rival/robo-rival API)ーizu-ir #195(plugin getRivals)
操作