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

195 lines
7.4 KiB
JavaScript

let GetTargetArr_Enemy距離 = function () {
let rtnArr = [];
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp <= 0) {
continue;
}
if (rtnArr.length == 0) {
rtnArr.push(i);
continue;
}
let targetX = NEnemy[i]._screenX;
let addFlg = true;
for (let j = 0; j <= rtnArr.length - 1; j++) {
let checkX = NEnemy[rtnArr[j]]._screenX;
if (targetX >= checkX) {
rtnArr.splice(j, 0, i);
addFlg = false;
break;
}
}
if (addFlg) {
rtnArr.push(i);
}
}
return rtnArr;
}
let TargetArr = [];
Game_Interpreter.prototype.TargetSelect = function (NPlayerNo, skillId, moveTypeCng) {
moveTypeCng = typeof moveTypeCng !== 'undefined' ? moveTypeCng : -1;
TargetArr = [];
TgEffArr = [];
EmaePosX = NPlayer[NPlayerNo]._screenX;
EmaePosY = NPlayer[NPlayerNo]._screenY;
let targetScope = $dataSkills[skillId].scope;
let moveType = $dataSkills[skillId].stypeId;
let memo対象Str = $dataSkills[skillId].meta["対象"];
let _遠距離Flg = (memo対象Str == "遠距離");
let targetArr = GetTargetArr_Enemy距離();
if (moveTypeCng != -1) moveType = moveTypeCng;
if (moveTypeCng == -2) {
moveType = 0;
}
let _単対象No = targetArr[0];
if (_遠距離Flg) _単対象No = targetArr[targetArr.length - 1];
if (NEnemy[_単対象No] == undefined) return;
if (moveType == EnBtlMove.m_近接) moveType = EnBtlMove.m_少し前;
switch (moveType) {
case EnBtlMove.m_近接:
TgMoveX = NEnemy[_単対象No]._screenX + NEnemy[_単対象No]._pWidth / 2 + 103;
TgMoveY = NEnemy[_単対象No]._screenY;
break;
case EnBtlMove.m_正面:
TgMoveX = NPlayer[NPlayerNo]._screenX;
TgMoveY = NEnemy[_単対象No]._screenY;
break;
case EnBtlMove.m_中央:
TgMoveX = 309;
TgMoveY = 373;
break;
case EnBtlMove.m_少し前:
TgMoveX = NPlayer[NPlayerNo]._screenX - 64;
TgMoveY = NPlayer[NPlayerNo]._screenY;
break;
default:
TgMoveX = NPlayer[NPlayerNo]._screenX;
TgMoveY = NPlayer[NPlayerNo]._screenY;
break;
}
setMoveType = moveType;
let allAtkFlg = CheckStateInType(NPlayer[NPlayerNo]._NState, StType.AtkAll);
if (memo対象Str != undefined && memo対象Str != "") {
if (allAtkFlg) {
targetScope = EnAtkRange.敵単体;
} else {
switch (memo対象Str) {
case "前列":
if (targetArr.length == 1) {
targetScope = EnAtkRange.敵単体;
break;
}
for (let i = 0; i <= targetArr.length - 2; i++) {
let tgtENo = targetArr[i];
NEnemy[tgtENo]._TgtOpi = 225;
TargetArr.push(tgtENo);
TgEffArr.push(new Pos2D(NEnemy[tgtENo]._screenX, NEnemy[tgtENo]._screenY - 64));
}
return;
case "後列":
if (targetArr.length == 1) {
targetScope = EnAtkRange.敵単体;
break;
}
for (let i = 1; i <= targetArr.length - 1; i++) {
let tgtENo = targetArr[i];
NEnemy[tgtENo]._TgtOpi = 225;
TargetArr.push(tgtENo);
TgEffArr.push(new Pos2D(NEnemy[tgtENo]._screenX, NEnemy[tgtENo]._screenY - 64));
}
return;
}
}
}
if (allAtkFlg) {
switch (targetScope) {
case EnAtkRange.敵単体:
case EnAtkRange.敵ランダム1:
targetScope = EnAtkRange.敵全体;
break;
}
}
switch (targetScope) {
case EnAtkRange.敵単体:
TargetArr.push(_単対象No);
NEnemy[_単対象No]._TgtOpi = 225;
TgEffArr.push(new Pos2D(NEnemy[_単対象No]._screenX, NEnemy[_単対象No]._screenY - 64));
let _Turn = GetNStateTurn_ENo(_単対象No, StOneType.SyaseiYoku);
_射精欲_Check = _Turn;
break;
case EnAtkRange.敵全体:
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp < 1) {
continue;
}
NEnemy[i]._TgtOpi = 225;
TgEffArr.push(new Pos2D(NEnemy[i]._screenX, NEnemy[i]._screenY - 64));
TargetArr.push(i);
}
break;
case EnAtkRange.敵ランダム1:
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp < 1) {
continue;
}
NEnemy[i]._TgtOpi = 180;
}
let targetENo = GetENo_Ramdom();
TgEffArr.push(new Pos2D(NEnemy[targetENo]._screenX, NEnemy[targetENo]._screenY - 64));
TargetArr.push(targetENo);
break;
case EnAtkRange.使用者:
NPlayer[NPlayerNo]._TgtOpi = 255;
TgEffArr.push(new Pos2D(NPlayer[NPlayerNo]._screenX - 26, NPlayer[NPlayerNo]._screenY));
TargetArr.push(-1);
break;
default:
break;
}
for (let i = 0; i < TargetArr.length; i++) {
if (TargetArr[i] >= 0) {
let _対象男性Flg = MetaChecker(NEnemy[TargetArr[i]].enemy(), "男性", false);
if (_対象男性Flg != false) {
Tgt男性Flg = true;
}
}
}
}
let GetENo_Ramdom = function () {
let randomInt = 0;
let exitFlg = true;
for (let i = 0; i <= NEnemy.length - 1; i++) {
if (NEnemy[i]._hp > 0) {
exitFlg = false;
}
}
if (exitFlg) return randomInt;
while (true) {
randomInt = Math.floor(Math.random() * NEnemy.length);
if (NEnemy[randomInt]._hp > 0) {
break;
}
}
return randomInt;
}
let CheckDeckInWakutin = function (setstNo) {
if ($gameSystem.AntiVirusNos == undefined) $gameSystem.AntiVirusNos = [];
$gameSystem.AntiVirusNos = [286];
for (let i = 0; i < $gameSystem.AntiVirusNos.length; i++) {
var itemNo = $gameSystem.AntiVirusNos[i];
var item = $dataItems[itemNo];
if (item.effects.length == 0) return false;
if (item.effects[0].dataId == setstNo) return true;
}
return false;
// switch (setstNo) {
// if (setstNo == 17) ckWakutinDataId = KSkill.B型ワクチン;
// if (setstNo == 18) ckWakutinDataId = KSkill.H型ワクチン;
// if (setstNo == 24) ckWakutinDataId = KSkill.M型ワクチン;
// if (setstNo == 19) ckWakutinDataId = KSkill.タトゥーワクチン;
// if (setstNo == 20) ckWakutinDataId = KSkill.ピアスワクチン;
// if (battleflg) {
// if (_trData.code == 43) {
// if (_trData.dataId == ckWakutinDataId) _rtnData = true;
// });
// });
}