戦闘一時DBの導入と戦闘の流れ確立

基本システムではメニューを開く際、装備等の計算用に一時DBを使用していました。これは前回のメニュー改造時に作ったやつです。


同様に、基本システムでは戦闘中も戦闘用の一時DB(可変DB[10:×┏ 戦闘一時ステータス[基]])を使用しています。


一時DBを使用する理由については、以下のような解説があります。

可変DB[10:×┏ 戦闘一時ステータス[基]]データをコピーして、戦闘中はこの可変DB[10:×┏ 戦闘一時ステータス[基]]のデータを使って戦闘処理を行います。


データをコピーする事で、例えば戦闘中に一時的に最大HPや攻撃力を上げたり、戦闘コマンドを増やしたりしても、コピー元のデータは戦闘前と変わらないので、戦闘終了後に元のデータに戻すような処理が不要になります。


また同じ敵キャラが複数体登場しても、データID「10」「11」「12」と分けて処理しますので、同じ敵キャラを登場させてもデータが混同する事はありません。

戦闘一時DB

今作の戦闘システムにも戦闘一時DBを導入。

もちろんデータ番号がマップEvIDに連動している仕様は変えないので、0は空データです。
※これで可変DB[ユニットデータ]は必要なくなる

戦闘情報DB

基本システムのユーザーDB[13:敵グループ]に相当するDBを作成。

敵ユニットがどのマップのどの座標に出現するのか、それと作戦成功時の取得経験値や金額などの情報をここに登録しておきます。


量産機戦も作成する事を見越して、敵ユニット最大設定可能数は9にしておきました。

戦闘結果画面

RPGの戦闘後って、「経験値を取得した!」とか「レベルアップした!」とかありますよね。
基本システムにもそんな感じの画面表示があるので、これを改造していきます。


具体的にどんな画面にするかというと




これ



エヴァの戦闘終了後画面。これを再現する感じ。




で、作ってみた↓

色とかデザインは後回しで。
損壊率も今は固定値ですが、後でちゃんと計算して表示するようにします。

戦闘の流れ

その他、基本システムを真似て戦闘開始から終了までの流れを構築。


処理構造(めちゃめちゃ大雑把に)

戦闘開始まで
 コモンEv[戦闘初期化] - 引数に戦闘情報番号を指定して呼び出し
  現在地(通常パートマップ)記録
  暗転
  主人公透明化
  戦闘情報DBから戦闘マップID取得
  戦闘マップに移動
  射出可能地点探索マップチップのタグ番号が10の座標とする(地形の概念)
  保有ユニットに初期射出地点を割り当て
  コモンEv[メニュー起動]「出撃」を選択
    コモンEv[戦闘マップ準備]
      コモンEv[敵ユニット登録]基本システムのコモンEv144[X[戦]敵DB→戦闘DBコピー]相当の処理
      敵ユニット数を記録可変DB[自作:システム用変数]に記録
      コモンEv[味方ユニット登録]基本システムのコモンEv143[X[戦]主人公DB→戦闘DBコピー]相当の処理
         コモンEv[シンクロ補正]
      コモンEv[[戦]一時ステ計算<装備補正>]
      コモンEv[[戦]消費ステータス初期化]  ←Point
      全ユニット数を記録可変DB[自作:システム用変数]に記録
      コモンEv[起動時イベント]ここで銀日記さんのSRPGシステム(改)を起動し、戦闘開始
  明転

戦闘終了後
 コモン[終了時処理] - 引数に勝敗情報を指定して呼び出し
  コモンEv[DB復元]基本システムのコモンEv199[X┣◆主人公DB復元]相当の処理
    コモンEv[[戦]戦闘DB→主人公DBへ戻す]
  コモンEv[戦利品獲得処理]
    コモンEv[[戦]戦利品獲得画面]
      コモンEv[[戦]エヴァ損壊状況_全員描画]
      コモンEv[[戦]戦闘結果画面]
    コモンEv[[移]パラメータ増減]
      コモンEv[[移]レベルアップ処理]
  主人公透明化を解除
  戦闘ステートを0にするここで銀日記さんのSRPGシステム(改)が停止
  コモンEv[[予]戦闘終了後イベント]  ←Point
    元のマップ(通常パートマップ)に戻る


コモンEv[[戦]消費ステータス初期化]の処理内容
通常、RPGではHPMPが消費ステータスであるように、今作のSRPGシステムでは耐久値行動回数内部電源(稼働時間)が消費ステータスに相当します。


基本システムではこの消費ステータスについて、例えば武器などを装備したとしても最大値が増加するだけで、現在のステータスが増加する事はありません


まあ普通のRPGってそうですよね。
装備で最大MPを増加した状態で宿屋に泊まったり、泉の水を飲んでHP・MPを全回復する、なんてことはRPG経験者なら誰でも想像できることだと思います。


で、今作のシステムだとそれはちょっとまずくて、戦闘開始前に装備を変更したら行動回数、内部電源(稼働時間)はその時の最大値まで補正されないといけませんし、かといって戦闘中に装備変更が発生した際に同じように全回復していたら武器交換をするたびに無限に行動回数、内部電源(稼働時間)が増え続ける最強ユニットが完成されてしまうわけ。


なので、このコモンEvで戦闘開始時だけ行動回数と内部電源(稼働時間)をMAXにしてます。


コモンEv[[予]戦闘終了後イベント]を予約にした理由
戦闘ステートを0にした時点で並列実行中のSRPGシステム(改)が停止する影響なのか、ここで普通にコモンEvを呼び出すと上手くいかなかったのでこうしました。


通常パートのマップに移動するだけならそもそもコモンEv化する必要もないのですが、今後、戦闘終了後に色々と処理を追加する予定なのでコモンEv化させておきました。

※ちゃっかり共通処理を抽出したりでコモンEvが増えてます



基本システム改造はこちら↓を参考にしました。
yado.tk