能力値上下の問題は無事解決できました。
今までは、例えば攻撃力上昇魔法で攻撃力が 50up! 54up! 47up! からの 4up などという明らかな端数が存在しました。
これは、3回目で47upしたとき既に上限と現在値との差が4しか無かったということです。
つまり4回目の能力値アップは限りなく無駄。
今回の改良でこれが考慮されるようになり、この場合、3回目で51上がってそこで上限に達します。
そして前にペットとの会話システムを作ってみましたが、実用できるレベルになっていなかったので、実際ゲームで使えるようにシステムの枠組を作りました。
これにより、ペットシステムを管理するスクリプト内のほぼどこであっても好きなタイミングで任意の会話イベントを呼び出すことができるようになり、また、イベントコマンドのスクリプトから次に呼び出すべき会話イベントを選択したり、何も呼び出すべき会話が無いときはランダムに会話が選択される、というようなことができるようになりました。
内部ではこうなってます。
wait(count)は言わずもがな待ち時間設定、push_event(type,id)は次にペット画面を起動したとき呼び出すイベントを指定するコマンドで、into_event(type,id)は現在実行しているイベントのそのコマンドの直後に指定したイベントを割り込ませるコマンドです。
typeは0がstory_event、1がdecided_event、2がrandom_eventに対応しています。
例えば、ここでcall_random_eventのwhen1の方が呼ばれると、
「いくら~」、「魔法なんて~」、40フレーム待ち、「そんなこと~」、「それに~」、「このままじゃ~」、40フレーム待ち、「そんなぁ~」、40フレーム待ち、「あら、~」
という実行順番になります。
でもこれ、某サイドビュースクリプトみたいにモジュールのハッシュとかで管理した方がいいんだろうなぁ。分からんけど。