59 lines
2.9 KiB
JavaScript
59 lines
2.9 KiB
JavaScript
/*:
|
|
* @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);
|
|
}
|
|
};
|
|
|
|
})();
|