97 lines
3.5 KiB
JavaScript
97 lines
3.5 KiB
JavaScript
class RomashaTopEffectData {
|
||
constructor(xPos , yPos) {
|
||
this.xPos = xPos;
|
||
this.yPos = yPos;
|
||
this.stopFlg = false;
|
||
this.endFlg = false;
|
||
this.nullFlg = false;
|
||
/** @type {Game_Interpreter} */
|
||
this.gi = null;
|
||
}
|
||
/** @param {Game_Interpreter} gi */
|
||
Start(gi, nullFlg) {
|
||
nullFlg = typeof nullFlg !== 'undefined' ? nullFlg : false;
|
||
this.gi = gi;
|
||
let animeImg = "PN_RomaTopHart";
|
||
if (nullFlg) animeImg = "PN_RomaTopNull";
|
||
gi.PlaySpriteAnimeC(PN_RomaTopHart , PlayEffectPicPath + animeImg ,
|
||
15 , 4, this.xPos , this.yPos , 2545);
|
||
}
|
||
/** @param {Game_Interpreter} gi */
|
||
Update(gi) {
|
||
if (MenuFlgSwich || MenuModeStr == _MMode.TalkMode || battleflg || $gameMessage.isBusy() || $gameMap.isEventRunning()) {
|
||
this.Stop(gi);
|
||
return;
|
||
}
|
||
this.ReStart(gi);
|
||
if (overPointerSpCk(PN_RomaTopHart) && TouchInput.isTriggered()) {
|
||
gi.SetCmnEventSc(CN_RomaTopHartClick);
|
||
gi.RomaTopHeartEff_End();
|
||
}
|
||
}
|
||
/** @param {Game_Interpreter} gi */
|
||
End(gi) {
|
||
gi.DelSprite(PN_RomaTopHart);
|
||
this.endFlg = true;
|
||
}
|
||
/** @param {Game_Interpreter} gi */
|
||
Stop() {
|
||
if (!this.stopFlg) {
|
||
this.stopFlg = true;
|
||
this.gi.DelSprite(PN_RomaTopHart);
|
||
}
|
||
}
|
||
/** @param {Game_Interpreter} gi */
|
||
ReStart() {
|
||
if (this.stopFlg) {
|
||
this.stopFlg = false;
|
||
this.Start(this.gi , this.nullFlg);
|
||
}
|
||
}
|
||
}
|
||
Game_Interpreter.prototype.RomaTopHeartEffTouchEff = function () {
|
||
this.PlayPtcPic("RomaTopTouch",PL_MouseX,PL_MouseY);
|
||
}
|
||
/** @type {RomashaTopEffectData} */
|
||
let romashaTopEffectData = null;
|
||
Game_Interpreter.prototype.RomaTopHeartEff_Start = function (xPos , yPos) {
|
||
romashaTopEffectData = new RomashaTopEffectData(xPos , yPos);
|
||
romashaTopEffectData.nullFlg = false;
|
||
romashaTopEffectData.Start(this);
|
||
}
|
||
Game_Interpreter.prototype.RomaTopHeartEff_StartNull = function (xPos , yPos) {
|
||
console.log("RomaTopHeartEff_StartNull:" + xPos + "/" + yPos);
|
||
romashaTopEffectData = new RomashaTopEffectData(xPos , yPos);
|
||
romashaTopEffectData.nullFlg = true;
|
||
romashaTopEffectData.Start(this , true);
|
||
}
|
||
let RomaTopEffect_NUpdateSc = Game_Interpreter.prototype.NUpdateSc;
|
||
Game_Interpreter.prototype.NUpdateSc = function () {
|
||
RomaTopEffect_NUpdateSc.call(this);
|
||
if (romashaTopEffectData != null) {
|
||
romashaTopEffectData.Update(this);
|
||
}
|
||
}
|
||
Game_Interpreter.prototype.RomaTopHeartEff_End = function () {
|
||
if (romashaTopEffectData != null) romashaTopEffectData.End(this);
|
||
romashaTopEffectData = null;
|
||
}
|
||
let RomaTopHeart_performTransfer = Game_Player.prototype.performTransfer;
|
||
Game_Player.prototype.performTransfer = function () {
|
||
RomaTopHeart_performTransfer.call(this);
|
||
if (romashaTopEffectData != null) RomaTopReStartFrame = 2;
|
||
}
|
||
let RomaTopReStartFrame = 0;
|
||
let RomaTopHeart_NUpdateSc = Game_Interpreter.prototype.NUpdateSc;
|
||
Game_Interpreter.prototype.NUpdateSc = function () {
|
||
RomaTopHeart_NUpdateSc.call(this);
|
||
if (RomaTopReStartFrame > 0) {
|
||
RomaTopReStartFrame--;
|
||
if (RomaTopReStartFrame == 0) {
|
||
if (romashaTopEffectData != null) {
|
||
romashaTopEffectData.Stop();
|
||
romashaTopEffectData.ReStart();
|
||
}
|
||
}
|
||
}
|
||
}
|