ん〜・・じゃあ複数のアイテムをゲットするように仕様変更していくか!本当はS式っぽく((item, num),(item, num) ...)って感じで何も設定せずにリストにしてCarとCadrで取りてぇ〜。でもそういわけにはいかないので

ItemGet構造体を作って、Node構造体にスライス形式のItemGetBeforeListフィールドとして設定する

もともとのItemGetBefore部分を複数用に書き換える、書き始める前は「これって面倒だなぁ」と思ってたんだけど

あ、内容そのままでスライスをイテレートすれば良いやんかと。ぐへぇ、楽すぎる!ちなみにテストは最後にやろうと思うのでちゃんと動くかは謎。

ちゅーわけでTOML部分はこのようになる、と

Item用のGetメソッドはどこに書いたっけかなぁ・・と探してたんだけど、HandleStoryNodeの親メソッドであるHandleNodeメソッドにも同じ処理が書かれていてビビる。基本的にはStoryノードにしかアイテム取得は無いはずなので(あってもEncounter後とかになるはず)、こっちは不要だと思う。なんで両方に書いてたのだろうか?

前の単品バージョンは消そうと思ってたんだけど、考えてみたら今までの単品版のTOML記述部分をスライス方式に書き換えるよりも単品版を残したほうが楽だと閃いたので併用することにする。

続いて「バックパックの中身だけを失う」のと「バックパックごと失う」の区別をするために書き換えを行うことにする。バックパックの中身だけを失う場合にはBackpackSizeを0に、Backpackごと失うときには-1にするってことで良かろう。

問題はStoryで発生する場合もあれば、Random_rollや戦闘後のOutcomesで起きる場合もあるという事で・・ま、どっちにも用意しておこう

LostBackpackがゼロ値じゃなければSizeを-1にして、Sizeが-1だったらアイテムを全ロストさせて、新たにアイテムをゲット出来ないようにして・・と。ややこしいのでやっぱり有る無しをブーリアンでやるべきだったか

Sizeが-1だった場合にはアイテムをゲット出来なくして・・

Outcomes.LostContentsがゼロ値じゃ無かったらアイテムを全部失って・・って、あれ?エラー。

あ、そうだった。OutcomesはOutcomeのスライスで実行されるまでどの選択肢が選ばれるか分からないので、確定してからじゃないと駄目だった

面倒だなぁ・・と思ったんだけど、既にHpchangeとかを作ってたので改変コピーして貼り付けるだけだった、やったぜ!

続いて、HPの残りが選択条件になる場合が出現。

ChoiceにRequireHPを追加して

先程と同様にChoiceスライスループの中での条件分けに追加して終了。もちろんテストは後回しで。このままの勢いでとりあえず350までダッシュだ!

王宮での贅沢な睡眠を取った場合体力がフル回復するという場面に遭遇。面倒なのでプラス100とかにしておけば良いか

もうさすがに新たな仕様は無いだろうと思ったら・・無傷で戦闘を終えたかどうかで選択肢が変わるというギミックがw うーん、タイムアップ。続きは明日以降で