let AllJumingFlg = false; 
Game_Interpreter.prototype.Btl_アクセスジャミング = function (_jumCount , _commentOff) {
    _jumCount = typeof _jumCount !== 'undefined' ? _jumCount : 1;
    _commentOff = typeof _commentOff !== 'undefined' ? _commentOff : false;
    if (_所持レリック確認(Itm_Reric.ジャミング倍加)) _jumCount *= 2;
    AllJumingFlg = false; 
    this.Btl_ジャミングSW設定(_jumCount , _commentOff);
    Live2DParamSetCmnEventStart(MdlRomashaBattle); 
    this.SpineCngAccess(); 
    this.AccGageDraw(); 
}
Game_Interpreter.prototype._ジャミングリセット = function () {
    $gameSwitches.setValue(SW_BtlGrbOFF, false);        
    $gameSwitches.setValue(SW_BtlUdeSutuOFF, false);    
    $gameSwitches.setValue(SW_BtlBodySutuOFF, false);   
    $gameSwitches.setValue(SW_BtlInnerOFF, false);      
    $gameSwitches.setValue(SW_BtlLegSutuOFF, false);    
    $gameSwitches.setValue(SW_BtlAmKosiOFF, false);     
    $gameSwitches.setValue(SW_BtlAmLegOFF, false);      
    $gameSwitches.setValue(SW_BtlAmKataOFF, false);     
    $gameSwitches.setValue(SW_BtlAmMuneOFF, false);     
    $gameSwitches.setValue(SW_BtlPltMuneOFF, false);    
}
Game_Interpreter.prototype.Btl_ジャミングSW設定 = function (_jumCount , _commentOff) {
    _commentOff = typeof _commentOff !== 'undefined' ? _commentOff : false;
    let onCommand = AccessFlg && !_commentOff; 
    while (_jumCount > 0) {
        while (true) {
            let jmgCardNo = -1;
            let _BrkFlg = false;
            let _jRndInt = Math.floor(Math.random() * 10);
            switch (_jRndInt) {
                case 0:
                    if (!$gameSwitches.value(SW_BtlGrbOFF)) {
                        _BrkFlg = true; jmgCardNo = 4;
                        $gameSwitches.setValue(SW_BtlGrbOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "腕装甲がジャミングされた！");
                    }
                    break;
                case 1:
                    if (!$gameSwitches.value(SW_BtlGrbOFF)) {
                        _BrkFlg = true; jmgCardNo = 4;
                        $gameSwitches.setValue(SW_BtlGrbOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "腕装甲がジャミングされた！");
                    } else {
                        if (!$gameSwitches.value(SW_BtlUdeSutuOFF)) {
                            _BrkFlg = true; jmgCardNo = 5;
                            $gameSwitches.setValue(SW_BtlUdeSutuOFF, true);
                            if (onCommand) this.BLogAdd(180, SCol.Red + "アームスーツがジャミングされた！");
                        }
                    }
                    break;
                case 2:
                    if (!$gameSwitches.value(SW_BtlInnerOFF)) {
                        _BrkFlg = true; jmgCardNo = 6;
                        $gameSwitches.setValue(SW_BtlInnerOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "インナーがジャミングされた！");
                    }
                    break;
                case 3:
                    if (!$gameSwitches.value(SW_BtlBodySutuOFF)) {
                        _BrkFlg = true; jmgCardNo = 7;
                        $gameSwitches.setValue(SW_BtlBodySutuOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "ボディスーツがジャミングされた！");
                    }
                    break;
                case 4:
                    if (!$gameSwitches.value(SW_BtlLegSutuOFF)) {
                        _BrkFlg = true; jmgCardNo = 8;
                        $gameSwitches.setValue(SW_BtlLegSutuOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "レッグスーツがジャミングされた！");
                    }
                    break;
                case 5:
                    if (!$gameSwitches.value(SW_BtlAmKosiOFF)) {
                        _BrkFlg = true; jmgCardNo = 9;
                        $gameSwitches.setValue(SW_BtlAmKosiOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "腰装甲がジャミングされた！");
                    }
                    break;
                case 6:
                    if (!$gameSwitches.value(SW_BtlAmLegOFF)) {
                        _BrkFlg = true; jmgCardNo = 10;
                        $gameSwitches.setValue(SW_BtlAmLegOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "脚装甲がジャミングされた！");
                    }
                    break;
                case 7:
                    if (!$gameSwitches.value(SW_BtlAmKataOFF)) {
                        _BrkFlg = true; jmgCardNo = 11;
                        $gameSwitches.setValue(SW_BtlAmKataOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "肩装甲がジャミングされた！");
                    }
                    break;
                case 8:
                    if (!$gameSwitches.value(SW_BtlPltMuneOFF)) {
                        _BrkFlg = true; jmgCardNo = 12;
                        $gameSwitches.setValue(SW_BtlPltMuneOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "胸プレートがジャミングされた！");
                    }
                    break;
                case 9:
                    if (!$gameSwitches.value(SW_BtlAmMuneOFF)) {
                        _BrkFlg = true; jmgCardNo = 13;
                        $gameSwitches.setValue(SW_BtlAmMuneOFF, true);
                        if (onCommand) this.BLogAdd(180, SCol.Red + "胸装甲がジャミングされた！");
                    }
                    break;
            }
            if (_BrkFlg && !_commentOff) {
                this.DeckCardAdd(jmgCardNo , 1);
                break;
            }
            if (AllJumingCk()) {
                if (onCommand) this.BLogAdd(180, SCol.Red + "これ以上ジャミングされる箇所が無い！");
                AllJumingFlg = true; 
                break; 
            }
        }
        _jumCount--;
    }
}
let _着替え値保管用 = 0;
let I装甲回復箇所指定No = -1;
Game_Interpreter.prototype.Btl_装甲回復 = function () {
    if (AccessFlg) { 
        AllJumingFlg = false;
        while (true) {
            _RecFlg = false;
            _RecStr = "";
            let _jRndInt = Math.floor(Math.random() * 10); 
            if (I装甲回復箇所指定No != -1) { 
                _jRndInt = I装甲回復箇所指定No;
                I装甲回復箇所指定No = -1;
            }
            switch (_jRndInt) {
                case 0:
                    if ($gameSwitches.value(SW_BtlGrbOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlGrbOFF, false);
                        this.BLogAdd(180, SCol.Grn + "腕装甲を修復した！");
                    }
                    if ($gameSwitches.value(SW_BtlUdeSutuOFF)) { 
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlUdeSutuOFF, false);
                        this.BLogAdd(180, SCol.Grn + "アームスーツを修復した！");
                    }
                    break;
                case 1:
                    if ($gameSwitches.value(SW_BtlUdeSutuOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlUdeSutuOFF, false);
                        this.BLogAdd(180, SCol.Grn + "アームスーツを修復した！");
                    } else {
                        if ($gameSwitches.value(SW_BtlGrbOFF)) {
                            _RecFlg = true;
                            $gameSwitches.setValue(SW_BtlGrbOFF, false);
                            this.BLogAdd(180, SCol.Grn + "腕装甲を修復した！");
                        }
                    }
                    break;
                case 2:
                    if ($gameSwitches.value(SW_BtlInnerOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlInnerOFF, false);
                        this.BLogAdd(180, SCol.Grn + "インナーを修復した！");
                    }
                    break;
                case 3:
                    if ($gameSwitches.value(SW_BtlBodySutuOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlBodySutuOFF, false);
                        this.BLogAdd(180, SCol.Grn + "ボディスーツを修復した！");
                    }
                    break;
                case 4:
                    if ($gameSwitches.value(SW_BtlLegSutuOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlLegSutuOFF, false);
                        this.BLogAdd(180, SCol.Grn + "レッグスーツを修復した！");
                    }
                    break;
                case 5:
                    if ($gameSwitches.value(SW_BtlAmKosiOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlAmKosiOFF, false);
                        this.BLogAdd(180, SCol.Grn + "腰装甲を修復した！");
                    }
                    break;
                case 6:
                    if ($gameSwitches.value(SW_BtlAmLegOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlAmLegOFF, false);
                        this.BLogAdd(180, SCol.Grn + "脚装甲を修復した！");
                    }
                    break;
                case 7:
                    if ($gameSwitches.value(SW_BtlAmKataOFF)) {
                        _RecFlg = true;
                        $gameSwitches.setValue(SW_BtlAmKataOFF, false);
                        this.BLogAdd(180, SCol.Grn + "肩装甲を修復した！");
                    }
                    break;
                case 8:
                    if ($gameSwitches.value(SW_BtlPltMuneOFF)) {
                        _RecFlg = true;
                        if (!CheckNStateInState_ENo(-1, En_StNo.ニップル)) {
                            $gameSwitches.setValue(SW_BtlPltMuneOFF, false);
                            this.BLogAdd(180, SCol.Grn + "胸プレートを修復した！");
                        } else {
                            this.BLogAdd(180, SCol.Red + "ニップルドームの為修復失敗した。");
                        }
                    }
                    break;
                case 9:
                    if ($gameSwitches.value(SW_BtlAmMuneOFF)) {
                        _RecFlg = true;
                        if (!CheckNStateInState_ENo(-1, En_StNo.ニップル)) {
                            $gameSwitches.setValue(SW_BtlAmMuneOFF, false);
                            this.BLogAdd(180, SCol.Grn + "胸装甲を修復した！");
                        } else {
                            this.BLogAdd(180, SCol.Red + "ニップルドームの為修復失敗した。");
                        }
                    }
                    break;
            }
            if (_RecFlg) { 
                break;
            }
            if (All_装甲状態確認()) break;
        }
        Live2DParamSetCmnEventStart(MdlRomashaBattle); 
        this.SpineCngAccess(); 
    } else {
        if ($gameVariables.value(VN_TL2DKigae) == _着替え値保管用) {
            this.BLogAdd(180, SCol.Grn + "服のデータを修復した！");
        } else {
            $gameVariables.setValue(VN_TL2DKigae, _着替え値保管用);
        }
        Live2DParamSetCmnEventStart(MdlRomashaBattle); 
        this.RomaSpineSkinSet();
    }
}
let All_装甲状態確認 = function () { 
    if (AccessFlg) {
        return (
            !$gameSwitches.value(SW_BtlGrbOFF) && !$gameSwitches.value(SW_BtlUdeSutuOFF) &&
            !$gameSwitches.value(SW_BtlInnerOFF) && !$gameSwitches.value(SW_BtlBodySutuOFF) &&
            !$gameSwitches.value(SW_BtlLegSutuOFF) && !$gameSwitches.value(SW_BtlAmKosiOFF) &&
            !$gameSwitches.value(SW_BtlAmLegOFF) && !$gameSwitches.value(SW_BtlAmKataOFF) &&
            !$gameSwitches.value(SW_BtlPltMuneOFF) && !$gameSwitches.value(SW_BtlAmMuneOFF)
        );
    } else {
        return $gameVariables.value(VN_TL2DKigae) == _着替え値保管用;
    }
}
