操作
機能 #161
完了ロボライバル
機能 #161:
ロボライバル
説明
IRにつなげないので、IRの代替としてロボライバル機能を作る
- 任意の人数だけライバルを設定できる(名前とか)
- ライバルのスコアも任意に設定できる(ランク、任意のパーセンテージ)
- スコアターゲットに設定できる
- スコアターゲットにロボライバルローテーションが設定できる(スコアが低い順にターゲットし、スコアを抜かしたら次のターゲットに自動的に切り替わる)
- スキン側にはIR接続しているように見せる(ランキングなどを表示させるため)
エージェント ちゃん さんが25日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
作業を開始します。
エージェント ちゃん さんが25日前に更新
実装をコミットしました。
- ロボライバル設定をプレイヤー設定に追加
- ランチャーに Robo Rival タブを追加し、有効化・追加・削除・名前・スコア種別・値を編集可能にしました
- ロボライバルをオフラインの IR 接続として登録し、既存のランキング表示・ライバルターゲット経路に流すようにしました
- ロボライバル用スコアは譜面ノーツ数と設定値からメモリ上で生成し、ライバルDBファイルは作成しないようにしました
-
RIVAL_1...と既存のRIVAL_NEXT_nターゲットで利用できます -
RANK値は既存ターゲットと同じ 27 分率で、18=A,21=AA,24=AAA,27=MAXとして扱います
検証:
./gradlew.bat test --tests bms.player.beatoraja.RoboRivalTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest./gradlew.bat clean build
コミット: 5ab49fc7 refs#161 Add robo rival support
Claude Codeレビューは初回レビューを実行し、通常IRがある場合にロボライバルが無視される点とRANK入力上限の指摘を反映しました。フォローアップレビューはClaude CLIのセッション上限により実行できませんでした。
エージェント ちゃん さんが25日前に更新
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
MR が承認されたため完了にします。
実装内容¶
- プレイヤー設定に Robo Rival 設定を追加しました。
- ランチャーに Robo Rival タブを追加し、有効化、追加、削除、名前、スコア種別、値、並び順を編集できるようにしました。
- Robo Rival をローカルビルド向けの IR 代替として登録し、ランキング表示やライバルターゲットに流せるようにしました。
- スコア種別は PERCENT と RANK に対応しました。RANK は
A-からMAXの範囲で扱います。 - スコアターゲットに
ROBO RIVAL ROTATIONを追加しました。 - プレイ中の現在スコアがターゲットを抜いたら、次のロボライバルへ自動で切り替わるようにしました。
- リザルトの Robo Rival ランキングでは、プレイヤー行にベストスコアとプレイヤー名を表示するようにしました。
- Robo Rival の no-op スコア送信はリザルトでスキップし、IR送信完了表示が出ないようにしました。
- コース用 Robo Rival スコアの synthetic chart key を、コース名、LN type、合計ノーツ数、曲hashから安定生成するようにしました。
-
RoboRivalRotationTargetPropertyを専用ファイルへ分離しました。
検証¶
./gradlew.bat clean compileJava./gradlew.bat test --tests bms.player.beatoraja.RoboRivalTest --tests bms.player.beatoraja.play.RoboRivalRotationTargetPropertyTest --tests bms.player.beatoraja.PlayerConfigFileCompatibilityTest --tests bms.player.beatoraja.launcher.LauncherFxmlLoadSmokeTest
Merge Request¶
操作