57 lines
2.1 KiB
JavaScript
57 lines
2.1 KiB
JavaScript
//=============================================================================
|
||
// IM_RestrictionTargetSkill_GrayOut.js
|
||
// ----------------------------------------------------------------------------
|
||
// author : Umu
|
||
//=============================================================================
|
||
/*:
|
||
* @target MZ
|
||
* @plugindesc [v1.0.0] Grays out skills when RestrictionTargetSkill determines there are no valid targets.
|
||
* @author Umu
|
||
*
|
||
* @help RestrictionTargetSkill_GrayOut.js
|
||
*
|
||
* ◆概要
|
||
* Triacontane 氏の「RestrictionTargetSkill.js」と併用する
|
||
* 軽量なアドオンです。対象となるバトラーが 0 人の場合、
|
||
* スキル選択ウィンドウ上で当該スキルを自動で非活性
|
||
* (グレーアウト)表示にします。
|
||
*
|
||
* ◆使用方法
|
||
* 1. このプラグインを RestrictionTargetSkill.js より
|
||
* 下の位置に導入してください。
|
||
* 2. パラメータやプラグインコマンドはありません。
|
||
*
|
||
* ◆ライセンス
|
||
* 2025 Umu
|
||
*/
|
||
(() => {
|
||
'use strict';
|
||
// 既存の isEnabled 判定を拡張
|
||
const _isEnabled = Window_SkillList.prototype.isEnabled;
|
||
Window_SkillList.prototype.isEnabled = function(item) {
|
||
// 元々の条件(MP不足・封印など)が false ならそのまま
|
||
if (!_isEnabled.call(this, item)) return false;
|
||
|
||
const actor = this._actor;
|
||
|
||
// 戦闘中のスキル選択の場合
|
||
if (!!actor && BattleManager.isInputting()) {
|
||
if ($gameTroop._enemies.some(enemy => {
|
||
const data = enemy.enemy();
|
||
return !!data.meta['Boss'];
|
||
})) {
|
||
// Bossタグの付いた敵がいる
|
||
if (item.id === 23) {
|
||
// ボス相手に諦念は使用不可
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
|
||
// RestrictionTargetSkill のターゲット判定を流用
|
||
if (!!actor && typeof actor.isExistValidTarget === 'function') {
|
||
return actor.isExistValidTarget(item);
|
||
}
|
||
return true;
|
||
};
|
||
})();
|