失礼しました。先程の記事に書いたのはマップ上のバトラー一覧を取得するだけのスクリプトですので、バトラーそれぞれに対してステートの時間を進行させる処理を書く必要があります。
全体を書くと以下のようになります。
コード: 全て選択
$gameMap.players().map(player => player.battler()).concat(
$gameMap.allEnemiesOnMap().map(enemyEvent => enemyEvent.battler())
).forEach(battler => {
$gameChrono.updateStatesTurn(battler, null);
});
MOG_ChronoEngine では、マップ上の戦闘可能なユニットに対して、バトラー情報を取得する battler メソッドが定義されています。
$gameMap.players() では、プレイヤーキャラクターとフォロワー(ついてくる仲間)の一覧が取得でき、それらの battler メソッドで味方のバトラー一覧が取得できます。
$gameMap.allEnemiesOnMap は、マップ上の敵キャライベント一覧を取得します。こちらも battler メソッドで敵のバトラー一覧が取得できます。
(どちらも MOG_ChronoEngine.js 内で定義されています)
.map(x => y) のような配列操作関数については、MDNのドキュメントに詳しく書かれているので、必要ならそちらを参照してみてください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/mapこれらをconcatでくっつけて一つの配列にし、それぞれについて updateStatesTurn を実行させ、ステートの時間を進行させれば解除に至るはずです。
ただ、解除されたことを目視するためにはステートに関する描画を更新しないといけないので、もしかしたら SceneManager.updateScene() も合わせて実行しないと解除されたことがわからないかもしれません。
そこまで加味すると最終的に以下のようになるかと思います。
コード: 全て選択
$gameMap.players().map(player => player.battler()).concat(
$gameMap.allEnemiesOnMap().map(enemyEvent => enemyEvent.battler())
).forEach(battler => {
$gameChrono.updateStatesTurn(battler, null);
});
SceneManager.updateScene();