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

111 lines
4.4 KiB
JavaScript

const FTraPicPath = "pictures/UI_FastTra/";
const VN_FTra結果 = 144;
let _FTra初期選択No = 0;
let _転送Save = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_転送Save.call(this);
this._FTraArr = [];
};
let _ファストトラベル追加 = function (_TrNo) {
if ($gameSystem._FTraArr.indexOf(_TrNo) == -1) {
$gameSystem._FTraArr.push(_TrNo);
}
}
let _FTra_SelNo_1 = -1;
let _FTra_SelNo_2 = -1;
let _FTra_Btn = [];
let FTraPos = new Pos2D(115, 205);
let FTraSelPos = new Pos2D(106, 195);
let _FTraPicArr = [];
Game_Interpreter.prototype.FTraView = function () {
_FTra_Btn = [];
_FTra_SelNo_1 = _FTra_SelNo_2 = -1;
this.SetPictFIn(PN_FBase, FTraPicPath + "PN_FBase", 0, 0, 0, 0, 15);
for (let i = 0; i <= $gameSystem._FTraArr.length - 1; i++) {
let _SetNo = $gameSystem._FTraArr[i];
if (_FTra_Btn.length == 0) {
_FTra_Btn.push([_SetNo]);
} else {
let _ckNo = Math.floor(_SetNo / 10);
let _AddFlg = true;
for (let j = 0; j <= _FTra_Btn.length - 1; j++) {
if (Math.floor(_FTra_Btn[j][0] / 10) == _ckNo) {
_FTra_Btn[j].push(_SetNo);
_AddFlg = false;
}
}
if (_AddFlg) _FTra_Btn.push([_SetNo]);
}
}
_FTraPicArr = [];
let _Cnt = 0;
for (let i = 0; i <= _FTra_Btn.length - 1; i++) {
let _ckNo = Math.floor(_FTra_Btn[i][0] / 10);
let _PosX = FTraPos._x;
let _PosY = FTraPos._y + _Cnt * 77;
let _opi = 170;
if (_Cnt == _FTra_SelNo_1) _opi = 255;
this.SetPictFIn(PN_FBtn + i, FTraPicPath + "PN_FBtn" + _ckNo, _PosX, _PosY, 0, 0, 15, _opi);
_FTraPicArr.push(PN_FBtn + i);
_Cnt++;
}
if (_FTra_Btn.length >= _FTra初期選択No) _FTra初期選択No = _FTra_Btn.length - 1;
this.SetPictFIn(PN_FBtn + 5, FTraPicPath + "PN_FBtn0", FTraPos._x, FTraPos._y + 5 * 77, 0, 0, 15);
this.SetPictFIn(PN_FSelH, FTraPicPath + "PN_FSelH", FTraSelPos._x, FTraSelPos._y + _FTra初期選択No * 77, 0, 0, 15);
this.FTraMoveBtnDraw(_FTra初期選択No);
_FTra初期選択No = 0;
};
let _FTraPicArr_2 = [];
Game_Interpreter.prototype.FTraMoveBtnDraw = function (_CngNo) {
if (_CngNo == _FTra_SelNo_1) return;
_FTraPicArr_2 = [];
this.DelPictSpan(PN_FBtn_2, PN_FBtn_2 + 5);
for (let i = 0; i <= _FTra_Btn[_CngNo].length - 1; i++) {
let _NoArr = String(_FTra_Btn[_CngNo][i]).split('');
let _SetStr = "PN_FBtn" + _NoArr[0] + "_" + _NoArr[1];
this.SetPictFIn(PN_FBtn_2 + i, FTraPicPath + _SetStr, FTraPos._x + 427, FTraPos._y + i * 77, 0, 0, 15);
_FTraPicArr_2.push(PN_FBtn_2 + i);
}
_FTra_SelNo_1 = _CngNo;
}
Game_Interpreter.prototype.FTraUpdate = function () {
let _CNo = overPointerCkArr(_FTraPicArr);
if (_CNo != -1) {
let _SetNo = _CNo - PN_FBtn;
this.SetPict(PN_FSelH, FTraPicPath + "PN_FSelH", FTraSelPos._x, FTraSelPos._y + _SetNo * 77);
for (let i = 0; i <= _FTra_Btn.length - 1; i++) {
let _opi = 170;
if (i == _SetNo) _opi = 255;
this.MovePict(PN_FBtn + i, true, true, 5, _opi);
}
this.FTraMoveBtnDraw(_SetNo);
}
_CNo = overPointerCkArr(_FTraPicArr_2);
if (_CNo != -1) {
let _SetNo = _CNo - PN_FBtn_2;
this.SetPict(PN_FSelH, FTraPicPath + "PN_FSelH2", FTraSelPos._x + 427, FTraSelPos._y + _SetNo * 77);
if (TouchInput.isTriggered()) {
let _RtnNo = _FTra_Btn[_FTra_SelNo_1][_SetNo];
$gameVariables.setValue(VN_FTra結果, _RtnNo)
return false;
}
}
if (overPointerCk(PN_FBtn + 5)) {
this.SetPict(PN_FSelH, FTraPicPath + "PN_FSelH", FTraSelPos._x, FTraSelPos._y + 5 * 77);
if (TouchInput.isTriggered()) {
$gameVariables.setValue(VN_FTra結果, 0)
return false;
}
}
if (Input.isTriggered('menu') || TouchInput.isCancelled()) {
$gameVariables.setValue(VN_FTra結果, 0)
return false;
}
return true;
};
Game_Interpreter.prototype._ファストトラベル終了 = function () {
this.DelPict(PN_FBase);
this.DelPictSpan(PN_FBtn, PN_FBtn + 5);
this.DelPictSpan(PN_FBtn_2, PN_FBtn_2 + 5);
this.DelPict(PN_FSelH);
}