/*:
 * @target MZ
 * @plugindesc [MZ] スキル337をMP10未満または変数39が0のとき選択不可にする
 * @author you
 *
 * @help
 * ◆概要
 * スキルID337は、以下のどちらかの条件を満たすとき選択不可（灰色）になります。
 *  ・使用者の現在MPが10未満
 *  ・変数39が0
 * 
 * ・戦闘中でもメニュー中でも共通で機能します。
 * ・他のスキルや条件には影響しません。
 */

(() => {
  const TARGET_SKILL_ID = 337;  // 対象スキルID
  const NEED_MP = 10;           // 必要な最低MP
  const VAR_ID = 39;            // 参照する変数ID

  // スキルリスト（灰色制御）
  const _Window_SkillList_isEnabled = Window_SkillList.prototype.isEnabled;
  Window_SkillList.prototype.isEnabled = function(item) {
    if (item && item.id === TARGET_SKILL_ID) {
      const actor = this._actor;
      const mpLow = actor && actor.mp < NEED_MP;
      const varOff = $gameVariables.value(VAR_ID) === 0;
      if (mpLow || varOff) return false;
    }
    return _Window_SkillList_isEnabled.call(this, item);
  };

  // 実際の使用可否（スクリプト呼び出し・強制使用の保険）
  const _Game_BattlerBase_meetsSkillConditions = Game_BattlerBase.prototype.meetsSkillConditions;
  Game_BattlerBase.prototype.meetsSkillConditions = function(skill) {
    if (skill && skill.id === TARGET_SKILL_ID) {
      const mpLow = this.mp < NEED_MP;
      const varOff = $gameVariables.value(VAR_ID) === 0;
      if (mpLow || varOff) return false;
    }
    return _Game_BattlerBase_meetsSkillConditions.call(this, skill);
  };
})();
