バグ #203
完了デイリーチャレンジフォルダ以外でも難易度が表示される
ファイル
エージェント ちゃん さんが21日前に更新
操作
#3
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
作業開始¶
ステータスを「実装中」に変更し、実装を開始します。
原因¶
チケット #144 でデイリーチャレンジ用に難易度表名/レベルのスキンプロパティ(tablename/tablelevel/tablefull、ref:1001/1002/1003)が拡張され、default/select.json に tablelevel テキスト(ref:1002)が追加されました。
しかし StringPropertyTypes の getTableName / getTableLevel は、選曲画面でも選択中のバーが DailyChallengeSongBar でない場合に state.resource.getTablename() / getTablelevel() へフォールバックします。PlayerResource は直前にプレイした曲の難易度表情報を保持し続けるため、デイリーチャレンジ以外のフォルダでも前回プレイ曲の難易度が表示されてしまうのが原因です。
修正方針¶
選曲画面(state が MusicSelector)かつ選択中バーが DailyChallengeSongBar でない場合は空文字を返すようにし、難易度表名/レベルの表示をデイリーチャレンジフォルダ専用に限定します。プレイ/リザルト画面(非 MusicSelector)では従来どおり resource の値を使用します。
エージェント ちゃん さんが21日前に更新
操作
#4
実装完了¶
デイリーチャレンジフォルダ以外でも難易度(難易度表レベル)が表示されるバグを修正しました。
原因¶
#144 で拡張された tablename/tablelevel スキンプロパティ(StringPropertyTypes)は、選択中バーが DailyChallengeSongBar でない場合に PlayerResource の値へフォールバックしていました。選曲画面では PlayerResource が直前にプレイした曲の難易度表情報を保持し続けるため、すべてのフォルダで難易度が表示されていました。
修正内容¶
-
src/bms/player/beatoraja/skin/property/StringPropertyTypes.javaのgetTableName/getTableLevelを修正。 - 選曲画面(state が
MusicSelector)で選択中バーがDailyChallengeSongBarでない場合は空文字を返すようにし、難易度表名/レベル表示をデイリーチャレンジフォルダ専用に限定。 - プレイ/リザルト画面(非
MusicSelector)では従来どおりresourceの値を使用(#144 以前の振る舞いを維持)。getTableFullNameは2ヘルパーから導出されるため変更不要。 - スキン
.jsonその他のファイルは未変更。
検証¶
-
xvfb-run -a ./gradlew test: 成功 -
./gradlew compileJava: 成功
コミット / ブランチ¶
- branch:
feature/203(push 済) - commit:
f064011e refs #203 Show difficulty table level only in Daily Challenge folder
マージリクエストはご指示をいただければ作成します。
エージェント ちゃん さんが21日前に更新
操作
#5
実機検証 OK / マージリクエスト作成¶
報告者による実機検証が OK となりました。マージリクエストを作成しました。
- MR: !37 https://gitlab.izu-san.com/games/beatoraja/-/merge_requests/37
- source:
feature/203→ target:develop - assignee / reviewer: izu-san
エージェント ちゃん さんが21日前に更新
操作
#6
- ステータス を 実装中 から 完了 に変更
- 進捗率 を 10 から 100 に変更
マージ完了 / クローズ¶
MR !37 が develop にマージされました。ステータスを「完了」に変更します。
実装内容(確定)¶
- 選曲画面でデイリーチャレンジフォルダ以外でも難易度表レベルが表示されるバグ(#144 のリグレッション)を修正。
-
StringPropertyTypesのgetTableName/getTableLevelを修正し、選曲画面(MusicSelector)で選択中バーがDailyChallengeSongBarでない場合は空文字を返すようにし、難易度表名/レベル表示をデイリーチャレンジフォルダ専用に限定。 - プレイ/リザルト画面では従来どおり
resourceの値を使用。
検証¶
-
xvfb-run -a ./gradlew test: 成功 - 実機検証 : OK
マージ¶
- MR !37 →
develop(merge commit71ce02ec)