プロジェクト

全般

プロフィール

機能 #397

完了

機能 #396: ゲーム内常駐ペット育成機能の追加

ペット状態の永続化(PlayerConfig 拡張 + JSON 後方互換)

機能 #397: ペット状態の永続化(PlayerConfig 拡張 + JSON 後方互換)

エージェント ちゃん さんが13日前に追加. 12日前に更新.

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

100%

予定工数:

説明

背景 / 目的

親チケット #396 MVP の一部。ペットの状態(名前・総EXP・レベル・親密度・機嫌・直近獲得EXP・直近リザルトのクリア種別)を PlayerConfig に保存し、JSON として永続化する。既存の config_player.json との後方互換を保つ。

作業内容

  • PlayerConfig にペット状態フィールドを追加する
    • name(名前)
    • totalExp(総EXP)
    • level(レベル)
    • friendship(親密度)
    • mood(機嫌)
    • lastGainedExp(直近獲得EXP)
    • lastResultClear(直近リザルトのクリア種別)
  • JSON シリアライズ / デシリアライズを実装する
  • ペット設定キーが存在しない旧 config_player.json を読み込んでもデフォルト値で正常起動できるようにする

完了条件 (DoD)

  • 旧 config_player.json(ペット設定なし)を読み込んでもエラーが発生しない
  • ペット状態が JSON 保存・読み込みで正しく保持される
  • ユニットテストがすべて通る

補足

後続の #398(成長計算)・#399(プレイ結果連携)・#400(skin プロパティ)はすべてこのチケットのデータ構造に依存する。

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

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

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

いづ さん さんが13日前に更新 · 編集済み 操作 #3

jsonだと簡単に書き換えられるので、DB内部などに保存してちょっとは難しくしたほうがいい。

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

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

実装に着手しました。

  • ブランチ: feature/397
  • 対応方針: コメントのご指摘(JSONは改変が容易)を踏まえ、ペット状態は プレイヤー別 score.db の専用 pet テーブル に永続化します。専用 PetDatabaseAccessor(score.db を共用)+ PetData を追加し、旧 score.db は起動時に自動でテーブル作成して後方互換を保ちます。PlayerConfig/JSON への保存は行いません(チケット本文から方針変更)。

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

  • ステータス実装中 から 完了 に変更
  • 進捗率10 から 100 に変更

対応が完了しました。

概要

ペット状態(名前・総EXP・レベル・親密度・機嫌・直近獲得EXP・直近リザルトのクリア種別)を永続化。JSON は手動改変が容易なため、チケット本文の PlayerConfig+JSON 案から プレイヤー別 score.db の専用 pet テーブル へ保存する方針に変更した。

変更点

  • PetData(POJO・8フィールド)を追加。カラム名=Java プロパティ名で既存の reflection insert / BeanListHandler に整合。
  • PetDatabaseAccessorSQLiteDatabaseAccessor 継承)を追加。pet テーブルの定義・get/set を提供。getPetData() は行・テーブル不在いずれでもデフォルト値を返し null を返さない。
  • PlayDataAccessorpetdb(score.db を共用)を組み込み readPetData()/writePetData() を公開。起動時の createTable() で旧 score.db(pet テーブル無し)でも自動作成し後方互換を確保。
  • PlayerConfig / config_player.json は不変更。
  • 変更ファイル: src/bms/player/beatoraja/PetData.javaPetDatabaseAccessor.javaPlayDataAccessor.javasrc/test/java/bms/player/beatoraja/PetDatabaseAccessorTest.java(計4件)

テスト

  • Docker(DevContainer) 未起動のため Windows ホストで実行(変更は JavaFX 非依存の DB 層のみ)。compileJava/compileTestJava 成功、PetDatabaseAccessorTest tests=4・failures=0・errors=0(デフォルト値・往復永続化・旧DB後方互換・null非返却)。

関連 MR

  • !79 (feature/397 → develop)

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