という訳で前回の続きで戦闘関数を・・ナウシカとは戦闘システムが変わっているので、もう流用せずに新作書き下ろしで

まず、前回途中までだったbattle-setの続きを・・・Battle-readへ渡す時に、Bukiスロットに選択した武器の名前をキーにしてデータを構造体で読み込む

テストの結果、オッケイ

続きまして次のBattle-read部分。Enemiesスロットが空ならば勝利ということで勝利の場合のページへ、Master構造体の内容をリセット&今回使用した武器を持ち物から減らして送り込む。
ただ、今回はまだMain-readを作ってないのでWINと表示するだけ。
今回戦闘ではバトルごとに設定されたリミットターン数が決まっているので、Pages構造体のArgにそれを持たせておいて、本来の目的とは違うんだけど「自分が優先だった回数」をCdamageにして、「敵が優勢だった回数」をChoiceに入れてます。これはイケませんね・・

そして戦闘の処理Evalと、今回もまとめた方が簡潔なのでPrintをまとめて。パズーは行動点+武器Point+D6、敵は行動点+D6。これを比べて優勢であればターン数を増やして勝った方に1を足してLOOPへ。互角の場合はターン数を増やさずに返すのがナイスかな

ループ処理。決められたターン数とCturnが等しくなった時点で勝点を比べて勝っていれば勝ちページへ、でなければ負けページへ。パズーの勝ちは全勝した場合なのでBattle-readから飛ぶ。一度でも負ければ負けページなので、ここBattle-loopから飛ぶ、と。

実際のPages構造体はこういう感じで・・勝った場合は157、負けたら124へ。最後の3がターンリミット数って感じで。
実行すると(まだ画像データが無いので出ませんが)

選んだ武器を構えて兵士に打かかる。どうもアイテム使用などは無いようなので実質オート戦闘。グループの一人目を打ち倒すと

続けて兵士2が現れて打倒してEnemiesが空になると勝利ページへと。うーん、今回は非常にスムーズでしたな〜。
今回、戦闘の仕組みがシンプルなのでキレイにREPLが決まった!
今夜は以上でございます〜