Skip to content

連作シナリオにおけるシステム改善 #282

@snext1220

Description

@snext1220

幕末ソーサリアンも本格的に始まり、連作シナリオに関する問題も出てきています。
本Issueでは、それら問題の改善案をまとめ、対策していきます。
非互換な問題もあり、一朝一夕には対応できないものもありますが、備忘録の意味も含め、列挙しておきます。

series属性の導入

  • scenario要素のseries属性にシリーズidを指定した場合、連作共通のセーブデータを作成する。
  • series属性を持つシナリオは、ひとつのセーブデータを連作で共有する
  • セーブデータにscenerioプロパティ(現在のシナリオid)を追加
  • (課題)バックアップ/リストア管理に影響あり。scenario.xmlにもseries属性を追加要?
  • (課題)シナリオ途中で他のシナリオを開いた場合、無条件にそちらを開始しても良い?
    • scenarioプロパティと等しいかどうかで判定?
  • (課題)現在のシナリオ個々のセーブデータは無効化される(自動移行は辛いので、最初からになってしまうか...)

nexts属性の廃止 ★非互換★

series属性の導入に伴い、nexts属性は廃止する。

  • 現在、不特定多数の回に引き継ぐ場合、nexts属性に連作全てのシナリオidを列挙する必要がありますが、これが不要になります(自由に連作を追加可能)。
  • 不要なセーブデータが大量にできる問題が解消する。

end属性のシーンの仕様変更

  • series属性の導入に伴い、happy、badエンドの処理を変更する。
  • scenario=空文字列、その他はnexts属性での処理に準ずる

次シナリオ開始時のルール

地味に結構複雑になりそうなので、要検討

  • scenario is empty
    + [既存キャラで開始]:********************************
    + [新規キャラで開始]:********************************
  • scenario not empty
    + scenario=現シナ
    + [つづきから]:********************************
    +[既存キャラで最初から]:********************************
    +[新規キャラで最初から]:********************************
    + scenario=他シナ(alert:冒険途中のデータが消えます)
    +[既存キャラで開始]:********************************
    +[新規キャラで開始]:********************************

再開時の確認

[最初から]のボタンをクリックした場合に、ダイアログによる確認を追加(冒険途中のデータが消えますが、宜しいですか?)

  • (課題)連作以外でも適用する?

2021-08-17 更新メモ

series属性の導入

  • scenario要素のseries属性にシリーズidを指定した場合、連作共通のセーブデータを作成する。
    • 作成タイミングはhappy/bad問わず、end属性ありのシーン
    • 現在のnexts属性の仕様に即して、エンディング時のセーブデータを複製
  • 本来のセーブデータは従来通り、シナリオ個々のセーブデータとして管理(バックアップの互換性維持)
    • 【課題】連作バックアップはUtilページからのみ(ok?)
    • 連作セーブデータにはplayingフラグを追加(冒険中シナリオを記録。クリア時は空)

シナリオ開始時の仕様

  • series属性なし:従来と同じ
  • series属性あり
    • 連作sdなし:従来と同じ
    • 連作sdあり:連作sdの複製(以下は追加処理)
      • playingが空
        • 個別sdあり:sceneのみコピー(ただし、本来ないもの)
        • 個別sdなし:×
      • playingが現在のシナ
        • 個別sdあり
          • [はじめから]:
          • [つづきから]:
        • 個別sdなし:×
      • playingが現在のシナ
        • 個別sdあり:
        • 個別sdなし:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Compatibility現在/将来の互換性に影響すると思われる変更enhancement新機能提案*

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions