Game_Interpreter.prototype.Cng_TurnSetup = function () { StateSetup(); StateSyoriEnd = false; } let StateSetup = function () { StateUpdateFlame = 0; StateSyoriNo = 0; } let btlTurnCngFlame = 0; let enemyTurnFlg = false; let _即TurnCngFlg = false; Game_Interpreter.prototype.ChangePhase_TurnChange = function (_set即TurnCngFlg) { _set即TurnCngFlg = typeof _set即TurnCngFlg !== 'undefined' ? _set即TurnCngFlg : false; CardKoukaArr = []; this.CardSelect(-1); BtlData.Mode = EnBtlMode.TurnCheck; btlTurnCngFlame = 0; _即TurnCngFlg = _set即TurnCngFlg; this.DelSprite(PN_SetuWin); } let befTurnType; let EnBefTurn = { Player: 1, Enemy: 2, Mikata: 3, Skill: 4, EmSkill: 5 }; let BefTrashHandArr = []; let plTurnEndFlg = false; let turnEndEffectFlg = false; let NextTurnCardMoveSkip = false; Game_Interpreter.prototype.BtlTurnCheck_Update = function () { if (btlTurnCngFlame == 0) { EasingStr = ""; this.TurnCngPicDel(); BtlData.Turn++; this.SpriteCngColor(PN_EdBtn); BefTrashHandArr = []; plTurnEndFlg = false; if (TurnCard[0]._No == -1 && !_即TurnCngFlg) { BefTrashHandArr = CardData.slice(); for (let i = 0; i <= CardData.length - 1; i++) { let cardData = CardData[i].CardData; let keepFlg = false; if (CardKoukaCk(cardData, KSkill.手札に保留)) keepFlg = true; if (CardKoukaCk(cardData, KSkill.破棄TEnd) || CardKoukaCk(cardData, KSkill.破棄Max) || CardData[i]._一時カード) { keepFlg = true; this.PicTranOut(CardData[i].setPNo, "123", 45); continue; } if (CardKoukaCk_DType(cardData, DType.TEDmg)) continue; if (!keepFlg) { this.HandCard_TrashMove(CardData[i].setPNo); CardData.splice(i, 1); i--; } } this.KeepCardMove(); this.DeckMaisuView(); plTurnEndFlg = true; turnEndEffectFlg = false; } } if (btlTurnCngFlame == 2 && !turnEndEffectFlg) { if (plTurnEndFlg) this.TurnEndPlayer(); turnEndEffectFlg = true; } if (btlTurnCngFlame == 3) { if ($gameTroop._turnCount == 0) { this.SetSprite(PN_TurnC_Back, "Black", 0, 0, 0); this.MoveSprite(PN_TurnC_Back, 0, 0, 15, 100); this.SetSprite(PN_TurnC_W, BtlPicPath + "PN_TurnC_W4", 0, 283, 0); this.SetSprite(PN_TurnC, BtlPicPath + "PN_TurnC4", -489, 315, 255); if (TurnCard[0]._Type == EnemyTCType.EmDoSkill) { enemyTurnFlg = true; befTurnType = EnBefTurn.Enemy; $gameTroop._turnCount++; } else if (TurnCard[0]._Type == EnemyTCType.PlSkill) { enemyTurnFlg = true; befTurnType = EnBefTurn.Skill; $gameTroop._turnCount++; } else { enemyTurnFlg = false; befTurnType = EnBefTurn.Player; } this.MoveSprite(PN_TurnC_W, 0, 283, 15, 255); this.MoveSprite(PN_TurnC, 386, 315, 15, 255); } else { if (!_即TurnCngFlg) { if (!NextTurnCardMoveSkip) this.NextTCSetting(); NextTurnCardMoveSkip = false; } BtlEnemyCellDmgFlg = false; if (TurnCard[0]._Type == EnemyTCType.PlSkill) { btlTurnCngFlame = 75; enemyTurnFlg = true; befTurnType = EnBefTurn.Skill; } else if (TurnCard[0]._Type == EnemyTCType.EmSkill) { btlTurnCngFlame = 75; enemyTurnFlg = true; befTurnType = EnBefTurn.EmSkill; } else if (TurnCard[0]._No == -1) { this.SetSprite(PN_TurnC_Back, "Black", 0, 0, 0); this.MoveSprite(PN_TurnC_Back, 0, 0, 15, 100); this.SetSprite(PN_TurnC_W, BtlPicPath + "PN_TurnC_W", 0, 283, 0); this.SetSprite(PN_TurnC, BtlPicPath + "PN_TurnC", -489, 315, 255); enemyTurnFlg = false; befTurnType = EnBefTurn.Player; this.MoveSprite(PN_TurnC_W, 0, 283, 15, 255); this.MoveSprite(PN_TurnC, 386, 315, 15, 255); } else if (TurnCard[0]._No < -1) { btlTurnCngFlame = 75; enemyTurnFlg = true; befTurnType = EnBefTurn.Mikata; } else { if (befTurnType == EnBefTurn.Enemy) { btlTurnCngFlame = 75; } else { this.SetSprite(PN_TurnC_Back, "Black", 0, 0, 0); this.MoveSprite(PN_TurnC_Back, 0, 0, 15, 100); this.SetSprite(PN_TurnC_W, BtlPicPath + "PN_TurnC_W2", 0, 283, 0); this.SetSprite(PN_TurnC, BtlPicPath + "PN_TurnC2", -489, 315, 255); this.MoveSprite(PN_TurnC_W, 0, 283, 15, 255); this.MoveSprite(PN_TurnC, 386, 315, 15, 255); } enemyTurnFlg = true; befTurnType = EnBefTurn.Enemy; } } } if (btlTurnCngFlame == 15) { this.CardSelect(-1); this.MoveSprite(PN_TurnC, 514, 315, 45, 255); } if (btlTurnCngFlame == 60) { this.MoveSprite(PN_TurnC_Back, 0, 0, 15, 0); this.MoveSprite(PN_TurnC_W, 0, 283, 15, 0); this.MoveSprite(PN_TurnC, 1543, 315, 30, 0); } if (btlTurnCngFlame == 75) { if (enemyTurnFlg) { this.ChangePhase_EnemyTurn(); } else { this.ChangePhase_PlayerTurnSetup(); } } btlTurnCngFlame++; } let StateSyoriEnd = false; let btlターン使用カード枚数 = 0; let PLSetFlame = 0; let drawCardCount = 0; Game_Interpreter.prototype.ChangePhase_PlayerTurnSetup = function () { if (DefBtnCoolTime > 0) { DefBtnCoolTime--; this.DefBtn_Draw(); } this.Cng_TurnSetup(); BtlData.Mode = EnBtlMode.PLTurnSetup; PLSetFlame = 0; notUseCardFlg = false; for (let i = 0; i <= NEnemy.length - 1; i++) { if (NEnemy[i]._hp <= 0 && !NEnemy[i].FstHidden) { $gameSwitches._data[BtlEnemy行動Check.SW_EnemyDownNextTurn + i] = (NEnemy[i]._hp <= 0); if (NEnemy[i].RebornEmFlg == undefined) NEnemy[i].RebornEmFlg = false; if (NEnemy[i].RebornEmFlg) { $gameSwitches._data[BtlEnemy行動Check._復活EnemyDownNextTn + i] = (NEnemy[i]._hp <= 0); } } } } Game_Interpreter.prototype.PlayerTurnSetup_End = function () { let mpDownCounter = 0; for (let i = 0; i <= CardData.length - 1; i++) { let reDrawMp = false; if (CardKoukaCk(CardData[i].CardData, KSkill.常時MP1減)) { mpDownCounter++; NPlayer[0]._mp--; reDrawMp = true; } if (CardKoukaCk(CardData[i].CardData, KSkill.常時MP2減)) { mpDownCounter += 2; NPlayer[0]._mp -= 2; reDrawMp = true; } if (NPlayer[0]._mp <= 0) NPlayer[0]._mp = 1; if (reDrawMp) this.MPKaihuku(0); } if (mpDownCounter > 0) this.TextPopUp_ENo(-1, SCol.Red + "MP-" + mpDownCounter, 24); } let Btl最初のドローFlg = false; let IsPlayerSelect = false; Game_Interpreter.prototype.BtlPLTurnSetup_Update = function () { if (!StateSyoriEnd) { this.StateUpdate(-1); } else { if (PLSetFlame == 0) { _手札PopReset = []; btlターン使用カード枚数 = 0; IsPlayerSelect = true; NPlayer[0]._TurnCount++; drawCardCount = GetTurnStartDrawValue(); this.MPKaihuku(GetTurnStartRecoveryMP() , false); if (NPlayer[0]._mp <= GetPlayerMaxMp()) { NPlayer[0]._mp = GetPlayerMaxMp(); } if (BtlData.Turn <= 3) { NPlayer[0]._mp += RDBtlSettingData.NextBtl_MpUp; RDBtlSettingData.NextBtl_MpUp = 0; } NPlayer[0]._mp += RDBtlSettingData.Btl_MpUp; this.TurnEndBtnDraw(); BefSelectNo = -2; this.CardSelect(-1); if (drawCardCount > 0 && CardData.length < BtlStatic._手札最大枚数 && Btl最初のドローFlg) { if ($gameSwitches.value(SW_ゴブリンパート)) { this.PVoice("romasha","h1_436_nn"); } else { this.PRandVoice("romasha",["btl_377_doro","btl_378_doros","btl_379_watas","btl_380_dekki"]); } } Btl最初のドローFlg = true; for (let i = 0; i < drawCardCount; i++) { AddCardDrawStac(); } for (let i = 0; i < RDBtlSettingData.NextBtl_DrawUp; i++) { AddCardDrawStac(); } for (let i = 0; i < RDBtlSettingData.Btl_DrawUp; i++) { AddCardDrawStac(); } if (BtlData.Turn == 1) { for (let i = 0; i < RDBtlSettingData.NextBtl_StartDrawUp; i++) { AddCardDrawStac(); } } this.SetCmnEvent(BtlStatic.CN_称号処理); } if (PLSetFlame == 10) { this.DefBtn_Draw(); this._ターン開始時レリック効果発動(); this.PlayerTurnSetup_End(); this.ChangePhase_CardSelect(); $gameTroop.increaseTurn(); } PLSetFlame++; } } let EnemyUseSkillId = null; let EnemyNomalAnimeId = -1; let SetEnemyLogText = ""; let EnemyAtkAnimeId = 1; let EnemySkillAnimeId = -1; let UseSkillIconStr = ""; let EnemyDrawSkillText = ""; let EnemyNo毎ターンコモン = -1; Game_Interpreter.prototype.ChangePhase_EnemyTurn = function () { this.Cng_TurnSetup(); BtlData.Mode = EnBtlMode.EnemyTurn; EmTurnFlame = 0; EnemyAtkAnimeId = 0; EnemySkillAnimeId = 0; CardSkills = []; memoSkillArr = []; UseCard_SkillCounter = 0; cardUseEffTimer = 0; cardUseMoveTimer = 0; _SWCngFlg = _CmnGoFlg = false; let turnENo = TurnCard[0]._No; switch (befTurnType) { case EnBefTurn.Mikata: turnENo = -turnENo - 1; EnemyAtkAnimeId = MetaChecker(NPlayer[turnENo].enemy(), "AtkAnimeNo", 1); NPlayer[turnENo]._TurnCount++; EUseSkillPtnId = NPlayer[turnENo]._UsePtnNo; //レーティングが8(一度だけの実行)なら、ワンショットフラグに入れる if (GetEnemyData_ENo(TurnCard[0]._No).actions[EUseSkillPtnId].rating == 8) { NPlayer[turnENo]._OneSkillNo.push(EUseSkillPtnId); } GetSkillMemoData(NPlayer[turnENo].enemy(), NPlayer[turnENo]._UsePtnNo); var ckCmnStr = MetaChecker(NPlayer[turnENo].enemy(), "毎ターンCmn", ""); if (ckCmnStr != "") this.Btl毎ターンCmnStart(Number(ckCmnStr)); break; case EnBefTurn.Enemy: turnENo = TurnCard[0]._No; EnemyAtkAnimeId = MetaChecker(NEnemy[turnENo].enemy(), "AtkAnimeNo", 1); if (!NEnemy[turnENo]._FstTn) NEnemy[turnENo]._TurnCount++; NEnemy[turnENo]._FstTn = false; EUseSkillPtnId = NEnemy[turnENo]._UsePtnNo; //レーティングが8(一度だけの実行)なら、ワンショットフラグに入れる if (GetEnemyData_ENo(turnENo).actions[EUseSkillPtnId].rating == 8) { NEnemy[turnENo]._OneSkillNo.push(EUseSkillPtnId); } if (TurnCard[0]._Type == EnemyTCType.EmDoSkill) { EUseSkillPtnId = -1; GetSkillMemoData(NEnemy[turnENo].enemy(), -2); } else { GetSkillMemoData(NEnemy[turnENo].enemy(), NEnemy[turnENo]._UsePtnNo); } EnemyNo毎ターンコモン = NEnemy[turnENo].enemy().id; var ckCmnStr = MetaChecker(NEnemy[turnENo].enemy(), "毎ターンCmn", ""); if (ckCmnStr != "") this.Btl毎ターンCmnStart(Number(ckCmnStr)); break; case EnBefTurn.Skill: case EnBefTurn.EmSkill: EnemyNomalAnimeId = -1; let weaponData = $dataWeapons[TurnCard[0]._No]; UseCard = new Card(weaponData); EnemyAtkAnimeId = weaponData.animationId; EnemyDrawSkillText = "\\I[" + weaponData.iconIndex + "] " + weaponData.name; for (let i = 0; i <= weaponData.traits.length - 1; i++) { if (weaponData.traits[i].code == 43) { let skillData = $dataSkills[weaponData.traits[i].dataId]; if (skillData.damage.elementId != DType.TCDelay) { CardSkills_Add(weaponData.traits[i].dataId); SetEnemyLogText = ""; try { if (skillData.message2 != "" && skillData.message2 != undefined) { SetEnemyLogText = skillData.message2.replace("%1", skillData.name); } } catch (e) { console.log("No_Btl_message"); } } } } return; } if (TurnCard[0]._Type == EnemyTCType.EmDoSkill) { EnemyUseSkillId = TurnCard[0]._SkillNo; } else { EnemyUseSkillId = GetEnemyData_ENo(TurnCard[0]._No).actions[EUseSkillPtnId].skillId; } EnemyNomalAnimeId = $dataSkills[EnemyUseSkillId].animationId; EnemySkillAnimeId = MetaChecker(GetEnemyData_ENo(TurnCard[0]._No), "SAni" + (EUseSkillPtnId + 1), -1); //EUseSkillId(使用スキルID)から、実際に処理で使う項目を抜き出し SetEnemyLogText = ""; let skillIconIndex = $dataSkills[EnemyUseSkillId].iconIndex; let sIconStr = MetaChecker(GetEnemyData_ENo(TurnCard[0]._No), "Sico" + (EUseSkillPtnId + 1), -1); if (sIconStr != -1) skillIconIndex = sIconStr; let sIconText = "\\I[" + skillIconIndex + "]"; UseSkillIconStr = sIconText; EnemyDrawSkillText = ""; if ($dataSkills[EnemyUseSkillId].name.indexOf("::") == -1) { EnemyDrawSkillText = sIconText + $dataSkills[EnemyUseSkillId].name; } else { let setEnemySkillText = _以降文字削除($dataSkills[EnemyUseSkillId].name, "::"); if (memoSkillArr.length > 0) { setEnemySkillText = memoSkillArr[0]; } if (setEnemySkillText != "") { EnemyDrawSkillText = sIconText + setEnemySkillText; } } try { let setMessage1 = $dataSkills[EnemyUseSkillId].message1.replace("%1", $dataSkills[EnemyUseSkillId].name); if (setMessage1 != "") { if (befTurnType == EnBefTurn.Mikata) { SetEnemyLogText = NPlayer[turnENo]._name + setMessage1; } else { SetEnemyLogText = NEnemy[turnENo]._name + setMessage1; } } if ($dataSkills[EnemyUseSkillId].message2 != "" && $dataSkills[EnemyUseSkillId].message2 != undefined) { SetEnemyLogText = $dataSkills[EnemyUseSkillId].message2.replace("%1", $dataSkills[EnemyUseSkillId].name); } } catch (ex) { console.log("No_Btl_message"); } CardSkills_Add(EnemyUseSkillId); } let Btl毎ターンCmnPlay中 = false; Game_Interpreter.prototype.Btl毎ターンCmnStart = function (playCmnNo) { Btl毎ターンCmnPlay中 = true; this.SetCmnEvent(playCmnNo); } Game_Interpreter.prototype.Btl毎ターンCmnEnd = function () { Btl毎ターンCmnPlay中 = false; } let _SkillOneEffectAnime = null; class SkillOneEffect { constructor() { this.AnimeId = -1; this.Ptc = ""; this.ComboFlg = false; this.SetX = 0; this.SetY = 0; } } let _Skill吸血Dmg = 0; let CardSkills_Add = function (skillId) { _Skill吸血Dmg = 0; _SkillOneEffectAnime = null; if (MetaChecker($dataSkills[skillId] , "OneEff" , true) == "") { _SkillOneEffectAnime = new SkillOneEffect(); if ($dataSkills[skillId].animationId == AN_PtcNo || $dataSkills[skillId].animationId == AN_KPtcNo) { let ptcMemoStr = ""; let memoStr = "Ptc"; if ($dataSkills[skillId].animationId == AN_KPtcNo) { memoStr = "KPtc"; _SkillOneEffectAnime.ComboFlg = true; } _SkillOneEffectAnime.Ptc = MetaChecker($dataSkills[skillId], memoStr, ""); let ckArr = ptcMemoStr.split(','); if (ckArr.length > 1) { _SkillOneEffectAnime.SetX += Number(ckArr[1]); } if (ckArr.length > 2) { _SkillOneEffectAnime.SetY += Number(ckArr[2]); } } else { _SkillOneEffectAnime.AnimeId = $dataSkills[skillId].animationId; } } let oneSkillFlg = true; for (let i = 0; i <= $dataSkills[skillId].effects.length - 1; i++) { if ($dataSkills[skillId].effects[i].code == 43) { let setId = $dataSkills[skillId].effects[i].dataId; CardSkills.push($dataSkills[setId]); oneSkillFlg = false; } } if (oneSkillFlg) CardSkills.push($dataSkills[skillId]); } let GetTurnStartRecoveryMP = function () { let ckState = NPlayer[0]._NState; let sumValue = GetStateTypeSumValue(ckState, StType.MPRecUp); let recoverMP = $gameSystem.Btl_Chara.回復MP; let rtnValue = recoverMP + sumValue; if (BtlRomashaFlg) { if ($gameActors._data[1].equips()[3] != null) { rtnValue += $gameActors._data[1].equips()[3].params[1]; } } return rtnValue; } let GetPlayerMaxMp = function () { let ckState = NPlayer[0]._NState; let cngValue = GetStateTypeSumValue(ckState, StType.MPRecUp); let baseMP = $gameSystem.Btl_Chara.ベースMP; let rtnMaxMp = baseMP + cngValue; return rtnMaxMp; } let GetTurnStartDrawValue = function () { let ckNState = NPlayer[0]._NState; let cngValue = GetStateTypeSumValue(ckNState, StType.DrawUp); let baseDraw = $gameSystem.Btl_Chara.ドロー枚数; if (BtlRomashaFlg) { baseDraw = $gameVariables.value(VN_DrowCard); if ($gameActors._data[1].equips()[3] != null) { baseDraw += $gameActors._data[1].equips()[3].params[6]; //称号(防具)の敏捷はドロー追加 } } let rtnDraw = baseDraw + cngValue; if (rtnDraw < 0) rtnDraw = 0; return rtnDraw; } Game_Interpreter.prototype.HandCard_TrashMove = function (cardPicNo) { $gameScreen.rotatePicture(cardPicNo, 40); EasingStr = "easeOutQuad"; this.MovePict(cardPicNo, 977, 759, 45, 255, 0, 0); EasingStr = ""; } Game_Interpreter.prototype.TurnCngPicDel = function () { for (let i = 0; i <= NEnemy.length - 1; i++) { if (NEnemy[i]._hp < 1) { continue; } Alpha0Sprite(PN_RockOn + i); } for (let i = PN_RockOn; i <= PN_RockOnPL + 3; i++) { Alpha0Sprite(i); } for (let i = 0; i <= 8 - 1; i++) { Alpha0Sprite(PN_T_Setu + 3 + i); } Alpha0SpriteSpan(PN_SetuC, PN_Setu_End); } let _手札AtkChange = 0; let _手札UseDamage = 0; let _手札UseSexUp = 0; let _所持3ターン敗北Flg = false; let _所持3ターン敗北Turn = 0; let _Turn常時効果ViewArr = []; Game_Interpreter.prototype._手札PopReset = function () { _Turn常時効果ViewArr = []; } Game_Interpreter.prototype.TurnEndPlayer = function () { this.AdSysCt_CountDown(1); this._手札常在効果確認(); if (_所持3ターン敗北Flg) { for (let i = 0; i <= CardData.length - 1; i++) { for (let j = 0; j <= CardData[i].CardData.traits.length - 1; j++) { if (CardData[i].CardData.traits[j].code == 43) { let _ckId = CardData[i].CardData.traits[j].dataId; switch (_ckId) { case KSkill.所持3ターン敗北: CardData[i].Cost++; break; } } } } _所持3ターン敗北Turn++; this._手札PopUp(-1, SCol.Red + "Petrification: " + (3 - _所持3ターン敗北Turn) + " turns", 24); this.AddState_ENo(-1 , STNo_石化中 , (3 - _所持3ターン敗北Turn + 1)); if (_所持3ターン敗北Turn == 3) { LoseSetFlg = true; RD_Flg = false; RD_Keep_NPlayer = null; this.DelSpriteSpan(PN_SetuC , PN_Setu_End); this.DelPictSpan(PN_SetuC , PN_Setu_End); this.PL_石化演出(); this.ChangePhase_EndBtl(); return; } } for (let i = 0; i <= CardData.length - 1; i++) { UseCard = CardData[i]; let card破棄Flg = false; let breakFlg = false; for (let j = 0; j <= CardData[i].CardData.traits.length - 1; j++) { UseCard = CardData[i]; if (UseCard.CardData.traits[j].code == 43) { let skillId = UseCard.CardData.traits[j].dataId; let setDamageType = $dataSkills[skillId].damage.elementId; if ($dataSkills[skillId].damage.type == 0) setDamageType = -1; let calcValue = GetSkillCalcValue(-1, skillId); let animeId = UseCard.CardData.animationId; switch (setDamageType) { case DType.TESknCng: if (animeId > 0) this.PlayAnimeTopBtlChara(-1, animeId); if ($gameVariables._data[VN_Seikan] == undefined) $gameVariables._data[VN_Seikan] = 0; $gameVariables._data[VN_Seikan] = $gameVariables._data[VN_Seikan] + calcValue; this.TextPopUp_ENo(-1, SCol.Red + "Sensitivity +" + calcValue, 24); if ($gameVariables._data[VN_Seikan] < 0) $gameVariables._data[VN_Seikan] = 0; if ($gameVariables._data[VN_Seikan] > 100) $gameVariables._data[VN_Seikan] = 100; break; case DType.TEDmg: if (animeId > 0) this.PlayAnimeTopBtlChara(-1, animeId); SetEnemyDmgStac(DType.Dmg, -1, 15, calcValue); break; } if (CardKoukaCk(CardData[i].CardData, KSkill.破棄TEnd) || CardKoukaCk(CardData[i].CardData, KSkill.破棄Max) || CardData[i]._一時カード) { card破棄Flg = true; } } if (breakFlg) break; } if (card破棄Flg) { for (let di = 0; di <= BtlDeck.length - 1; di++) { if (BtlDeck[di] == UseCard.CardData.id) { BtlDeck.splice(di, 1); break; } } } if (!CardKoukaCk(CardData[i].CardData, KSkill.手札に保留)) { this.HandCard_TrashMove(CardData[i].setPNo); CardData.splice(i, 1); i--; } } this.SetCmnEvent(CN_StTurnEnd); } BattleManager.isTurnEnd = function() { return BtlData.Mode == EnBtlMode.EnemyTurn; };