
じゃあ武器を拾った場合の謎の挙動について調査するか!本来、初期装備の武器は1つ、Axeのみ。なので追加で武器を拾った場合は画面のように捨てるとかの選択肢は出ないはずなのだ。これはどういうことなのか?

ロジックとしてはこういう感じで書いてるけど・・別におかしいところはないよなぁ・・

構造体もちゃんとポインタにしてるし

初期化時点でWeapon2にはNilを入れている

取得後にステータスを見ると・・ちゃんと動いてる・・

例えば初期の焼け跡イベントで武器を得た場合には想定通りの動きになってるんだよなぁ

ステータス表示をイベント前にかませてみたところ・・ちゃんとNilになってる証拠に装備がAxeしか出てこない。ん!?あれ?ステータス表示が終わった後に、DaggerとMealを手に入れた表示がされて、そこからストーリー記述があって、そこで更に武器をゲットしようとしてる!コレか!

HandleStoryNodeはこういう風に書いてたんだけど・・多分、ここでNode.WeaponGetBeforeの条件が何度も合致してしまって複数回繰り返されてるのだと思われる。じゃあ無限にループしそうなものだけど、なぜか2回だけなんだけど・・。解決策としてはGetしたあとにはNode.WeaponGetBeforeを""にしてしまえばよいわけで

最後にNode.WeaponGetBeforeに””を入れるコードを差し込む、だけ

と言っても、Nodeの中身を破壊的にいじるので引数にNodeをポインタ形式で追加してやらないといけない・・

構造体での定義もNodesの中身のNodeをポインタにしないといかんと

で、マップ作成時にはポインタのままだと具合が悪いようなので(エディタでエラーが出る)、ポインタ外しをする・・これは後でGPTに理由を聞こう。

Getメソッドをストーリーの表示前に書いてたので事前に表示するように修正して・・

よっしゃ!ちゃんと動作するようになった!やったぜ~

複数の道具についてはちゃんと指定の個数追加されてるようだ

テスト用にバックパックの制限を2個にして最初の焼け跡イベントで2個出るまで粘り、その後にMealを拾おうとするとどうなるか?とチェック。うむ、ちゃんと捨てるかどうか聞いてくる

というわけで、一応・・問題は解決した。ただ、拡張性を考えると武器防具アイテムすべてをそれぞれリストで受け取ってイテレータ処理でやるべきだよなぁ・・
やるべきだけど、ひょっとした今後複数の装備をゲットする場面は存在しないかも知れない。ってことで、まあ書こうと思えば書けるけどね!という気持ちで放置しておくことにする

続いてパラグラフ21。なんだこれは・・?なんとランダムロールを3回連続で行うという仕組み。

まあ、すでに対策は発見済みなので・・アルファベットで追加のパラグラフを設定して対応する

つづいてパラグラフ29。戦闘なんだけど特定の技能が無い場合にはCSにペナルティを受けるというもの・・なるほど、こういう仕組みか。おそらく同様に特定の道具を持つ場合にはCSに増減が発生する場面もあるだろうから、またもやNode構造体に新たなフィールドを追加してRequired某って感じで判定するようにしようか、次の機会に。