princess-synergy/www/js/plugins/JsScript86Set.js
2026-02-05 14:03:22 -06:00

325 lines
12 KiB
JavaScript

class TCData {
constructor(_SetType, _SetPic, _SetNo) {
this._Type = _SetType;
this._PicStr = _SetPic;
this._No = _SetNo;
this._PicNo = -1;
this._SkillNo = -1;
this._ViewFlg = false;
}
}
let _TCMaxPic = 14;
const _TCPosX_M = 895;
const _TCPosY_M = 58;
const _TCPosY_T = 58 - 5;
const _TCX_Sa = 71;
let EnemyTCType = {
Chara: 1,
PlSkill: 2,
EmSkill: 3,
EmDoSkill: 4
};
let TCPicNoSetting = function () {
let usePicNoArr = [];
for (let i = 0; i <= TurnCard.length - 1; i++) {
if (TurnCard[i]._PicNo != -1 && i <= 10) {
usePicNoArr.push(TurnCard[i]._PicNo);
} else {
TurnCard[i]._PicNo = -1;
}
if (i >= _TCMaxPic) TurnCard[i]._PicNo = -1;
}
for (let i = 0; i <= TurnCard.length - 1; i++) {
if (TurnCard[i]._PicNo == -1) {
for (let tj = 0; tj <= _TCMaxPic - 1; tj++) {
if (usePicNoArr.indexOf(tj) == -1) {
TurnCard[i]._PicNo = tj;
usePicNoArr.push(TurnCard[i]._PicNo);
break;
}
}
}
if (i >= _TCMaxPic) break;
}
}
let TCDataReset_EnemyChange = function (ENo, enemyId) {
let enemyData = $dataEnemies[enemyId];
for (let i = 0; i < TurnCard.length; i++) {
if(TurnCard[i]._No == ENo) {
TurnCard[i]._PicStr = enemyData.battlerName;
}
}
}
Game_Interpreter.prototype.TCPicReDraw = function () {
N_Sprite_DLayer = 1;
for (let i = 11; i < TurnCard.length; i++) {
TurnCard[i]._ViewFlg = false
}
for (let i = 0; i < TurnCard.length; i++) {
if (TurnCard[i]._PicNo >= 0 && TurnCard[i]._ViewFlg) {
let setSpriteFileName = GetTCPicName_TCNo(i);
this.CngSprite(PN_RTCard + TurnCard[i]._PicNo , setSpriteFileName);
}
}
let drawPicArr = [];
for (let i = 0; i < 9; i++) {
let picDrawFlg = false;
if (!TurnCard[i]._ViewFlg) {
picDrawFlg = true;
}
switch (TurnCard[i]._Type) {
case EnemyTCType.Chara:
case EnemyTCType.EmDoSkill:
if (TurnCard[i]._No >= 0) {
let ckEnemyData = $dataEnemies[NEnemy[TurnCard[i]._No]._enemyId];
let _ckPicName = MetaChecker(ckEnemyData, "TCPic" , ckEnemyData.battlerName);
if (_ckPicName != TurnCard[i]._PicStr) {
TurnCard[i]._PicStr = _ckPicName;
picDrawFlg = true;
}
}
break;
case EnemyTCType.PlSkill:
break;
case EnemyTCType.EmSkill:
break;
}
if (picDrawFlg) {
TurnCard[i]._ViewFlg = true;
var setSpriteFile = GetTCPicName_TCNo(i);
this.SetSpriteC(PN_RTCard + TurnCard[i]._PicNo, setSpriteFile, _TCPosX_M + (_TCX_Sa * i), _TCPosY_M, 0);
}
if (i == 0) {
this.MoveSprite(PN_RTCard + TurnCard[i]._PicNo, _TCPosX_M + (_TCX_Sa * i), _TCPosY_T, 10 , 255);
} else {
this.MoveSprite(PN_RTCard + TurnCard[i]._PicNo, _TCPosX_M + (_TCX_Sa * i), _TCPosY_M, 10 , 255);
}
drawPicArr.push(TurnCard[i]._PicNo);
}
for (let i = 0; i < 11; i++) {
if (drawPicArr.indexOf(i) == -1) {
this.DelSprite(PN_RTCard + i);
}
}
N_Sprite_DLayer = 0;
}
let GetTCPicName_TCNo = function (TCNo) {
switch (TurnCard[TCNo]._Type) {
case EnemyTCType.Chara:
return "enemies/TC/" + TurnCard[TCNo]._PicStr;
case EnemyTCType.PlSkill:
if (TurnCard[TCNo]._PicStr == "") return "enemies/TC/" + TurnCard[TCNo]._No;
return "enemies/TC/" + TurnCard[TCNo]._PicStr;
case EnemyTCType.EmSkill:
return "enemies/TC/" + TurnCard[TCNo]._No;
case EnemyTCType.EmDoSkill:
return "enemies/TC/" + TurnCard[TCNo]._PicStr;
}
}
Game_Interpreter.prototype.RemoveTCData_ENo = function (ENo) {
N_Sprite_DLayer = 1;
for (let i = 0; i <= TurnCard.length - 1; i++) {
if (TurnCard[i]._Type == EnemyTCType.Chara && TurnCard[i]._No == ENo) {
this.DelSprite(PN_RTCard + TurnCard[i]._PicNo);
TurnCard.splice(i, 1);
i--;
}
}
TCDataSetting();
this.TCPicReDraw();
N_Sprite_DLayer = 0;
}
let TCDataSetting = function () {
if (TurnCard.length == 0) {
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hidden) continue;
let enemyData = $dataEnemies[NEnemy[i]._enemyId];
for (let j = 0; j <= enemyData.traits.length - 1; j++) {
if (enemyData.traits[j].code == 43) {
let TcPicName = MetaChecker(GetEnemyData_ENo(i), "TCPic" , GetEnemyData_ENo(i).battlerName);
let setTC = new TCData(EnemyTCType.EmDoSkill, TcPicName, i);
setTC._SkillNo = enemyData.traits[j].dataId;
TurnCard.push(setTC);
}
}
}
if ($gameActors._data[1].equips()[3] != null) {
if ($gameActors._data[1].equips()[3].params[7] != 0) {
let setTC = new TCData(EnemyTCType.PlSkill, "", $gameActors._data[1].equips()[3].params[7]);
TurnCard.push(setTC);
}
}
}
while (TurnCard.length < 100) {
for (let i = 0; i <= NPlayer.length - 1; i++) {
if (NPlayer[i]._hp <= 0) continue;
NPlayer[i]._TurnGage -= NPlayer[i].agi;
if (NPlayer[i]._TurnGage <= 0) {
let turnCardStr = "";
if (i == 0) {
turnCardStr = BtlData.PlTurnCardPic;
} else {
turnCardStr = MetaChecker(GetEnemyData_ENo(-i - 1), "TCPic" , GetEnemyData_ENo(-i - 1).battlerName);
}
let setTC = new TCData(EnemyTCType.Chara, turnCardStr, (-i - 1));
TurnCard.push(setTC);
NPlayer[i]._TurnGage += 100;
}
}
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp <= 0) continue;
NEnemy[i]._TurnGage -= NEnemy[i].agi;
if (NEnemy[i]._TurnGage <= 0) {
let _tcStr = MetaChecker(GetEnemyData_ENo(i), "TCPic" , GetEnemyData_ENo(i).battlerName);
let setTC = new TCData(EnemyTCType.Chara, _tcStr, i)
TurnCard.push(setTC);
NEnemy[i]._TurnGage += 100;
}
}
}
TCPicNoSetting();
}
Game_Interpreter.prototype.NextTCSetting = function (firstFlg) {
firstFlg = typeof firstFlg !== 'undefined' ? firstFlg : false;
if (!firstFlg) {
this.NextTCPicMove();
TurnCard.shift();
}
TCDataSetting();
this.SetSprite(PN_RTHikari, BtlPicPath + "PN_RTHikari", 856, 4);
if (firstFlg) {
this.TCPicReDraw();
}
}
Game_Interpreter.prototype.NextTCPicMove = function () {
N_Sprite_DLayer = 1;
this.MoveSprite(PN_RTCard + TurnCard[0]._PicNo, _TCPosX_M - _TCX_Sa, _TCPosY_T, 10, 0);
for (let i = 0; i <= 10 - 1; i++) {
let ckSpriteData = GetSpriteData(PN_RTCard + TurnCard[i]._PicNo);
let picDrawFlg = false;
if (!TurnCard[i]._ViewFlg) {
picDrawFlg = true;
}
if (ckSpriteData == null) {
picDrawFlg = true;
} else {
if (ckSpriteData._name != TurnCard[i]._PicStr) {
picDrawFlg = true;
}
}
if (picDrawFlg) {
TurnCard[i]._ViewFlg = true;
this.SetSpriteC(PN_RTCard + TurnCard[i]._PicNo, GetTCPicName_TCNo(i), _TCPosX_M + (_TCX_Sa * i), _TCPosY_M, 0);
}
if (i == 0) {
this.MoveSprite(PN_RTCard + TurnCard[i + 1]._PicNo, _TCPosX_M + (_TCX_Sa * i), _TCPosY_T, 10);
} else {
this.MoveSprite(PN_RTCard + TurnCard[i + 1]._PicNo, _TCPosX_M + (_TCX_Sa * i), _TCPosY_M, 10);
}
}
N_Sprite_DLayer = 0;
}
Game_Interpreter.prototype.TCPicOverUpdate = function () {
N_Sprite_DLayer = 1;
let ckPicArr = [];
for (let i = 0; i <= 8 - 1; i++) {
if (TurnCard[i]._Type == EnemyTCType.Chara) {
ckPicArr.push(PN_RTCard + TurnCard[i]._PicNo);
}
}
let overNo = overPointerSpCkArr(ckPicArr);
if (overNo != -1) {
for (let i = 0; i <= TurnCard.length - 1; i++) {
if ((overNo - PN_RTCard) == TurnCard[i]._PicNo) {
if (i <= 0) {
this.SetSpriteC(PN_SelTurnC, BtlPicPath + "PN_SelTurnC", _TCPosX_M + (_TCX_Sa * i) - 3, _TCPosY_T);
} else {
this.SetSpriteC(PN_SelTurnC, BtlPicPath + "PN_SelTurnC", _TCPosX_M + (_TCX_Sa * i), _TCPosY_M);
}
for (let j = 0; j <= NPlayer.length - 1; j++) {
NPlayer[j]._TgtOpi = 0;
}
for (let j = 0; j <= NEnemy.length - 1; j++) { //ターゲット判定処理(エネミー)
NEnemy[j]._TgtOpi = 0;
}
if (TurnCard[i]._No <= -1) {
NPlayer[(-TurnCard[i]._No - 1)]._TgtOpi = 255;
} else {
NEnemy[TurnCard[i]._No]._TgtOpi = 255;
}
N_Sprite_DLayer = 0;
return TurnCard[i]._No;
}
}
} else {
N_Sprite_DLayer = 0;
return null;
}
}
//_ENo:キャラNo _Move:移動数値 _Cnt:移動させる枚数(-1の場合全て)
Game_Interpreter.prototype.TCShift_ENo = function (ENo, moveValue, TCMaisu) {
moveValue = typeof moveValue !== 'undefined' ? moveValue : 1;
TCMaisu = typeof TCMaisu !== 'undefined' ? TCMaisu : -1;
if (TCMaisu == -1) TCMaisu = 999;
let TCCopyArr = TurnCard.slice();
let rtnArr = [];
if (moveValue > 0) {
let _CkCnt = 0;
for (let i = 0; i <= TCCopyArr.length - 1; i++) {
if (TCCopyArr[i]._No == ENo && i != 0) _CkCnt++;
}
for (let i = TCCopyArr.length - 1; i >= 0; i--) {
if (TCCopyArr[i]._No == ENo && i != 0 && TCMaisu >= _CkCnt) {
if (rtnArr.length < moveValue) {
rtnArr.splice(rtnArr.length, 0, TCCopyArr[i]);
} else {
rtnArr.splice(moveValue, 0, TCCopyArr[i]);
}
} else {
rtnArr.unshift(TCCopyArr[i]);
}
if (TCCopyArr[i]._No == ENo) _CkCnt--;
}
TurnCard = [];
TurnCard = rtnArr;
}
if (moveValue < 0) {
let ckCount = 0;
for (let i = 0; i <= TCCopyArr.length - 1; i++) {
if (TCCopyArr[i]._No == ENo && i != 0 && TCMaisu >= ckCount) {
if (rtnArr.length + moveValue <= 0) {
rtnArr.splice(1, 0, TCCopyArr[i]);
} else {
rtnArr.splice(rtnArr.length + moveValue, 0, TCCopyArr[i]);
}
} else {
rtnArr.push(TCCopyArr[i]);
}
if (TCCopyArr[i]._No == ENo) ckCount++;
}
TurnCard = [];
TurnCard = rtnArr;
}
TCPicNoSetting();
this.TCPicReDraw();
}
Game_Interpreter.prototype.SetTCPlayerSkill = function (cardId, setTurn) {
let setTCData = new TCData(EnemyTCType.PlSkill, "", cardId);
setTCData._PicNo = TurnCard[11]._PicNo;
setTCData._PicStr = cardId;
TurnCard[11]._ViewFlg = false;
TurnCard[11]._PicNo = -1;
TurnCard.splice(setTurn, 0, setTCData);
TCPicNoSetting();
this.TCPicReDraw();
}
Game_Interpreter.prototype.SetTCEnemySkill = function (cardId, setTurn) {
let setTCData = new TCData(EnemyTCType.EmSkill, "", cardId);
setTCData._PicNo = TurnCard[11]._PicNo;
setTCData._PicStr = cardId;
TurnCard[11]._ViewFlg = false;
TurnCard[11]._PicNo = -1;
TurnCard.splice(setTurn, 0, setTCData);
TCPicNoSetting();
this.TCPicReDraw();
}