princess-synergy/www/js/plugins/JsScript69Set.js
2026-02-21 12:50:14 -06:00

363 lines
13 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let befSelectCardPicNo = -1;
let btlTargetSelectFlame = 0;
let btlWaitFlame = 0;
let btl操作不能Flame = 0;
let btlStopFlg = false;
let btlDeckViewFlg = false;
let spainWaitAnimeFlame = 0;
let btlLive2DMtnStopFlame = 0;
let btlSpineFstLoadFlg = false;
let BtlBef羞恥SwValue = false;
const CardNo_羞恥 = 174;
const SW羞恥 = 1380;
Game_Interpreter.prototype.Btl羞恥CardAddUpdate = function () {
// if ($gameSwitches.value(SW羞恥) && !BtlBef羞恥SwValue) {
// this.DeckHandAdd(CardNo_羞恥, 1, true); //手札に羞恥カードを追加
// BtlBef羞恥SwValue = $gameSwitches.value(SW羞恥);
}
Game_Interpreter.prototype.Btl羞恥AddHand = function () {
if (!BtlBef羞恥SwValue) {
BtlBef羞恥SwValue = true;
this.DeckHandAdd(CardNo_羞恥, 1, true);
}
}
Game_Interpreter.prototype.BtlDeckErrorCheck = function () {
}
let autoCoolFrame = 0;
Game_Interpreter.prototype.BtlUpdate = function () {
this.BtlDeckErrorCheck();
if (btlLive2DMtnStopFlame > 0) {
btlLive2DMtnStopFlame--;
return;
}
if (this.IsBtlSetupLoading()) return;
this.DmgEffectUpdate();
if (this.CardDrawUpdate()) return;
this.BtlEnemy行動SW_Update();
this.Btlエロ行動制御SW_Update();
if (IsSpineLoading()) return;
if (NPlayer.length == 0) return;
this.CheckWinOrLose();
this.BtlTCSetting();
this.BtlUiDraw();
this.CardEffectUpdate();
this.SkillLogUpdate();
this.BtlLive2DUpdate();
this.BtlSpineUpdate();
this.SeikanUpdate();
this.BtlEnemyActionUpdate();
this.BtlBitUpdate();
this.BtlEnemyStateCheck_Update();
this.Btl羞恥CardAddUpdate();
this.BtlAutoBtnTouch();
if (btlWaitFlame >= 0) {
btlWaitFlame--;
if (waitCmnStartNo != -1) {
this.SetCmnEventSc(waitCmnStartNo);
waitCmnStartNo = -1;
}
return;
}
if (this.BtlTalkDialogUpdate()) return;
if (this.BtlCardSelectionUpdate()) return;
if (CardEffectStac.length > 0 || CardEffectViewStac.length > 0) return;
if (EnemyDmgStac.length > 0) return;
if (BtlData.Mode != EnBtlMode.TurnCheck) {
if (this.BtlEventUpdate()) return;
}
if (this.BtlItemUseUpdate()) return;
if (this.BtlOtherUpdate()) return;
if (btlStopFlg) return;
if (btlUiOffFlg) return;
if (Btl毎ターンCmnPlay中) return;
if (_射精欲EvStopFlg) return;
switch (BtlData.Mode) {
case EnBtlMode.PLTurnSetup:
this.BtlPLTurnSetup_Update();
break;
case EnBtlMode.CardSelect:
this.ActiveTouchUIUpdate();
if (btlDeckViewFlg) {
if (this.Deck一覧Update()) btlDeckViewFlg = false;
} else {
this.SetTarget();
if (btl操作不能Flame <= 0) {
this.UISelectUpdate();
this.BtlCardSelect_Update();
this.TurnEndBtnUIUpdate();
this.BtlItemBtnUpdate();
}
}
break;
case EnBtlMode.CardUse:
this.BtlCardUse_Update();
break;
case EnBtlMode.TurnCheck:
this.BtlTurnCheck_Update();
break;
case EnBtlMode.EnemyTurn:
this.BtlEnemyTurn_Update();
break;
case EnBtlMode.Event:
break;
case EnBtlMode.End:
this.BtlEnd_Update();
break;
}
if (btl操作不能Flame > 0) btl操作不能Flame--;
}
class BtlCardDraw_Class {
constructor() {
this.CardSetting_Stac = 0;
this.CardDrawWait = 0;
}
}
let BtlCardDraw = new BtlCardDraw_Class();
let AddCardDrawStac = function () {
BtlCardDraw.CardSetting_Stac++;
}
Game_Interpreter.prototype.CardDrawUpdate = function () {
if (BtlCardDraw.CardSetting_Stac > 0 && BtlCardDraw.CardDrawWait == 0) {
BtlCardDraw.CardDrawWait = 5;
if (CardData.length < BtlStatic._手札最大枚数) {
this.CardDrawSetting();
this.CardDrawMove();
BtlCardDraw.CardSetting_Stac--;
} else {
this.CardDrawSetting();
BtlCardDraw.CardSetting_Stac = 0;
}
}
if (BtlCardDraw.CardDrawWait > 0) {
BtlCardDraw.CardDrawWait--;
return true;
}
return false;
}
let B戦闘復活Flg = false;
let B戦闘復活Count = 0;
Game_Interpreter.prototype.CheckWinOrLose = function () {
if (BtlData.Mode != EnBtlMode.End) {
WinSetFlg = true;
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp > 0) {
WinSetFlg = false;
}
}
if (!WinSetFlg) {
if (NPlayer[0]._hp <= 0) {
NPlayer[0]._hp = 0;
if (!$gameSwitches.value(SW_戦闘HP0復活)) {
LoseSetFlg = true;
} else {
if (!B戦闘復活Flg) {
B戦闘復活Count++;
this.SetSpineAnime(PN_CharacterPL, "Down", false);
this.SetCmnEvent(CN_戦闘時HP0復活演出);
B戦闘復活Flg = true;
}
}
}
}
if (WinSetFlg) {
this.ChangePhase_EndBtl();
return;
}
if (LoseSetFlg) {
if (!this.IsPlayerメタル化()) this.SetSpineAnime(PN_CharacterPL, "Down", false);
this.ChangePhase_EndBtl();
}
}
}
Game_Interpreter.prototype.B戦闘復活_処理停止 = function () {
btlWaitFlame = 999999;
}
Game_Interpreter.prototype.B戦闘復活_全回復 = function () {
NPlayer[0]._hp = NPlayer[0].mhp;
this.SetSpineAnime(PN_CharacterPL, "Idl", true);
}
Game_Interpreter.prototype.B戦闘復活_処理再開 = function () {
btlWaitFlame = 0;
B戦闘復活Flg = false;
}
Game_Interpreter.prototype.BtlTCSetting = function () {
if (TurnCard.length == 0) TCDataSetting();
if (TurnCard[0]._No >= 0) {
if (TurnCard[0]._No < NEnemy.length) {
TurnEnemyId = GetEnemyData_ENo(TurnCard[0]._No).id;
}
} else {
TurnEnemyId = -1;
}
}
let CheckDeckInアクセス = function () {
for (let i = 0; i < DeckCard.length; i++) {
if (MetaChecker($dataWeapons[DeckCard[i]] , "アクセス" , false) != false) return true;
}
return false;
}
let GetCardNo_DeckInアクセス = function () {
for (let i = 0; i < DeckCard.length; i++) {
if (MetaChecker($dataWeapons[DeckCard[i]] , "アクセス" , false) != false) return DeckCard[i];
}
return -1;
}
Game_Interpreter.prototype.BtlAutoBtnTouch = function () {
if ($gameTroop._interpreter.isRunning()) return;
if (BtlActiveTouchUIUpdateOff) return;
this.SpriteCngColor(PN_AutoBtn);
if (overPointerSpCkTm(PN_AutoBtn)) {
this.SpriteCngColor(PN_AutoBtn, [80, 80, 80, 0], 0);
if (TouchInput.isTriggered() && !LastEffectUISelectUpdate) {
this.BtlAutoChange(!$gameSystem.BtlAutoFlg);
this.MoveSprite(PN_AutoBtn, true, true, 10, 255, 100, 100);
}
}
}
Game_Interpreter.prototype.BtlAutoChange = function (value) {
$gameSystem.BtlAutoFlg = value;
let setPicPath = BtlPicPath + "AutoBtn";
if ($gameSystem.BtlAutoFlg) setPicPath = BtlPicPath + "Auto_StopBtn";
this.CngSprite(PN_AutoBtn , setPicPath);
}
let SetuNoDelFlg = false;
const CNo_DeffCmd = 499;
let BtlActiveTouchUIUpdateOff = false;
Game_Interpreter.prototype.ActiveTouchUIUpdate = function () {
if (btlUiOffFlg) return;
if (BtlActiveTouchUIUpdateOff) return;
let _CkArr = [PN_EdBtn];
if (CheckDeckInアクセス()) {
_CkArr.push(PN_ACard);
this.SpriteCngColor(PN_ACard);
AlphaCngSprite(PN_ACard, 255);
AlphaCngSprite(PN_AWBack, 255);
} else {
AlphaCngSprite(PN_ACard, 100);
AlphaCngSprite(PN_AWBack, 100);
}
Alpha0Sprite(PN_SetuWin);
if (overPointerSpCkTm(PN_AutoBtn)) {
this.SetSprite(PN_SetuWin, BtlPicPath + "Setu_AutoBtn", 20, 74);
}
let cardSelectedFlg = false;
for (let i = 0; i <= CardData.length - 1; i++) {
if (overPointerCkTm(CardData[i].setPNo)) {
cardSelectedFlg = true;
}
}
SetuNoDelFlg = false;
_CkArr.push(PN_BCard);
let _OverId = overPointerSpCkArrTm(_CkArr);
if (cardSelectedFlg) _OverId = -1;
switch (_OverId) {
case PN_EdBtn:
if (BtlData.Mode != EnBtlMode.CardSelect) break;
this.SetSprite(PN_SetuWin, BtlPicPath + "Setu_EndBtn", 786, 602);
break;
case PN_BCard:
SetuNoDelFlg = true;
if (DefBtnCoolTime <= 0 && !_PLステート確認(StNo_防御禁止)) {
this.BCardSetumei_Draw(CNo_DeffCmd , 14 , 500);
if (TouchInput.isTriggered() && !LastEffectUISelectUpdate) {
if (Is防御コマンド使用可能()) {
this.PlayBtlDefCommand();
} else {
this.SetPicStrPopC(PN_ExText, SCol.Red + "Not enough cost", 20, 146, 650);
}
}
}
break;
}
if (!SetuNoDelFlg) {
this.DelPictSpan(PN_SetuWaku , PN_Setu_End);
}
}
Game_Interpreter.prototype.PlayBtlDefCommand = function () {
autoCoolFrame = 5;
DefBtnCoolTime = 2;
EnforceCardUseNo = CNo_DeffCmd;
this.DefBtn_Draw();
}
let skPos = new Pos2D(1337, 180);
Game_Interpreter.prototype.SeikanUpdate = function () {
if (LastEffectUISelectUpdate) return;
if (FinalFormFlg) {
$gameVariables._data[VN_Seikan] = 0;
}
if ($gameVariables._data[VN_Seikan] > 100) {
$gameVariables._data[VN_Seikan] = 100;
}
this.SetSprite(PN_SGWaku, BtlPicPath + "PN_SGWaku", skPos._x, skPos._y);
this.SetSprite(PN_SGbase, BtlPicPath + "PN_SGbase", skPos._x + 18, skPos._y + 13);
let seikanValue = $gameVariables._data[VN_Seikan];
if (battleflg) NPlayer[0]._Seikan = seikanValue;
this.SetSprite(PN_SGgage, BtlPicPath + "PN_SGgage", skPos._x + 18, skPos._y + 493, 255, 100, -seikanValue);
this.SetSprite(PN_SGHart, BtlPicPath + "PN_SGHart", skPos._x - 10, skPos._y - 60);
}
Game_Interpreter.prototype.Btl_RericUpdate = function () {
this.DelPictSpan(PN_BRSetuWaku, PN_BRSetuWaku + 3);
let _CNo = overPointerSpCkArr(BtlPLTurn.PicArr);
if (_CNo != -1) {
_CNo -= PN_BReric;
let _ItmNo = $gameSystem.Btl_Chara.RericArr[_CNo];
this.Btl_レリック_説明描画(_ItmNo, BReric.Pos._x - 487, RericPs._y - 82 - (RericY差 * _CNo));
}
}
Game_Interpreter.prototype.Btl_レリック_説明描画 = function (_RericId, _PosX, _PosY) {
_STY_SetuPicNo = PN_BRSetuWaku;
this.SetPict(_STY_SetuPicNo, BtlPicPath + "PN_RericSetuWin", _PosX, _PosY);
let _CkArr = $dataItems[_RericId].description.split("\n");
let _icoNo = $dataItems[_RericId].iconIndex;
let _NameStr = " " + "\\I[" + _icoNo + "] " + $dataItems[_RericId].name;
this.SetPicStr(_STY_SetuPicNo + 1, _NameStr, 25, _PosX + 13, _PosY + 15);
for (let j = 0; j <= _CkArr.length - 1; j++) {
this.SetPicStr(_STY_SetuPicNo + 2 + j, _CkArr[j], 18, _PosX + 25, _PosY + 26 + (27 * (j + 1)));
}
_STY_SetuPicNo = PN_BCSetuWaku;
}
let BtlEventUpdateFrame = 0;
Game_Interpreter.prototype.BtlEventUpdate = function () {
$gameTroop.setupBattleEvent();
if ($gameTroop._interpreter.isRunning()) {
$gameTroop.updateInterpreter();
if ($gameTroop._interpreter.isRunning()) {
//this.BtlAutoChange(false); //オートモードをOFFにする
}
}
return $gameTroop._interpreter.isRunning();
}
let Nupu_Game_Troop_setupBattleEvent = Game_Troop.prototype.setupBattleEvent;
Game_Troop.prototype.setupBattleEvent = function () {
if ($gameSwitches.value(SW_BtlLastBoss)) {
if (BtlData.Mode != EnBtlMode.CardSelect) return;
}
Nupu_Game_Troop_setupBattleEvent.call(this);
}
let OtherStopFlg = false;
Game_Interpreter.prototype.BtlOtherUpdate = function () {
return OtherStopFlg;
}
let _射精欲EvStopFlg = false;
let _射精欲_MaxEmNo = -1;
const I射精撃破Cnt = 10;
Game_Interpreter.prototype.BtlEnemyStateCheck_Update = function () {
if (_射精欲EvStopFlg) return;
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp > 0) {
for (let j = 0; j <= NEnemy[i]._NState.length - 1; j++) {
switch (NEnemy[i]._NState[j]._No) {
case StOneType.SyaseiYoku:
if (NEnemy[i]._NState[j]._Turn >= I射精撃破Cnt) {
_射精欲EvStopFlg = true;
_射精欲_MaxEmNo = i;
Syasei撃破Flg = true;
this.SetCmnEventSc(CN_射精欲コモン);
return;
}
break;
}
}
}
}
}