/*: * @target MZ * @plugindesc 敵が1体以下なら敵選択をスキップし、自動でその敵をターゲットにします。複数体いれば通常選択。 * @author * * @help * ============================================================================= * ■ 概要 * ============================================================================= * - スキルやアイテム使用時に「敵を選択」する状況で、 * MZ標準では Scene_Battle.prototype.startEnemySelection() が呼ばれて * 敵選択ウィンドウを開きます。 * - このプラグインでは、敵の生存数が1体以下の場合は * その敵を自動的に選択し、ウィンドウを開かずスキップします。 * - 複数体生存していれば従来通り敵選択ウィンドウを表示。 * * ■ 使い方 * 1) このファイルを「IM_BattleSingleEnemySkip.js」として js/plugins フォルダに置く。 * 2) プラグイン管理でONにして、他バトル系プラグインより下にすると競合しにくい。 * 3) 敵が1体だけ戦闘不能でない状態なら自動的にその敵をターゲットし、 * ウィンドウを表示しません。 * 4) 複数体いれば標準動作(敵選択ウィンドウ)を表示します。 * * ■ 注意 * - 生存数(HP>0)が1体だけの場合にスキップするので、 * ボス戦など1体だけのケースで自動化できます。 * - startEnemySelection() を上書きするので、他プラグインがこれを再上書きしている場合、 * 順番によっては競合が起きる可能性があります。 */ (() => { "use strict"; //-------------------------------------------------------------------------- // ■ Scene_Battle.prototype.startEnemySelection //-------------------------------------------------------------------------- // 敵選択ウィンドウを開く処理を上書き。 // 敵が1体以下(生存数が1以下)ならウィンドウを開かずスキップする。 const _Scene_Battle_startEnemySelection = Scene_Battle.prototype.startEnemySelection; Scene_Battle.prototype.startEnemySelection = function() { const aliveEnemies = $gameTroop.aliveMembers(); if (aliveEnemies.length <= 1) { // 自動決定 // aliveEnemies[0] があればそのindexを取得して選択 if (aliveEnemies.length === 1) { const index = $gameTroop.members().indexOf(aliveEnemies[0]); $gameTroop.select(index); } else { // 全滅状態or0体? fallback → select(0) でもOK, どうせ行動できない $gameTroop.select(0); } this.onEnemyOk(); } else { // 通常 _Scene_Battle_startEnemySelection.call(this); } }; })();