/* 目次
戦闘開始処理command301::戦闘開始処理：初期
戦闘開始カットイン処理
ステータスの描画::行動ウィンドウの描画
プレイヤースキル表示::説明ウィンドウ描画
戦闘選択モード
戦闘決戦モード::戦闘ダメージ処理
戦闘終了リザルトモード
処理用
*/
let _BtlSaveVNArr = [51 , 54];
let _BtlSaveMoveVarArr = [];
let NupuBtl_Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () { 
    NupuBtl_Game_System_initialize.call(this);
    this.PL_SkillArr = [1 , 9 , 65 , 81 , 0 , 0, 0 , 0]; 
};
const CN_SkillLvUp = 504;
const CN_SkillLvDown = 505;
const STN_THMode = 2;       
const SKN_THSkill = 130;    
const VN_THSkLv = 30;
const VN_PL戦闘開始付与ｽﾃｰﾄID = 480; 
const VN_戦闘ステ倍率 = 462;  
const SNo_待機Skill = 81;
class _PL_Data {
    constructor() {
        this.hea = $gameVariables.value(VN_PLKenko);    
        this.sex = $gameVariables.value(VN_PLInran);    
        this._hp = $gameVariables.value(VN_PLHp);       
        this.mhp = $gameVariables.value(VN_PLHp);       
        this.atk = $gameVariables.value(VN_PLAtk);      
        this.def = $gameVariables.value(VN_PLDef);      
        this._hit = $gameVariables.value(VN_PLHit);     
        this._avo = $gameVariables.value(VN_PLkaihi);   
        this._pre = $gameVariables.value(VN_PLYomi);    
        this._tp = 0;   
        this.Do_Mp = $gameVariables.value(VN_FstMp); 
        this.Do_MaxMp = 20;
        this.Enst; 
        this.Do_Arr = [0,0,0,0,0,0]; 
        this.state = []; 
        this.stype = -1; 
        this.Skill; 
        this.APos = new Pos2D(836, 532); 
        this.dbgArr = [0,0]; 
        this.EmFlg = false;
        this.UseCost = 0;
        this.UseCostRpts = 0; 
        this.UseTp = 0;
        this._回避成功 = false;
        this.PsvArr = []; 
        for (let i = 1; i <= $dataArmors.length - 1; i++) {
            if(!$gameParty.hasItem($dataArmors[i], false)) continue;
            if($dataArmors[i].atypeId == _ArmorType._パッシブ) {
                this.PsvArr.push(i);
            }
        }
        let _SskId = $gameActors._data[1]._equips[4]._itemId;
        if(_SskId != 0){
            this.PsvArr.push(_SskId);
        }
        let _WpId = $gameActors._data[1]._equips[0]._itemId;
        this._hp += $dataWeapons[_WpId].params[0];  
        this.mhp += $dataWeapons[_WpId].params[0];  
        this.atk += $dataWeapons[_WpId].params[2];  
        this.def += $dataWeapons[_WpId].params[3];  
        this._hit += $dataWeapons[_WpId].params[4]; 
        this._avo += $dataWeapons[_WpId].params[6]; 
        this._pre += $dataWeapons[_WpId].params[7]; 
        this.Do_MaxMp = $dataWeapons[_WpId].params[1]; 
        let _WpAmId = Number(MetaChecker($dataWeapons[_WpId] , "パッシブ追加" , ""));
        if (_WpAmId != "") {
            this.PsvArr.push(_WpAmId);
        }
    }
    get b_mhp() { 
        return this.mhp;
    } 
    get b_atk() { 
        return _State変化後取得("atk" , this.atk  , this , NEnemy);
    } 
    get b_def() { 
        return _State変化後取得("def" , this.def  , this , NEnemy);
    } 
    get b_hit() { 
        return _State変化後取得("_hit" , this._hit  , this , NEnemy);
    } 
    get b_avo() { 
        return _State変化後取得("_avo" , this._avo  , this , NEnemy);
    } 
    get b_pre(){ 
        return _State変化後取得("_pre" , this._pre , this , NEnemy);
    } 
}
let EmSt倍率 = function () {
    return $gameVariables.value(VN_戦闘ステ倍率) / 100;
}
Object.defineProperties(Game_Enemy.prototype, {
    b_mhp: { get: function() {
        return Math.floor(this.mhp * EmSt倍率());
        }
        , configurable: true 
    },
    b_atk: { get: function() {
            let _RtnVar = _State変化後取得("atk" , this.atk * EmSt倍率()  , this , NPlayer);
            return Math.floor(_RtnVar);
        }, configurable: true 
    },
    b_def: { get: function() {
            let _RtnVar = _State変化後取得("def" , this.def * EmSt倍率()  , this , NPlayer);
            return Math.floor(_RtnVar);
        }, configurable: true 
    },
    b_hit: { get: function() {
            let _RtnVar = _State変化後取得("_hit" , this._hit * EmSt倍率()  , this , NPlayer);
            return Math.floor(_RtnVar);
        }, configurable: true 
    },
    b_avo: { get: function() {
            let _RtnVar = _State変化後取得("_avo" , this._avo * EmSt倍率()  , this , NPlayer);
            return Math.floor(_RtnVar);
        }, configurable: true 
    },
    b_pre: { get: function() {
            let _RtnVar = _State変化後取得("_pre" , this._pre * EmSt倍率()  , this , NPlayer);
            return Math.floor(_RtnVar);
        }, configurable: true 
    }
});
Game_Enemy.prototype.enemy = function() {
    if(MetaChecker($dataEnemies[this._enemyId] , "能力変数設定" , false) != false){
        $dataEnemies[this._enemyId].params[0] = $gameVariables.value(VN_敵能力変数 + 0);    
        $dataEnemies[this._enemyId].params[2] = $gameVariables.value(VN_敵能力変数 + 1);    
        $dataEnemies[this._enemyId].params[3] = $gameVariables.value(VN_敵能力変数 + 2);    
    }
    return $dataEnemies[this._enemyId];
};
let _State変化後取得 = function(_GetStr , _CngVar , _AChara , _BChara) {
    _SetState = _AChara.state;
    _PsvArr = _AChara.PsvArr;
    let _RtnVar = _CngVar;
    _PsvArr.forEach( _AmmId => {
        let _Armor = $dataArmors[_AmmId];
        for (let i = 0; i <= _Armor.traits.length - 1; i++) {
            if(_Armor.traits[i].code != 11) continue;
            switch(_Armor.traits[i].dataId){
                case _Zoku._能力変化:
                    _RtnVar =  Math.floor(_RtnVar * _Armor.traits[i].value);
                    break;
                case _Zoku._瀕死時能力変化: 
                    if(NPlayer._hp / NPlayer.mhp <= 0.2){
                        _RtnVar =  Math.floor(_RtnVar * _Armor.traits[i].value);
                    }
                    break;
            }
        }
    });
    if(_BChara != null){
        if(_BChara.PsvArr != undefined) {
            _BChara.PsvArr.forEach( _AmmId => {
                let _Armor = $dataArmors[_AmmId];
                for (let i = 0; i <= _Armor.traits.length - 1; i++) {
                    if(_Armor.traits[i].code != 11) continue;
                    switch(_Armor.traits[i].dataId){
                        case _Zoku._敵直感変化:
                            if(_GetStr == "_pre") {
                                _RtnVar =  Math.floor(_RtnVar * _Armor.traits[i].value);
                            }
                            break;
                    }
                }
            });
        }
    }
    for (let i = 0; i <= _SetState.length - 1; i++) {
        let _State = $dataStates[_SetState[i]._No];
        for (let j = 0; j <= _State.traits.length - 1; j++) {
            if(_State.traits[j].code == 11) { 
                switch(_GetStr){
                    case "mhp":
                        break;
                    case "atk":
                        if(_State.traits[j].dataId == _Zoku._攻撃変化Par){
                            _RtnVar *= _State.traits[j].value;
                        }
                        break;
                    case "def":
                        if(_State.traits[j].dataId == _Zoku._防御変化Par){
                            _RtnVar *= _State.traits[j].value;
                        }
                        break;
                    case "_hit":
                        if(_State.traits[j].dataId == _Zoku._命中変化Par){
                            _RtnVar *= _State.traits[j].value;
                        }
                        break;
                    case "_avo":
                        if(_State.traits[j].dataId == _Zoku._回避変化Par){
                            _RtnVar *= _State.traits[j].value;
                        }
                        break;
                    case "_pre":
                        if(_State.traits[j].dataId == _Zoku._直感変化Par){
                            _RtnVar *= _State.traits[j].value;
                        }
                        break;
                }
            }
        }
    }
    return _RtnVar;
}
let NupuBtl_Game_Battler_initMembers = Game_Battler.prototype.initMembers;
Game_Battler.prototype.initMembers = function () {
    NupuBtl_Game_Battler_initMembers.call(this);
    this.Name = ""; 
    this.Img = "";  
    this.actions;   
    this._hit = 0;    
    this._avo = 0;    
    this._pre = 0;    
    this._tp = 0;   
    this.Enst; 
    this.state = []; 
    this.stype = -1; 
    this.Skill; 
    this.Do_Arr = [0,0,0,0,0,0]; 
    this.Do_Mp = 0; 
    this.Do_MaxMp = 20; 
    this.UseCost = 0;
    this.UseCostRpts = 0; 
    this.UseTp = 0;
    this.APos = new Pos2D(527, 152); 
    this.dbgArr = [0, 0]; 
    this.EmFlg = true;
    this.PsvArr = []; 
    this._回避成功 = false;
    this.Live2D_Name = ""; 
}
class _State {
    constructor(_No, _Turn) {
        _Turn = typeof _Turn !== 'undefined' ? _Turn : -1;
        this._No = _No; 
        this._Turn = _Turn; 
    }
}
const PN_bBack = 1; 
const PN_bKBack = PN_bBack + 3; 
const PN_bWaku = 9;
const PN_bTurn = PN_bWaku + 1;
const PN_bEmTatie = 13; 
const PN_bPLTatie = PN_bEmTatie + 1;
const PN_bDataBtn = PN_bPLTatie + 1; 
const PN_SpeedUp = PN_bDataBtn + 1;
const PN_StEmHpGage_Back = 247;
const PN_StEmHpGage = PN_StEmHpGage_Back + 1;
const PN_StEmWin = PN_StEmHpGage + 1;
const PN_StEmHpTxt = PN_StEmWin + 1;
const PN_bDoPoint = 207;
const PN_bDoPoint_Em = PN_bDoPoint + 20;
const PN_bEmBltWin = 158;
const Cnt_PN_bEmBltWin = 3; 
const PN_bEmBltCost = PN_bEmBltWin + 6;
const PN_bEmBltTxt = PN_bEmBltCost + 6;
const PN_bEmBltHide = PN_bEmBltTxt + 6;
const PN_bPLBltWin = 177;
const Cnt_PN_bPLBltWin = 5; 
const PN_BtlTHBlt = 255;    
const PN_bKtdnBtn = PN_BtlTHBlt + 1;
const PN_bPLBltHikari = PN_bKtdnBtn + 1;
const PN_StGageBase = PN_bPLBltHikari + 2;
const PN_StHpGage = PN_StGageBase + 1;
const PN_StTpGage = PN_StHpGage + 1;
const PN_StSelTpGage = PN_StTpGage + 1;
const PN_StWin = PN_StSelTpGage + 1;
const PN_StHpTxt = PN_StWin + 1;
const PN_StTpTxt = PN_StHpTxt + 2;
const PN_StWinTop = PN_StTpTxt + 1;
const PN_BtlSrinder = PN_StWinTop + 2; 
const PN_BtlSelUI = PN_BtlSrinder + 1 + (Cnt_PN_bPLBltWin * 3);
const PN_SetuWin = 309;
const PN_SetuTxt = PN_SetuWin + 1;
const PN_SetuHitTxt = PN_SetuTxt + 3;
const PN_TPPowUp = PN_SetuHitTxt + 2;
const PN_bDmgPop = 320; 
const PN_bTHBack = 330; 
const PN_bTHChara = PN_bTHBack + 1; 
const PN_bFz = PN_bTHChara + 2;  
const PN_bCmbTxt = PN_bFz + 2;
const PN_bPlState = PN_bCmbTxt + 3;
const PN_bPlStateTn = PN_bPlState + 7;
const PN_bEmState = PN_bPlStateTn + 7;
const PN_bEmStateTn = PN_bEmState + 7;
const PN_bIjoWin = PN_bEmStateTn + 8;
const PN_bIjoTxt = PN_bIjoWin + 1;
const PN_bsBack = 412; 
const PN_bsV = PN_bsBack + 1; 
const PN_bsS = PN_bsV + 1; 
const PN_bsPlStTxt = PN_bsS + 1;        
const PN_bsEmStTxt = PN_bsPlStTxt + 1;  
const PN_bsCIn_B = PN_bsEmStTxt + 1; 
const PN_bsCIn_T = PN_bsCIn_B + 3; 
const PN_bsState = PN_bsCIn_T + 3; 
const PN_bsCIn_BBar = PN_bsState + 1; 
const PN_bsCIn_TBar = PN_bsCIn_BBar + 6; 
const PN_bsCIn_BTxt = PN_bsCIn_TBar + 6; 
const PN_bsCIn_TTxt = PN_bsCIn_BTxt + 6; 
const PN_bRzBase = 411; 
const PN_bRzChara = PN_bRzBase + 1; 
const PN_bRzTxt_1 = PN_bRzChara + 1;
const PN_bRzTxt_2 = PN_bRzTxt_1 + 2;
const PN_bRzTxt_3 = PN_bRzTxt_2 + 2;
const PN_bRzTxt_4 = PN_bRzTxt_3 + 2;
const PN_bRzTxt_5 = PN_bRzTxt_4 + 2;
const PN_bRzRank = PN_bRzTxt_5 + 2;
const PN_RzExBack = 426;
const PN_RzExWin = PN_RzExBack + 1;
const PN_RzExYesBtn = PN_RzExWin + 1;
const PN_RzExNoBtn = PN_RzExYesBtn + 1;
const PN_RzExGoldTxt = PN_RzExNoBtn + 1;
const PN_RzExHpBar = PN_RzExGoldTxt + 1;
const PN_RzExHpTxt = PN_RzExHpBar + 1;
const PN_RzExSelecter  = PN_RzExHpTxt + 1;
const PN_RzExBtlWin = PN_RzExSelecter + 1;
const PN_RzExBtlDice = PN_RzExBtlWin + 1;
const PN_RzExBtlDiceTxt  = PN_RzExBtlDice + 4;
const PN_RzExBtlArw  = PN_RzExBtlDiceTxt + 4;
const PN_RzExBtlLine  = PN_RzExBtlArw + 4;
const PN_RzExBtlChaTxt  = PN_RzExBtlLine + 4;
const PN_RzRensyoTxt = PN_RzExBtlChaTxt + 4;
const PN_JBase = 370;
const PN_jPLStart = PN_JBase + 1;
const PN_jEmStart = 410;
const PN_JEnd = 451;
const PN_bDataBtn_Close = PN_JEnd - 1;
const PN_jCutIn = 0;
const PN_jCNameTxt = PN_jCutIn + 1;
const PN_jStBar = PN_jCNameTxt + 1;
const PN_jStBarTop = PN_jStBar + 6;
const PN_jStTxt = PN_jStBarTop + 6;
const PN_jStBase = PN_jStTxt + 6;
const PN_jStateTxtA = PN_jStBase + 1;
const PN_jStateTxtB = PN_jStateTxtA + 7;
const PN_jPsvTxt = PN_jStateTxtB + 7;
const CN_BtlBef = 1; 
const CN_毎ターンコモン = 139;
const CN_カットイン後 = 140;
const CN_倒した瞬間 = 141;
const CN_自分敗北時 = 142;
const CN_全行動終了時コモン = 147;
const CN_リザルト表示後 = 148;
const SW_野試合Flg = 10; 
const SW_BtlCIn = 21; 
const VN_FstMp = 11; 
const VN_CInChaTNo = 21; 
const VN_CInChaBNo = 22; 
const VN_野試合勝利数 = 51; 
const VN_敵強さ変化 = 55; 
const VN_野試合賞金 = 56; 
const VN_敵能力変数 = 322; 
const PN_Ready = 470;
const _Blt拡大 = 85; 
const _BltTxt拡大率 = _Blt拡大 / 100;
let _befBtlMap = -1;
const BattleMapID = 4; 
const ReBattleMapID = 12; 
const BtlPic = "pictures/Btl/";
const BtlKsnPic = "pictures/Btl/ksn/";
const Btl_CInPic = "pictures/Btl/Start/";
const BtlTatie_Pl = "pictures/Btl/Tatie_Pl/";
const BtlTatie_Em = "enemies/";
const BtlPicArr = [ 
    "pictures/White", BtlPic + "PN_bFz_Sel"
];
const BtlL2D_Base = "";
let 戦闘ターン = 0; 
let Rz_合計被ダメージ = 0; 
let Rz_最大与ダメージ = 0; 
let Rz_最大チェイン数 = 0; 
let battleflg = false; 
let btl_flame = 0; 
let WinLoseFlg = -1; 
let btlMode; 
let _btlMode = {
    Start: 1,   
    Select: 2,  
    Battle: 3,  
    End: 4      
};
let NPlayer;    
let NEnemy;     
let TH_ModeFlg = false; 
const SW_THMode = 8;  
let Battleback1 = ""; 
let Battleback2 = ""; 
let set_branch = -1; 
let _BtlBranch = { 
    Btl: -1,
    Win: 0,
    Esc: 1,
    Lose: 2
};
let BtlTurn = 0;
let NoBtlCnt = 0;
Game_Interpreter.prototype.command301 = function () {
    this.DelPict(PN_EnSpine);   
    _BtlVar_Resets(); 
    if (!battleflg) {
        if(!$gameSwitches.value(SW_野試合Flg)){
            this.InstantSave(); 
        } else {
            if (NoBtlCnt == 0){
                this.InstantSave(); 
                NoBtlCnt++;
            }
            set_branch = -1;
            let _Set健康 = Math.floor((NPlayer._hp / NPlayer.b_mhp) * 100);
            $gameVariables.setValue(VN_PLKenko ,_Set健康);
            _Btl_StopCmnFlg = false;
        }
        this.Talk_End(); 
        Rz_合計被ダメージ = 0;
        Rz_最大与ダメージ = 0;
        Rz_最大チェイン数 = 0;
        L2dAllFadeOut(10);
        Adv_Stop = true;
        Chain_Cnt = 0; 
        $gameTroop.setup(this._params[1]);
        NEnemy = $gameTroop._enemies[0]; 
        NEnemy.Name = $dataEnemies[NEnemy._enemyId].name;
        NEnemy.Live2D_Name = MetaChecker($dataEnemies[NEnemy._enemyId] , "Live2D" , "");
        NEnemy.Do_MaxMp = NEnemy.mmp;
        NEnemy.Img = $dataEnemies[NEnemy._enemyId].battlerName; 
        NEnemy._hit = NEnemy.mdf;
        NEnemy._avo = NEnemy.luk;
        NEnemy._pre = NEnemy.agi;
        NEnemy.actions = $dataEnemies[NEnemy._enemyId].actions;
        _Brns_ブレイク数 = 0;
        _Brns_ブレイクFlg = false;
        NEnemy.Brns_基礎値 = Number(MetaChecker($dataEnemies[NEnemy._enemyId] , "バランス基礎値" , 6));
        NEnemy.Brns = NEnemy.Brns_基礎値;
        NEnemy.Brns_崩れ数 = Number(MetaChecker($dataEnemies[NEnemy._enemyId] , "バランス崩れ数" , 6));
        if(MetaChecker($dataEnemies[NEnemy._enemyId] , "能力変数設定" , false) != false){
            NEnemy.mhp = $gameVariables.value(VN_敵能力変数 + 0);   
            NEnemy._hp = $gameVariables.value(VN_敵能力変数 + 0);   
            NEnemy.atk = $gameVariables.value(VN_敵能力変数 + 1);   
            NEnemy.def = $gameVariables.value(VN_敵能力変数 + 2);   
            NEnemy._hit = $gameVariables.value(VN_敵能力変数 + 3);  
            NEnemy._avo = $gameVariables.value(VN_敵能力変数 + 4);  
            NEnemy._pre = $gameVariables.value(VN_敵能力変数 + 5);  
            NEnemy.Do_MaxMp = $gameVariables.value(VN_敵能力変数 + 6); 
            NEnemy.Brns_基礎値 = $gameVariables.value(VN_敵能力変数 + 7); 
            NEnemy.Brns = NEnemy.Brns_基礎値;
            NEnemy.Brns_崩れ数 = $gameVariables.value(VN_敵能力変数 + 8); 
        }
        NEnemy.PsvArr = []; 
        for (let i = 0; i <= $dataEnemies[NEnemy._enemyId].dropItems.length - 1; i++) {
            if($dataEnemies[NEnemy._enemyId].dropItems[i].kind == 3) {
                let _AmId = $dataEnemies[NEnemy._enemyId].dropItems[i].dataId;
                if($dataArmors[_AmId].atypeId == _ArmorType._パッシブ || 
                   $dataArmors[_AmId].atypeId == _ArmorType._装飾) {
                    NEnemy.PsvArr.push(_AmId);
                }
            }
        }
        NEnemy.Do_Mp = NEnemy._mp; 
        WinLoseFlg = _BtlBranch.Btl; 
        BtlTurn = 1;
        NPlayer = new _PL_Data(); 
        this.BtlStart_Psv(NPlayer);
        this.BtlStart_Psv(NEnemy);
        if(!$gameSwitches.value(SW_野試合Flg)){
            $gamePlayer.reserveTransfer(BattleMapID, 0, 0, 0, 2); 
            _befBtlMap = BattleMapID;
        } else {
            if(_befBtlMap == BattleMapID){
                $gamePlayer.reserveTransfer(ReBattleMapID, 0, 0, 0, 2); 
                _befBtlMap = ReBattleMapID;
            } else {
                $gamePlayer.reserveTransfer(BattleMapID, 0, 0, 0, 2); 
                _befBtlMap = BattleMapID;
            } 
        }
        this._index = this._list.length; 
        this._list = null;          
        this.PreLoadArr(BtlPicArr); 
        this.N_BtlStart();          
        DoArr_Reset();
        if ($gameVariables.value(VN_PL戦闘開始付与ｽﾃｰﾄID) != 0) {
            this.State_Setting(NPlayer , $gameVariables.value(VN_PL戦闘開始付与ｽﾃｰﾄID) , 1 , false);
        }
        battleflg = true;
    } else {
        battleflg = false;
        this._branch[this._indent] = set_branch;
        set_branch = -1;
        let _Set健康 = Math.floor((NPlayer._hp / NPlayer.b_mhp) * 100);
        $gameVariables.setValue(VN_PLKenko ,_Set健康);
        this.MovePict(PN_tGage , true, true, 10 , true , _Set健康); 
        this.DelPict(PN_EventBar);
        this.DelPict(PN_EventTxt);
        for (let i = 0; i <= _BtlSaveVNArr.length - 1; i++) {
            $gameVariables.setValue(_BtlSaveVNArr[i] ,_BtlSaveMoveVarArr[i]);
        }
    }
    return true; 
};
let Other_Voice_OffFlg = false; 
let _NVoice_Skip_Game = NVoice_isSkipFlg;
NVoice_isSkipFlg = function () {
    return _NVoice_Skip_Game.call(this) && !battleflg && !Other_Voice_OffFlg;
}
let _BtlVar_Resets = function(){
    戦闘ターン = 0; 
    Rz_合計被ダメージ = 0; 
    Rz_最大与ダメージ = 0; 
    Rz_最大チェイン数 = 0; 
    btl_flame = 0; 
    WinLoseFlg = -1; 
    _BefBackLogX = 0
    _BefBackLogY = 0
    btlStart_flame = 0; 
    KtdnPos = new Pos2D(944, 734);
    PLTPos = new Pos2D(1180, 480); 
    PLStPos = new Pos2D(1150, 647); 
    DoPos_Pl = new Pos2D(450, 410); 
    DoTHPos = new Pos2D(DoPos_Pl._x , 700); 
    DoPos_Em = new Pos2D(DoPos_Pl._x - 410 * _BltTxt拡大率 - 20, DoPos_Pl._y); 
    DoPosB_PL = new Pos2D(379, DoPos_Pl._y + 48); 
    DoPosB_Em = new Pos2D(303, DoPos_Pl._y + 48); 
    SelectDoNo = 0; 
    Em_DoViewArr = [true, true, true, true, true, true];
    DoHPos = new Pos2D(DoPos_Pl._x - 9, DoPos_Pl._y - 8); 
    BltPicArr = []; 
    _PL_DoArrDraw = false; 
    _PL_SelWillMp = 0;
    _異常PlPicArr = [];
    _異常EmPicArr = [];
    SkillSelNo = 0;
    SelectSkillArr = [];
    SklPos = new Pos2D(645, DoPos_Pl._y - 55); 
    btlSelect_flame = 0;
    _EnterFlame = 0; 
    btlSelect_PlTp = 0 ; 
    btlSelect_TpUse = [0,0,0,0,0,0]; 
    Em_Skills = []; 
    _thFlame = 0; _ThFInFlm = 60
    _ktdnBOverFlg = false;
    _SelNoSave = 0;
    _bwhlflame = 10; 
    _BSelMode = 0; 
    _Nowシリンダー角度 = 0;
    _BSel_メニューFlg = false; 
    _BSel_ReadyFlg = false; 
    btlSelect_初期処理Flg = true;
    BSelMenu_flame = 0;
    N_Btl_Select_1_flame = 0;
    _シリンダー角度 = 0;
    BltSel_flame = 0;
    _BtlNxt_flame = 0;
    _Bef_PLDoNo = 0; 
    _Bef_PLDoTpCnt = 0; 
    _Blt_SelWaitFlame = 0;
    _Btl_ReadyFlame = 0;
    _EnterCnt = 0; 
    Em_DoViewArr_OpenBef = []; 
    btlBattle_flame = 0;
    KsnTurn = 0; 
    _ksnMflame = 0; 
    _PlPosX = 0;
    _EmPosX = 360;
    _BltPlPosX = 500;
    _BltEmPosX = 600;
    _BtlUpSyoriNo = 0; 
    _Btl_StopCmnFlg = false;
    _Btl_連続攻撃Cnt = 0; 
    _GoPlBltPs = new Pos2D(0,0);
    _GoEmBltPs = new Pos2D(0,0);
    Player_SkillNo = 0;
    Enemy_SkillNo = 0;
    PLAllMissFlg = false; 
    EnAllMissFlg = false;
    Turn_DmgCnt = 0; 
    PL_SkillFlg = false; 
}
Game_Interpreter.prototype.BtlStart_Psv = function (_AChara) {
    _AChara.PsvArr.forEach( _AmmId => {
        let _Armor = $dataArmors[_AmmId];
        for (let i = 0; i <= _Armor.traits.length - 1; i++) {
            if(_Armor.traits[i].code != 11) continue;
            let _Var = Math.floor(_Armor.traits[i].value * 100) - 100;
            switch(_Armor.traits[i].dataId){
                case _Zoku._初期テンション変化: 
                    _AChara._tp += _Var;
                    break;
            }
        }
    });
}
Game_Interpreter.prototype.BtlPsv_ZokuCk = function (_AChara , _ZokuNo) {
    let _RtnValue = false;
    _AChara.PsvArr.forEach( _AmmId => {
        let _Armor = $dataArmors[_AmmId];
        for (let i = 0; i <= _Armor.traits.length - 1; i++) {
            if(_Armor.traits[i].code != 11) continue;
            if(_Armor.traits[i].dataId == _ZokuNo) {
                _RtnValue = true;
            }
        }
    });
    return _RtnValue;
}
Game_Interpreter.prototype.command283 = function () {
    $gameMap.changeBattleback(this._params[0], this._params[1]);
    Battleback1 = this._params[0];
    Battleback2 = this._params[1];
    return true;
};
let _BefBackLogX = 0
let _BefBackLogY = 0
Game_Interpreter.prototype.N_BtlStart = function (){
    _BefBackLogX = BLogX;
    _BefBackLogY = BLogY;
    BLogX = 508;
    BLogY = 7;
    //$gameSystem.PL_SkillArr.push(25); //THスキル
    set_branch = _BtlBranch.Win;
    this.SetCmnEventSc(CN_BtlBef); 
    btlMode = _btlMode.Start;
    btl_flame = 0;
    btlBattle_flame = 0;
    btlStart_flame = 0;
    _BSelMode = 0; 
    btlSelect_初期処理Flg = true; 
    戦闘ターン = 0;
}
let btlStart_flame = 0; 
let KtdnPos = new Pos2D(944, 734);
let PLTPos = new Pos2D(1180, 480); 
Game_Interpreter.prototype.N_Btl_StartUpdate = function () {
    if ($gameSwitches.value(SW_BtlCIn)){
        this.N_Btl_Start_CutInUpdate(); 
    } else {
        if (btlStart_flame == 30){
            if($gameSystem._battleBgm != null){
                AudioManager.playBgm($gameSystem._battleBgm); 
            }
        } 
        if (btlStart_flame == 45) { 
            if (Battleback1 != "") { 
                this.SetSpriteC(PN_bBack, "battlebacks1/" + Battleback1, 720, 405);
            }
            if (Battleback2 != "") { 
                this.SetSpriteC(PN_bBack + 1, "battlebacks2/" + Battleback2, 720, 405);
            }
            this.N_Btl_TatieView();
        }
        if (btlStart_flame == 60) this.BattleWhiteDel();
        if (btlStart_flame == 61) {
            this.N_Btl_SelectCng(); 
        }
    }
    btlStart_flame++;
    btlBackFlame = 0;
}
let btlBackFlame = 0;
Game_Interpreter.prototype.BtlBackUpdate = function () {
    btlBackFlame++;
    let sinValue = Math.sin(btlBackFlame * Math.PI / 180); 
    let normalizedValue = (sinValue + 1) / 2; 
    var _拡大Mv = 1 + 0.1 * normalizedValue;
    _拡大Mv *= 100;
    if (Battleback1 != "")
        this.SetSpriteC(PN_bBack, "battlebacks1/" + Battleback1, 720, 405 , 255 , _拡大Mv , _拡大Mv);
    if (Battleback2 != "")
        this.SetSpriteC(PN_bBack + 1, "battlebacks2/" + Battleback2, 720, 405 , 255 , _拡大Mv , _拡大Mv);
    var moveX = btlBackFlame * 20 % 1440;
    this.SetSprite(PN_bBack + 2, BtlPic + "PN_Sosasen", -moveX, 0 , 200);
    this.SetSprite(PN_bBack + 3, BtlPic + "PN_Sosasen", -moveX + 1440, 0 , 200);
}
Game_Interpreter.prototype.N_Btl_Start_CutInUpdate = function () {
    if (btlStart_flame == 0) { 
        AudioManager.stopAll();
    }
    if (btlStart_flame == 45) { 
        D_Text_Cng_font = "Makinas"; 
        this.SpriteStr(PN_bsCIn_BTxt + 0, "FontSetUp", 20, -100, -100, 0);
        D_Text_Cng_font = "";
        if (Battleback1 != "") {
             this.SetSprite(PN_bBack, "battlebacks1/" + Battleback1, 0, 0); 
            }
        if (Battleback2 != "") { 
            this.SetSprite(PN_bBack + 1, "battlebacks2/" + Battleback2, 0, 0); 
        }
        this.N_Btl_TatieView();
        this.SetSprite(PN_bsBack, Btl_CInPic + "PN_bsBack", 0, 0);
        this.SetSpriteC(PN_bsV, Btl_CInPic + "PN_bsV", 633, 359, 255, 111, 111);
        this.MoveSprite(PN_bsV,true,true,60);
        this.SetSpriteC(PN_bsS, Btl_CInPic + "PN_bsS", 746, 455, 255, 111, 111);
        this.MoveSprite(PN_bsS, true, true, 60);
    }
    if (btlStart_flame == 60){
        this.BattleWhiteDel();
        this.ALLDelPict([PN_Ensyutu]); 
        this.SetSprite(PN_bWaku, BtlPic + "PN_bWaku", 0, 0);
    }
    if (btlStart_flame == 90){
        this.PlaySe("Ice4"); 
        EasingStr = "easeOutQuad"; 
        this.MoveSprite(PN_bsV, 196, true, 20);
        this.MoveSprite(PN_bsS, 1249, true, 20);
        this.SetSprite(PN_bsPlStTxt, Btl_CInPic + "PN_bsPlStTxt" , 0 , 0  , 0);
        this.MoveSprite(PN_bsPlStTxt,true,true,20);
        this.SetSprite(PN_bsEmStTxt , Btl_CInPic + "PN_bsEmStTxt" , 0 , 0 , 0);
        this.MoveSprite(PN_bsEmStTxt,true,true,20);
        ViewSpriteArr_Reset();
        let _TCNo = $gameVariables.value(VN_CInChaTNo); 
        this.SetSprite(PN_bsCIn_B + 0, Btl_CInPic + "PN_bsCBack_T", 0, 0, 0);
        this.SetSprite(PN_bsCIn_B + 1, Btl_CInPic + "PN_bsCBack_T_C" + _TCNo, 0, 0, 0);
        this.SetSprite(PN_bsCIn_B + 2, Btl_CInPic + "PN_bsCBack_T_N" + _TCNo, 0, 0, 0);
        let _BCNo = $gameVariables.value(VN_CInChaBNo); 
        this.SetSprite(PN_bsCIn_T + 0, Btl_CInPic + "PN_bsCBack_B", 0, 581, 0);
        this.SetSprite(PN_bsCIn_T + 1, Btl_CInPic + "PN_bsCBack_B_C" + _BCNo, 0, 581, 0);
        this.SetSprite(PN_bsCIn_T + 2, Btl_CInPic + "PN_bsCBack_B_N" + _BCNo, 0, 581, 0);
        var maxValue = 0;
        if (NPlayer.b_mhp > maxValue) maxValue = NPlayer.b_mhp
        if (NPlayer.b_atk > maxValue) maxValue = NPlayer.b_atk
        if (NPlayer.b_def > maxValue) maxValue = NPlayer.b_def
        if (NPlayer.b_hit > maxValue) maxValue = NPlayer.b_hit
        if (NPlayer.b_avo > maxValue) maxValue = NPlayer.b_avo
        if (NPlayer.b_pre > maxValue) maxValue = NPlayer.b_pre
        if (NEnemy.b_mhp > maxValue) maxValue = NEnemy.b_mhp
        if (NEnemy.b_atk > maxValue) maxValue = NEnemy.b_atk
        if (NEnemy.b_def > maxValue) maxValue = NEnemy.b_def
        if (NEnemy.b_hit > maxValue) maxValue = NEnemy.b_hit
        if (NEnemy.b_avo > maxValue) maxValue = NEnemy.b_avo
        if (NEnemy.b_pre > maxValue) maxValue = NEnemy.b_pre
        let f表示倍率X = 1;
        if (maxValue > 145) f表示倍率X = 145 / maxValue;
        this.SetSprite(PN_bsCIn_BBar + 0, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 0), 0, NPlayer.b_mhp * f表示倍率X);
        this.SetSprite(PN_bsCIn_BBar + 1, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 1), 0, NPlayer.b_atk * f表示倍率X);
        this.SetSprite(PN_bsCIn_BBar + 2, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 2), 0, NPlayer.b_def * f表示倍率X);
        this.SetSprite(PN_bsCIn_BBar + 3, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 3), 0, NPlayer.b_hit * f表示倍率X);
        this.SetSprite(PN_bsCIn_BBar + 4, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 4), 0, NPlayer.b_avo * f表示倍率X);
        this.SetSprite(PN_bsCIn_BBar + 5, Btl_CInPic + "PN_bsBar_hp", 775, 270 + (53 * 5), 0, NPlayer.b_pre * f表示倍率X);
        let _OwStr = "\\oc[rgba(0,0,0)]";
        let _txtY = 250;
        let _tSize = 30;
        let _pPsX = 777; 
        this.SpriteStr(PN_bsCIn_BTxt + 0, _OwStr + NPlayer.b_mhp, _tSize, _pPsX, _txtY + (53 * 0), 0);
        this.SpriteStr(PN_bsCIn_BTxt + 1, _OwStr + NPlayer.b_atk, _tSize, _pPsX, _txtY + (53 * 1), 0);
        this.SpriteStr(PN_bsCIn_BTxt + 2, _OwStr + NPlayer.b_def, _tSize, _pPsX, _txtY + (53 * 2), 0);
        this.SpriteStr(PN_bsCIn_BTxt + 3, _OwStr + NPlayer.b_hit, _tSize, _pPsX, _txtY + (53 * 3), 0);
        this.SpriteStr(PN_bsCIn_BTxt + 4, _OwStr + NPlayer.b_avo, _tSize, _pPsX, _txtY + (53 * 4), 0);
        this.SpriteStr(PN_bsCIn_BTxt + 5, _OwStr + NPlayer.b_pre, _tSize, _pPsX, _txtY + (53 * 5), 0);
        NEnemy._hp = NEnemy.b_mhp;
        this.SetSprite(PN_bsCIn_TBar + 0, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 0), 0, -NEnemy.b_mhp * f表示倍率X);
        this.SetSprite(PN_bsCIn_TBar + 1, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 1), 0, -NEnemy.b_atk * f表示倍率X);
        this.SetSprite(PN_bsCIn_TBar + 2, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 2), 0, -NEnemy.b_def * f表示倍率X);
        this.SetSprite(PN_bsCIn_TBar + 3, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 3), 0, -NEnemy.b_hit * f表示倍率X);
        this.SetSprite(PN_bsCIn_TBar + 4, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 4), 0, -NEnemy.b_avo * f表示倍率X);
        this.SetSprite(PN_bsCIn_TBar + 5, Btl_CInPic + "PN_bsBar_hp",
            667, 270 + (53 * 5), 0, -NEnemy.b_pre * f表示倍率X);
        let _ePsX = 617; 
        this.SpriteStr(PN_bsCIn_TTxt + 0, _OwStr + _桁揃え(NEnemy.b_mhp), _tSize, _ePsX, _txtY + (53 * 0), 0);
        this.SpriteStr(PN_bsCIn_TTxt + 1, _OwStr + _桁揃え(NEnemy.b_atk), _tSize, _ePsX, _txtY + (53 * 1), 0);
        this.SpriteStr(PN_bsCIn_TTxt + 2, _OwStr + _桁揃え(NEnemy.b_def), _tSize, _ePsX, _txtY + (53 * 2), 0);
        this.SpriteStr(PN_bsCIn_TTxt + 3, _OwStr + _桁揃え(NEnemy.b_hit), _tSize, _ePsX, _txtY + (53 * 3), 0);
        this.SpriteStr(PN_bsCIn_TTxt + 4, _OwStr + _桁揃え(NEnemy.b_avo), _tSize, _ePsX, _txtY + (53 * 4), 0);
        this.SpriteStr(PN_bsCIn_TTxt + 5, _OwStr + _桁揃え(NEnemy.b_pre), _tSize, _ePsX, _txtY + (53 * 5), 0);
        this.SetSprite(PN_bsState, Btl_CInPic + "PN_bsState", 0, 0, 0);
        for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
            this.MoveSprite(ViewSpriteArr[i], true, true, 15, 255 , true);
        }
        EasingStr = "";
    }
    if (btlStart_flame > 120) {
        if (TouchInput.isPressed() || Input.isTriggered('ok')) {
            NPlayer._hp = Math.floor(NPlayer.b_mhp * ($gameVariables.value(VN_PLKenko) / 100)) ;
            this.PlaySe("Battle2");
            for (let i = PN_bsBack; i <= PN_bsCIn_TTxt + 5; i++) {
                this.MoveSprite(i, true, true, 10, 0,true , true);
            }
            AudioManager.playBgm($gameSystem._battleBgm);
            this.N_Btl_SelectCng(); 
        }
    }
}
let _桁揃え = function(_DNo){
    if (_DNo < 100) return _DNo = " " + _DNo;
    if (_DNo < 10) return _DNo = "  " + _DNo;
    return _DNo;
}
Game_Interpreter.prototype.N_Btl_TatieView = function () {
    if (TH_ModeFlg){ 
        L2dFadeMdl("Leona_battle1","rightout",15,"",1,1,0,0);
        L2dFadeMdl("Leona_battleTH","rightin",15,"1neutral",1,1,0,130);
        L2dIdleStart("Leona_battleTH","1neutral");
        L2dSetMotion("Leona_battleTH","1neutral");
        L2dTop("Leona_battleTH");
    } else {
        //this.SetSpriteC(PN_bPLTatie, BtlTatie_Pl + "Btl_PL", PLTPos._x, PLTPos._y);
        this.N_Btl_ReonaL2D_Nomal_On();
    }
    if(NEnemy.Live2D_Name != ""){
        L2dFExp = "exp_1"; 
        L2dFadeMdl(NEnemy.Live2D_Name,"centerin",15,"wait",1);
        if(NEnemy.DO_Arr[0] == -1) {
            L2dIdleStart(NEnemy.Live2D_Name,"break");
            L2dSetMotion(NEnemy.Live2D_Name,"break");
        } else {
            L2dIdleStart(NEnemy.Live2D_Name,"wait");
            L2dSetMotion(NEnemy.Live2D_Name,"wait");
        }
    } else {
        this.SetSpriteC(PN_bEmTatie, BtlTatie_Em + NEnemy.Img, 300, 202);
        if(NEnemy.DO_Arr[0] == -1) {
            this.CngSprite(PN_bEmTatie , BtlTatie_Em + NEnemy.Img + "_break");
        } else {
            this._ブレイクモード終了確認();
        }
    }
}
Game_Interpreter.prototype.N_Btl_ReonaL2D_Nomal_On = function () {
    L2dFadeMdl("Leona_battleTH","rightout",15,"",1,1,0,0);
    L2dFadeMdl("Leona_battle1","rightin" , 15 , "" , 1 , null , 0 , 130);
    L2dIdleStart("Leona_battle1","4_slow_wide");
    L2dSetMotion("Leona_battle1","4_slow_wide");
    L2dTop("Leona_battle1");
}
Game_Interpreter.prototype._ブレイクモード終了確認 = function(){
    if(NEnemy.Brns <= 0){
        NEnemy.Brns = NEnemy.Brns_基礎値;
        _Brns_ブレイクFlg = false; 
        this.BLogAdd(120 , SCol.Yel + "The enemy has recovered from their Break state.");
    }
}
let PLStPos = new Pos2D(1150, 647); 
Game_Interpreter.prototype.N_Btl_PlStView = function (_PosX, _PosY,_SetFlg) {
    _PosX = typeof _PosX !== 'undefined' ? _PosX : PLStPos._x;
    _PosY = typeof _PosY !== 'undefined' ? _PosY : PLStPos._y;
    _SetFlg = typeof _SetFlg !== 'undefined' ? _SetFlg : false;
    let _opi = 255;
    if (_SetFlg) _opi = 0;
    ViewSpriteArr_Reset();
    if (NPlayer._tp >= 100) NPlayer._tp = 100;
    if (NPlayer._tp <= 0) NPlayer._tp = 0;
    this.SetSprite(PN_StWin, BtlPic + "PN_StWin", _PosX, _PosY, _opi);
    D_Text_Cng_font = "Russo_One"; 
    var hpTxtSize = 35;
    if (NPlayer._hp > 999) hpTxtSize = 32;
    this.SpriteStr(PN_StHpTxt + 0,  SCol.Grn + "\\ow[5]\\oc[15]" + NPlayer._hp ,
        hpTxtSize, _PosX + 216, _PosY + 43, _opi);
    this.SpriteStr(PN_StTpTxt, SCol.Red + "\\ow[5]\\oc[15]" + NPlayer._tp + " %" ,
        25, _PosX + 216, _PosY + 43 + 55, _opi);
    for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
        this.MoveSprite(ViewSpriteArr[i], true, true, 10, 255);
    }
    this.SetSprite(PN_StGageBase, BtlPic + "PN_StGageBase", _PosX + 138, _PosY + 57 , _opi);
    this.MoveSprite(PN_StGageBase, true, true, 10, 255);
    let _HpLng = (NPlayer._hp / NPlayer.b_mhp) * 100;
    this.SetSprite(PN_StHpGage, BtlPic + "PN_StHpGage", _PosX + 138, _PosY + 57 , _opi, _HpLng);
    this.MoveSprite(PN_StHpGage, true, true, 10, 255, _HpLng);
    let _TpLng = NPlayer._tp; 
    this.SetSprite(PN_StTpGage, BtlPic + "PN_StTpGage", _PosX + 138, _PosY + 57 + 50, _opi, _TpLng);
    this.MoveSprite(PN_StTpGage, true, true, 10, 255, _TpLng);
    D_Text_Cng_font = ""; 
}
Game_Interpreter.prototype.N_Btl_SelTpDraw = function () {
    let _TpGageData = GetSpriteData(PN_StTpGage);
    if(_TpGageData != null){
        let _PsX = _TpGageData._x;
        let _PsY = _TpGageData._y;
        let _Width = _TpGageData.width;
        let _Mx = _TpGageData._scaleX;
        let _CkX = NPlayer._tp - btlSelect_PlTp;
        let _STpStartX = _PsX + _Width * (_Mx / 100);
        this.SetSprite(PN_StSelTpGage, BtlPic + "PN_StSelTpGage", _STpStartX + 1, _PsY, 255, -_CkX);
    }
}
Game_Interpreter.prototype.N_Btl_PlStmove = function (_PosX , _PosY , _Flame) {
    this.MoveSprite(PN_StWin, _PosX, _PosY, _Flame);
    this.MoveSprite(PN_StHpTxt + 0, _PosX + 216, _PosY + 43, _Flame);
    this.MoveSprite(PN_StTpTxt, _PosX + 216, _PosY + 43 + 55, _Flame);
    this.MoveSprite(PN_StGageBase, _PosX + 138, _PosY + 57, _Flame, 255);
    let _HpLng = (NPlayer._hp / NPlayer.b_mhp) * 100;
    this.MoveSprite(PN_StHpGage, _PosX + 138, _PosY + 57, _Flame, 255, _HpLng);
    let _TpLng = NPlayer._tp;
    this.MoveSprite(PN_StTpGage, _PosX + 138, _PosY + 57 + 50, _Flame, 255, _TpLng);
}
Game_Interpreter.prototype.PL回復 = function (_par) {
    this.PLHP変動(Math.floor((_par / 100) * NPlayer.b_mhp));
}
Game_Interpreter.prototype.EM回復 = function (_par) {
    this.EMHP変動(Math.floor((_par / 100) * NEnemy.b_mhp));
}
Game_Interpreter.prototype.PLHP変動 = function (_value) {
    NPlayer._hp += Math.floor(_value);
    if (NPlayer._hp < 0) NPlayer._hp = 0;
    if (NPlayer._hp > NPlayer.b_mhp) NPlayer._hp = NPlayer.b_mhp;
}
Game_Interpreter.prototype.EMHP変動 = function (_value) {
    NEnemy._hp += Math.floor(_value);
    if (NEnemy._hp < 0) NEnemy._hp = 0;
    if (NEnemy._hp > NEnemy.b_mhp) NEnemy._hp = NEnemy.b_mhp;
}
let EmStPos = new Pos2D(38, 330); 
Game_Interpreter.prototype.N_Btl_EmStView = function (_PosX, _PosY) {
    _PosX = typeof _PosX !== 'undefined' ? _PosX : EmStPos._x;
    _PosY = typeof _PosY !== 'undefined' ? _PosY : EmStPos._y;
    D_Text_Cng_font = "Russo_One"; 
    let _文字Str = _バランステキスト取得();
    this.SpriteStrC(PN_StEmHpTxt + 0,SCol.Yel + _文字Str , 40 , _PosX + 35 , _PosY + 40);
    this.SpriteStr(PN_StEmHpTxt + 1, SCol.Grn + "\\ow[5]\\oc[15]" + NEnemy._hp, 35, _PosX + 155, _PosY + 23);
    let _HpLng = (NEnemy._hp / NEnemy.b_mhp) * 100;
    this.SetSprite(PN_StEmWin, BtlPic + "PN_StEmWin", _PosX, _PosY);
    this.SetSprite(PN_StEmHpGage_Back, BtlPic + "PN_StEmHpGage_Back", _PosX + 97, _PosY + 40, 255);
    this.SetSprite(PN_StEmHpGage, BtlPic + "PN_StEmHpGage", _PosX + 97, _PosY + 40, 255, _HpLng);
    D_Text_Cng_font = ""; 
}
Game_Interpreter.prototype.N_バランス描画 = function () {
    if(NEnemy.Brns <= 0) NEnemy.Brns = 0;
    let _Sprite = GetSpriteData(PN_StEmHpTxt + 0);
    let _文字Str = _バランステキスト取得();
    this.SpriteStrC(PN_StEmHpTxt + 0, _文字Str, 40, _Sprite._x, _Sprite._y);
}
let _バランステキスト取得 = function() {
    let _AStr = "";
    if(NEnemy.Brns == 0) _AStr = SCol.Red;
    return " " + _AStr + NEnemy.Brns + " ";
}
Game_Interpreter.prototype.N_Btl_EmStmove = function (_PosX, _PosY, _Flame) {
    this.MoveSprite(PN_StEmWin, _PosX, _PosY, _Flame);
    this.MoveSprite(PN_StEmHpGage_Back, _PosX + 97, _PosY + 40, _Flame);
    this.MoveSprite(PN_StEmHpGage, _PosX + 97, _PosY + 40, _Flame , 255 , true);
    this.MoveSprite(PN_StEmHpTxt + 0, _PosX + 35 , _PosY + 40, _Flame);
    this.MoveSprite(PN_StEmHpTxt + 1, _PosX + 155, _PosY + 23, _Flame);
}
const DoP_Cnt = 20; 
const _BsBltY差 = 59; 
const _BltY差 = _BsBltY差 * _BltTxt拡大率; 
let DoPos_Pl = new Pos2D(450, 410); 
let DoTHPos = new Pos2D(DoPos_Pl._x , 700); 
let DoPos_Em = new Pos2D(DoPos_Pl._x - 410 * _BltTxt拡大率 - 20, DoPos_Pl._y); 
let DoPosB_PL = new Pos2D(379, DoPos_Pl._y + 48); 
let DoPosB_Em = new Pos2D(303, DoPos_Pl._y + 48); 
let SelectDoNo = 0; 
let Em_DoViewArr = [true, true, true, true, true, true];
let DoHPos = new Pos2D(DoPos_Pl._x - 9, DoPos_Pl._y - 8); 
let BltPicArr = []; 
for (let i = 0; i <= 6 - 1; i++) {
    BltPicArr.push(PN_bPLBltWin + (Cnt_PN_bPLBltWin * i));
}
DoArr_Reset = function () {
    NPlayer.DO_Arr = [0, 0, 0, 0, 0, 0]; 
    NEnemy.DO_Arr = [0, 0, 0, 0, 0, 0]; 
    Em_DoViewArr = [true, true, true, true, true, true];
}
let _PL_DoArrDraw = false; 
let _PL_SelWillMp = 0;
Game_Interpreter.prototype.N_Btl_DoView = function (_SetFlg) {
    _SetFlg = typeof _SetFlg !== 'undefined' ? _SetFlg : false;
    ViewSpriteArr_Reset();
    let _opi = 255;
    if (_SetFlg) _opi = 0;
    let _PL_WillMp = NPlayer.Do_Mp;
    let _opi155Arr = [];
    for (let j = 0; j < NPlayer.DO_Arr.length; j++) {
        if (isNaN(NPlayer.DO_Arr[j])) NPlayer.DO_Arr[j] = 0;
    }
    for (let i = 0; i <= NPlayer.DO_Arr.length - 1; i++) {
        if(SelectDoNo == i){
            _PL_SelWillMp = _PL_WillMp;
        }
        if(!_PL_DoArrDraw) {
            if (NPlayer.DO_Arr[i] == 0){ 
                let _PicNo = PN_bPLBltWin + (i * Cnt_PN_bPLBltWin);
                let _PosX = DoPos_Pl._x;
                let _PosY = DoPos_Pl._y + (_BltY差 * i);
                this.N_Btl_Pl弾丸Draw(_PicNo , "" , "" , 0 , _PosX , _PosY , _opi , _Blt拡大);
                continue;
            }
        }else{
            if (NPlayer.DO_Arr[i] == 0) continue;
        }
        let _ckSkill = $dataSkills[NPlayer.DO_Arr[i]];
        let _ColStr = "";
        _ColStr = Skill相性Col(NPlayer.DO_Arr[i], NEnemy.DO_Arr[i]);
        if (!Em_DoViewArr[i]) _ColStr = ""; 
        if(_Skill_State存在Ck(NPlayer.DO_Arr[i] , _StateDt._コスト全消費)){
            Draw_弾丸Cost = _PL_WillMp;
            _PL_WillMp = 0;
        } else {
            if (_ckSkill.mpCost > 0) {
                _PL_WillMp -= _ckSkill.mpCost;
                if (_PL_WillMp < 0) _ColStr = SCol.Red; 
            } else if (_ckSkill.tpCost > 0) {
                _PL_WillMp += _ckSkill.tpCost;
            }
        }
        if(!_PL_DoArrDraw) {
            let _PicNo = PN_bPLBltWin + (i * Cnt_PN_bPLBltWin);
            let _PosX = DoPos_Pl._x;
            let _PosY = DoPos_Pl._y + (_BltY差 * i);
            let _SkillNo = NPlayer.DO_Arr[i];
            let _HitStr = this._Txt命中被弾(i , _SkillNo);
            this.N_Btl_Pl弾丸Draw(_PicNo , _ColStr , _HitStr , _SkillNo , _PosX , _PosY , _opi , _Blt拡大);
            this.TpUse_PicColCng(_PicNo , i);
        }
        if (_PL_WillMp <= 0) _PL_WillMp = 0;
        if (_PL_WillMp >= NPlayer.Do_MaxMp) _PL_WillMp = NPlayer.Do_MaxMp;
        if (_PL_WillMp >= DoP_Cnt) _PL_WillMp = DoP_Cnt;
    }
    let _TPDrawSkip = false;
    if(_Btl_TutorialNo != -1) {
        if(_Btl_TutorialNo < 27) _TPDrawSkip = true;
    }
    if(NPlayer._tp >= 50 && !_TPDrawSkip && !TH_ModeFlg) {
        this.SetSprite(PN_BtlTHBlt ,BtlPic +  "PN_THBlt_1" , DoTHPos._x , DoTHPos._y);
        if(btlSelect_PlTp >= 50){
            this.SetSprite(PN_BtlTHBlt ,BtlPic +  "PN_THBlt_1" , DoTHPos._x , DoTHPos._y);
        } else {
            this.SetSprite(PN_BtlTHBlt ,BtlPic +  "PN_THBlt_1_Off" , DoTHPos._x , DoTHPos._y);
        }
    } else {
        this.DelSprite(PN_BtlTHBlt);
    }
    let _SelHPsY = DoPos_Pl._y + (_BltY差 * SelectDoNo) - 7;
    if (SelectDoNo == -1){
        _SelHPsY = DoTHPos._y;
        this.SetSprite(PN_bPLBltHikari ,BtlPic +  "PN_bPLBltHikari" ,
                       DoPos_Pl._x - 8 , _SelHPsY - 7 , _opi);
    } else {
        this.SetSprite(PN_bPLBltHikari ,BtlPic +  "PN_bPLBltHikari" ,
            DoPos_Pl._x - 8 , _SelHPsY , _opi , _Blt拡大 , _Blt拡大);
    }
    if (_Btl_TutorialNo == -1)
        this.SetSprite(PN_bDataBtn , BtlPic + "PN_bDataBtn" , 18 , 715 , _opi);
    this.Btl_異常描画(_opi);
    let _Em_WillMp = NEnemy.Do_Mp;
    for (let i = 0; i <= NEnemy.DO_Arr.length - 1; i++) {
        let _ckSkill = $dataSkills[NEnemy.DO_Arr[i]];
        if(NEnemy.DO_Arr[i] != -1){
            if(_Skill_State存在Ck(NEnemy.DO_Arr[i] , _StateDt._コスト全消費)){
                Draw_弾丸Cost = _Em_WillMp;
                _Em_WillMp = 0;
            } else {
                if (_ckSkill.mpCost > 0) {
                    _Em_WillMp -= _ckSkill.mpCost;
                    if (_Em_WillMp < 0) _ColStr = SCol.Red; 
                } else if (_ckSkill.tpCost > 0) {
                    _Em_WillMp += _ckSkill.tpCost;
                }
            }
        }
        let _PicNo = PN_bEmBltWin + (i * Cnt_PN_bEmBltWin);
        let _相性Col = Skill相性Col(NEnemy.DO_Arr[i], NPlayer.DO_Arr[i]);
        if (!Em_DoViewArr[i]) _相性Col = ""; 
        let _PosX = DoPos_Em._x;
        let _PosY = DoPos_Em._y + (_BltY差 * i);
        if (_SetFlg) {
            if (Em_DoViewArr[i]) { 
                this.N_Btl_Em弾丸Draw(_PicNo , _相性Col , NEnemy.DO_Arr[i] , _PosX , _PosY , _opi , _Blt拡大);
            } else {
                this.N_Btl_Em弾丸_不明Draw(_PicNo ,_PosX,_PosY , _opi , _Blt拡大);
            }
        }
        if (_Em_WillMp <= 0) _Em_WillMp = 0;
        if (_Em_WillMp >= DoP_Cnt) _Em_WillMp = DoP_Cnt;
    }
    for (let i = 0; i <= NPlayer.Do_MaxMp - 1; i++) {
        let _setNo = "0";
        let _ckMp = i + 1;
        if (_PL_WillMp >= NPlayer.Do_Mp){ 
            if (NPlayer.Do_Mp >= _ckMp) _setNo = "1";
            if (NPlayer.Do_Mp < _ckMp && _PL_WillMp >= _ckMp) _setNo = "2";
        }
        if (_PL_WillMp < NPlayer.Do_Mp) { 
            if (_PL_WillMp >= _ckMp) _setNo = "1";
            if (_PL_WillMp < _ckMp && NPlayer.Do_Mp >= _ckMp) _setNo = "3";
        }
        this.SetSprite(PN_bDoPoint + i, BtlPic + "PN_bDoPoint_" + _setNo,
            DoPosB_PL._x, DoPosB_PL._y + (29 * 8) - (15 * i), _opi);
    }
    for (let i = 0; i <= NEnemy.Do_MaxMp - 1; i++) {
        _setNo = "0";
        _ckMp = i + 1;
        if (_Em_WillMp >= NEnemy.Do_Mp) { 
            if (NEnemy.Do_Mp >= _ckMp) _setNo = "1";
            if (NEnemy.Do_Mp < _ckMp && _Em_WillMp >= _ckMp) _setNo = "2";
        }
        if (_Em_WillMp < NEnemy.Do_Mp) { 
            if (_Em_WillMp >= _ckMp) _setNo = "1";
            if (_Em_WillMp < _ckMp && NEnemy.Do_Mp >= _ckMp) _setNo = "3";
        }
        this.SetSprite(PN_bDoPoint_Em + i, BtlPic + "PN_bDoPoint_" + _setNo,
            DoPosB_Em._x, DoPosB_Em._y + (29 * 8) - (15 * i), _opi);
    }
    for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
        if (_opi155Arr.indexOf(ViewSpriteArr[i]) != -1) {
            this.MoveSprite(ViewSpriteArr[i], true, true, 15, 155, true, true);
        } else {
            this.MoveSprite(ViewSpriteArr[i], true, true, 15, 255, true, true);
        }
    }
}
let _異常PlPicArr = [];
let _異常EmPicArr = [];
Game_Interpreter.prototype.Btl_異常描画 = function (_opi) { 
    _opi = typeof _opi !== 'undefined' ? _opi : 255;
    this.DelSpriteSpan(PN_bPlState , PN_bEmStateTn + 6); 
    _異常PlPicArr = [];
    for (let i = 0; i <= NPlayer.state.length - 1; i++) {
        let _ckst = $dataStates[NPlayer.state[i]._No];
        let _SetStr = " \\I[" + _ckst.iconIndex + "] ";
        _異常PlPicArr.push(PN_bPlState + i);
        let _PLIPs = new Pos2D(1400 , 650);
        this.SpriteStrC(PN_bPlState + i , _SetStr , 25 , _PLIPs._x , _PLIPs._y + (-60 * i)  , 255 , 150 , 150);
        let _TurnStr =  "\\oc[rgba(0,0,0,1)] " + NPlayer.state[i]._Turn + " ";
        this.SpriteStrR(PN_bPlStateTn + i , _TurnStr , 25 , _PLIPs._x + 30 , _PLIPs._y + (-60 * i) , 255);
    }
    _異常EmPicArr = [];
    for (let i = 0; i <= NEnemy.state.length - 1; i++) {
        let _ckst = $dataStates[NEnemy.state[i]._No];
        let _SetStr = " \\I[" + _ckst.iconIndex + "] ";
        let _StPs = new Pos2D(63 , 61 + 67 - (56 * i));
        this.SpriteStrC(PN_bEmState + i , _SetStr , 25 , _StPs._x , _StPs._y , _opi , 150 , 150);
        _異常EmPicArr.push(PN_bEmState + i);
        let _TurnStr =  "\\oc[rgba(0,0,0,1)] " + NEnemy.state[i]._Turn + " ";
        this.SpriteStrR(PN_bEmStateTn + i , _TurnStr , 25 , _StPs._x , _StPs._y, _opi);
    }
}
Game_Interpreter.prototype.N_Btl_異常確認_Update = function () {
    D_Text_Cng_font = "Makinas"; 
    this.DelSpriteSpan(PN_bIjoWin , PN_bIjoTxt + 1);
    let _CNo = overPointerSpCkArr(_異常PlPicArr);
    let _PIjPs = new Pos2D(930 , 630);
    if(_CNo != -1) {
        _CNo -= PN_bPlState;
        let _ZureY = (-60 * _CNo)
        this.SetSprite(PN_bIjoWin , BtlPic + "PN_bIjoWin" , _PIjPs._x , _PIjPs._y + _ZureY);
        let _CkState = $dataStates[NPlayer.state[_CNo]._No];
        let _StVar = " \\I[" + _CkState.iconIndex + "] " + _CkState.name + "： " + NPlayer.state[_CNo]._Turn + " More Actions";
        this.SpriteStr(PN_bIjoTxt + 0 , _StVar , 24 , _PIjPs._x + 28 , _PIjPs._y + 13 + _ZureY);
        this.SpriteStr(PN_bIjoTxt + 1 , " " + _CkState.message1 , 24 , _PIjPs._x + 28 , _PIjPs._y + 13 + 41 + _ZureY);
    }
    _CNo = overPointerSpCkArr(_異常EmPicArr);
    if(_CNo != -1){
        _CNo -= PN_bEmState;
        let _EmjPs = new Pos2D(86 , 256 - (56 * _CNo));
        this.SetSprite(PN_bIjoWin , BtlPic + "PN_bIjoWin_Em" , _EmjPs._x , _EmjPs._y);
        let _CkState = $dataStates[NEnemy.state[_CNo]._No];
        let _StVar = " \\I[" + _CkState.iconIndex + "] " + _CkState.name + "： " + NEnemy.state[_CNo]._Turn + " More Actions";
        this.SpriteStr(PN_bIjoTxt + 0 , _StVar , 24 , _EmjPs._x + 28 , _EmjPs._y + 13);
        this.SpriteStr(PN_bIjoTxt + 1 , " " + _CkState.message1 , 24 , _EmjPs._x + 28 , _EmjPs._y + 13 + 41);
    }
    D_Text_Cng_font = ""; 
}
Game_Interpreter.prototype._Txt命中被弾 = function (_No , _ckSkillId) { 
    _ckSkillId = typeof _ckSkillId !== 'undefined' ? _ckSkillId : -1;
    if (!Em_DoViewArr[_No]) return "Hit???% Recv???%";
    let _PlSkillNo = NPlayer.DO_Arr[_No];
    if (_ckSkillId != -1) {
        NPlayer.Skill = $dataSkills[_ckSkillId];
    } else {
        NPlayer.Skill = $dataSkills[_PlSkillNo];
    }
    let _PLStSave = NPlayer.state.slice(); 
    let _EmSkillNo = NEnemy.DO_Arr[_No];
    NEnemy.Skill = $dataSkills[_EmSkillNo];
    let _EmStSave = NEnemy.state.slice(); 
    this.Skill_StateSet(NPlayer, 1 , false);    
    this.Skill_StateSet(NEnemy, 1 , false);     
    let _命中 = "---";
    if (NPlayer.Skill != null) {
        if (NPlayer.Skill.stypeId == _Stype._Atk) {
            _命中 = Math.floor(HitKeisan(NPlayer, NEnemy));
        }
    }
    let _被弾 = "---";
    try {
        if (NEnemy.Skill.stypeId == _Stype._Atk) {
            _被弾 = Math.floor(HitKeisan(NEnemy, NPlayer));
        }
    } catch (e) { 
        let ss = 0;
    }
    NPlayer.state = _PLStSave;
    NEnemy.state = _EmStSave;
    return "Hit" + _命中 + "% " + "Recv" + _被弾 + "%";
}
Game_Interpreter.prototype._Txt特殊 = function (_ckSkillId) { 
    let _rtnTxt = "";
    if (MetaChecker($dataSkills[_ckSkillId],"テンション消費") != "") {
        _rtnTxt += "\\oc[rgba(0, 0, 0, 1)]"
        _rtnTxt += SCol.Red + "テンション消費:" + MetaChecker($dataSkills[_ckSkillId], "テンション消費");
    }
    return _rtnTxt;
}
Game_Interpreter.prototype._直感判定 = function () {
    let _主人公の直感 = NPlayer.b_pre;
    let _敵の直感 = NEnemy.b_pre;
    let _内部直感率 = ((_主人公の直感 / _敵の直感) / 0.02);
    if (_内部直感率 < 10) _内部直感率 = 10;
    if (_内部直感率 > 80) _内部直感率 = 80;
    let _直感確率 = _内部直感率 + 10;
    return Math.random() * 100 < _直感確率;
}
Game_Interpreter.prototype.N_Btl_DoPDel = function () {
    for (let i = PN_bDoPoint; i <= PN_bDoPoint_Em + (DoP_Cnt - 1); i++) {
        this.DelSprite(i);
    }
}
Game_Interpreter.prototype.N_Btl_DoPResetDraw = function () {
    for (let i = 0; i <= NPlayer.Do_MaxMp - 1; i++) {
        let _setNo = "0";
        let _ckMp = i + 1;
        if (NPlayer.Do_Mp >= _ckMp) _setNo = "1";
        this.SetSprite(PN_bDoPoint + i, BtlPic + "PN_bDoPoint_" + _setNo,
            DoPosB_PL._x, DoPosB_PL._y + (29 * 8) - (15 * i));
    }
    for (let i = 0; i <= NEnemy.Do_MaxMp - 1; i++) {
        _setNo = "0";
        _ckMp = i + 1;
        if (NEnemy.Do_Mp >= _ckMp) _setNo = "1";
        this.SetSprite(PN_bDoPoint_Em + i, BtlPic + "PN_bDoPoint_" + _setNo,
            DoPosB_Em._x, DoPosB_Em._y + (29 * 8) - (15 * i));
    }
}
Game_Interpreter.prototype.N_Btl_DoPPicCng = function () {
    for (let i = 0; i <= NPlayer.Do_MaxMp - 1; i++) {
        let _setNo = "0";
        let _ckMp = i + 1;
        if (NPlayer.Do_Mp >= _ckMp) _setNo = "1";
        this.CngSprite(PN_bDoPoint + i, BtlPic + "PN_bDoPoint_" + _setNo);
    }
    for (let i = 0; i <= NEnemy.Do_MaxMp - 1; i++) {
        _setNo = "0";
        _ckMp = i + 1;
        if (NEnemy.Do_Mp >= _ckMp) _setNo = "1";
        this.CngSprite(PN_bDoPoint_Em + i, BtlPic + "PN_bDoPoint_" + _setNo);
    }
}
Game_Interpreter.prototype.N_Btl_PLDoMove = function (_PosX, _PosY , _Flame) {
    for (let i = 0; i <= 6 - 1; i++) {
        this.N_Btl_Pl弾丸Move(PN_bPLBltWin + (i * Cnt_PN_bPLBltWin) , _PosX, _PosY + (_BsBltY差 * i), _Flame , 255,100);
    }
}
Game_Interpreter.prototype.N_Btl_PLDoPMove = function (_PosX, _PosY, _Flame) {
    for (let i = 0; i <= NPlayer.Do_MaxMp - 1; i++) {
        this.MoveSprite(PN_bDoPoint + i, _PosX, _PosY + (29 * 8) - (29 * i), _Flame);
    }
}
Game_Interpreter.prototype.N_Btl_EmDoMove = function (_PosX, _PosY, _Flame) {
    for (let i = 0; i <= 6 - 1; i++) {
        this.N_Btl_Em弾丸Move(PN_bEmBltWin + (i * Cnt_PN_bEmBltWin), _PosX, _PosY + (_BsBltY差 * i), _Flame)
    }
}
Game_Interpreter.prototype.N_Btl_EmDoMoveRt = function (_PosX, _PosY, _Flame) {
    for (let i = 0; i <= 6 - 1; i++) {
        this.N_Btl_Em弾丸Move(PN_bEmBltWin + (i * Cnt_PN_bEmBltWin), _PosX, _PosY + (_BsBltY差 * 5) + (-_BsBltY差 * i), _Flame)
    }
}
Game_Interpreter.prototype.N_Btl_EmDoPMove = function (_PosX, _PosY, _Flame) {
    for (let i = 0; i <= NEnemy.Do_MaxMp - 1; i++) {
        this.MoveSprite(PN_bDoPoint_Em + i, _PosX, _PosY + (29 * 8) - (29 * i), _Flame);
    }
}
let SkillSelNo = 0;
let SelectSkillArr = [];
let SklPos = new Pos2D(645, DoPos_Pl._y - 55); 
Game_Interpreter.prototype.N_Btl_SkillView = function (_SetFlg) {
    let _opi = 255;
    if (_SetFlg) _opi = 0;
    ViewSpriteArr_Reset(); 
    SelectSkillArr = [];
    for (let i = 0; i <= $gameSystem.PL_SkillArr.length - 1; i++) {
        if($gameSystem.PL_SkillArr[i] == 0) continue;
        let _ckSkill = $dataSkills[$gameSystem.PL_SkillArr[i]];
        if (!TH_ModeFlg && _ckSkill.meta["THMode"]) continue;
        SelectSkillArr.push($gameSystem.PL_SkillArr[i]); 
    }
    if(TH_ModeFlg && NPlayer.DO_Arr.indexOf(SKN_THSkill + $gameVariables.value(VN_THSkLv)) == -1) {
        this.TH_Skill_Add();
    }
    for (let i = 0; i <= SelectSkillArr.length - 1; i++) {
        let _ckSkill = $dataSkills[SelectSkillArr[i]];
        let _costStr = " 0";
        if (_ckSkill.mpCost > 0) {
            _costStr = "-" + _ckSkill.mpCost;
        } else if (_ckSkill.tpCost > 0) {
            _costStr = "+" + _ckSkill.tpCost;
        }
        let _相性Col = Skill相性Col(SelectSkillArr[i], NEnemy.DO_Arr[SelectDoNo]);
        if (!Em_DoViewArr[i]) _相性Col = ""; 
        let _IcStr = "";
        if (_ckSkill.iconIndex != 0) {
            _IcStr += "\\I[" + _ckSkill.iconIndex + "]";
        }
    }
    for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
        this.MoveSprite(ViewSpriteArr[i], true, true, 15, 255);
    }
    if(SelectDoNo == -1){
        this.N_Btl_THSetuView(_DoSetuPosX + 30 , 695);
    } else {
        if(NPlayer.DO_Arr[SelectDoNo] != 0){
            //this.N_Btl_SetuView(NPlayer.DO_Arr[SelectDoNo] , _DoSetuPosX , 402 + (_BltY差 * SelectDoNo));
        } else {
            let _DelMinPic = PN_BtlSelUI + (-3 * Cnt_PN_bPLBltWin);
            let _DelMaxPic = PN_BtlSelUI + (+3 * Cnt_PN_bPLBltWin);
            this.DelSpriteSpan(_DelMinPic , _DelMaxPic);
        }
    }
}
let Skill相性Col = function (_PLSkillNo, _EmSKillNo) {
    switch(Skill相性Ck(_PLSkillNo, _EmSKillNo)){
        case _相性結果.Win:
            return SCol.Yel;
        case _相性結果.Lose:
            return SCol.Blu;
        case _相性結果.Draw:
            return "";
    }
    return "";
}
let _相性結果 = {
    Win:1,
    Lose:2,
    Draw:3
};
let Skill相性Ck = function (_PLSkillNo, _EmSKillNo) {
    if (_PLSkillNo == 0 || _PLSkillNo == undefined) return "";
    if (_EmSKillNo == 0 || _EmSKillNo == undefined) return "";
    if(_PLSkillNo == -1) return _相性結果.Lose;
    if(_EmSKillNo == -1) return _相性結果.Win;
    let _結果 = _相性結果.Draw;
    let _plStype = $dataSkills[_PLSkillNo].stypeId;
    let _emStype = $dataSkills[_EmSKillNo].stypeId;
    switch (_plStype) {
        case _Stype._Atk:
            if (_emStype == _Stype._Taiki) _結果 = _相性結果.Win;
            if (_emStype == _Stype._Def) _結果 = _相性結果.Lose;
            break;
        case _Stype._Def:
            if (_emStype == _Stype._Atk) _結果 = _相性結果.Win;
            if (_emStype == _Stype._Taiki) _結果 = _相性結果.Lose;
            break;
        case _Stype._Taiki:
            if (_emStype == _Stype._Def) _結果 = _相性結果.Win;
            if (_emStype == _Stype._Atk) _結果 = _相性結果.Lose;
            break;
    }
    return _結果;
}
let SetuPos = new Pos2D(547, 243); 
Game_Interpreter.prototype.N_Btl_SetuView = function (_SkillId , _posX , _PosY) {
    _posX = typeof _posX !== 'undefined' ? _posX : SetuPos._x;
    _PosY = typeof _PosY !== 'undefined' ? _PosY : SetuPos._y;
    let _opi = 0;
    ViewSpriteArr_Reset(); 
    if(_SkillId == undefined) return;
    let _ckSkill = $dataSkills[_SkillId];
    if(_ckSkill == null) return;
    if (_ckSkill.description != undefined) {
        _CkDescArr = _Skill_SetuGetArr(_SkillId);
    }
    let _addStr = "　　Cost 0";
    if (_ckSkill.mpCost > 0) {
        _addStr = "　　Cost－" + _ckSkill.mpCost;
    } else if (_ckSkill.tpCost > 0) {
        _addStr = "　　Cost＋" + _ckSkill.tpCost;
    }
    if(_Skill_State存在Ck(_SkillId , _StateDt._コスト全消費)){
        _addStr = "　\\C[10]Cost＆TP All Used";
    }
    let _IcStr = "";
    if (_ckSkill.iconIndex != 0) {
        _IcStr += "\\I[" + _ckSkill.iconIndex + "]";
    }
    this.DelSpriteArr([PN_SetuTxt + 0, PN_SetuTxt + 1, PN_SetuTxt + 2]);
    this.SetSprite(PN_SetuWin, BtlPic + "PN_SetuWin", _posX - 20, _PosY, _opi);
    this.SpriteStr(PN_SetuTxt + 0, _IcStr + _ckSkill.name + _addStr, 22, _posX - 1, _PosY + 14, _opi);
    for (let i = 0; i <= _CkDescArr.length - 1; i++) {
        this.SpriteStr(PN_SetuTxt + 1 + i, _CkDescArr[i], 18, _posX + 2, _PosY + 48 + (i * 25), _opi);
    }
    for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
        this.MoveSpriteAdd(ViewSpriteArr[i], 20, 0, 3, 255);
    }
}
Game_Interpreter.prototype.N_Btl_THSetuView = function (_posX , _PosY) {
    this.DelSpriteArr([PN_SetuTxt + 0, PN_SetuTxt + 1, PN_SetuTxt + 2]);
    this.SetSprite(PN_SetuWin, BtlPic + "PN_SetuWin", _posX - 20, _PosY, 0);
    this.SpriteStr(PN_SetuTxt + 0, "TH Mode Start", 22, _posX - 1, _PosY + 14, 0);
    let _CkDescArr = [
        "Enter TH Mode" , "Predict enemy actions again"
    ];
    for (let i = 0; i <= _CkDescArr.length - 1; i++) {
        this.SpriteStr(PN_SetuTxt + 1 + i, _CkDescArr[i], 18, _posX + 2, _PosY + 48 + (i * 25), 0);
    }
    for (let i = 0; i <= ViewSpriteArr.length - 1; i++) {
        this.MoveSpriteAdd(ViewSpriteArr[i], 20, 0, 3, 255);
    }
}
Game_Interpreter.prototype.N_Btl_SetuDel = function () {
    for (let i = PN_SetuWin; i <= PN_SetuHitTxt + 1; i++) {
        this.MoveSprite(i, true, true, 10, 0);
    }
}
const BtlFast_Counter = 60;
let BtlFastCnter = 0;
Game_Interpreter.prototype.N_BtlUpdate = function () {
    if (NPlayer.Do_Mp > NPlayer.Do_MaxMp) NPlayer.Do_Mp = NPlayer.Do_MaxMp;
    if (NEnemy.Do_Mp > NEnemy.Do_MaxMp) NEnemy.Do_Mp = NEnemy.Do_MaxMp;
    if (btlMode != _btlMode.Start) this.BtlBackUpdate();
    this.Btl_UIUpdate();
    switch (btlMode){
        case _btlMode.Start: 
            this.N_Btl_StartUpdate();
            break;
        case _btlMode.Select: 
            this.N_Btl_SelectUpdate();
            BtlFastCnter = 0;
            break;
        case _btlMode.Battle: 
            this.N_Btl_BattleUpdate();
            if(isFastForward()) { 
                if(BtlFastCnter == 0) {
                    EasingStr = "easeInOutQuad";
                    this.SetSprite(PN_SpeedUp + 0 , BtlPic + "PN_SpeedUp" , 72 , 750);
                    this.MoveSprite(PN_SpeedUp + 0 , 472 , true , BtlFast_Counter);
                    EasingStr = "";
                }
                btl_flame++; this.N_Btl_BattleUpdate();
                btl_flame++; this.N_Btl_BattleUpdate();
                BtlFastCnter++;
                if(BtlFastCnter == BtlFast_Counter + 1) BtlFastCnter = 0;
            } else {
                BtlFastCnter = 0;
                this.DelSpriteSpan(PN_SpeedUp + 0 , PN_SpeedUp + 1);
            }
            break;
        case _btlMode.End:
            this.N_Btl_EndUpdate();
            break;
    }
    btl_flame++;
}
let _BtlTurnPs = new Pos2D(1415 , 40);
Game_Interpreter.prototype.Btl_UIUpdate = function () {
    if(btl_flame > 45) {
        D_Text_Cng_font = "Russo_One";
        this.SpriteStrC(PN_bTurn, SCol.Blk0 + " " + BtlTurn + " ", 40, _BtlTurnPs._x, _BtlTurnPs._y);
        D_Text_Cng_font = "";
    }
}
let _PsvWillMp = 0; 
Game_Interpreter.prototype.N_Btl_TurnCng = function () {
    _PsvWillMp = 0;
    for (let i = 0; i <= NPlayer.PsvArr.length - 1; i++) {
        let _AmId = NPlayer.PsvArr[i];
        this.N_Btl_TurnCng_Psv(NPlayer , $dataArmors[_AmId]);
    }
    for (let i = 0; i <= NEnemy.PsvArr.length - 1; i++) {
        let _AmId = NEnemy.PsvArr[i];
        this.N_Btl_TurnCng_Psv(NEnemy , $dataArmors[_AmId]);
    }
}
Game_Interpreter.prototype.N_Btl_TurnCng_Psv = function (_NChara , _Armor) {
    if(_Armor.traits.length == 0) return;
    for (let i = 0; i <= _Armor.traits.length - 1; i++) {
        if(_Armor.traits[i].code != 11) continue;
        let _Var = Math.floor(_Armor.traits[i].value * 100) - 100;
        switch(_Armor.traits[i].dataId){
            case _Zoku._ﾀｰﾝ行動値変化:
                _NChara.Do_Mp += _Var;
                _PsvWillMp += _Var;
                if(_NChara.Do_Mp < 0) _NChara.Do_Mp = 0;
                if(_NChara.Do_Mp  >= DoP_Cnt) _NChara.Do_Mp = DoP_Cnt;
                break;
            case _Zoku._ﾀｰﾝ体力回復:
                _NChara._hp += Math.floor(_NChara.mhp * (_Var / 100));
                if(_NChara._hp > _NChara.mhp) _NChara._hp = _NChara.mhp;
                if(_NChara._hp < 0) _NChara._hp = 0;
                break;
            case _Zoku._ﾀｰﾝTP回復:
                _NChara._tp += _Var;
                break;
        }
    }
    for (let i = 0; i < _NChara.state.length; i++) {
        let _ckst = $dataStates[_NChara.state[i]._No];
        for (let j = 0; j < _ckst.traits.length; j++) {
            switch (_ckst.traits[j].code) {
                case 11: 
                    switch (_ckst.traits[j].dataId) {
                        case _Zoku._ﾀｰﾝ開始MP全回復:
                            _NChara.Do_Mp += 9999;
                            break;
                    }
                    break;
            }
        }
    }
}
let THMode_End = function () {
    TH_ModeFlg = false; 
    $gameSwitches.setValue(SW_THMode , TH_ModeFlg);
}
let btlSelect_flame = 0;
let _EnterFlame = 0; 
let btlSelect_PlTp = 0 ; 
let btlSelect_TpUse = [0,0,0,0,0,0]; 
let Em_Skills = []; 
Game_Interpreter.prototype.N_Btl_SelectCng = function () {
    this.N_Btl_TurnCng(); 
    戦闘ターン++;
    THMode_End();
    btlMode = _btlMode.Select;
    btlSelect_flame = 0;
    SelectDoNo = 0;
    NPlayer._tp += 10; 
    if(NPlayer._tp > 100) NPlayer._tp = 100;
    btlSelect_PlTp = NPlayer._tp;
    btlSelect_TpUse = [0,0,0,0,0,0]; 
    this.N_Btl_DoPDel(); 
    _EnterFlame = 0;
    this.EnemySkillSet(); 
    this.SetSprite(PN_bFz, BtlPic + "PN_bFz_Sel", 0, 0);
    this.MoveSprite(PN_bFz, true, true, 25);
    if (DbgFlg) { 
        this.DelSpriteArr([PN_TestStr, PN_TestStr + 1, PN_TestStr + 2, PN_TestStr + 3]);
    }
    this.DelSpriteSpan(PN_SpeedUp + 0 , PN_SpeedUp + 1);
}
Game_Interpreter.prototype.PLテンションUp = function (_cngVal) {
    NPlayer._tp += _cngVal;
    btlSelect_PlTp += _cngVal;
    if (NPlayer._tp < 0) NPlayer._tp = 0;
    if (NPlayer._tp > 100) NPlayer._tp = 100;
    if (btlSelect_PlTp < 0) btlSelect_PlTp = 0;
    if (btlSelect_PlTp > 100) btlSelect_PlTp = 100;
}
let _thFlame = 0; let _ThFInFlm = 60
let _Btl_TH演出終了 = false;
let _Btl_TH演出flame = 0;
let CN_THModeCmn = 502; 
Game_Interpreter.prototype.N_Btl_THModeStart = function () {
    TH_ModeFlg = true;
    NPlayer.state.push(new _State(STN_THMode, 6));
    $gameSwitches.setValue(SW_THMode , TH_ModeFlg);
    _thFlame = _ThFInFlm;
    let _dCnt = NPlayer._tp - btlSelect_PlTp;
    NPlayer._tp -= 50;
    btlSelect_PlTp = NPlayer._tp - _dCnt;
    this.DelSprite(PN_BtlTHBlt);
    this.N_Btl_PlStView(PLStPos._x, PLStPos._y, true); 
    this.N_Btl_TatieView();
    this.N_Btl_SkillView(true);
    this._再直感処理();
    _Btl_TH演出flame = 0;
    _Btl_TH演出終了 = true;
    this.Btl_異常描画(); 
}
let Btl_TH演出終了 = function () {
    _Btl_TH演出終了 = false;
}
Game_Interpreter.prototype.N_Btl_THModeUpdate = function () {
    if(_Btl_TH演出終了){
        if(_Btl_TH演出flame == 0) {
            this.SetCmnEvent(CN_THModeCmn);
        }
        _Btl_TH演出flame++;
    }
    if (!_Btl_TH演出終了 && _Btl_TH演出flame > 0) {
        _THSelectFlg = true;
        this.N_Btl_Select_1_Draw(); 
        _Btl_TH演出flame = 0;
    }
    return _Btl_TH演出終了; 
}
let _ktdnBOverFlg = false;
let _SelNoSave = 0;
let _bwhlflame = 10; 
let _BSelMode = 0; 
let _Nowシリンダー角度 = 0;
let _BSel_メニューFlg = false; 
let _BSel_ReadyFlg = false; 
const _DoSetuPosX = 680;
Game_Interpreter.prototype.N_Btl_SelectUpdate = function () {
    if(_Btl_StopCmnFlg) return;
    if(_BSel_ReadyFlg){
        this.Btl_Ready_Update();
        return;
    }
    if(_BSel_メニューFlg){
        this.N_Btl_BSelMenu_Update();
        return;
    }
    switch(_BSelMode) {
        case 0:
            this.N_Btl_SelectUpdate_0();
            break;
        case 1:
            this.N_Btl_SelectUpdate_1();
            break;
    }
    btlSelect_flame++;
}
let btlSelect_初期処理Flg = true;
const CN_戦闘ｺﾏﾝﾄﾞ回転時 = 507;
const CN_戦闘ｺﾏﾝﾄﾞ決定時 = 508;
Game_Interpreter.prototype.N_Btl_SelectUpdate_0 = function () {
    if (_bwhlflame > 0){ 
        TouchInput.wheelY = 0;
        _bwhlflame--;
    }
    if (TouchInput.wheelY != 0) _bwhlflame = 20;
    if (btlSelect_flame == 25) {
        this.MoveSprite(PN_bFz, true, true, 25, 0);
        if(btlSelect_初期処理Flg) {
            _Btl_StopCmnFlg = true;
            this.SetCmnEventSc(CN_カットイン後); 
            btlSelect_初期処理Flg = false;
        } else {
            _Btl_StopCmnFlg = true;
            this.SetCmnEventSc(CN_毎ターンコモン); 
        }
    }
    if (btlSelect_flame == 45) {
        this.N_Btl_DoView(true);
        this.N_Btl_SkillView(true);
        this.N_Btl_PlStView(PLStPos._x, PLStPos._y, true); 
        this.N_Btl_EmStView();
    }
    if (btlSelect_flame > 60 && _EnterFlame == 0) {
        let _doCngFlg = false;
        let _操作_UpFlg = false;
        let _操作_DownFlg = false;
        if(!this.Blt_TutorialUpdate()) {
            _操作_UpFlg = (Input.isTriggered('up') || TouchInput.wheelY < 0);
            _操作_DownFlg = Input.isTriggered('down') || TouchInput.wheelY > 0;
        }
        if (_操作_UpFlg) {
            SelectDoNo--; _doCngFlg = true;
            if (btlSelect_PlTp >= 50) {
                if (SelectDoNo < -1) SelectDoNo = 5; 
            } else {
                if (SelectDoNo < 0) SelectDoNo = 5; 
            }
            this.Blt_SelectMove();
        }
        if (_操作_DownFlg) {
            SelectDoNo++; _doCngFlg = true;
            if (btlSelect_PlTp >= 50) {
                if (SelectDoNo >= 6){
                    SelectDoNo = -1;
                } 
            } else {
                if (SelectDoNo >= 6) SelectDoNo = 0;
            }
            this.Blt_SelectMove();
        }
        if (_doCngFlg) {
            this.N_Btl_SkillView();
        }
        if(TH_ModeFlg){
            this.TH_Skill_Add();
            for (let i = 0; i <= NPlayer.DO_Arr.length - 1; i++) {
                if(i == SelectDoNo) continue;
                if(NPlayer.DO_Arr[i] == SKN_THSkill + $gameVariables.value(VN_THSkLv)){
                    this.TH_Skill_Del();
                    if(SelectSkillArr.length <= SkillSelNo){
                        SkillSelNo = 0;
                    }
                }
            }
        }
        _シリンダー角度 = _Nowシリンダー角度 = 0;
        let _BltDt = new _BltImgData(0);
        let _SlndX = _BltDt._PsX + 383;
        let _SlndY = _BltDt._PsY + 23;
        this.SetSpriteC(PN_BtlSrinder , BtlPic + "PN_BtlSrinder", _SlndX - 20 , _SlndY , 0);
        this.MoveSprite(PN_BtlSrinder , _SlndX , _SlndY , 5 , _BltDt._透明度);
        let tpBtnDrawSkipFlg = false;
        if(_Btl_TutorialNo != -1) {
            if(_Btl_TutorialNo != 26) tpBtnDrawSkipFlg = true;
        }
        this.DelSpriteSpan(PN_TPPowUp + 0 , PN_TPPowUp + 1);
        if(!tpBtnDrawSkipFlg) {
            if(btlSelect_TpUse[SelectDoNo] != 3 && btlSelect_PlTp >= 10){
                this.SetSpriteC(PN_TPPowUp + 0 , BtlPic + "PN_TPPowUp",
                    TPUpPs._x - 10 , TPUpPs._y + (_BltY差 * SelectDoNo), 0);
                this.MoveSprite(PN_TPPowUp + 0 , TPUpPs._x , true , 5 , 255);
                if(btlSelect_PlTp < 10) this.DelSprite(PN_TPPowUp + 0);
            }
            if((btlSelect_TpUse[SelectDoNo] != 0)){
                this.SetSpriteC(PN_TPPowUp + 1 , BtlPic + "PN_TPPowUp_Cancel",
                    TPUpPs._x - 57 - 10 , TPUpPs._y + 134 + (_BltY差 * SelectDoNo), 0);
                this.MoveSprite(PN_TPPowUp + 1 , TPUpPs._x - 57 , true , 5 , 255);
            }
        }
        _Bef_PLDoNo = NPlayer.DO_Arr[SelectDoNo];
        _Bef_PLDoTpCnt = btlSelect_TpUse[SelectDoNo];
        this.N_Btl_Select_1_Draw();
        NPlayer.DO_Arr[SelectDoNo] = SelectSkillArr[SkillSelNo] + btlSelect_TpUse[SelectDoNo];
        _PL_DoArrDraw = true; 
        this.N_Btl_DoView();
        _PL_DoArrDraw = false;
    }
    if (_EnterFlame > 0){
        this.Blt_EnterUpdate();
        if(isFastForward()) {
            this.Blt_EnterUpdate();
            this.Blt_EnterUpdate();
        }
        this.DelSprite(PN_StSelTpGage);
    } else {
        this.N_Btl_SelTpDraw(); 
    }
}
let LvSkipFlg = [130];
let Draw_弾丸Cost = false; 
Game_Interpreter.prototype.N_Btl_Pl弾丸Draw = function (_PicNo , _ColStr , _HitStr , _DoNo , _PosX , _PosY , _Opi , _MSize) {
    _Opi = typeof _Opi !== 'undefined' ? _Opi : 255;
    _MSize = typeof _MSize !== 'undefined' ? _MSize : 100;
    _HitStr = typeof _HitStr !== 'undefined' ? _HitStr : "";
    let _MWari = _MSize / 100;
    this.DelSpriteSpan(_PicNo , _PicNo + Cnt_PN_bPLBltWin - 1);
    if (_DoNo == undefined) _DoNo = 0; 
    if (_DoNo == 0){
        this.SetSprite(_PicNo + 0, BtlPic + "PN_bPLBltWin_brank",
            _PosX, _PosY , _Opi , _MSize , _MSize);
        this.SpriteStr(_PicNo + 2, "-Unassigned-", 22,
            _PosX + (74 * _MWari) , _PosY + (13 * _MWari), _Opi , _MSize , _MSize);
        this.SpriteStr(_PicNo + 3, "Hit---% Receive---% ", 15,
            _PosX + 94, _PosY - 9, _Opi , _MSize , _MSize);
    } else {
        let _ckSkill = $dataSkills[_DoNo];
        let _ckLv = _DoNo % 8; 
        if(_ckLv == 0) _ckLv = 8;
        this.SetSprite(_PicNo + 0, BtlPic + "PN_bPLBltWin",
            _PosX, _PosY , _Opi , _MSize , _MSize);
        if (LvSkipFlg.indexOf(_DoNo) == -1) {
            this.SetSprite(_PicNo + 4, BtlPic + "PN_bSkillLv_" + _ckLv,
                _PosX, _PosY , _Opi , _MSize , _MSize);
        }
        let _astr = "";
        let _SetStr = "PN_Cost_";
        let _MpCost = _ckSkill.mpCost;
        if(_ckSkill.tpCost > 0) _MpCost = -_ckSkill.tpCost
        if (_Skill_State存在Ck(_DoNo , _StateDt._コスト全消費)) _MpCost = Draw_弾丸Cost;
        Draw_弾丸Cost = false;
        if (_MpCost > 0) {
            _SetStr += "m" + _MpCost;
        } else if (_MpCost < 0) {
            _SetStr += "p" + -_MpCost;
        }
        if (_ckSkill.iconIndex != 0){
            _astr += " \\I[" + _ckSkill.iconIndex + "]";
        }
        this.SetSprite(_PicNo + 1, BtlPic + _SetStr, 
            _PosX + (9 * _MWari), _PosY + (0 * _MWari) , _Opi , _MSize , _MSize);
        _ColStr = _ColStr.replace( 'undefined', "" );
        _astr = _ColStr + _astr;
        this.SpriteStr(_PicNo + 2, _astr + _ckSkill.name, 22,
            _PosX + (68 * _MWari), _PosY + (13 * _MWari), _Opi , _MSize , _MSize);
        if(_HitStr != ""){
            this.SpriteStr(_PicNo + 3, _HitStr, 15,
                _PosX + (94 * _MWari), _PosY - (9 * _MWari), _Opi);
        }
    }
}
Game_Interpreter.prototype.N_Btl_Pl弾丸Move = function(_PicNo , _PosX , _PosY , _Time , _Opi , _MSize){
    if (_PosX == true) _PosX = GetSpriteData(_PicNo)._x;
    if (_PosY == true) _PosY = GetSpriteData(_PicNo)._y;
    _Opi = typeof _Opi !== 'undefined' ? _Opi : 255;
    _MSize = typeof _MSize !== 'undefined' ? _MSize : true;
    if(_MSize != true){
        let _MWari = _MSize / 100;
        this.MoveSprite(_PicNo + 0 ,  _PosX , _PosY , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 4 ,  _PosX , _PosY , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 1 ,  _PosX + (9 * _MWari), _PosY + (0 * _MWari) , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 2 ,  _PosX + (68 * _MWari), _PosY + (13 * _MWari) , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 3 ,  _PosX + (94 * _MWari), _PosY - (9 * _MWari) , _Time, _Opi , _MSize , _MSize);
    } else {
        if(GetSpriteData(_PicNo + 0) == null){
            return;
        }
        let _MWari = GetSpriteData(_PicNo + 0)._scaleX / 100;
        this.MoveSprite(_PicNo + 0 ,  _PosX , _PosY , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 4 ,  _PosX , _PosY , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 1 ,  _PosX + (9 * _MWari), _PosY + (0 * _MWari) , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 2 ,  _PosX + (68 * _MWari), _PosY + (13 * _MWari) , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 3 ,  _PosX + (94 * _MWari), _PosY - (9 * _MWari) , _Time, _Opi , true , true);
    }
}
Game_Interpreter.prototype.N_Btl_Em弾丸Draw = function (_PicNo , _ColStr , _DoNo , _PosX , _PosY , _Opi , _MSize) {
    _Opi = typeof _Opi !== 'undefined' ? _Opi : 255;
    _MSize = typeof _MSize !== 'undefined' ? _MSize : 100;
    let _MWari = _MSize / 100;
    this.DelSpriteSpan(_PicNo, _PicNo + Cnt_PN_bEmBltWin - 1); 
    if(_DoNo == -1){
        this.SetSprite(_PicNo, BtlPic + "PN_bEmBltWin_Brns", _PosX, _PosY , _Opi , _MSize , _MSize);
    } else {
        this.SetSprite(_PicNo, BtlPic + "PN_bEmBltWin", _PosX, _PosY , _Opi , _MSize , _MSize);
        let _ckSkill = $dataSkills[_DoNo];
        let _SetStr = "PN_Cost_";
        let _astr = "";
        _astr += _ColStr;
        let _MpCost = _ckSkill.mpCost;
        if(_ckSkill.tpCost > 0) _MpCost = -_ckSkill.tpCost;
        if (Draw_弾丸Cost != false) _MpCost = Draw_弾丸Cost;
        Draw_弾丸Cost = false;
        if (_MpCost > 0) {
            _SetStr += "m" + _MpCost;
        } else if (_MpCost < 0) {
            _SetStr += "p" + -_MpCost;
        }
        this.SetSprite(_PicNo + 1, BtlPic + _SetStr, _PosX + (177 * _MWari), _PosY , _Opi , _MSize , _MSize);
        if (_ckSkill.iconIndex != 0) {
            _astr += "\\I[" + _ckSkill.iconIndex + "]";
        }
        this.SpriteStr(_PicNo + 2, _astr + _ckSkill.name, 22,
            _PosX + (14 * _MWari), _PosY + (13 * _MWari) , _Opi , _MSize , _MSize);
    }
}
Game_Interpreter.prototype.N_Btl_Em弾丸_不明Draw = function(_PicNo ,_PosX , _PosY , _Opi , _MSize){
    _Opi = typeof _Opi !== 'undefined' ? _Opi : 255;
    _MSize = typeof _MSize !== 'undefined' ? _MSize : 100;
    let _MWari = _MSize / 100;
    this.DelSpriteSpan(_PicNo, _PicNo + 2); 
    this.SetSprite(_PicNo, BtlPic + "PN_bEmBltWin_brank", _PosX, _PosY , _Opi , _MSize , _MSize);
    this.SpriteStr(_PicNo + 2, "??????", 22,
        _PosX + (14 * _MWari), _PosY + (13 * _MWari) , _Opi , _MSize , _MSize);
}
Game_Interpreter.prototype.N_Btl_Em弾丸Move = function(_PicNo , _PosX , _PosY , _Time , _Opi , _MSize){
    _Opi = typeof _Opi !== 'undefined' ? _Opi : 255;
    _MSize = typeof _MSize !== 'undefined' ? _MSize : true;
    if(_MSize != true){
        let _MWari = _MSize / 100;
        this.MoveSprite(_PicNo + 0 ,  _PosX , _PosY , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 1 ,  _PosX + (177 * _MWari) , _PosY , _Time, _Opi , _MSize , _MSize);
        this.MoveSprite(_PicNo + 2 ,  _PosX + (14 * _MWari), _PosY + (13 * _MWari) , _Time, _Opi , _MSize , _MSize);
    } else {
        if(GetSpriteData(_PicNo + 0) == null){
            return;
        } 
        let _MWari = GetSpriteData(_PicNo + 0)._scaleX / 100;
        this.MoveSprite(_PicNo + 0 , _PosX , _PosY , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 1 , _PosX + (177 * _MWari) , _PosY , _Time, _Opi , true , true);
        this.MoveSprite(_PicNo + 2 , _PosX + (14 * _MWari), _PosY + (13 * _MWari) , _Time, _Opi , true , true);
    }
} 
