325 lines
12 KiB
JavaScript
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();
|
|
}
|