/*: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; };