693 lines
26 KiB
JavaScript
693 lines
26 KiB
JavaScript
/*:ja
|
|
* @plugindesc
|
|
*/
|
|
DataManager._databaseFiles.push({
|
|
name:'$Nupu_Ptc',
|
|
src:'Ptc_Collection.json'
|
|
});
|
|
DataManager._databaseFiles.push({
|
|
name:'$Nupu_Ptc_Combo',
|
|
src:'Ptc_Combo.json'
|
|
});
|
|
let PtcCounter = 0;
|
|
let _TopFlg = false;
|
|
let _BtmFlg = false;
|
|
class PtcOpt_Class {
|
|
constructor() {
|
|
this.timeRate = 1;
|
|
this.timeLapse = 1;
|
|
this.attach = false;
|
|
this._ZureX = 0;
|
|
this._ZureY = -24;
|
|
}
|
|
}
|
|
let PtcOpt = new PtcOpt_Class();
|
|
class PtcPos {
|
|
constructor(_id, _PtcName, _X, _Y, _CkNo) {
|
|
this._id = _id;
|
|
this._PtcName = _PtcName;
|
|
this._X = _X;
|
|
this._Y = _Y;
|
|
this._CkNo = _CkNo;
|
|
}
|
|
}
|
|
class _NPtcSe {
|
|
constructor(_flame , _SeStr){
|
|
this.flame = _flame;
|
|
this.SeStr = _SeStr;
|
|
}
|
|
}
|
|
class _NPtcCombo {
|
|
constructor(_flame , _PtcName , _PlayType , _DataArr , _ZureX , _ZureY){
|
|
_ZureX = typeof _ZureX !== 'undefined' ? _ZureX : 0;
|
|
_ZureY = typeof _ZureY !== 'undefined' ? _ZureY : 0;
|
|
this.flame = _flame;
|
|
this.PtcName = _PtcName;
|
|
this.PlayType = _PlayType;
|
|
this.DataArr = _DataArr;
|
|
this.ZureX = _ZureX;
|
|
this.ZureY = _ZureY;
|
|
}
|
|
}
|
|
let Ptc_CType = {
|
|
Ev:1,
|
|
Sc:2,
|
|
Sc2:3,
|
|
Pic:4
|
|
};
|
|
let NPtcSeArr = [];
|
|
let NPtcComboArr = [];
|
|
let NPtcSeUpdate = Game_Interpreter.prototype.NUpdateSc;
|
|
Game_Interpreter.prototype.NUpdateSc = function () {
|
|
NPtcSeUpdate.call(this);
|
|
for (let i = 0; i <= NPtcSeArr.length - 1; i++) {
|
|
NPtcSeArr[i].flame--;
|
|
if(NPtcSeArr[i].flame <= 0) {
|
|
this.PlaySe(NPtcSeArr[i].SeStr);
|
|
NPtcSeArr.splice(i , 1);
|
|
i--;
|
|
}
|
|
}
|
|
for (let i = 0; i <= NPtcComboArr.length - 1; i++) {
|
|
NPtcComboArr[i].flame--;
|
|
if(NPtcComboArr[i].flame <= 0) {
|
|
switch (NPtcComboArr[i].PlayType) {
|
|
case Ptc_CType.Ev:
|
|
this.PlayPtcEv(NPtcComboArr[i].PtcName , NPtcComboArr[i].DataArr[0] ,
|
|
NPtcComboArr[i].ZureX , NPtcComboArr[i].ZureY);
|
|
break;
|
|
// this.PlayPtcSc(NPtcSeArr[i].PtcName , NPtcSeArr[i].DataArr[0] , NPtcSeArr[i].DataArr[1]);
|
|
// this.PlayPtcSc2(NPtcSeArr[i].PtcName , NPtcSeArr[i].DataArr[0] , NPtcSeArr[i].DataArr[1]);
|
|
case Ptc_CType.Pic:
|
|
this.PlayPtcPic(NPtcComboArr[i].PtcName , NPtcComboArr[i].DataArr[0] + NPtcComboArr[i].ZureX , NPtcComboArr[i].DataArr[1] + NPtcComboArr[i].ZureY);
|
|
break;
|
|
}
|
|
NPtcComboArr.splice(i , 1);
|
|
i--;
|
|
}
|
|
}
|
|
}
|
|
Game_Interpreter.prototype.NPtcSeSet = function (_PtcName) {
|
|
$Nupu_Ptc.ptc_Syuruis.forEach( ptc_Syurui => {
|
|
ptc_Syurui.ptc_Datas.forEach( ptc_Data => {
|
|
if(ptc_Data.Name == _PtcName) {
|
|
ptc_Data.ptc_Ses.forEach( ptc_Se => {
|
|
NPtcSeArr.push(new _NPtcSe(ptc_Se.DoFlame , ptc_Se.SeName));
|
|
});
|
|
}
|
|
});
|
|
});
|
|
}
|
|
Game_Interpreter.prototype.NPtcComboSet = function (_ComboName , _PlayType , _DataArr) {
|
|
$Nupu_Ptc_Combo.Combo_Base.forEach(comboBase => {
|
|
if(comboBase.Name == _ComboName) {
|
|
comboBase.ComboList.forEach( _combo => {
|
|
_combo.Ptc_List.forEach( ptc_data => {
|
|
let _SetCombo = new _NPtcCombo(_combo.Do_Flame , ptc_data.Name ,
|
|
_PlayType , _DataArr , ptc_data.ZureX , ptc_data.ZureY);
|
|
NPtcComboArr.push(_SetCombo);
|
|
});
|
|
});
|
|
}
|
|
});
|
|
}
|
|
let _NP_GCB_IM = Game_CharacterBase.prototype.initMembers;
|
|
Game_CharacterBase.prototype.initMembers = function () {
|
|
_NP_GCB_IM.call(this);
|
|
this._SetPtc = [];
|
|
};
|
|
let clear_Ptc = [];
|
|
let _MpPtcCk = true;
|
|
let NP_NUp = Game_Interpreter.prototype.NUpdate;
|
|
Game_Interpreter.prototype.NUpdate = function () {
|
|
NP_NUp.call(this)
|
|
for (let i = 0; i <= clear_Ptc.length - 1; i++) {
|
|
let args = new Array("clear", clear_Ptc[i]);
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
if (_MpPtcCk) {
|
|
for (let i = 1; i <= $gameMap._events.length - 1; i++) {
|
|
try {
|
|
let _ckEv = $gameMap._events[i].event();
|
|
let _NPtcStr = MetaChecker(_ckEv, "NPtc");
|
|
if (_NPtcStr != "") {
|
|
this.SetPtcEv(_NPtcStr, i);
|
|
}
|
|
}catch(ex){ }
|
|
}
|
|
_MpPtcCk = false;
|
|
}
|
|
};
|
|
let NP_GP_RT = Game_Player.prototype.reserveTransfer;
|
|
Game_Player.prototype.reserveTransfer = function (mapId, x, y, d, fadeType) {
|
|
NP_GP_RT.call(this, mapId, x, y, d, fadeType);
|
|
SC_SetPtc = [];
|
|
Rg_SetPtc = [];
|
|
_MpPtcCk = true;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcOpt = function (_id) {
|
|
this.N_Plgin("particle", ["update", _id, "timeRate", PtcOpt.timeRate]);
|
|
this.N_Plgin("particle", ["update", _id, "timeLapse", PtcOpt.timeLapse]);
|
|
this.N_Plgin("particle", ["update", _id, "pos", PtcOpt._ZureX, PtcOpt._ZureY]);
|
|
PtcOpt = new PtcOpt_Class();
|
|
}
|
|
let Ptc_ZureArr = [];
|
|
class Ptc_Zure {
|
|
constructor(_ID , _ZureX , _ZureY) {
|
|
this.ID = _ID;
|
|
this.ZureX = _ZureX;
|
|
this.ZureY = _ZureY;
|
|
}
|
|
}
|
|
Game_Interpreter.prototype.PlayPtcEv = function (_PtcName, _EvNo , _ZureX , _ZureY) {
|
|
_EvNo = typeof _EvNo !== 'undefined' ? _EvNo : 0;
|
|
_ZureX = typeof _ZureX !== 'undefined' ? _ZureX : 0;
|
|
_ZureY = typeof _ZureY !== 'undefined' ? _ZureY : 0;
|
|
let _SetNo = GetPtcTargetEv(_EvNo);
|
|
if (PtcOpt.attach) _SetNo = "attach:" + _SetNo;
|
|
let _id = _PtcName + "NP_" + PtcCounter;
|
|
let args = ["play", _id, _SetNo, _PtcName];
|
|
if (_BtmFlg) args = ["play", _id, _SetNo, _PtcName , 1];
|
|
this.NPtcSeSet(_PtcName);
|
|
this.N_Plgin("particle", args);
|
|
if (_ZureX != 0 || _ZureY != 0) {
|
|
let _setPtcZure = new Ptc_Zure(_id , _ZureX , _ZureY);
|
|
Ptc_ZureArr.push(_setPtcZure);
|
|
}
|
|
PtcCounter += 1;
|
|
this.SetPtcOpt(_id);
|
|
};
|
|
Game_Interpreter.prototype.SetPtcEv = function (_PtcName, _EvNo, _ckNo) {
|
|
_EvNo = typeof _EvNo !== 'undefined' ? _EvNo : 0;
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
let _SetNo = GetPtcTargetEv(_EvNo);
|
|
if (PtcOpt.attach) _SetNo = "attach:" + _SetNo;
|
|
let _id = _PtcName + "NP_" + PtcCounter;
|
|
let args = ["set", _id, _SetNo, _PtcName];
|
|
if (_BtmFlg) args = ["set", _id, _SetNo, _PtcName, 1];
|
|
this.NPtcSeSet(_PtcName);
|
|
this.N_Plgin("particle", args);
|
|
if (this.character(_EvNo) != undefined){
|
|
this.character(_EvNo)._SetPtc.push(new PtcPos(_id, _PtcName, 0, 0, _ckNo));
|
|
}
|
|
this.SetPtcOpt(_id);
|
|
PtcCounter += 1;
|
|
};
|
|
Game_Interpreter.prototype.PlayPtcEvBtm = function (_PtcName, _EvNo) {
|
|
_BtmFlg = true;
|
|
this.PlayPtcEv(_PtcName, _EvNo);
|
|
_BtmFlg = false;
|
|
}
|
|
Game_Interpreter.prototype.SetPtcEvBtm = function (_PtcName, _EvNo, _ckNo) {
|
|
_BtmFlg = true;
|
|
this.SetPtcEv(_PtcName, _EvNo, _ckNo);
|
|
_BtmFlg = false;
|
|
}
|
|
let _EvNoArr = [];
|
|
let Get_EvNoArr = function (_EvName) {
|
|
_EvNoArr = [];
|
|
for (let i = 1; i <= $gameMap._events.length - 1; i++) {
|
|
if ($gameMap._events[i].event().name == _EvName) {
|
|
_EvArr.push($gameMap._events[i]._eventId);
|
|
}
|
|
}
|
|
};
|
|
Game_Interpreter.prototype.PlayPtcEvN = function (_PtcName, _EvName) {
|
|
for (let i = 0; i <= _EvArr.length - 1; i++) {
|
|
this.PlayPtcEv(_PtcName, _EvNoArr[i]);
|
|
}
|
|
};
|
|
Game_Interpreter.prototype.SetPtcEvN = function (_PtcName, _EvName,_ckNo) {
|
|
for (let i = 0; i <= _EvArr.length - 1; i++) {
|
|
this.SetPtcEv(_PtcName, _EvNoArr[i], _ckNo);
|
|
}
|
|
};
|
|
Game_Interpreter.prototype.StopPtcEv = function (_EvNo, _ckNo) {
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
if (this.character(_EvNo) != undefined) {
|
|
for (let i = 0; i <= this.character(_EvNo)._SetPtc.length - 1; i++) {
|
|
if (_ckNo != 0) {
|
|
if (_ckNo != SC_SetPtc[i]._CkNo) continue;
|
|
}
|
|
let _id = this.character(_EvNo)._SetPtc[i]._id;
|
|
let _SetNo = GetPtcTargetEv(_EvNo);
|
|
let args = new Array("off", _id, _SetNo);
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
}
|
|
};
|
|
Game_Interpreter.prototype.StartPtcEv = function (_EvNo, _ckNo) {
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
if (this.character(_EvNo) != undefined) {
|
|
for (let i = 0; i <= this.character(_EvNo)._SetPtc.length - 1; i++) {
|
|
if (_ckNo != 0) {
|
|
if (_ckNo != SC_SetPtc[i]._CkNo) continue;
|
|
}
|
|
let _id = this.character(_EvNo)._SetPtc[i]._id;
|
|
let _SetNo = GetPtcTargetEv(_EvNo);
|
|
let args = new Array("on", _id, _SetNo);
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
}
|
|
};
|
|
let NP_GM_EE = Game_Map.prototype.eraseEvent;
|
|
Game_Map.prototype.eraseEvent = function (eventId) {
|
|
if (this._events[eventId] != undefined) {
|
|
NP_GM_EE.apply(this, arguments);
|
|
if (this._events[eventId] != undefined) {
|
|
for (let i = 0; i <= this._events[eventId]._SetPtc.length - 1; i++) {
|
|
clear_Ptc.push(this._events[eventId]._SetPtc[i]._id);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let Rg_SetPtc = [];
|
|
Game_Interpreter.prototype.PlayPtcRg = function (_PtcName, _RgNo) {
|
|
let _SetNo = "region:" + _RgNo;
|
|
if (PtcOpt.attach) _SetNo = "attach:" + _SetNo;
|
|
let _id = _PtcName + "NP_" + PtcCounter;
|
|
let args = ["play", _id, _SetNo, _PtcName];
|
|
if (_BtmFlg) args = ["play", _id, _SetNo, _PtcName, 1];
|
|
this.NPtcSeSet(_PtcName);
|
|
this.N_Plgin("particle", args);
|
|
PtcCounter += 1;
|
|
this.SetPtcOpt(_id);
|
|
}
|
|
let PtcPosArr = [];
|
|
let SC_SetPtc = [];
|
|
let _PtcPicFlg = false;
|
|
Game_Interpreter.prototype.PlayPtcSc = function (_PtcName, _X, _Y) {
|
|
if (_X == true) _X = Graphics.width / 2;
|
|
if (_Y == true) _Y = Graphics.height / 2;
|
|
let _SetNo = "screen";
|
|
if (_WeatherFlg) _SetNo = "weather";
|
|
if (_PtcPicFlg) _SetNo = "picture:" + _SetPtcPicNo;
|
|
let _id = _PtcName + "NP_" + PtcCounter;
|
|
let args = new Array("play", _id, _SetNo, _PtcName);
|
|
if (_TopFlg) args = new Array("play", _id, _SetNo, _PtcName, "screen");
|
|
this.NPtcSeSet(_PtcName);
|
|
this.pluginCommand("particle", args);
|
|
PtcPosArr.push(new PtcPos(_id, _PtcName, _X, _Y, 0));
|
|
PtcCounter += 1;
|
|
};
|
|
let _WeatherFlg = false;
|
|
Game_Interpreter.prototype.SetPtcSc = function (_PtcName, _X, _Y, _ckNo) {
|
|
if (_X == true) _X = Graphics.width / 2;
|
|
if (_Y == true) _Y = Graphics.height / 2;
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
let _SetNo = "screen";
|
|
if (_WeatherFlg) _SetNo = "weather";
|
|
if (_PtcPicFlg) _SetNo = "picture:" + _SetPtcPicNo;
|
|
let _id = _PtcName + "NP_" + PtcCounter;
|
|
let args = new Array("set", _id, _SetNo, _PtcName);
|
|
if (_TopFlg) args = new Array("set", _id, _SetNo, _PtcName, "screen");
|
|
if (_BtmFlg) args = new Array("set", _id, _SetNo, _PtcName, "above");
|
|
this.NPtcSeSet(_PtcName);
|
|
this.pluginCommand("particle", args);
|
|
SC_SetPtc.push(new PtcPos(_id, _PtcName, _X, _Y, _ckNo));
|
|
PtcPosArr.push(new PtcPos(_id, _PtcName, _X, _Y, 0));
|
|
PtcCounter += 1;
|
|
};
|
|
Game_Interpreter.prototype.PlayPtcSc2 = function (_PtcName, _X, _Y, _ckNo) {
|
|
_WeatherFlg = true;
|
|
this.PlayPtcSc(_PtcName, _X, _Y);
|
|
_WeatherFlg = false;
|
|
};
|
|
let _PtcPictCnt = 0;
|
|
let _SetPtcPicNo = 0;
|
|
const _Picture表示Ptc限界数 = 15;
|
|
Game_Interpreter.prototype.PlayPtcPic = function (_PtcName, _X, _Y) {
|
|
if (_X == true) _X = Graphics.width / 2;
|
|
if (_Y == true) _Y = Graphics.height / 2;
|
|
_PtcPictCnt++;
|
|
if(_PtcPictCnt == _Picture表示Ptc限界数) _PtcPictCnt = 0;
|
|
_SetPtcPicNo = PVS_MaxPicNo - _PtcPictCnt - 15;
|
|
this.SetPict(_SetPtcPicNo , "PtcPoint" , _X , _Y);
|
|
_PtcPicFlg = true;
|
|
this.PlayPtcSc(_PtcName, _X, _Y);
|
|
_PtcPicFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcPic = function (_PtcName, _X, _Y, _ckNo) {
|
|
if (_X == true) _X = Graphics.width / 2;
|
|
if (_Y == true) _Y = Graphics.height / 2;
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
this.SetPict(_SetPtcPicNo , "PtcPoint" , _X , _Y);
|
|
_PtcPicFlg = true;
|
|
this.SetPtcSc(_PtcName, _X, _Y , _ckNo);
|
|
_PtcPicFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.PlayPtcSc2Top = function (_PtcName, _X, _Y) {
|
|
_TopFlg = true;
|
|
this.PlayPtcSc2(_PtcName, _X, _Y);
|
|
_TopFlg = false;
|
|
}
|
|
Game_Interpreter.prototype.PlayPtcScTop = function (_PtcName, _X, _Y) {
|
|
_TopFlg = true;
|
|
this.PlayPtcSc(_PtcName, _X, _Y);
|
|
_TopFlg = false;
|
|
}
|
|
Game_Interpreter.prototype.SetPtcSc2 = function (_PtcName, _X, _Y, _ckNo) {
|
|
_WeatherFlg = true;
|
|
this.SetPtcSc(_PtcName, _X, _Y, _ckNo);
|
|
_WeatherFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcScTop = function (_PtcName, _X, _Y, _ckNo) {
|
|
_TopFlg = true;
|
|
this.SetPtcSc(_PtcName, _X, _Y, _ckNo);
|
|
_TopFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcSc2Top = function (_PtcName, _X, _Y, _ckNo) {
|
|
_TopFlg = true;
|
|
this.SetPtcSc2(_PtcName, _X, _Y, _ckNo);
|
|
_TopFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcScBtm = function (_PtcName, _X, _Y, _ckNo) {
|
|
_BtmFlg = true;
|
|
this.SetPtcSc(_PtcName, _X, _Y, _ckNo);
|
|
_BtmFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.SetPtcSc2Btm = function (_PtcName, _X, _Y, _ckNo) {
|
|
_BtmFlg = true;
|
|
this.SetPtcSc2(_PtcName, _X, _Y, _ckNo);
|
|
_BtmFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.ClearPtcAll = function(){
|
|
let args = new Array("clear", "all","true");
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
let _stpPtcDelFlg = false;
|
|
Game_Interpreter.prototype.StopPtcSc = function (_ckNo , _SokuDelFlg) {
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
_SokuDelFlg = typeof _SokuDelFlg !== 'undefined' ? _SokuDelFlg : false;
|
|
for (let i = 0; i <= SC_SetPtc.length - 1; i++) {
|
|
if (_ckNo != 0){
|
|
if (_ckNo != SC_SetPtc[i]._CkNo) continue;
|
|
}
|
|
let _id = SC_SetPtc[i]._id;
|
|
let _FlgStr = "false";
|
|
if (_SokuDelFlg) _FlgStr = "true";
|
|
let _SetNo = "screen";
|
|
if (_WeatherFlg) _SetNo = "weather";
|
|
let args = new Array("off", _id, _SetNo , _FlgStr);
|
|
if (_stpPtcDelFlg) args = new Array("clear", _id, _SetNo , _FlgStr);
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
_stpPtcDelFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.StopPtcSc2 = function (_ckNo , _SokuDelFlg) {
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
_SokuDelFlg = typeof _SokuDelFlg !== 'undefined' ? _SokuDelFlg : false;
|
|
_WeatherFlg = true;
|
|
this.StopPtcSc(_ckNo , _SokuDelFlg);
|
|
_WeatherFlg = false;
|
|
};
|
|
Game_Interpreter.prototype.StartPtcSc = function (_ckNo) {
|
|
_ckNo = typeof _ckNo !== 'undefined' ? _ckNo : 0;
|
|
for (let i = 0; i <= SC_SetPtc.length - 1; i++) {
|
|
if (_ckNo != 0) {
|
|
if (_ckNo != SC_SetPtc[i]._CkNo) continue;
|
|
}
|
|
let _id = SC_SetPtc[i]._id;
|
|
let _SetNo = "screen";
|
|
if (_WeatherFlg) _SetNo = "weather";
|
|
let args = new Array("on", _id, _SetNo);
|
|
this.pluginCommand("particle", args);
|
|
}
|
|
};
|
|
Game_Interpreter.prototype.StartPtcSc2 = function (_ckNo) {
|
|
_WeatherFlg = true;
|
|
this.StartPtcSc(_ckNo);
|
|
_WeatherFlg = false;
|
|
};
|
|
let _NP_PE_ST = ParticleEmitter.prototype.setupTarget;
|
|
ParticleEmitter.prototype.setupTarget = function (data) {
|
|
_NP_PE_ST.call(this,data);
|
|
for (let i = 0; i <= PtcPosArr.length - 1; i++) {
|
|
if (this._id == PtcPosArr[i]._id) {
|
|
this._target.x = PtcPosArr[i]._X;
|
|
this._target.y = PtcPosArr[i]._Y;
|
|
PtcPosArr.splice(i, 1);
|
|
i--;
|
|
}
|
|
}
|
|
};
|
|
let GetPtcTargetEv = function (_EvNo) {
|
|
switch (_EvNo) {
|
|
case -1: return "player";
|
|
case 0: return "this";
|
|
default: return String("event:" + _EvNo);
|
|
}
|
|
};
|
|
let Ptc_SyuruiArr = ["全て表示", "character", "weather", "screen", "region"];
|
|
const _ptc_PNo_ck = 49;
|
|
const _ptc_PNo = 50;
|
|
let _ckPicOver = [];
|
|
let _ptc_EMLayer = 0;
|
|
let _PtnArr = [];
|
|
let _PlayPtc_id = "";
|
|
let _ptcBlkFlg = true;
|
|
Game_Interpreter.prototype.PtcEditorUpdate = function () {
|
|
if (_PlayPtc_id != "") {
|
|
console.log("PtcOff");
|
|
this.N_Plgin("particle", ["off", _PlayPtc_id]);
|
|
_PlayPtc_id = "";
|
|
}
|
|
Ptc_SyuruiArr = ["全て表示", "character", "weather", "screen", "region"];
|
|
for (let i = 0; i <= $Nupu_Ptc.ptc_Syuruis.length - 1; i++) {
|
|
if(Ptc_SyuruiArr.indexOf($Nupu_Ptc.ptc_Syuruis[i].Name) == -1) {
|
|
Ptc_SyuruiArr.push($Nupu_Ptc.ptc_Syuruis[i].Name);
|
|
}
|
|
}
|
|
Ptc_SyuruiArr.push("◆組合せTest");
|
|
switch (_ptc_EMLayer){
|
|
case 0:
|
|
this.PtcEdit_L1_Update();
|
|
break;
|
|
case 1:
|
|
this.PtcEdit_L2_Update();
|
|
break;
|
|
}
|
|
if (_ptcBlkFlg) {
|
|
this.SetPicStr(_ptc_PNo_ck, "■黒側表示", 20, 100, 0, 255);
|
|
} else {
|
|
this.SetPicStr(_ptc_PNo_ck, "□白側表示", 20, 100, 0, 255);
|
|
}
|
|
if (overPointerCk(_ptc_PNo_ck)) {
|
|
if (TouchInput.isTriggered()) {
|
|
$gameTemp.clearDestination();
|
|
_ptcBlkFlg = !_ptcBlkFlg;
|
|
}
|
|
}
|
|
}
|
|
let _Syurui_SelNo = -1; let _Bef_Syurui_SelNo = -2;
|
|
Game_Interpreter.prototype.Syurui_TxtDraw = function () {
|
|
let _ckPArr = [];
|
|
this.DelPictSpan(_ptc_PNo , _ptc_PNo + Ptc_SyuruiArr.length - 1);
|
|
for (let i = 0; i <= Ptc_SyuruiArr.length - 1; i++) {
|
|
let _SetStr = " " + Ptc_SyuruiArr[i];
|
|
for (let j = _SetStr.length; j <= 15; j++) {
|
|
_SetStr += " ";
|
|
}
|
|
if (_Syurui_SelNo == _ptc_PNo + i) {
|
|
this.SetPicStrBG("#336699");
|
|
}
|
|
this.SetPicStr(_ptc_PNo + i, _SetStr, 20, 300, 0 + (i * 28), 255);
|
|
_ckPArr.push(_ptc_PNo + i);
|
|
_Bef_Syurui_SelNo = _Syurui_SelNo;
|
|
}
|
|
return _ckPArr;
|
|
}
|
|
let _Ptc_Combo_DrawFlg = false;
|
|
Game_Interpreter.prototype.PtcEdit_L1_Update = function () {
|
|
$gameTemp.clearDestination();
|
|
if (_Syurui_SelNo != _Bef_Syurui_SelNo) {
|
|
_ckPicOver = this.Syurui_TxtDraw();
|
|
}
|
|
_Syurui_SelNo = overPointerCkArr(_ckPicOver);
|
|
if (_Syurui_SelNo != -1) {
|
|
if (TouchInput.isTriggered() || TouchInput.isRepeated()) {
|
|
_Ptc_Combo_DrawFlg = false;
|
|
$gameTemp.clearDestination();
|
|
_PtnArr = [];
|
|
let _SyuNo = _Syurui_SelNo - _ptc_PNo;
|
|
if (_SyuNo == 0) {
|
|
$Nupu_Ptc.ptc_Syuruis.forEach( ptc_Syurui => {
|
|
ptc_Syurui.ptc_Datas.forEach( ptc_Data => {
|
|
_PtnArr.push(ptc_Data);
|
|
});
|
|
});
|
|
} else if (_SyuNo == Ptc_SyuruiArr.length - 1) {
|
|
_Ptc_Combo_DrawFlg = true;
|
|
$Nupu_Ptc_Combo.Combo_Base.forEach( _comboBase => {
|
|
_PtnArr.push(_comboBase);
|
|
});
|
|
} else {
|
|
$Nupu_Ptc.ptc_Syuruis.forEach( ptc_Syurui => {
|
|
if(ptc_Syurui.Name == Ptc_SyuruiArr[_SyuNo]) {
|
|
ptc_Syurui.ptc_Datas.forEach( ptc_Data => {
|
|
_PtnArr.push(ptc_Data);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
_ptc_EMLayer = 1;
|
|
_Ptn_SelNo = -1; _Bef_Ptn_SelNo = -2;
|
|
this.Syurui_TxtDraw();
|
|
}
|
|
}
|
|
}
|
|
let _Ptn_SelNo = -1; let _Bef_Ptn_SelNo = -2;
|
|
Game_Interpreter.prototype.PtcEdit_L2_Update = function () {
|
|
$gameTemp.clearDestination();
|
|
let _ptc_l1_pNo = _ptc_PNo + Ptc_SyuruiArr.length;
|
|
if (_Ptn_SelNo != _Bef_Ptn_SelNo) {
|
|
this.DelPictSpan(_ptc_l1_pNo , _ptc_l1_pNo + _PtnArr.length - 1);
|
|
_ckPicOver = [];
|
|
for (let i = 0; i <= _PtnArr.length - 1; i++) {
|
|
let _XCnt = Math.floor(i / 29);
|
|
let _stX = 500 + _XCnt * 200;
|
|
let _stY = 0 + ((i - 29 * _XCnt) * 28);
|
|
_ckPicOver.push(_ptc_l1_pNo + i);
|
|
if (_Ptn_SelNo == _ptc_l1_pNo + i) {
|
|
this.DelPict(_ptc_l1_pNo + i);
|
|
this.SetPicStrBG("#336699");
|
|
}
|
|
this.SetPicStr(_ptc_l1_pNo + i, _PtnArr[i].Name + " ", 20, _stX, _stY , 255);
|
|
}
|
|
_Bef_Ptn_SelNo = _Ptn_SelNo;
|
|
}
|
|
_Ptn_SelNo = overPointerCkArr(_ckPicOver);
|
|
if (_Ptn_SelNo != -1) {
|
|
if (TouchInput.isTriggered()) {
|
|
if(_Ptc_Combo_DrawFlg) {
|
|
let _SelNo = _Ptn_SelNo - _ptc_l1_pNo;
|
|
if (_ptcBlkFlg) {
|
|
this.NPtcComboSet(_PtnArr[_SelNo].Name , Ptc_CType.Ev , [3]);
|
|
} else {
|
|
this.NPtcComboSet(_PtnArr[_SelNo].Name , Ptc_CType.Ev , [1]);
|
|
}
|
|
} else {
|
|
let _SelNo = _Ptn_SelNo - _ptc_l1_pNo;
|
|
let _SyuruiStr = "";
|
|
let _Name = _PtnArr[_SelNo].Name;
|
|
$Nupu_Ptc.ptc_Syuruis.forEach( ptc_Syurui => {
|
|
ptc_Syurui.ptc_Datas.forEach( ptc_Data => {
|
|
if(ptc_Data.Name == _Name) {
|
|
_SyuruiStr = ptc_Syurui.Name;
|
|
}
|
|
});
|
|
});
|
|
switch (_SyuruiStr) {
|
|
default:
|
|
if (_ptcBlkFlg) {
|
|
this.N_Plgin("particle" , ["edit", _PtnArr[_SelNo].Name, "event:3"]
|
|
);
|
|
} else {
|
|
this.N_Plgin("particle" , ["edit", _PtnArr[_SelNo].Name, "event:1"]
|
|
);
|
|
}
|
|
break;
|
|
case "screen":
|
|
this.N_Plgin("particle" , ["edit", _PtnArr[_SelNo].Name, "screen"]
|
|
);
|
|
break;
|
|
case "weather":
|
|
this.N_Plgin("particle" , ["edit", _PtnArr[_SelNo].Name, "weather"]
|
|
);
|
|
break;
|
|
}
|
|
_PlayPtc_id = _PtnArr[_SelNo].Name;
|
|
this.N_Plgin("particle", ["on", _PlayPtc_id]);
|
|
}
|
|
}
|
|
}
|
|
if (TouchInput.isCancelled()) {
|
|
this.DelPictArr(_ckPicOver);
|
|
_Syurui_SelNo = -1; _Bef_Syurui_SelNo = -2;
|
|
_ptc_EMLayer = 0;
|
|
}
|
|
}
|
|
class PtcCombo {
|
|
constructor(_Name , _ComboArr){
|
|
this._Name = _Name;
|
|
this._ComboArr = _ComboArr;
|
|
}
|
|
}
|
|
let N_ParticleEmitter_Start = ParticleEmitter.prototype.start;
|
|
ParticleEmitter.prototype.start = function(bitmaps){
|
|
N_ParticleEmitter_Start.apply(this, arguments);
|
|
for (let i = 0; i <= Ptc_ZureArr.length - 1; i++) {
|
|
if(Ptc_ZureArr[i].ID == this._id) {
|
|
switch (this._emitter.spawnType) {
|
|
case "rect":
|
|
this._emitter.spawnRect.x += Ptc_ZureArr[i].ZureX;
|
|
this._emitter.spawnRect.y += Ptc_ZureArr[i].ZureY;
|
|
break;
|
|
case "circle":
|
|
case "ring":
|
|
this._emitter.spawnCircle.x += Ptc_ZureArr[i].ZureX;
|
|
this._emitter.spawnCircle.y += Ptc_ZureArr[i].ZureY;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//■時間操作パッチ(TRP_Particle.jsより下に配置)■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
|
|
/*:
|
|
* 時間操作パッチ(TRP_Particle.jsより下に配置)
|
|
*
|
|
* 本パッチを導入するとupdate/animateコマンドで
|
|
* パーティクルの再生速度などを操作できるようになります。
|
|
*
|
|
* ◆timeRate:再生速度(0以上の値。1で等速、0で停止)
|
|
* パーティクルの速度のみでなく、発生間隔などにも影響します。
|
|
*
|
|
* 例) particle update 管理ID timeRate 0.5
|
|
* → 管理IDで指定したパーティクルを半分の速度に変更
|
|
* 例) particle animate 管理ID 60 timeRate 0
|
|
* → 管理IDで指定したパーティクルを60フレームかけて停止
|
|
*
|
|
* ◆timeLapse:タイムラプス間隔(1以上の値。1で通常)
|
|
* 指定した間隔フレームに1度のみ更新し、パラパラアニメのように
|
|
* コマ送りに見えます。(再生速度自体は変化なし)
|
|
* 例) particle udpate 管理ID timeLapse 2
|
|
* → 管理IDで指定したパーティクルを2フレームに1度の
|
|
* アニメーション更新頻度に変更
|
|
* 例) particle animate 管理ID 60 timeLapse 6
|
|
* → 管理IDで指定したパーティクルを60フレームかけて
|
|
* 6フレームに一度のアニメーション更新頻度に変更
|
|
*
|
|
*/
|
|
let _ParticleEmitter_initMembers = ParticleEmitter.prototype.initMembers;
|
|
ParticleEmitter.prototype.initMembers = function () {
|
|
_ParticleEmitter_initMembers.call(this);
|
|
this._timeRate = 1;
|
|
this._timeLapse = 1;
|
|
this._timeLapseCount = 0;
|
|
};
|
|
let _ParticleEmitter_updateParam = ParticleEmitter.prototype._updateParam;
|
|
ParticleEmitter.prototype._updateParam = function (key, args, rate) {
|
|
rate = rate || 1;
|
|
switch (key.toLowerCase()) {
|
|
case 'timerate':
|
|
this._timeRate = this.paramWithRate(Number(args[0]) || 0, this._timeRate, rate);
|
|
break;
|
|
case 'timelapse':
|
|
this._timeLapse = Math.max(1, Math.round(this.paramWithRate(Number(args[0]) || 0, this._timeLapse, rate)));
|
|
break;
|
|
default:
|
|
_ParticleEmitter_updateParam.call(this, key, args, rate);
|
|
}
|
|
};
|
|
let _ParticleEmitter_updateEmitter = ParticleEmitter.prototype.updateEmitter;
|
|
ParticleEmitter.prototype.updateEmitter = function () {
|
|
if (this._timeLapse !== 1) {
|
|
this._timeLapseCount += 1;
|
|
if (this._timeLapseCount < this._timeLapse) return;
|
|
this._timeLapseCount = 0;
|
|
}
|
|
_ParticleEmitter_updateEmitter.call(this);
|
|
};
|
|
ParticleEmitter.prototype.updateDeltaTime = function () {
|
|
return ParticleEmitter.DELTA_TIME * this._timeRate * this._timeLapse;
|
|
};
|