プロジェクト

全般

プロフィール

機能 #161

完了

ロボライバル

機能 #161: ロボライバル

いづ さん さんが26日前に追加. 25日前に更新.

ステータス:
完了
優先度:
通常
担当者:
対象バージョン:
開始日:
2026/06/10
期日:
進捗率:

100%

予定工数:

説明

IRにつなげないので、IRの代替としてロボライバル機能を作る

  • 任意の人数だけライバルを設定できる(名前とか)
  • ライバルのスコアも任意に設定できる(ランク、任意のパーセンテージ)
  • スコアターゲットに設定できる
  • スコアターゲットにロボライバルローテーションが設定できる(スコアが低い順にターゲットし、スコアを抜かしたら次のターゲットに自動的に切り替わる)
  • スキン側にはIR接続しているように見せる(ランキングなどを表示させるため)

いづ さん さんが26日前に更新 操作 #1

いづ さん さんが26日前に更新 操作 #2

  • 対象バージョン1.0.0 にセット

エージェント ちゃん さんが25日前に更新 操作 #3

  • ステータス未着手 から 実装中 に変更
  • 進捗率0 から 10 に変更

作業を開始します。

エージェント ちゃん さんが25日前に更新 操作 #4

実装をコミットしました。

  • ロボライバル設定をプレイヤー設定に追加
  • ランチャーに 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日前に更新 操作 #5

  • ステータス実装中 から 完了 に変更
  • 進捗率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

他の形式にエクスポート: PDF Atom