@wwawing/engine 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/wwa.js +15 -15
- package/package.json +11 -11
package/lib/wwa.js
CHANGED
|
@@ -28,7 +28,7 @@ var WWA=(function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}
|
|
|
28
28
|
${n}`);default:throw Error(`マップデータ「${e}」の読み込みに失敗しました。
|
|
29
29
|
${n}`)}}async request(){let t=await e.fetch(this.uri);return e.handleError(this.uri,t),await t.arrayBuffer()}},An=s(((e,t)=>{t.exports={}})),jn=l(An()),Mn=class extends On{constructor(e){super(),this.fileName=e}async request(){return new Promise((e,t)=>{jn.default.readFile(this.fileName,(n,r)=>{n&&t(n),e(r.buffer)})})}},Nn=e=>typeof window<`u`?new kn(e):new Mn(e),Pn=class{constructor(e,t){this.fileName=e,this.eventEmitter=t}async requestAndLoadMapData(){let e=Nn(this.fileName);try{let t=await e.request();if(!t){this.eventEmitter.dispatch(`error`,{name:`マップデータ取得に失敗しました`,message:`mapdata is empty`});return}let n=this.loadMapData(t);this.eventEmitter.dispatch(`mapData`,n)}catch(e){let t=e.name||``,n=e.message||``;this.eventEmitter.dispatch(`error`,{name:t,message:n})}}loadMapData(e){try{let t=new Uint8Array(e),{byteMapData:n,byteMapLength:r,compressedEndPosition:i}=En(t);return new Dn(new Cn(n,r,this.eventEmitter).extractAllData(),t,i,this.eventEmitter).load()}catch(e){throw e}}},Fn=class{constructor(){this._milisecondTimer=0,this._frameTimer=0,this._points=new Map}addPoint(e,t,n){if(!t&&!n)return;let r=In(t,n);switch(this._points.set(e,r),r.type){case`milisecond`:{let e=[...this._points.values()].filter(({type:e})=>e===`milisecond`).map(({value:e})=>e);this._milisecondLimit=Math.max(...e);break}case`frame`:{let e=[...this._points.values()].filter(({type:e})=>e===`frame`).map(({value:e})=>e);this._frameLimit=Math.max(...e)}}}enabled(){return this._points.size>0&&(this._milisecondTimer<this._milisecondLimit||this._frameTimer<this._frameLimit)}tick(e){!this.enabled()||this.isTimeOver()||(this._milisecondTimer+=e,this._frameTimer++)}isOver(e,t){if(this._points.has(e)){let t=this._points.get(e);switch(t.type){case`milisecond`:return this._milisecondTimer>=t.value;case`frame`:return this._frameTimer>=t.value;default:return!1}}return t}isNotOver(e,t){if(this._points.has(e)){let t=this._points.get(e);switch(t.type){case`milisecond`:return this._milisecondTimer<t.value;case`frame`:return this._frameTimer<t.value;default:return!1}}return t}isTimeOver(){return!1}get timeLimit(){return{milisecond:this._milisecondLimit,frame:this._frameLimit}}},In=(e,t)=>{if(e)return{value:e,type:`milisecond`};if(t)return{value:t,type:`frame`}},Ln=class{constructor(e,t){this.canvas=new OffscreenCanvas(fn(e),pn(t)),this.ctx=this.canvas.getContext(`2d`,{alpha:!0}),this.ctx.imageSmoothingEnabled=!1}getCanvasImage(){return this.canvas}drawCanvas(e,t,n,r,i,a=L.CHIP_SIZE,o=L.CHIP_SIZE){this.ctx.drawImage(e,L.CHIP_SIZE*t,L.CHIP_SIZE*n,L.CHIP_SIZE,L.CHIP_SIZE,r,i,a,o)}drawCanvasFree(e,t,n,r,i){this.ctx.drawImage(e,t,n,r,i)}drawFont(e,t,n,r){r===void 0?this.ctx.fillText(e,t,n):e.split(`
|
|
30
30
|
`).forEach((e,i)=>{this.ctx.fillText(e,t,n+i*r)})}updateSize(e,t){this.canvas.width=fn(e),this.canvas.height=pn(t),this.ctx.imageSmoothingEnabled=!1}clear(){this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height)}},Rn=(e,t,n)=>e===`maximum`?{width:L.MAP_WINDOW_WIDTH,height:L.MAP_WINDOW_HEIGHT}:e===`minimumWithMargin`?{width:t+L.CHIP_SIZE*2,height:n+L.CHIP_SIZE*2}:{width:t,height:n},zn=(e,t,n)=>e===`maximum`?{x:t,y:n}:e===`minimumWithMargin`?{x:L.CHIP_SIZE,y:L.CHIP_SIZE}:{x:0,y:0},Bn=(e,t,n,r,i)=>e===`maximum`?{x:0,y:0,width:L.MAP_WINDOW_WIDTH,height:L.MAP_WINDOW_HEIGHT}:e===`minimumWithMargin`?{x:t-L.CHIP_SIZE,y:n-L.CHIP_SIZE,width:r*(L.CHIP_SIZE*2),height:i*(L.CHIP_SIZE*2)}:{x:t,y:n,width:r,height:i},Vn=(e,t,n,r,i)=>e===`maximum`?{x:r,y:i}:e===`minimumWithMargin`?{x:L.CHIP_SIZE+t/2,y:L.CHIP_SIZE+n/2}:{x:t/2,y:n/2},Hn=class e{constructor(t,n,r){this._registry=n;let{properties:i}=n;this._posBaseX=i.pos?.[0]??0,this._posBaseY=i.pos?.[1]??0,[this._imgMainX,this._imgMainY]=e._getImgPosByPicture(this._registry,!0),[this._imgSubX,this._imgSubY]=e._getImgPosByPicture(this._registry,!1),this._mapCropCache=e._getMapImgPosArray(this._registry,t),this._drawChip=on(this._imgMainX,this._imgMainY,this._imgSubX,this._imgSubY)||this._mapCropCache!==null,this._repeatX=i.repeat?.[0]??1,this._repeatY=i.repeat?.[1]??1,this._imgFile=r,this._cropX=this._imgFile?1:i.crop?.[0]??1,this._cropY=this._imgFile?1:i.crop?.[1]??1,this._sizeX=i.size?.[0]??(this._imgFile?this._imgFile.width:L.CHIP_SIZE),this._sizeY=i.size?.[1]??(this._imgFile?this._imgFile.height:L.CHIP_SIZE),this._circleRadiusX=i.circle?.[0]??0,this._circleRadiusY=i.circle?.[1]??this._circleRadiusX,this._circleAngle=i.circle?.[2]??0,this._fontStyle=e._getFontValue(i),this._textAlign=e._convertTextAlign(i.textAlign),this._fillStyle=`rgb(${i.color?.[0]??0}, ${i.color?.[1]??0}, ${i.color?.[2]??0})`,this._moveX=i.move?.[0]??0,this._moveY=i.move?.[1]??0,this._accelX=i.accel?.[0]??0,this._accelY=i.accel?.[1]??0,this._zoomX=i.zoom?.[0]??0,this._zoomY=i.zoom?.[1]??0,this._zoomAccelX=i.zoomAccel?.[0]??0,this._zoomAccelY=i.zoomAccel?.[1]??0,this._anchor=i.anchor??7,this._circleSpeed=i.circle?.[3]??0,this._opacity=i.opacity??100,this._fade=i.fade??0,this._angleRadian=i.angle?i.angle*Math.PI/180:0,this._rotateRadian=i.rotate?i.rotate*Math.PI/180:0,i.text?((i.angle||i.rotate)&&console.warn(`レイヤー${this.layerNumber}番: テキストの描画と回転の併用は、現時点では非推奨です。今後動作が変わる可能性があるので、自己責任でお願いします。`),this._drawCoordType=`maximum`):i.angle||i.rotate?this._drawCoordType=`minimumWithMargin`:this._drawCoordType=`minimum`,this._updatePictureCache();let{width:a,height:o}=Rn(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas=new Ln(a,o),this._timer=new Fn,this._timer.addPoint(`start`,an(i.time,1,!1),an(i.timeFrame,1,!1)),this._timer.addPoint(`end`,an(i.time,0,!0),an(i.timeFrame,0,!0)),this._timer.addPoint(`startAnim`,i.animTime?.[0],i.animTimeFrame?.[0]),this._timer.addPoint(`endAnim`,i.animTime?.[1],i.animTimeFrame?.[1]),this._timer.addPoint(`wait`,i.wait,i.waitFrame),this._angleRadian!==0){let{x:e,y:t}=Vn(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext(),this._hasAnimation=this.getHasAnimation()}get layerNumber(){return this._registry.layerNumber}get hasAnimation(){return this._hasAnimation}get canvasImage(){return this._canvas.getCanvasImage()}get appearParts(){if(!(!this._registry.properties.map||this._registry.properties.map.length<3))return{partsNumber:this._registry.properties.map[0],x:this._registry.properties.map[1],y:this._registry.properties.map[2],partsType:this._registry.properties.map[3]??bn.OBJECT}}get executeScriptFunctionName(){return this._registry.properties.script}updateCanvasContext(){this._canvas.ctx.globalAlpha=e._roundPercentage(this._opacity)/100,this._canvas.ctx.font=this._fontStyle,this._canvas.ctx.textBaseline=`top`,this._textAlign&&(this._canvas.ctx.textAlign=this._textAlign),this._canvas.ctx.fillStyle=this._fillStyle}draw(e,t){this.clearCanvas();let n=t?this._imgMainX:this._imgSubX,r=t?this._imgMainY:this._imgSubY,{x:i,y:a}=zn(this._drawCoordType,this._posDestX,this._posDestY);for(let o=0;o<this._repeatY;o++)for(let s=0;s<this._repeatX;s++){let c=i+this._charaWidth*s,l=a+this._charaHeight*o;if(this._imgFile)this._canvas.drawCanvasFree(this._imgFile,c,l,this._charaWidth,this._charaHeight);else if(this._drawChip)if(this._mapCropCache!==null)this._mapCropCache.forEach((n,r)=>{n.forEach(([n,i,a,o],s)=>{on(n,i,a,o)&&this._canvas.drawCanvas(e,t?n:a,t?i:o,c+this._chipWidth*s,l+this._chipHeight*r,this._chipWidth,this._chipHeight)})});else for(let t=0;t<this._cropY;t++)for(let i=0;i<this._cropX;i++)this._canvas.drawCanvas(e,n+i,r+t,c+this._chipWidth*i,l+this._chipHeight*t,this._chipWidth,this._chipHeight);this.getHasText()&&this._canvas.drawFont(this._registry.properties.text,c,l,this._registry.properties.lineHeight)}}getDrawPictureCoords(){return Bn(this._drawCoordType,this._posDestX,this._posDestY,this._totalWidth,this._totalHeight)}updateAnimation(){if(this._timer.isNotOver(`startAnim`,!1)||this._timer.isOver(`endAnim`,!1))return;this._posBaseX+=this._moveX,this._posBaseY+=this._moveY,this._moveX+=this._accelX,this._moveY+=this._accelY,this._sizeX+=this._zoomX,this._sizeY+=this._zoomY,this._zoomX+=this._zoomAccelX,this._zoomY+=this._zoomAccelY,this._updatePictureCache();let{width:e,height:t}=Rn(this._drawCoordType,this._totalWidth,this._totalHeight);if(this._canvas.updateSize(e,t),this._circleAngle+=this._circleSpeed,this._fade!==0&&(this._opacity+=this._fade),this._angleRadian!==0||this._rotateRadian!==0){this._angleRadian+=this._rotateRadian;let{x:e,y:t}=Vn(this._drawCoordType,this._totalWidth,this._totalHeight,this._posBaseX,this._posBaseY);this._canvas.ctx.translate(e,t),this._canvas.ctx.rotate(this._angleRadian),this._canvas.ctx.translate(-e,-t)}this.updateCanvasContext()}_updatePictureCache(){this._chipWidth=sn(this._sizeX),this._chipHeight=sn(this._sizeY),this._charaWidth=this._chipWidth*this._cropX,this._charaHeight=this._chipHeight*this._cropY,this._totalWidth=this._charaWidth*this._repeatX,this._totalHeight=this._charaHeight*this._repeatY,this._posDestX=Math.floor(cn(ln(this._posBaseX,this._circleRadiusX,this._circleAngle),this._charaWidth,this._anchor)),this._posDestY=Math.floor(un(dn(this._posBaseY,this._circleRadiusY,this._circleAngle),this._charaHeight,this._anchor))}isNotStarted(){return this._timer.isNotOver(`start`,!1)}tickTime(e){this._timer.tick(e)}isDeadlineOver(){return this._timer.isOver(`end`,!1)}isStartTimeOver(){return this._timer.isOver(`start`,!0)}isWaiting(){return this._timer.isNotOver(`wait`,!1)}clearCanvas(){this._canvas.clear()}getRegistryData(){return this._registry}getNextPicturePartsInfo(){let e=Array.isArray(this._registry.properties.next)&&this._registry.properties.next[0]?{layerNumber:this._registry.layerNumber,partsNumber:this._registry.properties.next[0],partsType:this._registry.properties.next[1]??bn.OBJECT,connectProperties:!!this._registry.properties.next[2]}:void 0,t=Array.isArray(this._registry.properties.create)?this._registry.properties.create.filter(Array.isArray).map(e=>({layerNumber:e[0],partsNumber:e[1],partsType:e[2]??bn.OBJECT,connectProperties:!!e[3]})):[];return e?t.concat(e):t}getNextPictureProperties(){let e={...this._registry.properties};return delete e.next,delete e.create,{...e,pos:[this._posBaseX,this._posBaseY],move:[this._moveX,this._moveY],size:[this._sizeX,this._sizeY],zoom:[this._zoomX,this._zoomY],circle:[this._circleRadiusX,this._circleRadiusY,this._circleAngle,this._circleSpeed],opacity:this._opacity}}getTriggerPartsCoord(){return new S(this._registry.triggerPartsX,this._registry.triggerPartsY)}getHasAnimation(){return this._moveX!==0||this._moveY!==0||this._accelX!==0||this._accelY!==0||this._zoomX!==0||this._zoomY!==0||this._zoomAccelX!==0||this._zoomAccelY!==0||this._circleSpeed!==0||this._fade!==0||this._rotateRadian!==0}getHasText(){return this._registry.properties.text}static _getImgPosByPicture(e,t){let{properties:n}=e;return n.imgMap?.[0]!==void 0&&n.imgMap?.[1]!==void 0?[0,0]:n.img?.[0]!==void 0&&n.img?.[1]!==void 0?t?[n.img[0],n.img[1]]:n.img[2]!==void 0&&n.img[3]!==void 0?[n.img[2],n.img[3]]:[n.img[0],n.img[1]]:t||e.imgPosX2===0&&e.imgPosY2===0?[e.imgPosX,e.imgPosY]:[e.imgPosX2,e.imgPosY2]}static _getMapImgPosArray(e,t){let{properties:n}=e,r=n.imgMap?.[0]??-1,i=n.imgMap?.[1]??-1;if(r<0||i<0)return null;let a=n.crop?.[0]??1,o=n.crop?.[1]??1,s=n.imgMap?.[2]!==void 0&&n.imgMap[2]>=1?bn.MAP:bn.OBJECT,c=[];for(let e=0;e<o;e++){let n=[];for(let o=0;o<a;o++){let a=t.getPartsID(new S(r+o,i+e),s);if(a===0)n.push([0,0,0,0]);else{let e=s===bn.MAP?t.getMapInfo(a):t.getObjectInfo(a);s===bn.MAP||e[L.ATR_X2]===0&&e[L.ATR_Y2]===0?n.push([e[L.ATR_X]/L.CHIP_SIZE,e[L.ATR_Y]/L.CHIP_SIZE,e[L.ATR_X]/L.CHIP_SIZE,e[L.ATR_Y]/L.CHIP_SIZE]):n.push([e[L.ATR_X]/L.CHIP_SIZE,e[L.ATR_Y]/L.CHIP_SIZE,e[L.ATR_X2]/L.CHIP_SIZE,e[L.ATR_Y2]/L.CHIP_SIZE])}}c.push(n)}return c}static _getFontValue(e){if(e.font)return e.font;let t=getComputedStyle(H(`wwa-wrapper`));return e.fontSize===void 0&&e.fontFamily===void 0&&e.italic===void 0&&e.bold===void 0?t.font:`${e.italic?`italic`:``} ${e.bold?`bold`:``} ${e.fontSize?`${e.fontSize}px`:t.fontSize} ${e.fontFamily&&e.fontFamily.length>0?e.fontFamily:t.fontFamily}`}static _convertTextAlign(e){return e?[`center`,`end`,`left`,`right`,`start`].includes(e)?e:(console.warn(`textAlign プロパティで不正な値が検出されました。: ${e}`),null):null}static _roundPercentage(e){return e<0?0:e>100?100:e}},Un=async e=>fetch(e).then(t=>t.status===200||t.status===304?{kind:`data`,data:t}:{kind:`httpError`,errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`}).catch(t=>({kind:`connectionError`,errorMessage:`ファイル ${e} が読み込めませんでした。通信状態がいい場所で再度お試しください。`})).then(async e=>e.kind===`data`?{kind:`data`,data:await e.data.json()}:e).catch(t=>({kind:`brokenJson`,errorMessage:`ファイル ${e} が壊れています。`})),Wn=class e{constructor(t,n){this._wwa=t,this._pictures=new Map,this._anonymousPictures=[],this._externalImageFiles=new Map,this._frameTimerValue=e._getNowFrameValue(),this._setupExternalImageFiles(n)}async _setupExternalImageFiles(e){if(!e)return;let t=await Un(e);if(t){if(t.kind!==`data`){console.warn(`ピクチャ画像の定義ファイル ${e} が見つかりませんでした。エラーメッセージ: ${t.errorMessage}`);return}if(!t.data||typeof t.data!=`object`){console.warn(`ピクチャ画像の定義ファイル ${e} が正しい形式で書かれていません。`);return}if(`files`in t.data){let{files:n}=t.data;typeof n==`object`?Object.entries(t.data.files).forEach(([e,t])=>{this._externalImageFiles.set(e,{status:`loading`});let n=new Image;n.src=t,n.onerror=n=>{console.warn(typeof n==`string`?`ピクチャ画像ファイル ${t} が見つかりませんでした。エラーメッセージ: ${n}`:`ピクチャ画像ファイル ${t} が見つかりませんでした。`),this._externalImageFiles.set(e,{status:`failed`})},n.onload=()=>{this._externalImageFiles.set(e,{status:`success`,element:n})}}):console.warn(`ピクチャ画像の定義ファイル ${e} の files が正しい形式で書かれていません。`)}}}static _getNowFrameValue(){return performance.now()}registerPicture(e){let t=Object.keys(e.properties).filter(e=>!Ze.some(({name:t})=>t===e));if(t.length>0)throw Error(`不明なプロパティ名 ${t.map(e=>`"${e}"`).join(`, `)} が検出されました。`);let n;if(e.properties.imgFile){let t=this._externalImageFiles.get(e.properties.imgFile);t?t.status===`loading`?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} はまだ読み込みを完了していません。`):t.status===`failed`?console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} を表示することができません。画像ファイルの Path が間違っていないかご確認ください。`):n=t.element:console.warn(`ピクチャ画像ファイル ${e.properties.imgFile} が定義に含まれていません。定義ファイルがあるかご確認ください。`)}let r=e.properties.sound??e.soundNumber;if(r&&this._wwa.playSound(r),en(e.layerNumber))tn(e.layerNumber)?this._anonymousPictures.push(new Hn(this._wwa,e,n)):(this._pictures.set(e.layerNumber,new Hn(this._wwa,e,n)),this._pictures=new Map([...this._pictures.entries()].sort(([,e],[,t])=>e.layerNumber-t.layerNumber)));else throw Error(`指定したレイヤー番号 ${e.layerNumber}番はこのバージョンでは無効です!`)}registerPictureFromRawRegistry(e,t,n,r){return this.registerPicture(rn(r?{...e,properties:{...r,...e.properties}}:e,this._wwa.generateTokenValues({id:t,type:n,position:new S(e.triggerPartsX,e.triggerPartsY)}))),this.getPictureRegistryData()}registerPictureFromRawText(e,t){let n=Zt({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,propertiesText:t});return this.registerPicture(nn(n)),this.getPictureRegistryData()}registerPictureFromObject(e,t){return this.registerPicture(nn({imgPosX:0,imgPosY:0,imgPosX2:0,imgPosY2:0,layerNumber:e,triggerPartsX:0,triggerPartsY:0,soundNumber:0,properties:t})),this.getPictureRegistryData()}deletePicture(e){return tn(e)?(this._anonymousPictures.forEach(e=>{e.clearCanvas()}),this._anonymousPictures.splice(0),this.getPictureRegistryData()):(this._pictures.has(e)&&(this._pictures.get(e).clearCanvas(),this._pictures.delete(e)),this.getPictureRegistryData())}clearAllPictures(){this._pictures.forEach(e=>{e.clearCanvas()}),this._anonymousPictures.forEach(e=>{e.clearCanvas()}),this._pictures.clear(),this._anonymousPictures.splice(0)}forEachPictures(e){this._anonymousPictures.forEach(e),this._pictures.forEach(e)}updateAllPicturesCache(e,t){this.forEachPictures(n=>{n.isNotStarted()||n.draw(e,t)})}updateFrameTimerValue(){this._frameTimerValue=e._getNowFrameValue()}updatePicturesAnimation(t,n){let r=e._getNowFrameValue()-this._frameTimerValue;this.forEachPictures(e=>{if(e.tickTime(r),!e.isNotStarted()){if(e.isDeadlineOver()){let t=e.layerNumber,n=e.getNextPicturePartsInfo(),r=e.appearParts,i=e.executeScriptFunctionName,a=e.getNextPictureProperties(),o=e.getTriggerPartsCoord();this._wwa.deletePictureRegistry(t);for(let e of n)this._wwa.setPictureRegistry(e.layerNumber,e.partsNumber,e.partsType,o,e.connectProperties?a:void 0);r!==void 0&&this._wwa.setPartsOnPosition(r.partsType,r.partsNumber,new S(r.x,r.y)),i&&this._wwa.callUserScript(i);return}e.hasAnimation&&(e.updateAnimation(),e.draw(t,n))}})}isWaiting(){for(let e of this._pictures.values())if(e.isWaiting())return!0;for(let e of this._anonymousPictures)if(e.isWaiting())return!0;return!1}getPictureRegistryData(){return Array.from(this._pictures.values()).map(e=>e.getRegistryData())}},Gn=class{constructor(e,t,n){this.cvs=document.createElement(`canvas`),this.cvs.width=e,this.cvs.height=t,this.ctx=this.cvs.getContext(`2d`,{alpha:n}),this._isTransparent=n}drawCanvas(e,t,n,r,i,a=L.CHIP_SIZE,o=L.CHIP_SIZE){this.ctx.drawImage(e,L.CHIP_SIZE*t,L.CHIP_SIZE*n,L.CHIP_SIZE,L.CHIP_SIZE,r,i,a,o)}clear(){this.clearRect(0,0,this.cvs.width,this.cvs.height)}clearRectWithLowerYLimit(e){this.clearRect(0,0,this.cvs.width,e)}clearRect(e,t,n,r){this._isTransparent?this.ctx.clearRect(e,t,n,r):(this.ctx.fillStyle=`#9E9E9E`,this.ctx.fillRect(e,t,n,r))}},Kn=class{_load(){this._frameCoord,!this._isLoaded&&(this.mapCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this.mapObjectCache=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],this._image=new Image,this._image.addEventListener(`load`,()=>{this.createFrame(),this._loadCompleteCallBack()}),this._image.addEventListener(`error`,()=>{throw Error(`Image Load Failed!!
|
|
31
|
-
file name:`+this._fileName)}),this._image.src=this._fileName,this._isLoaded=!0)}createFrame(){this._frameCanvas.clear(),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y,0,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+2,0,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+2,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE);for(var e=1;e<L.H_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y,L.CHIP_SIZE*e,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y+2,L.CHIP_SIZE*e,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE);for(var e=1;e<L.V_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+1,0,L.CHIP_SIZE*e),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+1,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,L.CHIP_SIZE*e)}updateEffects(e){var t;if(e){var n=e.length,r;for(t=0;t<n;t++){var i=e[t];r=this._effectCanvases[t],r?r.clear():r=this._effectCanvases[t]=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0);for(var a=0;a<L.V_PARTS_NUM_IN_WINDOW;a++)for(var o=0;o<L.H_PARTS_NUM_IN_WINDOW;o++)r.drawCanvas(this._image,i.x,i.y,o*L.CHIP_SIZE,a*L.CHIP_SIZE)}}}restorePictures(e){this.picture.clearAllPictures(),e.forEach(e=>{this.picture.registerPicture(e)})}updateAllPicturesCache(e=!0){this.picture.updateAllPicturesCache(this._image,e)}updatePicturesAnimation(e=!0){this.picture.updatePicturesAnimation(this._image,e)}drawFrame(){this._ctx.drawImage(this._frameCanvas.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE,0,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2),0,L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2)),this._ctx.drawImage(this._frameCanvas.cvs,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2),L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2))}drawEffect(e){var t=this._effectCanvases[e];t&&this._ctx.drawImage(t.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}drawPictures(){this.picture.forEachPictures(e=>{let{x:t,y:n,width:r,height:i}=e.getDrawPictureCoords();this._ctx.drawImage(e.canvasImage,0,0,r,i,t,n,r,i)})}drawCanvas(e,t,n,r){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE,L.CHIP_SIZE,n,r,L.CHIP_SIZE,L.CHIP_SIZE)}drawCanvasWithSize(e,t,n,r,i,a){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE*n,L.CHIP_SIZE*r,i,a,L.CHIP_SIZE*n,L.CHIP_SIZE*r)}drawCanvasWithUpperYLimit(e,t,n,r,i){if(!this._isLoaded)throw Error(`No image was loaded.`);var a=Math.max(0,r+L.CHIP_SIZE-i);a>=L.CHIP_SIZE||this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE,L.CHIP_SIZE-a,n,r,L.CHIP_SIZE,L.CHIP_SIZE)}copyCanvas(e,t){return(n,r,i,a,o)=>{if(!this._isLoaded)throw Error(`No image was loaded.`);let s=Math.max(0,t(a,o));s>=L.CHIP_SIZE||e.ctx.drawImage(this._image,L.CHIP_SIZE*n,L.CHIP_SIZE*r+s,L.CHIP_SIZE,L.CHIP_SIZE-s,i,a+s,L.CHIP_SIZE,L.CHIP_SIZE)}}copyBackCanvasWithUpperYLimit(e,t,n,r,i){this.copyCanvas(this._backCanvas,(e,t)=>e+L.CHIP_SIZE-t)(e,t,n,r,i)}copyBackCanvasWithLowerYLimit(e,t,n,r,i){this.copyCanvas(this._backCanvas,(e,t)=>t-e)(e,t,n,r,i)}copyObjectCanvasWithUpperYLimit(e,t,n,r,i,a){this.copyCanvas(this._objectCanvases[e],(e,t)=>e+L.CHIP_SIZE-t)(t,n,r,i,a)}copyObjectCanvasWithLowerYLimit(e,t,n,r,i,a){this.copyCanvas(this._objectCanvases[e],(e,t)=>t-e)(t,n,r,i,a)}drawBackCanvas(){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._backCanvas.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}drawObjectCanvas(e){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._objectCanvases[e].cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}clearBackCanvas(){this._backCanvas.clear()}clearBackCanvasWithLowerYLimit(e){this._backCanvas.clearRectWithLowerYLimit(e)}clearObjectCanvases(){var e;for(e=0;e<2;e++)this._objectCanvases[e].clear()}clearObjectCanvasesWithLowerYLimit(e){var t;for(t=0;t<2;t++)this._objectCanvases[t].clearRectWithLowerYLimit(e)}drawCanvasWithLowerYLimit(e,t,n,r,i){if(!this._isLoaded)throw Error(`No image was loaded.`);var a=Math.max(0,i-r);a>=L.CHIP_SIZE||this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t+a,L.CHIP_SIZE,L.CHIP_SIZE-a,n,r+a,L.CHIP_SIZE,L.CHIP_SIZE)}clearCanvas(e,t,n,r){this._ctx.clearRect(e,t,n,r)}drawBase(e,t,n,r){this._ctx.fillStyle=`#9E9E9E`,this._ctx.fillRect(e,t,n,r)}setFrameImage(e){this._frameCoord=e,this.createFrame()}constructor(e,t,n,r,i,a){this._isLoaded=!1,this.mapCache=void 0,this.mapObjectCache=void 0,this.mapCacheYLimit=0,this._frameCanvas=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0),this._backCanvas=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!1),this._objectCanvases=[],this._effectCanvases=[],this.picture=new Wn(r,i);var o;for(o=0;o<2;o++)this._objectCanvases[o]=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0);this._ctx=e,this._fileName=t,this._loadCompleteCallBack=a,this._load(),this._frameCoord=n.clone(),this.cpPartsLog=new S(0,0)}},qn=class{constructor(e){this._position=null,this.reset(e)}setPlayer(e){this._player=e}isResetting(){return this._isResetting}getPosition(){return this._position}getPreviousPosition(){return this._positionPrev}resetPreviousPosition(){this._positionPrev=null}move(e){var t=fe[this._player.getSpeedIndex()];this._position=this._position.getNextFramePosition(e,t*(L.H_PARTS_NUM_IN_WINDOW-1),t*(L.V_PARTS_NUM_IN_WINDOW-1))}getTransitionStepNum(){return this._transitionStep}advanceTransitionStepNum(){return++this._transitionStep,this._transitionStep===L.V_PARTS_NUM_IN_WINDOW&&(this._isResetting=!1,this._transitionStep=0),this._transitionStep}isFinalStep(){if(this._isResetting===!1)throw Error(`リセット中ではありません。`);return this._transitionStep===L.V_PARTS_NUM_IN_WINDOW-1}reset(e){this._positionPrev=this._position,this._position=e.getDefaultCameraPosition(),this._transitionStep=0,this._isResetting=!0}},Jn=class{getPosition(){return this._position}constructor(e){this._position=e}},Yn=class extends Jn{constructor(e){super(e)}},W=function(e){return e[e.CONTROLLABLE=0]=`CONTROLLABLE`,e[e.MOVING=1]=`MOVING`,e[e.CAMERA_MOVING=2]=`CAMERA_MOVING`,e[e.MESSAGE_WAITING=3]=`MESSAGE_WAITING`,e[e.LOCALGATE_JUMPED=4]=`LOCALGATE_JUMPED`,e[e.BATTLE=5]=`BATTLE`,e[e.ESTIMATE_WINDOW_WAITING=6]=`ESTIMATE_WINDOW_WAITING`,e[e.PASSWORD_WINDOW_WAITING=7]=`PASSWORD_WINDOW_WAITING`,e[e.LOCALGATE_JUMPED_WITH_MESSAGE=8]=`LOCALGATE_JUMPED_WITH_MESSAGE`,e}({}),Xn=class extends Yn{move(){if(this.isControllable()){this.controll(this._dir);return}if(this._state===W.CAMERA_MOVING){try{this._camera.move(this._dir)}catch{}this._isOnCameraStopPosition()&&(this._state=W.CONTROLLABLE,this._wwa.callCameraMoveUserDefineFunction())}else if(this._state===W.MOVING){try{var e=this._position.getNextFramePosition(this._dir,fe[this._speedIndex],fe[this._speedIndex])}catch{}e.isJustPosition()&&(this._state=W.CONTROLLABLE,this.toggleMovingImage(),this._moves++,this._isPartsEventExecuted=!1,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._wwa.callMoveUserDefineFunction()),this._position=e}}controll(e){var t,n;if(this.isControllable()){this._isPreparedForLookingAround=!1,this._dir=e;try{t=this._position.getNextFramePosition(this._dir,fe[this._speedIndex],fe[this._speedIndex]),n=this._position.getNextJustPosition(e)}catch{return}if(this._isOnCameraMovingPosition()){if(this._wwa.getMapIdByPosition(n)!==0||this._wwa.isOldMap()||this._wwa.debug)try{this._camera.move(this._dir),this._state=W.CAMERA_MOVING}catch{this._state=W.CONTROLLABLE}return}if(!this.canMoveTo(n)){this._wwa.getMapTypeByPosition(n)===L.MAP_WALL&&this._wwa.checkMap(n.getPartsCoord()),this._wwa.checkObject(n.getPartsCoord());return}this._position=t,this._state=W.MOVING,this._wwa.getMapAttributeByPosition(this._position.getNextJustPosition(e),L.ATR_TYPE)!==L.MAP_LOCALGATE&&this._wwa.moveObjects(!0)}}setDir(e){this._isPreparedForLookingAround=!1,this._dir=e}canMoveTo(e){return e===null?!1:this._wwa.debug?!0:(this._wwa.getMapWidth(),e.getPartsCoord(),e.getOffsetCoord(),this._wwa.getMapIdByPosition(e)===0&&!this._wwa.isOldMap()||this._wwa.getMapTypeByPosition(e)===L.MAP_WALL?!1:this._wwa.getObjectIdByPosition(e)===0||this._wwa.getObjectTypeByPosition(e)===L.OBJECT_NORMAL&&this._wwa.getObjectAttributeByPosition(e,L.ATR_MODE)===L.PASSABLE_OBJECT?!0:this._wwa.getObjectTypeByPosition(e)===L.OBJECT_DOOR&&this._wwa.getObjectAttributeByPosition(e,L.ATR_NUMBER)===L.PASSABLE_OBJECT?!this.hasItem(this._wwa.getObjectAttributeByPosition(e,L.ATR_ITEM)):!1)}isMoving(){return this._state==W.MOVING||this._state==W.CAMERA_MOVING}_isOnCameraMovingPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x===L.H_PARTS_NUM_IN_WINDOW-1&&this._dir===T.RIGHT||t.x===e.x&&this._dir===T.LEFT||t.y-e.y===L.V_PARTS_NUM_IN_WINDOW-1&&this._dir===T.DOWN||t.y===e.y&&this._dir===T.UP}_isOnCameraStopPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x===L.H_PARTS_NUM_IN_WINDOW-1&&this._dir===T.LEFT||t.x===e.x&&this._dir===T.RIGHT||t.y-e.y===L.V_PARTS_NUM_IN_WINDOW-1&&this._dir===T.UP||t.y===e.y&&this._dir===T.DOWN}isControllable(){var e=this._afterMoveMacroFlag;return this._afterMoveMacroFlag=!1,this._state===W.CONTROLLABLE&&!this._partsAppeared&&(this._wwa.getMapTypeByPosition(this._position)!==L.MAP_LOCALGATE&&this._wwa.getMapTypeByPosition(this._position)!==L.MAP_URLGATE||!this._wwa.isPrevFrameEventExecuted())&&this._moveMacroWaitingRemainMoves===0&&this._moveObjectAutoExecTimer===0&&!e&&this._wwa.canInput()}getCopyOfItemBox(){return this._itemBox.slice()}getDir(){return this._dir}isMovingImage(){return this._isMovingImage}toggleMovingImage(){this._isMovingImage?this._isMovingImage=!1:this._isMovingImage=!0}getEnergyMax(){return this._energyMax}isJumped(){return this._state===W.LOCALGATE_JUMPED||this._state===W.LOCALGATE_JUMPED_WITH_MESSAGE}setMessageWaiting(){this._state=W.MESSAGE_WAITING}isWaitingMessage(){return this._state===W.MESSAGE_WAITING}isDelayFrame(){return this._messageDelayFrameCount>0}updateDelayFrame(){this._messageDelayFrameCount--}setDelayFrame(){this._messageDelayFrameCount=1}clearMessageWaiting(){this._state!==W.MESSAGE_WAITING&&this._state!==W.LOCALGATE_JUMPED_WITH_MESSAGE||(this._state===W.MESSAGE_WAITING?this._state=W.CONTROLLABLE:this._state===W.LOCALGATE_JUMPED_WITH_MESSAGE&&(this._state=W.LOCALGATE_JUMPED),this._isPartsEventExecuted=!0,this._isPreparedForLookingAround&&(this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME))}setEstimateWindowWating(){this._state=W.ESTIMATE_WINDOW_WAITING}isWaitingEstimateWindow(){return this._state===W.ESTIMATE_WINDOW_WAITING}clearEstimateWindowWaiting(){this._state===W.ESTIMATE_WINDOW_WAITING&&(this._state=W.CONTROLLABLE)}setPasswordWindowWating(){this._state=W.PASSWORD_WINDOW_WAITING}isWaitingPasswordWindow(){return this._state===W.PASSWORD_WINDOW_WAITING}clearPasswordWindowWaiting(){this._state===W.PASSWORD_WINDOW_WAITING&&(this._state=W.CONTROLLABLE)}isPartsEventExecuted(){return this._isPartsEventExecuted}resetEventExecutionInfo(){this._isPartsEventExecuted=!1}getLastExecPartsIDOnSamePosition(e){return e===A.MAP?this._samePosLastExecutedMapID:this._samePosLastExecutedObjID}setLastExecInfoOnSamePosition(e,t){e===A.MAP?this._samePosLastExecutedMapID=t:this._samePosLastExecutedObjID=t}processAfterJump(){this._state!==W.LOCALGATE_JUMPED&&this._state!==W.LOCALGATE_JUMPED_WITH_MESSAGE||--this._jumpWaitFramesRemain===0&&(this._state=this._state===W.LOCALGATE_JUMPED?W.CONTROLLABLE:W.MESSAGE_WAITING)}jumpTo(e){var t=this._camera.getPosition();return this.getPosition(),this._position.equals(e)?!1:(this._position=e,e.isInCameraRange(this._camera,!0)||this._camera.reset(e),this._state=this._state===W.MESSAGE_WAITING?W.LOCALGATE_JUMPED_WITH_MESSAGE:W.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=L.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,e.hasLocalGate()?this._dir=T.DOWN:e.getPartsCoord().y<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(T.DOWN).hasLocalGate()?this._dir=T.UP:e.getPartsCoord().y>=1&&e.getNextJustPosition(T.UP).hasLocalGate()?this._dir=T.DOWN:e.getPartsCoord().x<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(T.RIGHT).hasLocalGate()?this._dir=T.LEFT:e.getPartsCoord().x>=1&&e.getNextJustPosition(T.LEFT).hasLocalGate()?this._dir=T.RIGHT:this._dir=T.DOWN,this._camera.getPosition().equals(t)||(this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME),this._wwa.callJumpGateUserDefineFunction(),!0)}systemJumpTo(e){this._position=e,this._camera.reset(e),this._camera.resetPreviousPosition(),this._state=W.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=L.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._dir=T.DOWN,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME}addStatusAll(e){return this._status.add(e),this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),this._status}setEnergyMax(e){return this._energyMax=e,e!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}setEnergy(e){return this._status.energy=e,this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}damage(e){this._status.energy=Math.max(0,this._status.energy-e),this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox()}setStrength(e){return this._status.strength=e,this.updateStatusValueBox(),e}setDefence(e){return this._status.defence=e,this.updateStatusValueBox(),e}setGold(e){return this._status.gold=e,this.updateStatusValueBox(),e}getStatus(){return this._status.plus(this._equipStatus)}getStatusWithoutEquipments(){return this._status.plus(new b(0,0))}getStatusOfEquipments(){return this._equipStatus.plus(new b(0,0))}updateStatusValueBox(){let e=this._status.plus(this._equipStatus);this._energyValueElement.textContent=this._wwa.isVisibleStatus(`energy`)?String(e.energy):``,this._strengthValueElement.textContent=this._wwa.isVisibleStatus(`strength`)?String(e.strength):``,this._defenceValueElement.textContent=this._wwa.isVisibleStatus(`defence`)?String(e.defence):``,this._goldValueElement.textContent=this._wwa.isVisibleStatus(`gold`)?String(e.gold):``,this._wwa._messageWindow?.update(),this._wwa.updateScore()}updateItemBox(e){for(let t=0;t<this._itemBoxElement.length;t++){let n=this._itemBoxElement[t],r=Be(`#item`+t);if(this._itemBox[t]===0){n.style.backgroundPosition=`-40px 0px`,this.disposeItemEffect(t,this._itemBoxElement[t],r);continue}let i=this._wwa.getObjectCropXById(this._itemBox[t]),a=this._wwa.getObjectCropYById(this._itemBox[t]);if(!e||t!==e.insertPos-1){n.style.backgroundPosition=`-`+i+`px -`+a+`px`,this.disposeItemEffect(t,this._itemBoxElement[t],r);continue}let o=e.itemScreenPixelCoord.x-e.itemBoxScreenPixelCoord.x,s=e.itemScreenPixelCoord.y-e.itemBoxScreenPixelCoord.y,c=-o*L.DEFAULT_FRAME_INTERVAL/L.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME,l=e.overwrittenObjectId===0||e.overwrittenObjectId===void 0,u=l?e.itemBoxBackgroundImageCoord.x:this._wwa.getObjectCropXById(e.overwrittenObjectId),d=l?e.itemBoxBackgroundImageCoord.y:this._wwa.getObjectCropYById(e.overwrittenObjectId);n.style.left=o+`px`,n.style.top=s+`px`,typeof this.itemEffectStartTimers[t]==`number`&&clearInterval(this.itemEffectStartTimers[t]),this.itemEffectStartTimers[t]=window.setTimeout(()=>{this.itemEffectStartTimers[t]=void 0,this.startItemEffect(t,n,r,{target:{x:i,y:a},overwritten:{x:u,y:d}},c)},L.DEFAULT_FRAME_INTERVAL)}}startItemEffect(e,t,n,r,i){let a=n.querySelector(this.overwittenItemSelector);a&&n.removeChild(a);let o=document.createElement(`div`);o.classList.add(this.overwittenItemClassName),o.style.backgroundPosition=`-`+r.overwritten.x+`px -`+r.overwritten.y+`px`,o.style.backgroundImage=n.style.backgroundImage,n.appendChild(o),t.style.backgroundPosition=`-`+r.target.x+`px -`+r.target.y+`px`,t.style.transitionDuration=i+`ms`,t.style.transitionProperty=`left,top`,t.style.transitionTimingFunction=`linear`,t.style.left=`0`,t.style.top=`0`,n.classList.add(this.itemTransitioningClassName),t.addEventListener(`transitionend`,()=>{this.disposeItemEffect(e,t,n)},{once:!0})}disposeItemEffect(e,t,n){typeof this.itemEffectStartTimers[e]==`number`&&(clearInterval(this.itemEffectStartTimers[e]),this.itemEffectStartTimers[e]=void 0),t.style.transitionDuration=`0s`,t.style.transitionProperty=``,t.style.left=`0`,t.style.top=`0`,n.classList.contains(this.itemTransitioningClassName)&&n.classList.remove(this.itemTransitioningClassName);let r=n.querySelector(this.overwittenItemSelector);r&&n.removeChild(r)}isDead(){return this._status.energy<=0}addItem(e,t=0,n=!1,r){var i,a,o,s=this._wwa.getObjectAttributeById(e,L.ATR_NUMBER),c=0;if(t===0&&s!==0&&(t=s),t===0){if(e===0)return;if(i=this._getBlankItemPos(),i===L.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),Error(`これ以上、アイテムを持てません。`);c=this._itemBox[i-1],this._forceSetItemBox(i,e)}else if(n===!1)if(i=t,o=this._itemBox[i-1],this._wwa.getObjectAttributeById(o,L.ATR_NUMBER)!==this._wwa.getObjectAttributeById(e,L.ATR_NUMBER))if(a=this._getBlankItemPos(),a!==L.ITEMBOX_IS_FULL)this._forceSetItemBox(a,o),this._forceSetItemBox(i,e);else throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),Error(`これ以上、アイテムを持てません。`);else c=this._itemBox[i-1],this._forceSetItemBox(i,e);else i=t,c=this._itemBox[i-1],this._forceSetItemBox(i,e);this._updateEquipmentStatus(),this.updateItemBox(r?{insertPos:i,itemScreenPixelCoord:r.screenPixelCoord,itemBoxBackgroundImageCoord:r.itemBoxBackgroundImageCoord,itemBoxScreenPixelCoord:new S(L.MAP_WINDOW_WIDTH+(i-1)%3*L.CHIP_SIZE,L.ITEMBOX_TOP_Y+Math.floor((i-1)/3)*L.CHIP_SIZE),overwrittenObjectId:c}:void 0)}_forceSetItemBox(e,t){var n=this,r=Ve(`#item`+(e-1)+`>.item-click-border`),i=this._wwa.getObjectAttributeById(t,L.ATR_MODE);if(this.removeItemByItemPosition(e),this._itemBox[e-1]=t,this._wwa.setEvalCalcWwaNodeEarnedItem(t,e),this._wwa.callGetItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),t!==0&&i!==ne.NORMAL){let t=this._wwa.resolveSystemMessage(g.ITEM_SELECT_TUTORIAL);this._isClickableItemGot||=(t!==`BLANK`&&this._wwa.registerSystemMessagePage(t),!0),r.style.display=`block`,(e=>{n._itemUsingEvent[e-1]=()=>{(n.isControllable()||n._wwa._messageWindow.isItemMenuChoice())&&(n._wwa._itemMenu.close(),n._wwa._setNextPage(),n._wwa.onselectitem(e))}})(e),r.addEventListener(`click`,this._itemUsingEvent[e-1])}}_getBlankItemPos(){var e;for(e=1;e<this._itemBox.length+1;e++)if(this._itemBox[e-1]===0)return e;return L.ITEMBOX_IS_FULL}_updateEquipmentStatus(){var e,t=new b(0,0);for(e=0;e<L.ITEMBOX_SIZE;e++)this._itemBox[e]!==0&&(t.strength+=this._wwa.getObjectAttributeById(this._itemBox[e],L.ATR_STRENGTH),t.defence+=this._wwa.getObjectAttributeById(this._itemBox[e],L.ATR_DEFENCE));var n=t.minus(this._equipStatus);this._wwa.setStatusChangedEffect(n),this._equipStatus=t,this.updateStatusValueBox()}hasItem(e){for(var t=0;t<L.ITEMBOX_SIZE;t++)if(this._itemBox[t]===e)return!0;return!1}canUseItem(e){var t=this._itemBox[e-1];return!(t===0||this._wwa.getObjectAttributeById(t,L.ATR_MODE)===ne.NORMAL)}useItem(){var e=this._itemBox[this._readyToUseItemPos1To12-1];this._wwa.getObjectAttributeById(e,L.ATR_MODE)!==ne.NOT_DISAPPEAR&&this.removeItemByItemPosition(this._readyToUseItemPos1To12);var t=H(`item`+(this._readyToUseItemPos1To12-1));return setTimeout(()=>{t.classList.contains(`onpress`)&&t.classList.remove(`onpress`)},L.DEFAULT_FRAME_INTERVAL),this._wwa.setEvalCalcWwaNodeEarnedItem(e,this._readyToUseItemPos1To12),this._wwa.callUseItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),this._isReadyToUseItem=!1,this._readyToUseItemPos1To12=void 0,e}canHaveMoreItems(){return this._getBlankItemPos()!==L.ITEMBOX_IS_FULL}removeItemByItemPosition(e){var t;this._itemBox[e-1]!==0&&(this._wwa.getObjectAttributeById(this._itemBox[e-1],L.ATR_MODE)!==ne.NORMAL&&(t=Ve(`#item`+(e-1)+`>.item-click-border`),t.removeEventListener(`click`,this._itemUsingEvent[e-1]),t.style.display=`none`),this._itemBox[e-1]=0,this._updateEquipmentStatus(),this.updateItemBox())}removeItemByPartsID(e){var t;if(!this.hasItem(e))throw Error(`アイテムを持っていない`);for(var n=0;n<L.ITEMBOX_SIZE;n++)if(this._itemBox[n]===e){this._wwa.getObjectAttributeById(this._itemBox[n],L.ATR_MODE)!==ne.NORMAL&&(t=Ve(`#item`+n+`>.item-click-border`),t.removeEventListener(`click`,this._itemUsingEvent[n]),t.style.display=`none`),this._itemBox[n]=0,this._updateEquipmentStatus(),this.updateItemBox();return}}clearItemBox(){for(var e=1;e<=L.ITEMBOX_SIZE;e++)this.removeItemByItemPosition(e);this._updateEquipmentStatus(),this.updateItemBox()}hasGold(e){return this._status.gold>=e}payGold(e){if(!this.hasGold(e))throw Error(`お金が足りない`);this.setGold(this._status.gold-e)}earnGold(e){this.setGold(this._status.gold+e)}setPartsAppearedFlag(){this._partsAppeared=!0}clearPartsAppearedFlag(){this._partsAppeared=!1}isPartsAppearedTime(){return this._partsAppeared===!0}startBattleWith(e){this._isPlayerTurn=!0,this._battleFrameCounter=L.BATTLE_INTERVAL_FRAME_NUM,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=e,this._state=W.BATTLE}isFighting(){return this._state===W.BATTLE}isTurn(){return this._isPlayerTurn}getTurnNum(){return this._battleTurnLength}isBattleStartFrame(){return this._battleFrameCounter===L.BATTLE_INTERVAL_FRAME_NUM&&this._battleTurnLength===0}calcBattleResultForPlayerTurn(e,t,n=!1){return this._wwa.callUserDefinedBattleDamageFunction(`playerToEnemy`,(n||void 0)&&{playerStatus:e,enemyStatus:t})||{damage:this._calcDamageDefault(e,t)}}calcBattleResultForEnemyTurn(e,t,n=!1){return this._wwa.callUserDefinedBattleDamageFunction(`enemyToPlayer`,(n||void 0)&&{playerStatus:t,enemyStatus:e})||{damage:this._calcDamageDefault(e,t)}}_calcDamageDefault(e,t){let n=e.strength-t.defence;return n>0?n:0}fight(){if(!this.isFighting())throw Error(`バトルが開始されていません。`);if(this._battleTurnLength===0&&this._battleFrameCounter===L.BATTLE_INTERVAL_FRAME_NUM&&this._wwa.showMonsterWindow(),--this._battleFrameCounter>0)return;this._battleTurnLength++,this._wwa.isBattleSpeedIndexForQuickBattle(this._speedIndex)||this._battleTurnLength>L.BATTLE_SPEED_CHANGE_TURN_NUM?(this._battleTurnLength===1&&(this._wwa.playAttackSound(),this._wwa.vibration(!1)),this._battleFrameCounter=1):(this._battleFrameCounter=L.BATTLE_INTERVAL_FRAME_NUM,this._wwa.playAttackSound(),this._wwa.vibration(!0));var e=this.getStatus(),t=this._enemy.status;let n=!1;if(this._isPlayerTurn){if(this._battleTurnLength===1&&this._wwa.isUsingDefaultDamageCalcFunction()&&e.strength<=t.defence&&e.defence>=t.strength){this._enemy.battleEndProcess(),this._wwa.registerSystemMessagePageByKey(g.CANNOT_DAMAGE_MONSTER),this._battleTurnLength=0,this._enemy=null,this._state=W.CONTROLLABLE;return}let{damage:r,aborted:i}=this.calcBattleResultForPlayerTurn(e,t);this._enemy.damage(r),n=!!i,this._enemy.status.energy<=0&&(this._wwa.playSound(this._wwa.getObjectAttributeById(this._enemy.partsID,L.ATR_SOUND)),this.earnGold(t.gold),this._wwa.setStatusChangedEffect(new x(0,0,0,t.gold)),this._enemy.item===0?this._wwa.setPartsOnPosition(A.OBJECT,0,this._enemy.position):this._wwa.setPartsOnPosition(A.OBJECT,this._enemy.item,this._enemy.position),this._wwa.reserveAppearPartsInNextFrame(this._enemy.position,k.OBJECT,this._enemy.partsID),this._state=W.CONTROLLABLE,this._wwa.registerPageByMessage(this._enemy.message,{triggerParts:{id:this._enemy.partsID,type:A.OBJECT,position:this._enemy.position}}),this._enemy.battleEndProcess(),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null),this._enemy!==null&&(r===0?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0),this._isPlayerTurn=!1}else{let{damage:r,aborted:i}=this.calcBattleResultForEnemyTurn(t,e);this.damage(r),n=!!i,this._status.energy<=0&&(this.setEnergy(0),this._enemy.battleEndProcess(),this._state=W.CONTROLLABLE,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null,this._wwa.shouldApplyGameOver({isCalledByMacro:!1})&&this._wwa.gameover()),r===0?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0,this._isPlayerTurn=!0}(this._battleNoDamageTurnLength>L.FIGHT_DRAW_TURN||n)&&(this._enemy.battleEndProcess(),this._state=W.CONTROLLABLE,this._wwa.registerSystemMessagePageByKey(g.BATTLE_NOT_SETTLED),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null)}readyToUseItem(e){var t;if(!this.canUseItem(e))throw Error(`アイテムがないか、アイテムが使えません。`);t=this._itemBox[e-1],this._wwa.getObjectAttributeById(t,L.ATR_STRING),this._wwa.reserveAppearPartsInNextFrame(this._position.getPartsCoord(),k.OBJECT,t),this._readyToUseItemPos1To12=e,this._isReadyToUseItem=!0}isReadyToUseItem(){return this._isReadyToUseItem}getDrawingCenterPosition(){var e=this._position.getPartsCoord(),t=this._position.getOffsetCoord(),n=this._camera.getPosition(),r=n.getPartsCoord(),i=n.getOffsetCoord();return new S((e.x-r.x)*L.CHIP_SIZE+t.x-i.x+L.CHIP_SIZE/2,(e.y-r.y)*L.CHIP_SIZE+t.y-i.y+L.CHIP_SIZE/2)}mainFrameCount(){this._frameCount++}getFrameCount(){return this._frameCount}setFrameCount(e){return typeof e!=`number`&&(e=0),this._frameCount=e}getMoveCount(){return this._moves}setMoveCount(e){return this._moves=e}isMoveObjectAutoExecTime(){return this._moveObjectAutoExecTimer===0}setMoveMacroWaiting(e){e<0||(this._moveMacroWaitingRemainMoves=e,this._moveObjectAutoExecTimer=0)}resetMoveObjectAutoExecTimer(){this._moveObjectAutoExecTimer=L.CHIP_SIZE/fe[this._speedIndex],this._moveMacroWaitingRemainMoves--}decrementMoveObjectAutoExecTimer(){return this._moveMacroWaitingRemainMoves>=0&&this._moveObjectAutoExecTimer>0&&(this._moveObjectAutoExecTimer--,this._moveMacroWaitingRemainMoves===0&&this._moveObjectAutoExecTimer===0&&(this._afterMoveMacroFlag=!0)),0}isWaitingMoveMacro(){return this._moveMacroWaitingRemainMoves!==0||this._moveObjectAutoExecTimer!==0}decrementLookingAroundTimer(){return this._isPreparedForLookingAround&&this._lookingAroundTimer>0?--this._lookingAroundTimer:0}isLookingAround(){return this._isPreparedForLookingAround&&this._lookingAroundTimer===0}getSpeedIndex(){return this._speedIndex}speedUp(){return this._speedIndex=Math.min(L.MAX_SPEED_INDEX,this._speedIndex+1)}speedDown(){return this._speedIndex=Math.max(L.MIN_SPEED_INDEX,this._speedIndex-1)}setSpeedIndex(e){if(e<L.MIN_SPEED_INDEX||L.MAX_SPEED_INDEX<e)throw Error(`#set_speed の引数が異常です:`+e);return this._speedIndex=e,this._speedIndex}isPausing(){return this.isJumped()||this.isWaitingMessage()||this.isWaitingPasswordWindow()||this.isWaitingEstimateWindow()||this.isWaitingMoveMacro()||this.isFighting()}constructor(e,t,n,r,i,a,o){super(t),this.itemTransitioningClassName=`item-transitioning`,this.overwittenItemClassName=`item-overwritten`,this.overwittenItemSelector=`.${this.overwittenItemClassName}`,this.itemEffectStartTimers=Array(L.ITEMBOX_SIZE),this._status=r,this._equipStatus=new b(0,0),this._itemBox=Array(L.ITEMBOX_SIZE),this._itemBoxElement=Array(L.ITEMBOX_SIZE),this._itemUsingEvent=Array(L.ITEMBOX_SIZE);for(var s=0;s<this._itemBox.length;s++)this._itemBox[s]=0,this._itemBoxElement[s]=Ve(`#item`+s+`>.item-disp`);this.updateItemBox(),this._energyMax=i,this._dir=T.DOWN,this._isMovingImage=!1,this._wwa=e,this._state=W.CONTROLLABLE,this._camera=n,this._isPartsEventExecuted=!1,this._energyValueElement=Ve(`#disp-energy>.status-value-box`),this._strengthValueElement=Ve(`#disp-strength>.status-value-box`),this._defenceValueElement=Ve(`#disp-defence>.status-value-box`),this._goldValueElement=Ve(`#disp-gold>.status-value-box`),this._isReadyToUseItem=!1,this._isClickableItemGot=!1,this._moves=a,this._moveMacroWaitingRemainMoves=0,this._moveObjectAutoExecTimer=0,this.updateStatusValueBox(),this._partsAppeared=!1,this._afterMoveMacroFlag=!1,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME,this._speedIndex=o,this._messageDelayFrameCount=0,this._battleNoDamageTurnLength=0}},Zn=class e{constructor(e,t,n,r,i,a,o){this._partsID=e,this._position=t,this._imgCoord=n,this._status=r,this._message=i,this._item=a,this._battleEndCallback=o}get partsID(){return this._partsID}get position(){return this._position}get imgCoord(){return this._imgCoord}get status(){return this._status}get message(){return this._message}get item(){return this._item}damage(e){this._status.energy=Math.max(0,this._status.energy-e)}battleEndProcess(){this._battleEndCallback?.()}setStatus(e){e.energy!==null&&(this._status.energy=e.energy),e.strength!==null&&(this._status.strength=e.strength),e.defence!==null&&(this._status.defence=e.defence)}clone(){return new e(this._partsID,this._position.clone(),this._imgCoord.clone(),this._status.clone(),this._message,this._item,this._battleEndCallback)}},Qn=class{constructor(e,t,n,r,i){this._player=e,this._objectID=t,this._srcPos=n,this._destPos=r,this._dir=i,this._currentPos=this._srcPos.clone()}update(){var e=this._player.getSpeedIndex();return this._currentPos=this._currentPos.getNextFramePosition(this._dir,fe[e],fe[e]),this._currentPos}get isAchievedDestination(){return this._currentPos.equals(this._destPos)}get currentPosition(){return this._currentPos}get beforePosition(){return this._srcPos}get destination(){return this._destPos}get objID(){return this._objectID}},$n=class{constructor(e,t){this._wwa=e,this._player=t,this.clear()}add(e,t,n,r){this._queue.push(new Qn(this._player,e,t,n,r))}update(){for(var e=[],t=[],n=0;n<this._queue.length;n++)this._queue[n].update(),this._queue[n].isAchievedDestination?(e.push(this._queue[n]),this._wwa.setPartsOnPosition(A.OBJECT,0,this._queue[n].beforePosition.getPartsCoord()),this._wwa.setPartsOnPosition(A.OBJECT,this._queue[n].objID,this._queue[n].destination.getPartsCoord())):t.push(this._queue[n]);return this._queue=t,e}clear(){this._queue=[]}get objectMovingData(){return this.objectMovingData}getOffsetByBeforePartsCoord(e){var t=this._queue.filter(t=>t.beforePosition.getPartsCoord().equals(e));return t.length===0?null:t[0].currentPosition.getOffsetCoord()}},er=(e,t)=>{if(e[0]===`+`){let n=parseInt(e.substring(1,10));if(Number.isNaN(n))throw Error(`+ 以降の文字列は数値形式で記載してください。`);return t+n}else if(e[0]===`-`){let n=parseInt(e.substring(1,10));if(Number.isNaN(n))throw Error(`- 以降の文字列は数値形式で記載してください。`);return t-n}let n=parseInt(e,10);if(Number.isNaN(n))throw Error(`数値形式ではないため、解析できません。`);return n},tr=class{constructor(e,t,n,r){this._wwa=e,this._triggerParts=t,this.macroType=n,this.macroArgs=r}isJunction(){return[I.IF,I.ELSE_IF,I.ELSE,I.END_IF].includes(this.macroType)}execute(){try{switch(this.macroType){case I.IMGPLAYER:return this._executeImgPlayerMacro(),{};case I.IMGYESNO:return this._executeImgYesNoMacro(),{};case I.HPMAX:return this._executeHPMaxMacro(),{};case I.SAVE:return this._executeSaveMacro(),{};case I.ITEM:return this._executeItemMacro(),{};case I.DEFAULT:return this._executeDefaultMacro(),{};case I.OLDMAP:return this._executeOldMapMacro(),{};case I.PARTS:return this._executePartsMacro(),{};case I.MOVE:return this._executeMoveMacro(),{};case I.MAP:return this._executeMapMacro(1),{};case I.DIRMAP:return this._executeDirMapMacro(),{};case I.IMGFRAME:return this._executeImgFrameMacro(),{};case I.IMGBOM:return this._executeImgBomMacro(),{};case I.DELPLAYER:return this._executeDelPlayerMacro(),{};case I.FACE:return this._executeFaceMacro(),{};case I.EFFECT:return this._executeEffectMacro(),{};case I.GAMEOVER:return this._executeGameOverMacro(),{};case I.IMGCLICK:return this._executeImgClickMacro(),{};case I.STATUS:{let{isGameOver:e}=this._executeStatusMacro();return{isGameOver:e}}case I.EFFITEM:return this._executeEffItemMacro(),{};case I.COLOR:return this._executeColorMacro(),{};case I.WAIT:return this._executeWaitMacro(),{};case I.SOUND:return this._executeSoundMacro(),{};case I.GAMEPAD_BUTTON:return this._executeGamePadButtonMacro(),{};case I.OLDMOVE:return this._executeOldMoveMacro(),{};case I.JUMPGATE:return this._executeJumpGateMacro(),{};case I.RECPOSITION:return this._executeRecPositionMacro(),{};case I.JUMPRECPOSITION:return this._executeJumpRecPositionMacro(),{};case I.CONSOLE_LOG:return this._executeConsoleLogMacro(1),{};case I.COPY_HP_TO:return this._executeCopyHpToMacro(),{};case I.SET_HP:{let{isGameOver:e}=this._executeSetHPMacro();return{isGameOver:e}}case I.COPY_HPMAX_TO:return this._executeCopyHpMaxToMacro(),{};case I.SET_HPMAX:return this._executeSetHpMaxMacro(),{};case I.COPY_AT_TO:return this._executeCopyAtToMacro(),{};case I.SET_AT:return this._executeSetAtMacro(),{};case I.COPY_DF_TO:return this._executeCopyDfToMacro(),{};case I.SET_DF:return this._executeSetDfMacro(),{};case I.COPY_MONEY_TO:return this._executeCopyMoneyToMacro(),{};case I.SET_MONEY:return this._executeSetMoneyMacro(),{};case I.COPY_STEP_COUNT_TO:return this._executeSetStepCountMacro(),{};case I.VAR_SET_VAL:return this._executeVarSetValMacro(),{};case I.VAR_SET:return this._executeVarSetMacro(),{};case I.VAR_ADD:return this._executeVarAddMacro(),{};case I.VAR_SUB:return this._executeVarSubMacro(),{};case I.VAR_MUL:return this._executeVarMulMacro(),{};case I.VAR_DIV:return this._executeVarDivMacro(),{};case I.VAR_MOD:return this._executeVarModMacro(),{};case I.VAR_SET_RAND:return this._executeVarSetRandMacro(),{};case I.GAME_SPEED:return this._executeGameSpeedMacro(),{};case I.SHOW_STR:return{};case I.SHOW_STR2:return{};case I.IF:return{};case I.LEGACY_IF:return this._executeLegacyIfMacro(),{};case I.ELSE_IF:return{};case I.ELSE:return{};case I.END_IF:return{};case I.SET_SPEED:return this._executeSetSpeedMacro(),{};case I.COPY_TIME_TO:return this._executeCopyTimeToMacro(),{};case I.HIDE_STATUS:return this._executeHideStatusMacro(),{};case I.VAR_MAP:return this._executeVarMapMacro(),{};case I.NO_GAMEOVER:return this._executeNoGameOverMacro(),{};case I.SET:{let{isGameOver:e}=this._executeSetMacro();return{isGameOver:e}}case I.MAP2:return this._executeMapMacro(2),{};case I.CONSOLE_LOG2:return this._executeConsoleLogMacro(2),{};case I.DELAYBGM:return this._executeDelayBgmMacro(),{};case I.SYSMSG:return this._executeSysMsgMacro(),{};case I.PICTURE:return this._executePictureMacro(),{};default:return console.log(`不明なマクロIDが実行されました:`+this.macroType),{}}}catch{}}_concatEmptyArgs(e){if(this.macroArgs.length<e){for(var t=Array(e-this.macroArgs.length),n=0;n<t.length;n++)t[n]=``;this.macroArgs=this.macroArgs.concat(t)}}_evaluateIntValue(e,t=0){let n=this.macroArgs[e];if(n===``)return t;let r=Number(n),i=r>=0?Math.floor(r):Math.ceil(r);return isNaN(i)?Jt(n,this._wwa.generateTokenValues(this._triggerParts),t):i}_executeJumpGateMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.forcedJumpGate(e,t)}_executeRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.recUserPosition(e,t)}_executeJumpRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.jumpRecUserPosition(e,t)}_executeConsoleLogMacro(e){this._concatEmptyArgs(1);let t=this._evaluateIntValue(0);switch(e){case 1:this._wwa.outputUserVar(t);return;case 2:console.log(`${this.macroArgs[0]} = ${t}`);return}}_executeCopyHpToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHP(e)}_executeCopyHpMaxToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHPMAX(e)}_executeCopyAtToMacro(){this._concatEmptyArgs(2);let e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarAT(e,t)}_executeCopyDfToMacro(){this._concatEmptyArgs(2);let e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarDF(e,t)}_parseStatusKind(e){switch(e){case 0:return`all`;case 1:return`bare`;case 2:return`equipment`;default:return`all`}}_executeCopyMoneyToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarMONEY(e)}_executeSetHPMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);return this._wwa.setHPUserVar(e,!0)}_executeSetHpMaxMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setHPMAXUserVar(e)}_executeSetAtMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setATUserVar(e)}_executeSetDfMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setDFUserVar(e)}_executeSetMoneyMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMONEYUserVar(e)}_executeSetStepCountMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarStep(e)}_executeVarSetValMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserVarVal(e,t)}_executeVarSetMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValOtherUserVal(e,t)}_executeVarAddMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValAdd(e,t)}_executeVarSubMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValSub(e,t)}_executeVarMulMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMul(e,t)}_executeVarDivMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValDiv(e,t)}_executeVarModMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMod(e,t)}_executeVarSetRandMacro(){this._concatEmptyArgs(3);let e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,0);this._wwa.setUserValRandNum(e,t,n)}_executeGameSpeedMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.speedChangeJudge(e)}_executeLegacyIfMacro(){for(var e=Array(11),t=0;t<10;t++)e[t]=this.macroArgs[t];this._wwa.userVarUserIf(this._triggerParts.position,e)}_executeSetSpeedMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setPlayerSpeedIndex(e-1)}_executeCopyTimeToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarPlayTime(e)}_executeHideStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1)!==0;this._wwa.hideStatus(e,t)}_executeVarMapMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this.macroArgs[1],n=this.macroArgs[2],r=this._evaluateIntValue(3,A.OBJECT);if(e<0)throw Error(`入力変数が不正です`);this._wwa.varMap(this._triggerParts.position,t,n,e,r)}_executeImgPlayerMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerImgCoord(new S(e,t))}_executeImgYesNoMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setYesNoImgCoord(new S(e,t))}_executeHPMaxMacro(){this._concatEmptyArgs(1);var e=Math.max(0,this._evaluateIntValue(0));this._wwa.setPlayerEnergyMax(e)}_executeSaveMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.disableSave(e)}_executeItemMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerGetItem(e,t)}_executeDefaultMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setObjectNotCollapseOnPartsOnPlayer(e)}_executeOldMapMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setOldMap(e)}_executePartsMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,A.OBJECT),r=this._evaluateIntValue(3);if(n!==A.OBJECT&&n!==A.MAP)throw Error(`パーツ種別が不明です`);if(r!==0&&r!==1&&(r=1),e<0||t<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(e>=this._wwa.getObjectPartsNum()||t>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(e>=this._wwa.getMapPartsNum()||t>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this._wwa.replaceParts(e,t,n,!!r)}_executeMoveMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMoveMacroWaitingToPlayer(e)}_executeMapMacro(e){this._concatEmptyArgs(4);let t=this._evaluateIntValue(0);var n=this._evaluateIntValue(3,A.OBJECT);if(t<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(t>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(t>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);if(e===1){let e=this.macroArgs[1],r=this.macroArgs[2];this._wwa.appearPartsEval(this._triggerParts.position,e,r,t,n)}else if(e===2){let e=this._evaluateIntValue(1),r=this._evaluateIntValue(2);if(isNaN(e)||isNaN(r))throw Error(`出現先座標が不正です`);this._wwa.appearPartsEval(this._triggerParts.position,`${e}`,`${r}`,t,n)}}_executeDirMapMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,A.OBJECT);if(isNaN(e)||isNaN(t)||isNaN(n))throw Error(`引数が整数ではありません`);if(e<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(e>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(e>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this._wwa.appearPartsByDirection(t,e,n)}_executeImgFrameMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2);if(t<0||n<0)throw Error(`座標は正でなければなりません。`);if(e===de.ENERGY||e===de.STRENGTH||e===de.DEFENCE||e===de.GOLD)this._wwa.setStatusIconCoord(e,new S(t,n));else if(e===de.WIDE_CELL_ROW)this._wwa.setWideCellCoord(new S(t,n));else if(e===de.ITEM_BG)this._wwa.setItemboxBackgroundPosition({x:t,y:n});else if(e===de.MAIN_FRAME)this._wwa.setFrameCoord(new S(t,n));else throw Error(`種別が不正です。`)}_executeImgBomMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`座標は正でなければなりません。`);this._wwa.setBattleEffectCoord(new S(e,t))}_executeDelPlayerMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setDelPlayer(!!e)}_executeFaceMacro(){this._concatEmptyArgs(6);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2),r=this._evaluateIntValue(3),i=this._evaluateIntValue(4),a=this._evaluateIntValue(5),o;if(e<0||t<0||n<0||r<0||i<0||a<0)throw Error(`各引数は0以上の整数でなければなりません。`);o=new ee(new S(e,t),new S(n,r),new S(i,a)),this._wwa.addFace(o)}_executeEffectMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);if(e<0)throw Error(`待ち時間は0以上の整数でなければなりません。`);if(e===0){this._wwa.stopEffect();return}for(var t=[],n=1;n<this.macroArgs.length;n+=2){var r=this._evaluateIntValue(n),i=0;if(r<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);if(n+1===this.macroArgs.length)throw Error(`画像のパーツ座標指定で、Y座標が指定されていません。`);if(i=this._evaluateIntValue(n+1),i<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);t.push(new S(r,i))}this._wwa.setEffect(e,t)}_executeGameOverMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||e>=this._wwa.getMapWidth()||t<0||t>=this._wwa.getMapWidth())throw Error(`マップの範囲外が指定されています!`);this._wwa.setGameOverPosition(new S(e,t))}_executeImgClickMacro(){if(this._concatEmptyArgs(2),this.macroArgs.length<1)throw Error(`引数が少なすぎます`);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`引数が0以上の整数ではありません`);this._wwa.setImgClick(new S(e,t))}_executeEffItemMacro(){if(this.macroArgs.length<1)throw Error(`引数が少なすぎます`);var e=this._evaluateIntValue(0);this._wwa.updateItemEffectEnabled(!!e)}_executeStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||4<e)throw Error(`ステータス種別が範囲外です。`);return this._wwa.setPlayerStatus(e,t,!0)}_executeColorMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2),r=this._evaluateIntValue(3);if(e<0||e>5)throw Error(`種別は0から5までです`);if(t<0||t>255||n<0||n>255||r<0||r>255)throw Error(`色が範囲外です`);this._wwa.changeStyleRule(e,t,n,r)}_executeWaitMacro(){throw Error(`Not implemented!`)}_executeSoundMacro(){this._concatEmptyArgs(2);let e=parseInt(this.macroArgs[0]),t=parseInt(this.macroArgs[1]);this._wwa.playSound(e,{bgmDelayDurationMs:t})}_executeGamePadButtonMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`各引数は0以上の整数でなければなりません。`);if(t>L.ITEMBOX_SIZE)throw Error(`アイテムボックス上限を超えた数値が指定されました。`);this._wwa.setGamePadButtonItemTable(e,t)}_executeOldMoveMacro(){this._concatEmptyArgs(1);let e=!!this._evaluateIntValue(0);this._wwa.setOldMove(e)}_executeNoGameOverMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setGameOverPolicy(e)}_executeSetMacro(){return this._wwa.execSetMacro(this.macroArgs[0],{triggerParts:this._triggerParts})}_executePictureMacro(){if(this._concatEmptyArgs(3),this.macroArgs.length<1)throw Error(`引数が少なすぎます`);let e=this._evaluateIntValue(0),t=this.macroArgs[1].length>0?this.macroArgs[1]:`+0`;if(t===`0`){this._wwa.deletePictureRegistry(e);return}let n=er(t,this._triggerParts.id);if(n===0)throw Error(`パーツ番号の相対値算出で0が検出されました。ピクチャを消去する場合は0のまま指定してください。`);if(n<0)throw Error(`パーツ番号は0以上の整数でなければなりません。`);let r=this._evaluateIntValue(2,A.OBJECT);this._wwa.setPictureRegistry(e,n,r,this._triggerParts.position)}_executeDelayBgmMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setBgmDelay(e)}_executeSysMsgMacro(){this._concatEmptyArgs(2);let e=this.resolveSystemMessageKeyFromMacroArg(this.macroArgs[0]);if(!e)throw Error(`該当するシステムメッセージの定義がありません`);let t=this.macroArgs[1]===``?void 0:this.macroArgs[1].replaceAll(`\\n`,`
|
|
31
|
+
file name:`+this._fileName)}),this._image.src=this._fileName,this._isLoaded=!0)}createFrame(){this._frameCanvas.clear(),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y,0,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+2,0,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+2,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE);for(var e=1;e<L.H_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y,L.CHIP_SIZE*e,0),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+1,this._frameCoord.y+2,L.CHIP_SIZE*e,L.MAP_WINDOW_HEIGHT-L.CHIP_SIZE);for(var e=1;e<L.V_PARTS_NUM_IN_WINDOW-1;e++)this._frameCanvas.drawCanvas(this._image,this._frameCoord.x,this._frameCoord.y+1,0,L.CHIP_SIZE*e),this._frameCanvas.drawCanvas(this._image,this._frameCoord.x+2,this._frameCoord.y+1,L.MAP_WINDOW_WIDTH-L.CHIP_SIZE,L.CHIP_SIZE*e)}updateEffects(e){var t;if(e){var n=e.length,r;for(t=0;t<n;t++){var i=e[t];r=this._effectCanvases[t],r?r.clear():r=this._effectCanvases[t]=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0);for(var a=0;a<L.V_PARTS_NUM_IN_WINDOW;a++)for(var o=0;o<L.H_PARTS_NUM_IN_WINDOW;o++)r.drawCanvas(this._image,i.x,i.y,o*L.CHIP_SIZE,a*L.CHIP_SIZE)}}}restorePictures(e){this.picture.clearAllPictures(),e.forEach(e=>{this.picture.registerPicture(e)})}updateAllPicturesCache(e=!0){this.picture.updateAllPicturesCache(this._image,e)}updatePicturesAnimation(e=!0){this.picture.updatePicturesAnimation(this._image,e)}drawFrame(){this._ctx.drawImage(this._frameCanvas.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE,0,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE),this._ctx.drawImage(this._frameCanvas.cvs,0,L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2),0,L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2)),this._ctx.drawImage(this._frameCanvas.cvs,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2),L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-1),L.CHIP_SIZE,L.CHIP_SIZE,L.CHIP_SIZE*(L.H_PARTS_NUM_IN_WINDOW-2))}drawEffect(e){var t=this._effectCanvases[e];t&&this._ctx.drawImage(t.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}drawPictures(){this.picture.forEachPictures(e=>{let{x:t,y:n,width:r,height:i}=e.getDrawPictureCoords();this._ctx.drawImage(e.canvasImage,0,0,r,i,t,n,r,i)})}drawCanvas(e,t,n,r){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE,L.CHIP_SIZE,n,r,L.CHIP_SIZE,L.CHIP_SIZE)}drawCanvasWithSize(e,t,n,r,i,a){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE*n,L.CHIP_SIZE*r,i,a,L.CHIP_SIZE*n,L.CHIP_SIZE*r)}drawCanvasWithUpperYLimit(e,t,n,r,i){if(!this._isLoaded)throw Error(`No image was loaded.`);var a=Math.max(0,r+L.CHIP_SIZE-i);a>=L.CHIP_SIZE||this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t,L.CHIP_SIZE,L.CHIP_SIZE-a,n,r,L.CHIP_SIZE,L.CHIP_SIZE)}copyCanvas(e,t){return(n,r,i,a,o)=>{if(!this._isLoaded)throw Error(`No image was loaded.`);let s=Math.max(0,t(a,o));s>=L.CHIP_SIZE||e.ctx.drawImage(this._image,L.CHIP_SIZE*n,L.CHIP_SIZE*r+s,L.CHIP_SIZE,L.CHIP_SIZE-s,i,a+s,L.CHIP_SIZE,L.CHIP_SIZE)}}copyBackCanvasWithUpperYLimit(e,t,n,r,i){this.copyCanvas(this._backCanvas,(e,t)=>e+L.CHIP_SIZE-t)(e,t,n,r,i)}copyBackCanvasWithLowerYLimit(e,t,n,r,i){this.copyCanvas(this._backCanvas,(e,t)=>t-e)(e,t,n,r,i)}copyObjectCanvasWithUpperYLimit(e,t,n,r,i,a){this.copyCanvas(this._objectCanvases[e],(e,t)=>e+L.CHIP_SIZE-t)(t,n,r,i,a)}copyObjectCanvasWithLowerYLimit(e,t,n,r,i,a){this.copyCanvas(this._objectCanvases[e],(e,t)=>t-e)(t,n,r,i,a)}drawBackCanvas(){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._backCanvas.cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}drawObjectCanvas(e){if(!this._isLoaded)throw Error(`No image was loaded.`);this._ctx.drawImage(this._objectCanvases[e].cvs,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,0,0,L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW)}clearBackCanvas(){this._backCanvas.clear()}clearBackCanvasWithLowerYLimit(e){this._backCanvas.clearRectWithLowerYLimit(e)}clearObjectCanvases(){var e;for(e=0;e<2;e++)this._objectCanvases[e].clear()}clearObjectCanvasesWithLowerYLimit(e){var t;for(t=0;t<2;t++)this._objectCanvases[t].clearRectWithLowerYLimit(e)}drawCanvasWithLowerYLimit(e,t,n,r,i){if(!this._isLoaded)throw Error(`No image was loaded.`);var a=Math.max(0,i-r);a>=L.CHIP_SIZE||this._ctx.drawImage(this._image,L.CHIP_SIZE*e,L.CHIP_SIZE*t+a,L.CHIP_SIZE,L.CHIP_SIZE-a,n,r+a,L.CHIP_SIZE,L.CHIP_SIZE)}clearCanvas(e,t,n,r){this._ctx.clearRect(e,t,n,r)}drawBase(e,t,n,r){this._ctx.fillStyle=`#9E9E9E`,this._ctx.fillRect(e,t,n,r)}setFrameImage(e){this._frameCoord=e,this.createFrame()}constructor(e,t,n,r,i,a){this._isLoaded=!1,this.mapCache=void 0,this.mapObjectCache=void 0,this.mapCacheYLimit=0,this._frameCanvas=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0),this._backCanvas=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!1),this._objectCanvases=[],this._effectCanvases=[],this.picture=new Wn(r,i);var o;for(o=0;o<2;o++)this._objectCanvases[o]=new Gn(L.CHIP_SIZE*L.V_PARTS_NUM_IN_WINDOW,L.CHIP_SIZE*L.H_PARTS_NUM_IN_WINDOW,!0);this._ctx=e,this._fileName=t,this._loadCompleteCallBack=a,this._load(),this._frameCoord=n.clone(),this.cpPartsLog=new S(0,0)}},qn=class{constructor(e){this._position=null,this.reset(e)}setPlayer(e){this._player=e}isResetting(){return this._isResetting}getPosition(){return this._position}getPreviousPosition(){return this._positionPrev}resetPreviousPosition(){this._positionPrev=null}move(e){var t=fe[this._player.getSpeedIndex()];this._position=this._position.getNextFramePosition(e,t*(L.H_PARTS_NUM_IN_WINDOW-1),t*(L.V_PARTS_NUM_IN_WINDOW-1))}getTransitionStepNum(){return this._transitionStep}advanceTransitionStepNum(){return++this._transitionStep,this._transitionStep===L.V_PARTS_NUM_IN_WINDOW&&(this._isResetting=!1,this._transitionStep=0),this._transitionStep}isFinalStep(){if(this._isResetting===!1)throw Error(`リセット中ではありません。`);return this._transitionStep===L.V_PARTS_NUM_IN_WINDOW-1}reset(e){this._positionPrev=this._position,this._position=e.getDefaultCameraPosition(),this._transitionStep=0,this._isResetting=!0}},Jn=class{getPosition(){return this._position}constructor(e){this._position=e}},Yn=class extends Jn{constructor(e){super(e)}},W=function(e){return e[e.CONTROLLABLE=0]=`CONTROLLABLE`,e[e.MOVING=1]=`MOVING`,e[e.CAMERA_MOVING=2]=`CAMERA_MOVING`,e[e.MESSAGE_WAITING=3]=`MESSAGE_WAITING`,e[e.MANUAL_PAUSE=4]=`MANUAL_PAUSE`,e[e.LOCALGATE_JUMPED=5]=`LOCALGATE_JUMPED`,e[e.BATTLE=6]=`BATTLE`,e[e.ESTIMATE_WINDOW_WAITING=7]=`ESTIMATE_WINDOW_WAITING`,e[e.PASSWORD_WINDOW_WAITING=8]=`PASSWORD_WINDOW_WAITING`,e[e.LOCALGATE_JUMPED_WITH_MESSAGE=9]=`LOCALGATE_JUMPED_WITH_MESSAGE`,e}({}),Xn=class extends Yn{move(){if(this.isControllable()){this.controll(this._dir);return}if(this._state===W.CAMERA_MOVING){try{this._camera.move(this._dir)}catch{}this._isOnCameraStopPosition()&&(this._state=W.CONTROLLABLE,this._wwa.callCameraMoveUserDefineFunction())}else if(this._state===W.MOVING){try{var e=this._position.getNextFramePosition(this._dir,fe[this._speedIndex],fe[this._speedIndex])}catch{}e.isJustPosition()&&(this._state=W.CONTROLLABLE,this.toggleMovingImage(),this._moves++,this._isPartsEventExecuted=!1,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._wwa.callMoveUserDefineFunction()),this._position=e}}controll(e){var t,n;if(this.isControllable()){this._isPreparedForLookingAround=!1,this._dir=e;try{t=this._position.getNextFramePosition(this._dir,fe[this._speedIndex],fe[this._speedIndex]),n=this._position.getNextJustPosition(e)}catch{return}if(this._isOnCameraMovingPosition()){if(this._wwa.getMapIdByPosition(n)!==0||this._wwa.isOldMap()||this._wwa.debug)try{this._camera.move(this._dir),this._state=W.CAMERA_MOVING}catch{this._state=W.CONTROLLABLE}return}if(!this.canMoveTo(n)){this._wwa.getMapTypeByPosition(n)===L.MAP_WALL&&this._wwa.checkMap(n.getPartsCoord()),this._wwa.checkObject(n.getPartsCoord());return}this._position=t,this._state=W.MOVING,this._wwa.getMapAttributeByPosition(this._position.getNextJustPosition(e),L.ATR_TYPE)!==L.MAP_LOCALGATE&&this._wwa.moveObjects(!0)}}setDir(e){this._isPreparedForLookingAround=!1,this._dir=e}canMoveTo(e){return e===null?!1:this._wwa.debug?!0:(this._wwa.getMapWidth(),e.getPartsCoord(),e.getOffsetCoord(),this._wwa.getMapIdByPosition(e)===0&&!this._wwa.isOldMap()||this._wwa.getMapTypeByPosition(e)===L.MAP_WALL?!1:this._wwa.getObjectIdByPosition(e)===0||this._wwa.getObjectTypeByPosition(e)===L.OBJECT_NORMAL&&this._wwa.getObjectAttributeByPosition(e,L.ATR_MODE)===L.PASSABLE_OBJECT?!0:this._wwa.getObjectTypeByPosition(e)===L.OBJECT_DOOR&&this._wwa.getObjectAttributeByPosition(e,L.ATR_NUMBER)===L.PASSABLE_OBJECT?!this.hasItem(this._wwa.getObjectAttributeByPosition(e,L.ATR_ITEM)):!1)}isMoving(){return this._state==W.MOVING||this._state==W.CAMERA_MOVING}_isOnCameraMovingPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x===L.H_PARTS_NUM_IN_WINDOW-1&&this._dir===T.RIGHT||t.x===e.x&&this._dir===T.LEFT||t.y-e.y===L.V_PARTS_NUM_IN_WINDOW-1&&this._dir===T.DOWN||t.y===e.y&&this._dir===T.UP}_isOnCameraStopPosition(){var e=this._camera.getPosition().getPartsCoord(),t=this.getPosition().getPartsCoord();return t.x-e.x===L.H_PARTS_NUM_IN_WINDOW-1&&this._dir===T.LEFT||t.x===e.x&&this._dir===T.RIGHT||t.y-e.y===L.V_PARTS_NUM_IN_WINDOW-1&&this._dir===T.UP||t.y===e.y&&this._dir===T.DOWN}isControllable(){var e=this._afterMoveMacroFlag;return this._afterMoveMacroFlag=!1,this._state===W.CONTROLLABLE&&!this._partsAppeared&&(this._wwa.getMapTypeByPosition(this._position)!==L.MAP_LOCALGATE&&this._wwa.getMapTypeByPosition(this._position)!==L.MAP_URLGATE||!this._wwa.isPrevFrameEventExecuted())&&this._moveMacroWaitingRemainMoves===0&&this._moveObjectAutoExecTimer===0&&!e&&this._wwa.canInput()}getCopyOfItemBox(){return this._itemBox.slice()}getDir(){return this._dir}isMovingImage(){return this._isMovingImage}toggleMovingImage(){this._isMovingImage?this._isMovingImage=!1:this._isMovingImage=!0}getEnergyMax(){return this._energyMax}isJumped(){return this._state===W.LOCALGATE_JUMPED||this._state===W.LOCALGATE_JUMPED_WITH_MESSAGE}setMessageWaiting(){this._state=W.MESSAGE_WAITING}setManualPause(e,t){this.isControllable()&&(this._state=W.MANUAL_PAUSE,this._afterEnterExecFuncName=e,this._noMessageWaitingExecFuncNames=t)}isWaitingMessageOrManualPause(){return[W.MESSAGE_WAITING,W.MANUAL_PAUSE].includes(this._state)}isWaitingMessage(){return this._state===W.MESSAGE_WAITING}isManualPause(){return this._state===W.MANUAL_PAUSE}getAfterEnterExecFuncName(){return this._afterEnterExecFuncName}getNoMessageWaitExecFuncNames(){return this._noMessageWaitingExecFuncNames}isDelayFrame(){return this._messageDelayFrameCount>0}updateDelayFrame(){this._messageDelayFrameCount--}setDelayFrame(){this._messageDelayFrameCount=1}clearWaitingMessageOrManualPause(){let e=this.isWaitingMessageOrManualPause();!e&&this._state!==W.LOCALGATE_JUMPED_WITH_MESSAGE||(e?this._state=W.CONTROLLABLE:this._state===W.LOCALGATE_JUMPED_WITH_MESSAGE&&(this._state=W.LOCALGATE_JUMPED),this._isPartsEventExecuted=!0,this._isPreparedForLookingAround&&(this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME))}setEstimateWindowWating(){this._state=W.ESTIMATE_WINDOW_WAITING}isWaitingEstimateWindow(){return this._state===W.ESTIMATE_WINDOW_WAITING}clearEstimateWindowWaiting(){this._state===W.ESTIMATE_WINDOW_WAITING&&(this._state=W.CONTROLLABLE)}setPasswordWindowWating(){this._state=W.PASSWORD_WINDOW_WAITING}isWaitingPasswordWindow(){return this._state===W.PASSWORD_WINDOW_WAITING}clearPasswordWindowWaiting(){this._state===W.PASSWORD_WINDOW_WAITING&&(this._state=W.CONTROLLABLE)}isPartsEventExecuted(){return this._isPartsEventExecuted}resetEventExecutionInfo(){this._isPartsEventExecuted=!1}getLastExecPartsIDOnSamePosition(e){return e===A.MAP?this._samePosLastExecutedMapID:this._samePosLastExecutedObjID}setLastExecInfoOnSamePosition(e,t){e===A.MAP?this._samePosLastExecutedMapID=t:this._samePosLastExecutedObjID=t}processAfterJump(){this._state!==W.LOCALGATE_JUMPED&&this._state!==W.LOCALGATE_JUMPED_WITH_MESSAGE||--this._jumpWaitFramesRemain===0&&(this._state=this._state===W.LOCALGATE_JUMPED?W.CONTROLLABLE:W.MESSAGE_WAITING)}jumpTo(e){var t=this._camera.getPosition();return this.getPosition(),this._position.equals(e)?!1:(this._position=e,e.isInCameraRange(this._camera,!0)||this._camera.reset(e),this._state=this._state===W.MESSAGE_WAITING?W.LOCALGATE_JUMPED_WITH_MESSAGE:W.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=L.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,e.hasLocalGate()?this._dir=T.DOWN:e.getPartsCoord().y<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(T.DOWN).hasLocalGate()?this._dir=T.UP:e.getPartsCoord().y>=1&&e.getNextJustPosition(T.UP).hasLocalGate()?this._dir=T.DOWN:e.getPartsCoord().x<=this._wwa.getMapWidth()-2&&e.getNextJustPosition(T.RIGHT).hasLocalGate()?this._dir=T.LEFT:e.getPartsCoord().x>=1&&e.getNextJustPosition(T.LEFT).hasLocalGate()?this._dir=T.RIGHT:this._dir=T.DOWN,this._camera.getPosition().equals(t)||(this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME),this._wwa.callJumpGateUserDefineFunction(),!0)}systemJumpTo(e){this._position=e,this._camera.reset(e),this._camera.resetPreviousPosition(),this._state=W.LOCALGATE_JUMPED,this._jumpWaitFramesRemain=L.LOCALGATE_PLAYER_WAIT_FRAME,this._samePosLastExecutedMapID=void 0,this._samePosLastExecutedObjID=void 0,this._dir=T.DOWN,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME}addStatusAll(e){return this._status.add(e),this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),this._status}setEnergyMax(e){return this._energyMax=e,e!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}setEnergy(e){return this._status.energy=e,this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox(),e}damage(e){this._status.energy=Math.max(0,this._status.energy-e),this.isDead()&&(this._status.energy=0),this._energyMax!==0&&(this._status.energy=Math.min(this._status.energy,this._energyMax)),this.updateStatusValueBox()}setStrength(e){return this._status.strength=e,this.updateStatusValueBox(),e}setDefence(e){return this._status.defence=e,this.updateStatusValueBox(),e}setGold(e){return this._status.gold=e,this.updateStatusValueBox(),e}getStatus(){return this._status.plus(this._equipStatus)}getStatusWithoutEquipments(){return this._status.plus(new b(0,0))}getStatusOfEquipments(){return this._equipStatus.plus(new b(0,0))}updateStatusValueBox(){let e=this._status.plus(this._equipStatus);this._energyValueElement.textContent=this._wwa.isVisibleStatus(`energy`)?String(e.energy):``,this._strengthValueElement.textContent=this._wwa.isVisibleStatus(`strength`)?String(e.strength):``,this._defenceValueElement.textContent=this._wwa.isVisibleStatus(`defence`)?String(e.defence):``,this._goldValueElement.textContent=this._wwa.isVisibleStatus(`gold`)?String(e.gold):``,this._wwa._messageWindow?.update(),this._wwa.updateScore()}updateItemBox(e){for(let t=0;t<this._itemBoxElement.length;t++){let n=this._itemBoxElement[t],r=Be(`#item`+t);if(this._itemBox[t]===0){n.style.backgroundPosition=`-40px 0px`,this.disposeItemEffect(t,this._itemBoxElement[t],r);continue}let i=this._wwa.getObjectCropXById(this._itemBox[t]),a=this._wwa.getObjectCropYById(this._itemBox[t]);if(!e||t!==e.insertPos-1){n.style.backgroundPosition=`-`+i+`px -`+a+`px`,this.disposeItemEffect(t,this._itemBoxElement[t],r);continue}let o=e.itemScreenPixelCoord.x-e.itemBoxScreenPixelCoord.x,s=e.itemScreenPixelCoord.y-e.itemBoxScreenPixelCoord.y,c=-o*L.DEFAULT_FRAME_INTERVAL/L.ITEM_EFFECT_SPEED_PIXEL_PER_FRAME,l=e.overwrittenObjectId===0||e.overwrittenObjectId===void 0,u=l?e.itemBoxBackgroundImageCoord.x:this._wwa.getObjectCropXById(e.overwrittenObjectId),d=l?e.itemBoxBackgroundImageCoord.y:this._wwa.getObjectCropYById(e.overwrittenObjectId);n.style.left=o+`px`,n.style.top=s+`px`,typeof this.itemEffectStartTimers[t]==`number`&&clearInterval(this.itemEffectStartTimers[t]),this.itemEffectStartTimers[t]=window.setTimeout(()=>{this.itemEffectStartTimers[t]=void 0,this.startItemEffect(t,n,r,{target:{x:i,y:a},overwritten:{x:u,y:d}},c)},L.DEFAULT_FRAME_INTERVAL)}}startItemEffect(e,t,n,r,i){let a=n.querySelector(this.overwittenItemSelector);a&&n.removeChild(a);let o=document.createElement(`div`);o.classList.add(this.overwittenItemClassName),o.style.backgroundPosition=`-`+r.overwritten.x+`px -`+r.overwritten.y+`px`,o.style.backgroundImage=n.style.backgroundImage,n.appendChild(o),t.style.backgroundPosition=`-`+r.target.x+`px -`+r.target.y+`px`,t.style.transitionDuration=i+`ms`,t.style.transitionProperty=`left,top`,t.style.transitionTimingFunction=`linear`,t.style.left=`0`,t.style.top=`0`,n.classList.add(this.itemTransitioningClassName),t.addEventListener(`transitionend`,()=>{this.disposeItemEffect(e,t,n)},{once:!0})}disposeItemEffect(e,t,n){typeof this.itemEffectStartTimers[e]==`number`&&(clearInterval(this.itemEffectStartTimers[e]),this.itemEffectStartTimers[e]=void 0),t.style.transitionDuration=`0s`,t.style.transitionProperty=``,t.style.left=`0`,t.style.top=`0`,n.classList.contains(this.itemTransitioningClassName)&&n.classList.remove(this.itemTransitioningClassName);let r=n.querySelector(this.overwittenItemSelector);r&&n.removeChild(r)}isDead(){return this._status.energy<=0}addItem(e,t=0,n=!1,r){var i,a,o,s=this._wwa.getObjectAttributeById(e,L.ATR_NUMBER),c=0;if(t===0&&s!==0&&(t=s),t===0){if(e===0)return;if(i=this._getBlankItemPos(),i===L.ITEMBOX_IS_FULL)throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),Error(`これ以上、アイテムを持てません。`);c=this._itemBox[i-1],this._forceSetItemBox(i,e)}else if(n===!1)if(i=t,o=this._itemBox[i-1],this._wwa.getObjectAttributeById(o,L.ATR_NUMBER)!==this._wwa.getObjectAttributeById(e,L.ATR_NUMBER))if(a=this._getBlankItemPos(),a!==L.ITEMBOX_IS_FULL)this._forceSetItemBox(a,o),this._forceSetItemBox(i,e);else throw this._wwa.setEvalCalcWwaNodeEarnedItem(e,-1),this._wwa.callGetItemFullUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),Error(`これ以上、アイテムを持てません。`);else c=this._itemBox[i-1],this._forceSetItemBox(i,e);else i=t,c=this._itemBox[i-1],this._forceSetItemBox(i,e);this._updateEquipmentStatus(),this.updateItemBox(r?{insertPos:i,itemScreenPixelCoord:r.screenPixelCoord,itemBoxBackgroundImageCoord:r.itemBoxBackgroundImageCoord,itemBoxScreenPixelCoord:new S(L.MAP_WINDOW_WIDTH+(i-1)%3*L.CHIP_SIZE,L.ITEMBOX_TOP_Y+Math.floor((i-1)/3)*L.CHIP_SIZE),overwrittenObjectId:c}:void 0)}_forceSetItemBox(e,t){var n=this,r=Ve(`#item`+(e-1)+`>.item-click-border`),i=this._wwa.getObjectAttributeById(t,L.ATR_MODE);if(this.removeItemByItemPosition(e),this._itemBox[e-1]=t,this._wwa.setEvalCalcWwaNodeEarnedItem(t,e),this._wwa.callGetItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),t!==0&&i!==ne.NORMAL){let t=this._wwa.resolveSystemMessage(g.ITEM_SELECT_TUTORIAL);this._isClickableItemGot||=(t!==`BLANK`&&this._wwa.registerSystemMessagePage(t),!0),r.style.display=`block`,(e=>{n._itemUsingEvent[e-1]=()=>{(n.isControllable()||n._wwa._messageWindow.isItemMenuChoice())&&(n._wwa._itemMenu.close(),n._wwa._setNextPage(),n._wwa.onselectitem(e))}})(e),r.addEventListener(`click`,this._itemUsingEvent[e-1])}}_getBlankItemPos(){var e;for(e=1;e<this._itemBox.length+1;e++)if(this._itemBox[e-1]===0)return e;return L.ITEMBOX_IS_FULL}_updateEquipmentStatus(){var e,t=new b(0,0);for(e=0;e<L.ITEMBOX_SIZE;e++)this._itemBox[e]!==0&&(t.strength+=this._wwa.getObjectAttributeById(this._itemBox[e],L.ATR_STRENGTH),t.defence+=this._wwa.getObjectAttributeById(this._itemBox[e],L.ATR_DEFENCE));var n=t.minus(this._equipStatus);this._wwa.setStatusChangedEffect(n),this._equipStatus=t,this.updateStatusValueBox()}hasItem(e){for(var t=0;t<L.ITEMBOX_SIZE;t++)if(this._itemBox[t]===e)return!0;return!1}canUseItem(e){var t=this._itemBox[e-1];return!(t===0||this._wwa.getObjectAttributeById(t,L.ATR_MODE)===ne.NORMAL)}useItem(){var e=this._itemBox[this._readyToUseItemPos1To12-1];this._wwa.getObjectAttributeById(e,L.ATR_MODE)!==ne.NOT_DISAPPEAR&&this.removeItemByItemPosition(this._readyToUseItemPos1To12);var t=H(`item`+(this._readyToUseItemPos1To12-1));return setTimeout(()=>{t.classList.contains(`onpress`)&&t.classList.remove(`onpress`)},L.DEFAULT_FRAME_INTERVAL),this._wwa.setEvalCalcWwaNodeEarnedItem(e,this._readyToUseItemPos1To12),this._wwa.callUseItemUserDefineFunction(),this._wwa.clearEvalCalcWwaNodeEarnedItem(),this._isReadyToUseItem=!1,this._readyToUseItemPos1To12=void 0,e}canHaveMoreItems(){return this._getBlankItemPos()!==L.ITEMBOX_IS_FULL}removeItemByItemPosition(e){var t;this._itemBox[e-1]!==0&&(this._wwa.getObjectAttributeById(this._itemBox[e-1],L.ATR_MODE)!==ne.NORMAL&&(t=Ve(`#item`+(e-1)+`>.item-click-border`),t.removeEventListener(`click`,this._itemUsingEvent[e-1]),t.style.display=`none`),this._itemBox[e-1]=0,this._updateEquipmentStatus(),this.updateItemBox())}removeItemByPartsID(e){var t;if(!this.hasItem(e))throw Error(`アイテムを持っていない`);for(var n=0;n<L.ITEMBOX_SIZE;n++)if(this._itemBox[n]===e){this._wwa.getObjectAttributeById(this._itemBox[n],L.ATR_MODE)!==ne.NORMAL&&(t=Ve(`#item`+n+`>.item-click-border`),t.removeEventListener(`click`,this._itemUsingEvent[n]),t.style.display=`none`),this._itemBox[n]=0,this._updateEquipmentStatus(),this.updateItemBox();return}}clearItemBox(){for(var e=1;e<=L.ITEMBOX_SIZE;e++)this.removeItemByItemPosition(e);this._updateEquipmentStatus(),this.updateItemBox()}hasGold(e){return this._status.gold>=e}payGold(e){if(!this.hasGold(e))throw Error(`お金が足りない`);this.setGold(this._status.gold-e)}earnGold(e){this.setGold(this._status.gold+e)}setPartsAppearedFlag(){this._partsAppeared=!0}clearPartsAppearedFlag(){this._partsAppeared=!1}isPartsAppearedTime(){return this._partsAppeared===!0}startBattleWith(e){this._isPlayerTurn=!0,this._battleFrameCounter=L.BATTLE_INTERVAL_FRAME_NUM,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=e,this._state=W.BATTLE}isFighting(){return this._state===W.BATTLE}isTurn(){return this._isPlayerTurn}getTurnNum(){return this._battleTurnLength}isBattleStartFrame(){return this._battleFrameCounter===L.BATTLE_INTERVAL_FRAME_NUM&&this._battleTurnLength===0}calcBattleResultForPlayerTurn(e,t,n=!1){return this._wwa.callUserDefinedBattleDamageFunction(`playerToEnemy`,(n||void 0)&&{playerStatus:e,enemyStatus:t})||{damage:this._calcDamageDefault(e,t)}}calcBattleResultForEnemyTurn(e,t,n=!1){return this._wwa.callUserDefinedBattleDamageFunction(`enemyToPlayer`,(n||void 0)&&{playerStatus:t,enemyStatus:e})||{damage:this._calcDamageDefault(e,t)}}_calcDamageDefault(e,t){let n=e.strength-t.defence;return n>0?n:0}fight(){if(!this.isFighting())throw Error(`バトルが開始されていません。`);if(this._battleTurnLength===0&&this._battleFrameCounter===L.BATTLE_INTERVAL_FRAME_NUM&&this._wwa.showMonsterWindow(),--this._battleFrameCounter>0)return;this._battleTurnLength++,this._wwa.isBattleSpeedIndexForQuickBattle(this._speedIndex)||this._battleTurnLength>L.BATTLE_SPEED_CHANGE_TURN_NUM?(this._battleTurnLength===1&&(this._wwa.playAttackSound(),this._wwa.vibration(!1)),this._battleFrameCounter=1):(this._battleFrameCounter=L.BATTLE_INTERVAL_FRAME_NUM,this._wwa.playAttackSound(),this._wwa.vibration(!0));var e=this.getStatus(),t=this._enemy.status;let n=!1;if(this._isPlayerTurn){if(this._battleTurnLength===1&&this._wwa.isUsingDefaultDamageCalcFunction()&&e.strength<=t.defence&&e.defence>=t.strength){this._enemy.battleEndProcess(),this._wwa.registerSystemMessagePageByKey(g.CANNOT_DAMAGE_MONSTER),this._battleTurnLength=0,this._enemy=null,this._state=W.CONTROLLABLE;return}let{damage:r,aborted:i}=this.calcBattleResultForPlayerTurn(e,t);this._enemy.damage(r),n=!!i,this._enemy.status.energy<=0&&(this._wwa.playSound(this._wwa.getObjectAttributeById(this._enemy.partsID,L.ATR_SOUND)),this.earnGold(t.gold),this._wwa.setStatusChangedEffect(new x(0,0,0,t.gold)),this._enemy.item===0?this._wwa.setPartsOnPosition(A.OBJECT,0,this._enemy.position):this._wwa.setPartsOnPosition(A.OBJECT,this._enemy.item,this._enemy.position),this._wwa.reserveAppearPartsInNextFrame(this._enemy.position,k.OBJECT,this._enemy.partsID),this._state=W.CONTROLLABLE,this._wwa.registerPageByMessage(this._enemy.message,{triggerParts:{id:this._enemy.partsID,type:A.OBJECT,position:this._enemy.position}}),this._enemy.battleEndProcess(),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null),this._enemy!==null&&(r===0?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0),this._isPlayerTurn=!1}else{let{damage:r,aborted:i}=this.calcBattleResultForEnemyTurn(t,e);this.damage(r),n=!!i,this._status.energy<=0&&(this.setEnergy(0),this._enemy.battleEndProcess(),this._state=W.CONTROLLABLE,this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null,this._wwa.shouldApplyGameOver({isCalledByMacro:!1})&&this._wwa.gameover()),r===0?this._battleNoDamageTurnLength++:this._battleNoDamageTurnLength=0,this._isPlayerTurn=!0}(this._battleNoDamageTurnLength>L.FIGHT_DRAW_TURN||n)&&(this._enemy.battleEndProcess(),this._state=W.CONTROLLABLE,this._wwa.registerSystemMessagePageByKey(g.BATTLE_NOT_SETTLED),this._battleTurnLength=0,this._battleNoDamageTurnLength=0,this._enemy=null)}readyToUseItem(e){var t;if(!this.canUseItem(e))throw Error(`アイテムがないか、アイテムが使えません。`);t=this._itemBox[e-1],this._wwa.getObjectAttributeById(t,L.ATR_STRING),this._wwa.reserveAppearPartsInNextFrame(this._position.getPartsCoord(),k.OBJECT,t),this._readyToUseItemPos1To12=e,this._isReadyToUseItem=!0}isReadyToUseItem(){return this._isReadyToUseItem}getDrawingCenterPosition(){var e=this._position.getPartsCoord(),t=this._position.getOffsetCoord(),n=this._camera.getPosition(),r=n.getPartsCoord(),i=n.getOffsetCoord();return new S((e.x-r.x)*L.CHIP_SIZE+t.x-i.x+L.CHIP_SIZE/2,(e.y-r.y)*L.CHIP_SIZE+t.y-i.y+L.CHIP_SIZE/2)}mainFrameCount(){this._frameCount++}getFrameCount(){return this._frameCount}setFrameCount(e){return typeof e!=`number`&&(e=0),this._frameCount=e}getMoveCount(){return this._moves}setMoveCount(e){return this._moves=e}isMoveObjectAutoExecTime(){return this._moveObjectAutoExecTimer===0}setMoveMacroWaiting(e){e<0||(this._moveMacroWaitingRemainMoves=e,this._moveObjectAutoExecTimer=0)}resetMoveObjectAutoExecTimer(){this._moveObjectAutoExecTimer=L.CHIP_SIZE/fe[this._speedIndex],this._moveMacroWaitingRemainMoves--}decrementMoveObjectAutoExecTimer(){return this._moveMacroWaitingRemainMoves>=0&&this._moveObjectAutoExecTimer>0&&(this._moveObjectAutoExecTimer--,this._moveMacroWaitingRemainMoves===0&&this._moveObjectAutoExecTimer===0&&(this._afterMoveMacroFlag=!0)),0}isWaitingMoveMacro(){return this._moveMacroWaitingRemainMoves!==0||this._moveObjectAutoExecTimer!==0}decrementLookingAroundTimer(){return this._isPreparedForLookingAround&&this._lookingAroundTimer>0?--this._lookingAroundTimer:0}isLookingAround(){return this._isPreparedForLookingAround&&this._lookingAroundTimer===0}getSpeedIndex(){return this._speedIndex}speedUp(){return this._speedIndex=Math.min(L.MAX_SPEED_INDEX,this._speedIndex+1)}speedDown(){return this._speedIndex=Math.max(L.MIN_SPEED_INDEX,this._speedIndex-1)}setSpeedIndex(e){if(e<L.MIN_SPEED_INDEX||L.MAX_SPEED_INDEX<e)throw Error(`#set_speed の引数が異常です:`+e);return this._speedIndex=e,this._speedIndex}isPausing(){return this.isJumped()||this.isWaitingMessageOrManualPause()||this.isWaitingPasswordWindow()||this.isWaitingEstimateWindow()||this.isWaitingMoveMacro()||this.isFighting()}constructor(e,t,n,r,i,a,o){super(t),this.itemTransitioningClassName=`item-transitioning`,this.overwittenItemClassName=`item-overwritten`,this.overwittenItemSelector=`.${this.overwittenItemClassName}`,this.itemEffectStartTimers=Array(L.ITEMBOX_SIZE),this._status=r,this._equipStatus=new b(0,0),this._itemBox=Array(L.ITEMBOX_SIZE),this._itemBoxElement=Array(L.ITEMBOX_SIZE),this._itemUsingEvent=Array(L.ITEMBOX_SIZE);for(var s=0;s<this._itemBox.length;s++)this._itemBox[s]=0,this._itemBoxElement[s]=Ve(`#item`+s+`>.item-disp`);this.updateItemBox(),this._energyMax=i,this._dir=T.DOWN,this._isMovingImage=!1,this._wwa=e,this._state=W.CONTROLLABLE,this._camera=n,this._isPartsEventExecuted=!1,this._energyValueElement=Ve(`#disp-energy>.status-value-box`),this._strengthValueElement=Ve(`#disp-strength>.status-value-box`),this._defenceValueElement=Ve(`#disp-defence>.status-value-box`),this._goldValueElement=Ve(`#disp-gold>.status-value-box`),this._isReadyToUseItem=!1,this._isClickableItemGot=!1,this._moves=a,this._moveMacroWaitingRemainMoves=0,this._moveObjectAutoExecTimer=0,this.updateStatusValueBox(),this._partsAppeared=!1,this._afterMoveMacroFlag=!1,this._isPreparedForLookingAround=!0,this._lookingAroundTimer=L.PLAYER_LOOKING_AROUND_START_FRAME,this._speedIndex=o,this._messageDelayFrameCount=0,this._battleNoDamageTurnLength=0}},Zn=class e{constructor(e,t,n,r,i,a,o){this._partsID=e,this._position=t,this._imgCoord=n,this._status=r,this._message=i,this._item=a,this._battleEndCallback=o}get partsID(){return this._partsID}get position(){return this._position}get imgCoord(){return this._imgCoord}get status(){return this._status}get message(){return this._message}get item(){return this._item}damage(e){this._status.energy=Math.max(0,this._status.energy-e)}battleEndProcess(){this._battleEndCallback?.()}setStatus(e){e.energy!==null&&(this._status.energy=e.energy),e.strength!==null&&(this._status.strength=e.strength),e.defence!==null&&(this._status.defence=e.defence)}clone(){return new e(this._partsID,this._position.clone(),this._imgCoord.clone(),this._status.clone(),this._message,this._item,this._battleEndCallback)}},Qn=class{constructor(e,t,n,r,i){this._player=e,this._objectID=t,this._srcPos=n,this._destPos=r,this._dir=i,this._currentPos=this._srcPos.clone()}update(){var e=this._player.getSpeedIndex();return this._currentPos=this._currentPos.getNextFramePosition(this._dir,fe[e],fe[e]),this._currentPos}get isAchievedDestination(){return this._currentPos.equals(this._destPos)}get currentPosition(){return this._currentPos}get beforePosition(){return this._srcPos}get destination(){return this._destPos}get objID(){return this._objectID}},$n=class{constructor(e,t){this._wwa=e,this._player=t,this.clear()}add(e,t,n,r){this._queue.push(new Qn(this._player,e,t,n,r))}update(){for(var e=[],t=[],n=0;n<this._queue.length;n++)this._queue[n].update(),this._queue[n].isAchievedDestination?(e.push(this._queue[n]),this._wwa.setPartsOnPosition(A.OBJECT,0,this._queue[n].beforePosition.getPartsCoord()),this._wwa.setPartsOnPosition(A.OBJECT,this._queue[n].objID,this._queue[n].destination.getPartsCoord())):t.push(this._queue[n]);return this._queue=t,e}clear(){this._queue=[]}get objectMovingData(){return this.objectMovingData}getOffsetByBeforePartsCoord(e){var t=this._queue.filter(t=>t.beforePosition.getPartsCoord().equals(e));return t.length===0?null:t[0].currentPosition.getOffsetCoord()}},er=(e,t)=>{if(e[0]===`+`){let n=parseInt(e.substring(1,10));if(Number.isNaN(n))throw Error(`+ 以降の文字列は数値形式で記載してください。`);return t+n}else if(e[0]===`-`){let n=parseInt(e.substring(1,10));if(Number.isNaN(n))throw Error(`- 以降の文字列は数値形式で記載してください。`);return t-n}let n=parseInt(e,10);if(Number.isNaN(n))throw Error(`数値形式ではないため、解析できません。`);return n},tr=class{constructor(e,t,n,r){this._wwa=e,this._triggerParts=t,this.macroType=n,this.macroArgs=r}isJunction(){return[I.IF,I.ELSE_IF,I.ELSE,I.END_IF].includes(this.macroType)}execute(){try{switch(this.macroType){case I.IMGPLAYER:return this._executeImgPlayerMacro(),{};case I.IMGYESNO:return this._executeImgYesNoMacro(),{};case I.HPMAX:return this._executeHPMaxMacro(),{};case I.SAVE:return this._executeSaveMacro(),{};case I.ITEM:return this._executeItemMacro(),{};case I.DEFAULT:return this._executeDefaultMacro(),{};case I.OLDMAP:return this._executeOldMapMacro(),{};case I.PARTS:return this._executePartsMacro(),{};case I.MOVE:return this._executeMoveMacro(),{};case I.MAP:return this._executeMapMacro(1),{};case I.DIRMAP:return this._executeDirMapMacro(),{};case I.IMGFRAME:return this._executeImgFrameMacro(),{};case I.IMGBOM:return this._executeImgBomMacro(),{};case I.DELPLAYER:return this._executeDelPlayerMacro(),{};case I.FACE:return this._executeFaceMacro(),{};case I.EFFECT:return this._executeEffectMacro(),{};case I.GAMEOVER:return this._executeGameOverMacro(),{};case I.IMGCLICK:return this._executeImgClickMacro(),{};case I.STATUS:{let{isGameOver:e}=this._executeStatusMacro();return{isGameOver:e}}case I.EFFITEM:return this._executeEffItemMacro(),{};case I.COLOR:return this._executeColorMacro(),{};case I.WAIT:return this._executeWaitMacro(),{};case I.SOUND:return this._executeSoundMacro(),{};case I.GAMEPAD_BUTTON:return this._executeGamePadButtonMacro(),{};case I.OLDMOVE:return this._executeOldMoveMacro(),{};case I.JUMPGATE:return this._executeJumpGateMacro(),{};case I.RECPOSITION:return this._executeRecPositionMacro(),{};case I.JUMPRECPOSITION:return this._executeJumpRecPositionMacro(),{};case I.CONSOLE_LOG:return this._executeConsoleLogMacro(1),{};case I.COPY_HP_TO:return this._executeCopyHpToMacro(),{};case I.SET_HP:{let{isGameOver:e}=this._executeSetHPMacro();return{isGameOver:e}}case I.COPY_HPMAX_TO:return this._executeCopyHpMaxToMacro(),{};case I.SET_HPMAX:return this._executeSetHpMaxMacro(),{};case I.COPY_AT_TO:return this._executeCopyAtToMacro(),{};case I.SET_AT:return this._executeSetAtMacro(),{};case I.COPY_DF_TO:return this._executeCopyDfToMacro(),{};case I.SET_DF:return this._executeSetDfMacro(),{};case I.COPY_MONEY_TO:return this._executeCopyMoneyToMacro(),{};case I.SET_MONEY:return this._executeSetMoneyMacro(),{};case I.COPY_STEP_COUNT_TO:return this._executeSetStepCountMacro(),{};case I.VAR_SET_VAL:return this._executeVarSetValMacro(),{};case I.VAR_SET:return this._executeVarSetMacro(),{};case I.VAR_ADD:return this._executeVarAddMacro(),{};case I.VAR_SUB:return this._executeVarSubMacro(),{};case I.VAR_MUL:return this._executeVarMulMacro(),{};case I.VAR_DIV:return this._executeVarDivMacro(),{};case I.VAR_MOD:return this._executeVarModMacro(),{};case I.VAR_SET_RAND:return this._executeVarSetRandMacro(),{};case I.GAME_SPEED:return this._executeGameSpeedMacro(),{};case I.SHOW_STR:return{};case I.SHOW_STR2:return{};case I.IF:return{};case I.LEGACY_IF:return this._executeLegacyIfMacro(),{};case I.ELSE_IF:return{};case I.ELSE:return{};case I.END_IF:return{};case I.SET_SPEED:return this._executeSetSpeedMacro(),{};case I.COPY_TIME_TO:return this._executeCopyTimeToMacro(),{};case I.HIDE_STATUS:return this._executeHideStatusMacro(),{};case I.VAR_MAP:return this._executeVarMapMacro(),{};case I.NO_GAMEOVER:return this._executeNoGameOverMacro(),{};case I.SET:{let{isGameOver:e}=this._executeSetMacro();return{isGameOver:e}}case I.MAP2:return this._executeMapMacro(2),{};case I.CONSOLE_LOG2:return this._executeConsoleLogMacro(2),{};case I.DELAYBGM:return this._executeDelayBgmMacro(),{};case I.SYSMSG:return this._executeSysMsgMacro(),{};case I.PICTURE:return this._executePictureMacro(),{};default:return console.log(`不明なマクロIDが実行されました:`+this.macroType),{}}}catch{}}_concatEmptyArgs(e){if(this.macroArgs.length<e){for(var t=Array(e-this.macroArgs.length),n=0;n<t.length;n++)t[n]=``;this.macroArgs=this.macroArgs.concat(t)}}_evaluateIntValue(e,t=0){let n=this.macroArgs[e];if(n===``)return t;let r=Number(n),i=r>=0?Math.floor(r):Math.ceil(r);return isNaN(i)?Jt(n,this._wwa.generateTokenValues(this._triggerParts),t):i}_executeJumpGateMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.forcedJumpGate(e,t)}_executeRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.recUserPosition(e,t)}_executeJumpRecPositionMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.jumpRecUserPosition(e,t)}_executeConsoleLogMacro(e){this._concatEmptyArgs(1);let t=this._evaluateIntValue(0);switch(e){case 1:this._wwa.outputUserVar(t);return;case 2:console.log(`${this.macroArgs[0]} = ${t}`);return}}_executeCopyHpToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHP(e)}_executeCopyHpMaxToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarHPMAX(e)}_executeCopyAtToMacro(){this._concatEmptyArgs(2);let e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarAT(e,t)}_executeCopyDfToMacro(){this._concatEmptyArgs(2);let e=this._evaluateIntValue(0),t=this._parseStatusKind(this._evaluateIntValue(1));this._wwa.setUserVarDF(e,t)}_parseStatusKind(e){switch(e){case 0:return`all`;case 1:return`bare`;case 2:return`equipment`;default:return`all`}}_executeCopyMoneyToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarMONEY(e)}_executeSetHPMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);return this._wwa.setHPUserVar(e,!0)}_executeSetHpMaxMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setHPMAXUserVar(e)}_executeSetAtMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setATUserVar(e)}_executeSetDfMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setDFUserVar(e)}_executeSetMoneyMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMONEYUserVar(e)}_executeSetStepCountMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarStep(e)}_executeVarSetValMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserVarVal(e,t)}_executeVarSetMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValOtherUserVal(e,t)}_executeVarAddMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValAdd(e,t)}_executeVarSubMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValSub(e,t)}_executeVarMulMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMul(e,t)}_executeVarDivMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValDiv(e,t)}_executeVarModMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setUserValMod(e,t)}_executeVarSetRandMacro(){this._concatEmptyArgs(3);let e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,0);this._wwa.setUserValRandNum(e,t,n)}_executeGameSpeedMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.speedChangeJudge(e)}_executeLegacyIfMacro(){for(var e=Array(11),t=0;t<10;t++)e[t]=this.macroArgs[t];this._wwa.userVarUserIf(this._triggerParts.position,e)}_executeSetSpeedMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setPlayerSpeedIndex(e-1)}_executeCopyTimeToMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setUserVarPlayTime(e)}_executeHideStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1)!==0;this._wwa.hideStatus(e,t)}_executeVarMapMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this.macroArgs[1],n=this.macroArgs[2],r=this._evaluateIntValue(3,A.OBJECT);if(e<0)throw Error(`入力変数が不正です`);this._wwa.varMap(this._triggerParts.position,t,n,e,r)}_executeImgPlayerMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerImgCoord(new S(e,t))}_executeImgYesNoMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setYesNoImgCoord(new S(e,t))}_executeHPMaxMacro(){this._concatEmptyArgs(1);var e=Math.max(0,this._evaluateIntValue(0));this._wwa.setPlayerEnergyMax(e)}_executeSaveMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.disableSave(e)}_executeItemMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);this._wwa.setPlayerGetItem(e,t)}_executeDefaultMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setObjectNotCollapseOnPartsOnPlayer(e)}_executeOldMapMacro(){this._concatEmptyArgs(1);var e=!!this._evaluateIntValue(0);this._wwa.setOldMap(e)}_executePartsMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,A.OBJECT),r=this._evaluateIntValue(3);if(n!==A.OBJECT&&n!==A.MAP)throw Error(`パーツ種別が不明です`);if(r!==0&&r!==1&&(r=1),e<0||t<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(e>=this._wwa.getObjectPartsNum()||t>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(e>=this._wwa.getMapPartsNum()||t>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this._wwa.replaceParts(e,t,n,!!r)}_executeMoveMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);this._wwa.setMoveMacroWaitingToPlayer(e)}_executeMapMacro(e){this._concatEmptyArgs(4);let t=this._evaluateIntValue(0);var n=this._evaluateIntValue(3,A.OBJECT);if(t<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(t>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(t>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);if(e===1){let e=this.macroArgs[1],r=this.macroArgs[2];this._wwa.appearPartsEval(this._triggerParts.position,e,r,t,n)}else if(e===2){let e=this._evaluateIntValue(1),r=this._evaluateIntValue(2);if(isNaN(e)||isNaN(r))throw Error(`出現先座標が不正です`);this._wwa.appearPartsEval(this._triggerParts.position,`${e}`,`${r}`,t,n)}}_executeDirMapMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2,A.OBJECT);if(isNaN(e)||isNaN(t)||isNaN(n))throw Error(`引数が整数ではありません`);if(e<0)throw Error(`パーツ番号が不正です`);if(n===A.OBJECT){if(e>=this._wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(e>=this._wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this._wwa.appearPartsByDirection(t,e,n)}_executeImgFrameMacro(){this._concatEmptyArgs(3);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2);if(t<0||n<0)throw Error(`座標は正でなければなりません。`);if(e===de.ENERGY||e===de.STRENGTH||e===de.DEFENCE||e===de.GOLD)this._wwa.setStatusIconCoord(e,new S(t,n));else if(e===de.WIDE_CELL_ROW)this._wwa.setWideCellCoord(new S(t,n));else if(e===de.ITEM_BG)this._wwa.setItemboxBackgroundPosition({x:t,y:n});else if(e===de.MAIN_FRAME)this._wwa.setFrameCoord(new S(t,n));else throw Error(`種別が不正です。`)}_executeImgBomMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`座標は正でなければなりません。`);this._wwa.setBattleEffectCoord(new S(e,t))}_executeDelPlayerMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setDelPlayer(!!e)}_executeFaceMacro(){this._concatEmptyArgs(6);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2),r=this._evaluateIntValue(3),i=this._evaluateIntValue(4),a=this._evaluateIntValue(5),o;if(e<0||t<0||n<0||r<0||i<0||a<0)throw Error(`各引数は0以上の整数でなければなりません。`);o=new ee(new S(e,t),new S(n,r),new S(i,a)),this._wwa.addFace(o)}_executeEffectMacro(){this._concatEmptyArgs(1);var e=this._evaluateIntValue(0);if(e<0)throw Error(`待ち時間は0以上の整数でなければなりません。`);if(e===0){this._wwa.stopEffect();return}for(var t=[],n=1;n<this.macroArgs.length;n+=2){var r=this._evaluateIntValue(n),i=0;if(r<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);if(n+1===this.macroArgs.length)throw Error(`画像のパーツ座標指定で、Y座標が指定されていません。`);if(i=this._evaluateIntValue(n+1),i<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);t.push(new S(r,i))}this._wwa.setEffect(e,t)}_executeGameOverMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||e>=this._wwa.getMapWidth()||t<0||t>=this._wwa.getMapWidth())throw Error(`マップの範囲外が指定されています!`);this._wwa.setGameOverPosition(new S(e,t))}_executeImgClickMacro(){if(this._concatEmptyArgs(2),this.macroArgs.length<1)throw Error(`引数が少なすぎます`);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`引数が0以上の整数ではありません`);this._wwa.setImgClick(new S(e,t))}_executeEffItemMacro(){if(this.macroArgs.length<1)throw Error(`引数が少なすぎます`);var e=this._evaluateIntValue(0);this._wwa.updateItemEffectEnabled(!!e)}_executeStatusMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||4<e)throw Error(`ステータス種別が範囲外です。`);return this._wwa.setPlayerStatus(e,t,!0)}_executeColorMacro(){this._concatEmptyArgs(4);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1),n=this._evaluateIntValue(2),r=this._evaluateIntValue(3);if(e<0||e>5)throw Error(`種別は0から5までです`);if(t<0||t>255||n<0||n>255||r<0||r>255)throw Error(`色が範囲外です`);this._wwa.changeStyleRule(e,t,n,r)}_executeWaitMacro(){throw Error(`Not implemented!`)}_executeSoundMacro(){this._concatEmptyArgs(2);let e=parseInt(this.macroArgs[0]),t=parseInt(this.macroArgs[1]);this._wwa.playSound(e,{bgmDelayDurationMs:t})}_executeGamePadButtonMacro(){this._concatEmptyArgs(2);var e=this._evaluateIntValue(0),t=this._evaluateIntValue(1);if(e<0||t<0)throw Error(`各引数は0以上の整数でなければなりません。`);if(t>L.ITEMBOX_SIZE)throw Error(`アイテムボックス上限を超えた数値が指定されました。`);this._wwa.setGamePadButtonItemTable(e,t)}_executeOldMoveMacro(){this._concatEmptyArgs(1);let e=!!this._evaluateIntValue(0);this._wwa.setOldMove(e)}_executeNoGameOverMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setGameOverPolicy(e)}_executeSetMacro(){return this._wwa.execSetMacro(this.macroArgs[0],{triggerParts:this._triggerParts})}_executePictureMacro(){if(this._concatEmptyArgs(3),this.macroArgs.length<1)throw Error(`引数が少なすぎます`);let e=this._evaluateIntValue(0),t=this.macroArgs[1].length>0?this.macroArgs[1]:`+0`;if(t===`0`){this._wwa.deletePictureRegistry(e);return}let n=er(t,this._triggerParts.id);if(n===0)throw Error(`パーツ番号の相対値算出で0が検出されました。ピクチャを消去する場合は0のまま指定してください。`);if(n<0)throw Error(`パーツ番号は0以上の整数でなければなりません。`);let r=this._evaluateIntValue(2,A.OBJECT);this._wwa.setPictureRegistry(e,n,r,this._triggerParts.position)}_executeDelayBgmMacro(){this._concatEmptyArgs(1);let e=this._evaluateIntValue(0);this._wwa.setBgmDelay(e)}_executeSysMsgMacro(){this._concatEmptyArgs(2);let e=this.resolveSystemMessageKeyFromMacroArg(this.macroArgs[0]);if(!e)throw Error(`該当するシステムメッセージの定義がありません`);let t=this.macroArgs[1]===``?void 0:this.macroArgs[1].replaceAll(`\\n`,`
|
|
32
32
|
`);this._wwa.overwriteSystemMessage(e,t)}resolveSystemMessageKeyFromMacroArg(e){return v(e)?e:y(this._evaluateIntValue(0))}};function nr(e,t,n){let r=n.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)\=(.*)$/);if((r===null||r.length!==3)&&(r=n.match(/^\$([a-zA-Z_][a-zA-Z0-9_]*)/),r===null||r.length!==2))throw Error(`マクロではありません`);let i=`$${r[1].toLowerCase()}`,a=i===`$if`&&n.match(/,/)?I.LEGACY_IF:le[i],o=a!==I.SHOW_STR&&a!==I.SHOW_STR2,s=(r[2]??``).split(`,`).map(e=>o?e.trim():e);return new tr(e,t,a===void 0?I.UNDEFINED:a,s)}var rr=class{constructor(e){this.generateTokenValues=e}static executeNodes(e,t){try{return{isError:!1,messages:e?.execute(t)??[]}}catch(e){return console.error(e),{isError:!0}}}},ir=class extends rr{constructor(e=[],t){super(t),this.branches=e}appendBranch(e){this.branches.push(e)}getLastUnconnectedBranch(){for(let e of this.branches)if(!e.next)return e}evaluateAndGetNextNode(e){for(let t of this.branches)if(!t.descriminant||Bt(t.descriminant,this.generateTokenValues(e)))return t.next}hasElseBranch(){return this.branches.filter(e=>!!e.elseBranch).length>=1}execute(e){if(!e)throw Error(`パーツ起因ページによる実行ではないため、Junctionノードの利用を想定していません。`);let t=this.evaluateAndGetNextNode(e);return t?t.execute(e):[]}},ar=class e extends rr{constructor(e,t,n,r,i,a){super(t),this.evalScript=n,this.macro=r,this.next=i,this.script=a,this.messageSegments=this.parseMessage(e),this.macro===void 0&&(this.macro=[])}isEmpty(){return this.messageSegments.reduce((e,t)=>e&&t===``,!0)}generatePrintableMessage(){return this.messageSegments.reduce((e,t)=>`${e}${typeof t==`string`?t:t()}`,``)}appendMessage(e,t=!1){this.messageSegments=this.messageSegments.concat(t?[`
|
|
33
33
|
`]:[],this.parseMessage(e))}static createEmptyMessage(t,n,r){return new e([],t,n,void 0,void 0,r)}parseMessage(e){return typeof e==`string`?[e]:e}execute(e){return this.script&&this.evalScript(this.script,e),this.macro?.forEach(e=>{if(e.execute().isGameOver)throw Error(`ゲームオーバーのため、メッセージ・マクロの実行を打ち切ります。`)}),this.next?[this,...this.next.execute(e)]:[this]}};function or(e){return e.split(/\n\<c\>/i)[0].split(/\<c\>/i)[0].replace(/\n\<p\>\n/gi,`<P>`).replace(/\n\<p\>/gi,`<P>`).replace(/\<p\>\n/gi,`<P>`).replace(/\<p\>/gi,`<P>`).split(`
|
|
34
34
|
`).map(e=>{if(!e.startsWith(`//`))return e.match(/\/\//)?Ke(Ke(e).replace(/^.*\/\/(?!:s?ptth)/gi,``)):e}).filter(e=>e!==void 0).join(`
|
|
@@ -90,8 +90,8 @@ ${t?Re():``}
|
|
|
90
90
|
`,n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(ya).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=J.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=e.sourceType===`module`,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports={},this.pos===0&&e.allowHashBang&&this.input.slice(0,2)===`#!`&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(Ia),this.regexpState=null},$a={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0}};Qa.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},$a.inFunction.get=function(){return(this.currentVarScope().flags&La)>0},$a.inGenerator.get=function(){return(this.currentVarScope().flags&Ba)>0},$a.inAsync.get=function(){return(this.currentVarScope().flags&za)>0},$a.allowSuper.get=function(){return(this.currentThisScope().flags&Ua)>0},$a.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Wa)>0},$a.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},Qa.prototype.inNonArrowFunction=function(){return(this.currentThisScope().flags&La)>0},Qa.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var n=this,r=0;r<e.length;r++)n=e[r](n);return n},Qa.parse=function(e,t){return new this(t,e).parse()},Qa.parseExpressionAt=function(e,t,n){var r=new this(n,e,t);return r.nextToken(),r.parseExpression()},Qa.tokenizer=function(e,t){return new this(t,e)},Object.defineProperties(Qa.prototype,$a);var eo=Qa.prototype,to=/^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;eo.strictDirective=function(e){for(;;){Ca.lastIndex=e,e+=Ca.exec(this.input)[0].length;var t=to.exec(this.input.slice(e));if(!t)return!1;if((t[1]||t[2])===`use strict`){Ca.lastIndex=e+t[0].length;var n=Ca.exec(this.input),r=n.index+n[0].length,i=this.input.charAt(r);return i===`;`||i===`}`||ya.test(n[0])&&!(/[(`.[+\-/*%<>=,?^&]/.test(i)||i===`!`&&this.input.charAt(r+1)===`=`)}e+=t[0].length,Ca.lastIndex=e,e+=Ca.exec(this.input)[0].length,this.input[e]===`;`&&e++}},eo.eat=function(e){return this.type===e?(this.next(),!0):!1},eo.isContextual=function(e){return this.type===J.name&&this.value===e&&!this.containsEsc},eo.eatContextual=function(e){return this.isContextual(e)?(this.next(),!0):!1},eo.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},eo.canInsertSemicolon=function(){return this.type===J.eof||this.type===J.braceR||ya.test(this.input.slice(this.lastTokEnd,this.start))},eo.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},eo.semicolon=function(){!this.eat(J.semi)&&!this.insertSemicolon()&&this.unexpected()},eo.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},eo.expect=function(e){this.eat(e)||this.unexpected()},eo.unexpected=function(e){this.raise(e??this.start,`Unexpected token`)};function no(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1}eo.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,`Comma is not permitted after the rest element`);var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,`Parenthesized pattern`)}},eo.checkExpressionErrors=function(e,t){if(!e)return!1;var n=e.shorthandAssign,r=e.doubleProto;if(!t)return n>=0||r>=0;n>=0&&this.raise(n,`Shorthand property assignments are valid only in destructuring patterns`),r>=0&&this.raiseRecoverable(r,`Redefinition of __proto__ property`)},eo.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,`Yield expression cannot be a default value`),this.awaitPos&&this.raise(this.awaitPos,`Await expression cannot be a default value`)},eo.isSimpleAssignTarget=function(e){return e.type===`ParenthesizedExpression`?this.isSimpleAssignTarget(e.expression):e.type===`Identifier`||e.type===`MemberExpression`};var Y=Qa.prototype;Y.parseTopLevel=function(e){var t={};for(e.body||=[];this.type!==J.eof;){var n=this.parseStatement(null,!0,t);e.body.push(n)}if(this.inModule)for(var r=0,i=Object.keys(this.undefinedExports);r<i.length;r+=1){var a=i[r];this.raiseRecoverable(this.undefinedExports[a].start,`Export '`+a+`' is not defined`)}return this.adaptDirectivePrologue(e.body),this.next(),e.sourceType=this.options.sourceType,this.finishNode(e,`Program`)};var ro={kind:`loop`},io={kind:`switch`};Y.isLet=function(e){if(this.options.ecmaVersion<6||!this.isContextual(`let`))return!1;Ca.lastIndex=this.pos;var t=Ca.exec(this.input),n=this.pos+t[0].length,r=this.input.charCodeAt(n);if(r===91)return!0;if(e)return!1;if(r===123)return!0;if(pa(r,!0)){for(var i=n+1;ma(this.input.charCodeAt(i),!0);)++i;var a=this.input.slice(n,i);if(!aa.test(a))return!0}return!1},Y.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual(`async`))return!1;Ca.lastIndex=this.pos;var e=Ca.exec(this.input),t=this.pos+e[0].length;return!ya.test(this.input.slice(this.pos,t))&&this.input.slice(t,t+8)===`function`&&(t+8===this.input.length||!ma(this.input.charAt(t+8)))},Y.parseStatement=function(e,t,n){var r=this.type,i=this.startNode(),a;switch(this.isLet(e)&&(r=J._var,a=`let`),r){case J._break:case J._continue:return this.parseBreakContinueStatement(i,r.keyword);case J._debugger:return this.parseDebuggerStatement(i);case J._do:return this.parseDoStatement(i);case J._for:return this.parseForStatement(i);case J._function:return e&&(this.strict||e!==`if`&&e!==`label`)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(i,!1,!e);case J._class:return e&&this.unexpected(),this.parseClass(i,!0);case J._if:return this.parseIfStatement(i);case J._return:return this.parseReturnStatement(i);case J._switch:return this.parseSwitchStatement(i);case J._throw:return this.parseThrowStatement(i);case J._try:return this.parseTryStatement(i);case J._const:case J._var:return a||=this.value,e&&a!==`var`&&this.unexpected(),this.parseVarStatement(i,a);case J._while:return this.parseWhileStatement(i);case J._with:return this.parseWithStatement(i);case J.braceL:return this.parseBlock(!0,i);case J.semi:return this.parseEmptyStatement(i);case J._export:case J._import:if(this.options.ecmaVersion>10&&r===J._import){Ca.lastIndex=this.pos;var o=Ca.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(c===40||c===46)return this.parseExpressionStatement(i,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,`'import' and 'export' may only appear at the top level`),this.inModule||this.raise(this.start,`'import' and 'export' may appear only with 'sourceType: module'`)),r===J._import?this.parseImport(i):this.parseExport(i,n);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(i,!0,!e);var l=this.value,u=this.parseExpression();return r===J.name&&u.type===`Identifier`&&this.eat(J.colon)?this.parseLabeledStatement(i,l,u,e):this.parseExpressionStatement(i,u)}},Y.parseBreakContinueStatement=function(e,t){var n=t===`break`;this.next(),this.eat(J.semi)||this.insertSemicolon()?e.label=null:this.type===J.name?(e.label=this.parseIdent(),this.semicolon()):this.unexpected();for(var r=0;r<this.labels.length;++r){var i=this.labels[r];if((e.label==null||i.name===e.label.name)&&(i.kind!=null&&(n||i.kind===`loop`)||e.label&&n))break}return r===this.labels.length&&this.raise(e.start,`Unsyntactic `+t),this.finishNode(e,n?`BreakStatement`:`ContinueStatement`)},Y.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,`DebuggerStatement`)},Y.parseDoStatement=function(e){return this.next(),this.labels.push(ro),e.body=this.parseStatement(`do`),this.labels.pop(),this.expect(J._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(J.semi):this.semicolon(),this.finishNode(e,`DoWhileStatement`)},Y.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction)&&this.eatContextual(`await`)?this.lastTokStart:-1;if(this.labels.push(ro),this.enterScope(0),this.expect(J.parenL),this.type===J.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var n=this.isLet();if(this.type===J._var||this.type===J._const||n){var r=this.startNode(),i=n?`let`:this.value;return this.next(),this.parseVar(r,!0,i),this.finishNode(r,`VariableDeclaration`),(this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))&&r.declarations.length===1?(this.options.ecmaVersion>=9&&(this.type===J._in?t>-1&&this.unexpected(t):e.await=t>-1),this.parseForIn(e,r)):(t>-1&&this.unexpected(t),this.parseFor(e,r))}var a=new no,o=this.parseExpression(!0,a);return this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual(`of`)?(this.options.ecmaVersion>=9&&(this.type===J._in?t>-1&&this.unexpected(t):e.await=t>-1),this.toAssignable(o,!1,a),this.checkLVal(o),this.parseForIn(e,o)):(this.checkExpressionErrors(a,!0),t>-1&&this.unexpected(t),this.parseFor(e,o))},Y.parseFunctionStatement=function(e,t,n){return this.next(),this.parseFunction(e,oo|(n?0:so),!1,t)},Y.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(`if`),e.alternate=this.eat(J._else)?this.parseStatement(`if`):null,this.finishNode(e,`IfStatement`)},Y.parseReturnStatement=function(e){return!this.inFunction&&!this.options.allowReturnOutsideFunction&&this.raise(this.start,`'return' outside of function`),this.next(),this.eat(J.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,`ReturnStatement`)},Y.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(J.braceL),this.labels.push(io),this.enterScope(0);for(var t,n=!1;this.type!==J.braceR;)if(this.type===J._case||this.type===J._default){var r=this.type===J._case;t&&this.finishNode(t,`SwitchCase`),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,`Multiple default clauses`),n=!0,t.test=null),this.expect(J.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,`SwitchCase`),this.next(),this.labels.pop(),this.finishNode(e,`SwitchStatement`)},Y.parseThrowStatement=function(e){return this.next(),ya.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,`Illegal newline after throw`),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,`ThrowStatement`)};var ao=[];Y.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===J._catch){var t=this.startNode();if(this.next(),this.eat(J.parenL)){t.param=this.parseBindingAtom();var n=t.param.type===`Identifier`;this.enterScope(n?Ha:0),this.checkLVal(t.param,n?Xa:Ja),this.expect(J.parenR)}else this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0);t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,`CatchClause`)}return e.finalizer=this.eat(J._finally)?this.parseBlock():null,!e.handler&&!e.finalizer&&this.raise(e.start,`Missing catch or finally clause`),this.finishNode(e,`TryStatement`)},Y.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,`VariableDeclaration`)},Y.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(ro),e.body=this.parseStatement(`while`),this.labels.pop(),this.finishNode(e,`WhileStatement`)},Y.parseWithStatement=function(e){return this.strict&&this.raise(this.start,`'with' in strict mode`),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(`with`),this.finishNode(e,`WithStatement`)},Y.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,`EmptyStatement`)},Y.parseLabeledStatement=function(e,t,n,r){for(var i=0,a=this.labels;i<a.length;i+=1)a[i].name===t&&this.raise(n.start,`Label '`+t+`' is already declared`);for(var o=this.type.isLoop?`loop`:this.type===J._switch?`switch`:null,s=this.labels.length-1;s>=0;s--){var c=this.labels[s];if(c.statementStart===e.start)c.statementStart=this.start,c.kind=o;else break}return this.labels.push({name:t,kind:o,statementStart:this.start}),e.body=this.parseStatement(r?r.indexOf(`label`)===-1?r+`label`:r:`label`),this.labels.pop(),e.label=n,this.finishNode(e,`LabeledStatement`)},Y.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,`ExpressionStatement`)},Y.parseBlock=function(e,t,n){for(e===void 0&&(e=!0),t===void 0&&(t=this.startNode()),t.body=[],this.expect(J.braceL),e&&this.enterScope(0);this.type!==J.braceR;){var r=this.parseStatement(null);t.body.push(r)}return n&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,`BlockStatement`)},Y.parseFor=function(e,t){return e.init=t,this.expect(J.semi),e.test=this.type===J.semi?null:this.parseExpression(),this.expect(J.semi),e.update=this.type===J.parenR?null:this.parseExpression(),this.expect(J.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,`ForStatement`)},Y.parseForIn=function(e,t){var n=this.type===J._in;return this.next(),t.type===`VariableDeclaration`&&t.declarations[0].init!=null&&(!n||this.options.ecmaVersion<8||this.strict||t.kind!==`var`||t.declarations[0].id.type!==`Identifier`)?this.raise(t.start,(n?`for-in`:`for-of`)+` loop variable declaration may not have an initializer`):t.type===`AssignmentPattern`&&this.raise(t.start,`Invalid left-hand side in for-loop`),e.left=t,e.right=n?this.parseExpression():this.parseMaybeAssign(),this.expect(J.parenR),e.body=this.parseStatement(`for`),this.exitScope(),this.labels.pop(),this.finishNode(e,n?`ForInStatement`:`ForOfStatement`)},Y.parseVar=function(e,t,n){for(e.declarations=[],e.kind=n;;){var r=this.startNode();if(this.parseVarId(r,n),this.eat(J.eq)?r.init=this.parseMaybeAssign(t):n===`const`&&!(this.type===J._in||this.options.ecmaVersion>=6&&this.isContextual(`of`))?this.unexpected():r.id.type!==`Identifier`&&!(t&&(this.type===J._in||this.isContextual(`of`)))?this.raise(this.lastTokEnd,`Complex binding patterns require an initialization value`):r.init=null,e.declarations.push(this.finishNode(r,`VariableDeclarator`)),!this.eat(J.comma))break}return e},Y.parseVarId=function(e,t){e.id=this.parseBindingAtom(),this.checkLVal(e.id,t===`var`?qa:Ja,!1)};var oo=1,so=2,co=4;Y.parseFunction=function(e,t,n,r){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!r)&&(this.type===J.star&&t&so&&this.unexpected(),e.generator=this.eat(J.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&oo&&(e.id=t&co&&this.type!==J.name?null:this.parseIdent(),e.id&&!(t&so)&&this.checkLVal(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?qa:Ja:Ya));var i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Ga(e.async,e.generator)),t&oo||(e.id=this.type===J.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,t&oo?`FunctionDeclaration`:`FunctionExpression`)},Y.parseFunctionParams=function(e){this.expect(J.parenL),e.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},Y.parseClass=function(e,t){this.next();var n=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var r=this.startNode(),i=!1;for(r.body=[],this.expect(J.braceL);this.type!==J.braceR;){var a=this.parseClassElement(e.superClass!==null);a&&(r.body.push(a),a.type===`MethodDefinition`&&a.kind===`constructor`&&(i&&this.raise(a.start,`Duplicate constructor in the same class`),i=!0))}return this.strict=n,this.next(),e.body=this.finishNode(r,`ClassBody`),this.finishNode(e,t?`ClassDeclaration`:`ClassExpression`)},Y.parseClassElement=function(e){var t=this;if(this.eat(J.semi))return null;var n=this.startNode(),r=function(e,r){r===void 0&&(r=!1);var i=t.start,a=t.startLoc;return t.eatContextual(e)?t.type!==J.parenL&&(!r||!t.canInsertSemicolon())?!0:(n.key&&t.unexpected(),n.computed=!1,n.key=t.startNodeAt(i,a),n.key.name=e,t.finishNode(n.key,`Identifier`),!1):!1};n.kind=`method`,n.static=r(`static`);var i=this.eat(J.star),a=!1;i||(this.options.ecmaVersion>=8&&r(`async`,!0)?(a=!0,i=this.options.ecmaVersion>=9&&this.eat(J.star)):r(`get`)?n.kind=`get`:r(`set`)&&(n.kind=`set`)),n.key||this.parsePropertyName(n);var o=n.key,s=!1;return!n.computed&&!n.static&&(o.type===`Identifier`&&o.name===`constructor`||o.type===`Literal`&&o.value===`constructor`)?(n.kind!==`method`&&this.raise(o.start,`Constructor can't have get/set modifier`),i&&this.raise(o.start,`Constructor can't be a generator`),a&&this.raise(o.start,`Constructor can't be an async method`),n.kind=`constructor`,s=e):n.static&&o.type===`Identifier`&&o.name===`prototype`&&this.raise(o.start,`Classes may not have a static property named prototype`),this.parseClassMethod(n,i,a,s),n.kind===`get`&&n.value.params.length!==0&&this.raiseRecoverable(n.value.start,`getter should have no params`),n.kind===`set`&&n.value.params.length!==1&&this.raiseRecoverable(n.value.start,`setter should have exactly one param`),n.kind===`set`&&n.value.params[0].type===`RestElement`&&this.raiseRecoverable(n.value.params[0].start,`Setter cannot use rest params`),n},Y.parseClassMethod=function(e,t,n,r){return e.value=this.parseMethod(t,n,r),this.finishNode(e,`MethodDefinition`)},Y.parseClassId=function(e,t){this.type===J.name?(e.id=this.parseIdent(),t&&this.checkLVal(e.id,Ja,!1)):(t===!0&&this.unexpected(),e.id=null)},Y.parseClassSuper=function(e){e.superClass=this.eat(J._extends)?this.parseExprSubscripts():null},Y.parseExport=function(e,t){if(this.next(),this.eat(J.star))return this.options.ecmaVersion>=11&&(this.eatContextual(`as`)?(e.exported=this.parseIdent(!0),this.checkExport(t,e.exported.name,this.lastTokStart)):e.exported=null),this.expectContextual(`from`),this.type!==J.string&&this.unexpected(),e.source=this.parseExprAtom(),this.semicolon(),this.finishNode(e,`ExportAllDeclaration`);if(this.eat(J._default)){this.checkExport(t,`default`,this.lastTokStart);var n;if(this.type===J._function||(n=this.isAsyncFunction())){var r=this.startNode();this.next(),n&&this.next(),e.declaration=this.parseFunction(r,oo|co,!1,n)}else if(this.type===J._class){var i=this.startNode();e.declaration=this.parseClass(i,`nullableID`)}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,`ExportDefaultDeclaration`)}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(null),e.declaration.type===`VariableDeclaration`?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual(`from`))this.type!==J.string&&this.unexpected(),e.source=this.parseExprAtom();else{for(var a=0,o=e.specifiers;a<o.length;a+=1){var s=o[a];this.checkUnreserved(s.local),this.checkLocalExport(s.local)}e.source=null}this.semicolon()}return this.finishNode(e,`ExportNamedDeclaration`)},Y.checkExport=function(e,t,n){e&&(Da(e,t)&&this.raiseRecoverable(n,`Duplicate export '`+t+`'`),e[t]=!0)},Y.checkPatternExport=function(e,t){var n=t.type;if(n===`Identifier`)this.checkExport(e,t.name,t.start);else if(n===`ObjectPattern`)for(var r=0,i=t.properties;r<i.length;r+=1){var a=i[r];this.checkPatternExport(e,a)}else if(n===`ArrayPattern`)for(var o=0,s=t.elements;o<s.length;o+=1){var c=s[o];c&&this.checkPatternExport(e,c)}else n===`Property`?this.checkPatternExport(e,t.value):n===`AssignmentPattern`?this.checkPatternExport(e,t.left):n===`RestElement`?this.checkPatternExport(e,t.argument):n===`ParenthesizedExpression`&&this.checkPatternExport(e,t.expression)},Y.checkVariableExport=function(e,t){if(e)for(var n=0,r=t;n<r.length;n+=1){var i=r[n];this.checkPatternExport(e,i.id)}},Y.shouldParseExportStatement=function(){return this.type.keyword===`var`||this.type.keyword===`const`||this.type.keyword===`class`||this.type.keyword===`function`||this.isLet()||this.isAsyncFunction()},Y.parseExportSpecifiers=function(e){var t=[],n=!0;for(this.expect(J.braceL);!this.eat(J.braceR);){if(n)n=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;var r=this.startNode();r.local=this.parseIdent(!0),r.exported=this.eatContextual(`as`)?this.parseIdent(!0):r.local,this.checkExport(e,r.exported.name,r.exported.start),t.push(this.finishNode(r,`ExportSpecifier`))}return t},Y.parseImport=function(e){return this.next(),this.type===J.string?(e.specifiers=ao,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual(`from`),e.source=this.type===J.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,`ImportDeclaration`)},Y.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===J.name){var n=this.startNode();if(n.local=this.parseIdent(),this.checkLVal(n.local,Ja),e.push(this.finishNode(n,`ImportDefaultSpecifier`)),!this.eat(J.comma))return e}if(this.type===J.star){var r=this.startNode();return this.next(),this.expectContextual(`as`),r.local=this.parseIdent(),this.checkLVal(r.local,Ja),e.push(this.finishNode(r,`ImportNamespaceSpecifier`)),e}for(this.expect(J.braceL);!this.eat(J.braceR);){if(t)t=!1;else if(this.expect(J.comma),this.afterTrailingComma(J.braceR))break;var i=this.startNode();i.imported=this.parseIdent(!0),this.eatContextual(`as`)?i.local=this.parseIdent():(this.checkUnreserved(i.imported),i.local=i.imported),this.checkLVal(i.local,Ja),e.push(this.finishNode(i,`ImportSpecifier`))}return e},Y.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},Y.isDirectiveCandidate=function(e){return e.type===`ExpressionStatement`&&e.expression.type===`Literal`&&typeof e.expression.value==`string`&&(this.input[e.start]===`"`||this.input[e.start]===`'`)};var lo=Qa.prototype;lo.toAssignable=function(e,t,n){if(this.options.ecmaVersion>=6&&e)switch(e.type){case`Identifier`:this.inAsync&&e.name===`await`&&this.raise(e.start,`Cannot use 'await' as identifier inside an async function`);break;case`ObjectPattern`:case`ArrayPattern`:case`RestElement`:break;case`ObjectExpression`:e.type=`ObjectPattern`,n&&this.checkPatternErrors(n,!0);for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.toAssignable(a,t),a.type===`RestElement`&&(a.argument.type===`ArrayPattern`||a.argument.type===`ObjectPattern`)&&this.raise(a.argument.start,`Unexpected token`)}break;case`Property`:e.kind!==`init`&&this.raise(e.key.start,`Object pattern can't contain getter or setter`),this.toAssignable(e.value,t);break;case`ArrayExpression`:e.type=`ArrayPattern`,n&&this.checkPatternErrors(n,!0),this.toAssignableList(e.elements,t);break;case`SpreadElement`:e.type=`RestElement`,this.toAssignable(e.argument,t),e.argument.type===`AssignmentPattern`&&this.raise(e.argument.start,`Rest elements cannot have a default value`);break;case`AssignmentExpression`:e.operator!==`=`&&this.raise(e.left.end,`Only '=' operator can be used for specifying default value.`),e.type=`AssignmentPattern`,delete e.operator,this.toAssignable(e.left,t);case`AssignmentPattern`:break;case`ParenthesizedExpression`:this.toAssignable(e.expression,t,n);break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:if(!t)break;default:this.raise(e.start,`Assigning to rvalue`)}else n&&this.checkPatternErrors(n,!0);return e},lo.toAssignableList=function(e,t){for(var n=e.length,r=0;r<n;r++){var i=e[r];i&&this.toAssignable(i,t)}if(n){var a=e[n-1];this.options.ecmaVersion===6&&t&&a&&a.type===`RestElement`&&a.argument.type!==`Identifier`&&this.unexpected(a.argument.start)}return e},lo.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,`SpreadElement`)},lo.parseRestBinding=function(){var e=this.startNode();return this.next(),this.options.ecmaVersion===6&&this.type!==J.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,`RestElement`)},lo.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case J.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(J.bracketR,!0,!0),this.finishNode(e,`ArrayPattern`);case J.braceL:return this.parseObj(!0)}return this.parseIdent()},lo.parseBindingList=function(e,t,n){for(var r=[],i=!0;!this.eat(e);)if(i?i=!1:this.expect(J.comma),t&&this.type===J.comma)r.push(null);else if(n&&this.afterTrailingComma(e))break;else if(this.type===J.ellipsis){var a=this.parseRestBinding();this.parseBindingListItem(a),r.push(a),this.type===J.comma&&this.raise(this.start,`Comma is not permitted after the rest element`),this.expect(e);break}else{var o=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(o),r.push(o)}return r},lo.parseBindingListItem=function(e){return e},lo.parseMaybeDefault=function(e,t,n){if(n||=this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(J.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,`AssignmentPattern`)},lo.checkLVal=function(e,t,n){switch(t===void 0&&(t=Ka),e.type){case`Identifier`:t===Ja&&e.name===`let`&&this.raiseRecoverable(e.start,`let is disallowed as a lexically bound name`),this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?`Binding `:`Assigning to `)+e.name+` in strict mode`),n&&(Da(n,e.name)&&this.raiseRecoverable(e.start,`Argument name clash`),n[e.name]=!0),t!==Ka&&t!==Za&&this.declareName(e.name,t,e.start);break;case`ChainExpression`:this.raiseRecoverable(e.start,`Optional chaining cannot appear in left-hand side`);break;case`MemberExpression`:t&&this.raiseRecoverable(e.start,`Binding member expression`);break;case`ObjectPattern`:for(var r=0,i=e.properties;r<i.length;r+=1){var a=i[r];this.checkLVal(a,t,n)}break;case`Property`:this.checkLVal(e.value,t,n);break;case`ArrayPattern`:for(var o=0,s=e.elements;o<s.length;o+=1){var c=s[o];c&&this.checkLVal(c,t,n)}break;case`AssignmentPattern`:this.checkLVal(e.left,t,n);break;case`RestElement`:this.checkLVal(e.argument,t,n);break;case`ParenthesizedExpression`:this.checkLVal(e.expression,t,n);break;default:this.raise(e.start,(t?`Binding`:`Assigning to`)+` rvalue`)}};var X=Qa.prototype;X.checkPropClash=function(e,t,n){if(!(this.options.ecmaVersion>=9&&e.type===`SpreadElement`)&&!(this.options.ecmaVersion>=6&&(e.computed||e.method||e.shorthand))){var r=e.key,i;switch(r.type){case`Identifier`:i=r.name;break;case`Literal`:i=String(r.value);break;default:return}var a=e.kind;if(this.options.ecmaVersion>=6){i===`__proto__`&&a===`init`&&(t.proto&&(n?n.doubleProto<0&&(n.doubleProto=r.start):this.raiseRecoverable(r.start,`Redefinition of __proto__ property`)),t.proto=!0);return}i=`$`+i;var o=t[i];o?(a===`init`?this.strict&&o.init||o.get||o.set:o.init||o[a])&&this.raiseRecoverable(r.start,`Redefinition of property`):o=t[i]={init:!1,get:!1,set:!1},o[a]=!0}},X.parseExpression=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeAssign(e,t);if(this.type===J.comma){var a=this.startNodeAt(n,r);for(a.expressions=[i];this.eat(J.comma);)a.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(a,`SequenceExpression`)}return i},X.parseMaybeAssign=function(e,t,n){if(this.isContextual(`yield`)){if(this.inGenerator)return this.parseYield(e);this.exprAllowed=!1}var r=!1,i=-1,a=-1;t?(i=t.parenthesizedAssign,a=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new no,r=!0);var o=this.start,s=this.startLoc;(this.type===J.parenL||this.type===J.name)&&(this.potentialArrowAt=this.start);var c=this.parseMaybeConditional(e,t);if(n&&(c=n.call(this,c,o,s)),this.type.isAssign){var l=this.startNodeAt(o,s);return l.operator=this.value,l.left=this.type===J.eq?this.toAssignable(c,!1,t):c,r||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign>=l.left.start&&(t.shorthandAssign=-1),this.checkLVal(c),this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,`AssignmentExpression`)}else r&&this.checkExpressionErrors(t,!0);return i>-1&&(t.parenthesizedAssign=i),a>-1&&(t.trailingComma=a),c},X.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(J.question)){var a=this.startNodeAt(n,r);return a.test=i,a.consequent=this.parseMaybeAssign(),this.expect(J.colon),a.alternate=this.parseMaybeAssign(e),this.finishNode(a,`ConditionalExpression`)}return i},X.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)||i.start===n&&i.type===`ArrowFunctionExpression`?i:this.parseExprOp(i,n,r,-1,e)},X.parseExprOp=function(e,t,n,r,i){var a=this.type.binop;if(a!=null&&(!i||this.type!==J._in)&&a>r){var o=this.type===J.logicalOR||this.type===J.logicalAND,s=this.type===J.coalesce;s&&(a=J.logicalAND.binop);var c=this.value;this.next();var l=this.start,u=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null,!1),l,u,a,i),f=this.buildBinary(t,n,e,d,c,o||s);return(o&&this.type===J.coalesce||s&&(this.type===J.logicalOR||this.type===J.logicalAND))&&this.raiseRecoverable(this.start,`Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses`),this.parseExprOp(f,t,n,r,i)}return e},X.buildBinary=function(e,t,n,r,i,a){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,a?`LogicalExpression`:`BinaryExpression`)},X.parseMaybeUnary=function(e,t){var n=this.start,r=this.startLoc,i;if(this.isContextual(`await`)&&(this.inAsync||!this.inFunction&&this.options.allowAwaitOutsideFunction))i=this.parseAwait(),t=!0;else if(this.type.prefix){var a=this.startNode(),o=this.type===J.incDec;a.operator=this.value,a.prefix=!0,this.next(),a.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),o?this.checkLVal(a.argument):this.strict&&a.operator===`delete`&&a.argument.type===`Identifier`?this.raiseRecoverable(a.start,`Deleting local variable in strict mode`):t=!0,i=this.finishNode(a,o?`UpdateExpression`:`UnaryExpression`)}else{if(i=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return i;for(;this.type.postfix&&!this.canInsertSemicolon();){var s=this.startNodeAt(n,r);s.operator=this.value,s.prefix=!1,s.argument=i,this.checkLVal(i),this.next(),i=this.finishNode(s,`UpdateExpression`)}}return!t&&this.eat(J.starstar)?this.buildBinary(n,r,i,this.parseMaybeUnary(null,!1),`**`,!1):i},X.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e);if(r.type===`ArrowFunctionExpression`&&this.input.slice(this.lastTokStart,this.lastTokEnd)!==`)`)return r;var i=this.parseSubscripts(r,t,n);return e&&i.type===`MemberExpression`&&(e.parenthesizedAssign>=i.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=i.start&&(e.parenthesizedBind=-1)),i},X.parseSubscripts=function(e,t,n,r){for(var i=this.options.ecmaVersion>=8&&e.type===`Identifier`&&e.name===`async`&&this.lastTokEnd===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&this.potentialArrowAt===e.start,a=!1;;){var o=this.parseSubscript(e,t,n,r,i,a);if(o.optional&&(a=!0),o===e||o.type===`ArrowFunctionExpression`){if(a){var s=this.startNodeAt(t,n);s.expression=o,o=this.finishNode(s,`ChainExpression`)}return o}e=o}},X.parseSubscript=function(e,t,n,r,i,a){var o=this.options.ecmaVersion>=11,s=o&&this.eat(J.questionDot);r&&s&&this.raise(this.lastTokStart,`Optional chaining cannot appear in the callee of new expressions`);var c=this.eat(J.bracketL);if(c||s&&this.type!==J.parenL&&this.type!==J.backQuote||this.eat(J.dot)){var l=this.startNodeAt(t,n);l.object=e,l.property=c?this.parseExpression():this.parseIdent(this.options.allowReserved!==`never`),l.computed=!!c,c&&this.expect(J.bracketR),o&&(l.optional=s),e=this.finishNode(l,`MemberExpression`)}else if(!r&&this.eat(J.parenL)){var u=new no,d=this.yieldPos,f=this.awaitPos,p=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var m=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1,u);if(i&&!s&&!this.canInsertSemicolon()&&this.eat(J.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos>0&&this.raise(this.awaitIdentPos,`Cannot use 'await' as identifier inside an async function`),this.yieldPos=d,this.awaitPos=f,this.awaitIdentPos=p,this.parseArrowExpression(this.startNodeAt(t,n),m,!0);this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=f||this.awaitPos,this.awaitIdentPos=p||this.awaitIdentPos;var h=this.startNodeAt(t,n);h.callee=e,h.arguments=m,o&&(h.optional=s),e=this.finishNode(h,`CallExpression`)}else if(this.type===J.backQuote){(s||a)&&this.raise(this.start,`Optional chaining cannot appear in the tag of tagged template expressions`);var g=this.startNodeAt(t,n);g.tag=e,g.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(g,`TaggedTemplateExpression`)}return e},X.parseExprAtom=function(e){this.type===J.slash&&this.readRegexp();var t,n=this.potentialArrowAt===this.start;switch(this.type){case J._super:return this.allowSuper||this.raise(this.start,`'super' keyword outside a method`),t=this.startNode(),this.next(),this.type===J.parenL&&!this.allowDirectSuper&&this.raise(t.start,`super() call outside constructor of a subclass`),this.type!==J.dot&&this.type!==J.bracketL&&this.type!==J.parenL&&this.unexpected(),this.finishNode(t,`Super`);case J._this:return t=this.startNode(),this.next(),this.finishNode(t,`ThisExpression`);case J.name:var r=this.start,i=this.startLoc,a=this.containsEsc,o=this.parseIdent(!1);if(this.options.ecmaVersion>=8&&!a&&o.name===`async`&&!this.canInsertSemicolon()&&this.eat(J._function))return this.parseFunction(this.startNodeAt(r,i),0,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(J.arrow))return this.parseArrowExpression(this.startNodeAt(r,i),[o],!1);if(this.options.ecmaVersion>=8&&o.name===`async`&&this.type===J.name&&!a)return o=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(J.arrow))&&this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,i),[o],!0)}return o;case J.regexp:var s=this.value;return t=this.parseLiteral(s.value),t.regex={pattern:s.pattern,flags:s.flags},t;case J.num:case J.string:return this.parseLiteral(this.value);case J._null:case J._true:case J._false:return t=this.startNode(),t.value=this.type===J._null?null:this.type===J._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,`Literal`);case J.parenL:var c=this.start,l=this.parseParenAndDistinguishExpression(n);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(l)&&(e.parenthesizedAssign=c),e.parenthesizedBind<0&&(e.parenthesizedBind=c)),l;case J.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(J.bracketR,!0,!0,e),this.finishNode(t,`ArrayExpression`);case J.braceL:return this.parseObj(!1,e);case J._function:return t=this.startNode(),this.next(),this.parseFunction(t,0);case J._class:return this.parseClass(this.startNode(),!1);case J._new:return this.parseNew();case J.backQuote:return this.parseTemplate();case J._import:return this.options.ecmaVersion>=11?this.parseExprImport():this.unexpected();default:this.unexpected()}},X.parseExprImport=function(){var e=this.startNode();this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword import`);var t=this.parseIdent(!0);switch(this.type){case J.parenL:return this.parseDynamicImport(e);case J.dot:return e.meta=t,this.parseImportMeta(e);default:this.unexpected()}},X.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),!this.eat(J.parenR)){var t=this.start;this.eat(J.comma)&&this.eat(J.parenR)?this.raiseRecoverable(t,`Trailing comma is not allowed in import()`):this.unexpected(t)}return this.finishNode(e,`ImportExpression`)},X.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`meta`&&this.raiseRecoverable(e.property.start,`The only valid meta property for import is 'import.meta'`),t&&this.raiseRecoverable(e.start,`'import.meta' must not contain escaped characters`),this.options.sourceType!==`module`&&this.raiseRecoverable(e.start,`Cannot use 'import.meta' outside a module`),this.finishNode(e,`MetaProperty`)},X.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&&(t.bigint=t.raw.slice(0,-1).replace(/_/g,``)),this.next(),this.finishNode(t,`Literal`)},X.parseParenExpression=function(){this.expect(J.parenL);var e=this.parseExpression();return this.expect(J.parenR),e},X.parseParenAndDistinguishExpression=function(e){var t=this.start,n=this.startLoc,r,i=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var a=this.start,o=this.startLoc,s=[],c=!0,l=!1,u=new no,d=this.yieldPos,f=this.awaitPos,p;for(this.yieldPos=0,this.awaitPos=0;this.type!==J.parenR;)if(c?c=!1:this.expect(J.comma),i&&this.afterTrailingComma(J.parenR,!0)){l=!0;break}else if(this.type===J.ellipsis){p=this.start,s.push(this.parseParenItem(this.parseRestBinding())),this.type===J.comma&&this.raise(this.start,`Comma is not permitted after the rest element`);break}else s.push(this.parseMaybeAssign(!1,u,this.parseParenItem));var m=this.start,h=this.startLoc;if(this.expect(J.parenR),e&&!this.canInsertSemicolon()&&this.eat(J.arrow))return this.checkPatternErrors(u,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=d,this.awaitPos=f,this.parseParenArrowList(t,n,s);(!s.length||l)&&this.unexpected(this.lastTokStart),p&&this.unexpected(p),this.checkExpressionErrors(u,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=f||this.awaitPos,s.length>1?(r=this.startNodeAt(a,o),r.expressions=s,this.finishNodeAt(r,`SequenceExpression`,m,h)):r=s[0]}else r=this.parseParenExpression();if(this.options.preserveParens){var g=this.startNodeAt(t,n);return g.expression=r,this.finishNode(g,`ParenthesizedExpression`)}else return r},X.parseParenItem=function(e){return e},X.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var uo=[];X.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword new`);var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(J.dot)){e.meta=t;var n=this.containsEsc;return e.property=this.parseIdent(!0),e.property.name!==`target`&&this.raiseRecoverable(e.property.start,`The only valid meta property for new is 'new.target'`),n&&this.raiseRecoverable(e.start,`'new.target' must not contain escaped characters`),this.inNonArrowFunction()||this.raiseRecoverable(e.start,`'new.target' can only be used in functions`),this.finishNode(e,`MetaProperty`)}var r=this.start,i=this.startLoc,a=this.type===J._import;return e.callee=this.parseSubscripts(this.parseExprAtom(),r,i,!0),a&&e.callee.type===`ImportExpression`&&this.raise(r,`Cannot use new with import()`),this.eat(J.parenL)?e.arguments=this.parseExprList(J.parenR,this.options.ecmaVersion>=8,!1):e.arguments=uo,this.finishNode(e,`NewExpression`)},X.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===J.invalidTemplate?(t||this.raiseRecoverable(this.start,`Bad escape sequence in untagged template literal`),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,`
|
|
91
91
|
`),cooked:this.value},this.next(),n.tail=this.type===J.backQuote,this.finishNode(n,`TemplateElement`)},X.parseTemplate=function(e){e===void 0&&(e={});var t=e.isTagged;t===void 0&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.type===J.eof&&this.raise(this.pos,`Unterminated template literal`),this.expect(J.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(J.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,`TemplateLiteral`)},X.isAsyncProp=function(e){return!e.computed&&e.key.type===`Identifier`&&e.key.name===`async`&&(this.type===J.name||this.type===J.num||this.type===J.string||this.type===J.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===J.star)&&!ya.test(this.input.slice(this.lastTokEnd,this.start))},X.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(J.braceR);){if(r)r=!1;else if(this.expect(J.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(J.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,i,t),n.properties.push(a)}return this.finishNode(n,e?`ObjectPattern`:`ObjectExpression`)},X.parseProperty=function(e,t){var n=this.startNode(),r,i,a,o;if(this.options.ecmaVersion>=9&&this.eat(J.ellipsis))return e?(n.argument=this.parseIdent(!1),this.type===J.comma&&this.raise(this.start,`Comma is not permitted after the rest element`),this.finishNode(n,`RestElement`)):(this.type===J.parenL&&t&&(t.parenthesizedAssign<0&&(t.parenthesizedAssign=this.start),t.parenthesizedBind<0&&(t.parenthesizedBind=this.start)),n.argument=this.parseMaybeAssign(!1,t),this.type===J.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(n,`SpreadElement`));this.options.ecmaVersion>=6&&(n.method=!1,n.shorthand=!1,(e||t)&&(a=this.start,o=this.startLoc),e||(r=this.eat(J.star)));var s=this.containsEsc;return this.parsePropertyName(n),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(n)?(i=!0,r=this.options.ecmaVersion>=9&&this.eat(J.star),this.parsePropertyName(n,t)):i=!1,this.parsePropertyValue(n,e,r,i,a,o,t,s),this.finishNode(n,`Property`)},X.parsePropertyValue=function(e,t,n,r,i,a,o,s){if((n||r)&&this.type===J.colon&&this.unexpected(),this.eat(J.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind=`init`;else if(this.options.ecmaVersion>=6&&this.type===J.parenL)t&&this.unexpected(),e.kind=`init`,e.method=!0,e.value=this.parseMethod(n,r);else if(!t&&!s&&this.options.ecmaVersion>=5&&!e.computed&&e.key.type===`Identifier`&&(e.key.name===`get`||e.key.name===`set`)&&this.type!==J.comma&&this.type!==J.braceR&&this.type!==J.eq){(n||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var c=e.kind===`get`?0:1;if(e.value.params.length!==c){var l=e.value.start;e.kind===`get`?this.raiseRecoverable(l,`getter should have no params`):this.raiseRecoverable(l,`setter should have exactly one param`)}else e.kind===`set`&&e.value.params[0].type===`RestElement`&&this.raiseRecoverable(e.value.params[0].start,`Setter cannot use rest params`)}else this.options.ecmaVersion>=6&&!e.computed&&e.key.type===`Identifier`?((n||r)&&this.unexpected(),this.checkUnreserved(e.key),e.key.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=i),e.kind=`init`,t?e.value=this.parseMaybeDefault(i,a,e.key):this.type===J.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,a,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected()},X.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(J.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(J.bracketR),e.key;e.computed=!1}return e.key=this.type===J.num||this.type===J.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==`never`)},X.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},X.parseMethod=function(e,t,n){var r=this.startNode(),i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(r),this.options.ecmaVersion>=6&&(r.generator=e),this.options.ecmaVersion>=8&&(r.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Ga(t,r.generator)|Ua|(n?Wa:0)),this.expect(J.parenL),r.params=this.parseBindingList(J.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(r,!1,!0),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(r,`FunctionExpression`)},X.parseArrowExpression=function(e,t,n){var r=this.yieldPos,i=this.awaitPos,a=this.awaitIdentPos;return this.enterScope(Ga(n,!1)|Va),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1),this.yieldPos=r,this.awaitPos=i,this.awaitIdentPos=a,this.finishNode(e,`ArrowFunctionExpression`)},X.parseFunctionBody=function(e,t,n){var r=t&&this.type!==J.braceL,i=this.strict,a=!1;if(r)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var o=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);(!i||o)&&(a=this.strictDirective(this.end),a&&o&&this.raiseRecoverable(e.start,`Illegal 'use strict' directive in function with non-simple parameter list`));var s=this.labels;this.labels=[],a&&(this.strict=!0),this.checkParams(e,!i&&!a&&!t&&!n&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLVal(e.id,Za),e.body=this.parseBlock(!1,void 0,a&&!i),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=s}this.exitScope()},X.isSimpleParamList=function(e){for(var t=0,n=e;t<n.length;t+=1)if(n[t].type!==`Identifier`)return!1;return!0},X.checkParams=function(e,t){for(var n={},r=0,i=e.params;r<i.length;r+=1){var a=i[r];this.checkLVal(a,qa,t?null:n)}},X.parseExprList=function(e,t,n,r){for(var i=[],a=!0;!this.eat(e);){if(a)a=!1;else if(this.expect(J.comma),t&&this.afterTrailingComma(e))break;var o=void 0;n&&this.type===J.comma?o=null:this.type===J.ellipsis?(o=this.parseSpread(r),r&&this.type===J.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):o=this.parseMaybeAssign(!1,r),i.push(o)}return i},X.checkUnreserved=function(e){var t=e.start,n=e.end,r=e.name;this.inGenerator&&r===`yield`&&this.raiseRecoverable(t,`Cannot use 'yield' as identifier inside a generator`),this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use 'await' as identifier inside an async function`),this.keywords.test(r)&&this.raise(t,`Unexpected keyword '`+r+`'`),!(this.options.ecmaVersion<6&&this.input.slice(t,n).indexOf(`\\`)!==-1)&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(r)&&(!this.inAsync&&r===`await`&&this.raiseRecoverable(t,`Cannot use keyword 'await' outside an async function`),this.raiseRecoverable(t,`The keyword '`+r+`' is reserved`))},X.parseIdent=function(e,t){var n=this.startNode();return this.type===J.name?n.name=this.value:this.type.keyword?(n.name=this.type.keyword,(n.name===`class`||n.name===`function`)&&(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&&this.context.pop()):this.unexpected(),this.next(!!e),this.finishNode(n,`Identifier`),e||(this.checkUnreserved(n),n.name===`await`&&!this.awaitIdentPos&&(this.awaitIdentPos=n.start)),n},X.parseYield=function(e){this.yieldPos||=this.start;var t=this.startNode();return this.next(),this.type===J.semi||this.canInsertSemicolon()||this.type!==J.star&&!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(J.star),t.argument=this.parseMaybeAssign(e)),this.finishNode(t,`YieldExpression`)},X.parseAwait=function(){this.awaitPos||=this.start;var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!1),this.finishNode(e,`AwaitExpression`)};var fo=Qa.prototype;fo.raise=function(e,t){var n=Ma(this.input,e);t+=` (`+n.line+`:`+n.column+`)`;var r=SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},fo.raiseRecoverable=fo.raise,fo.curPosition=function(){if(this.options.locations)return new Aa(this.curLine,this.pos-this.lineStart)};var po=Qa.prototype,mo=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};po.enterScope=function(e){this.scopeStack.push(new mo(e))},po.exitScope=function(){this.scopeStack.pop()},po.treatFunctionsAsVarInScope=function(e){return e.flags&La||!this.inModule&&e.flags&Ia},po.declareName=function(e,t,n){var r=!1;if(t===Ja){var i=this.currentScope();r=i.lexical.indexOf(e)>-1||i.functions.indexOf(e)>-1||i.var.indexOf(e)>-1,i.lexical.push(e),this.inModule&&i.flags&Ia&&delete this.undefinedExports[e]}else if(t===Xa)this.currentScope().lexical.push(e);else if(t===Ya){var a=this.currentScope();r=this.treatFunctionsAsVar?a.lexical.indexOf(e)>-1:a.lexical.indexOf(e)>-1||a.var.indexOf(e)>-1,a.functions.push(e)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(e)>-1&&!(s.flags&Ha&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){r=!0;break}if(s.var.push(e),this.inModule&&s.flags&Ia&&delete this.undefinedExports[e],s.flags&Ra)break}r&&this.raiseRecoverable(n,`Identifier '`+e+`' has already been declared`)},po.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},po.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},po.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Ra)return t}},po.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Ra&&!(t.flags&Va))return t}};var ho=function(e,t,n){this.type=``,this.start=t,this.end=0,e.options.locations&&(this.loc=new ja(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},go=Qa.prototype;go.startNode=function(){return new ho(this,this.start,this.startLoc)},go.startNodeAt=function(e,t){return new ho(this,e,t)};function _o(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}go.finishNode=function(e,t){return _o.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},go.finishNodeAt=function(e,t,n,r){return _o.call(this,e,t,n,r)};var vo=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},yo={b_stat:new vo(`{`,!1),b_expr:new vo(`{`,!0),b_tmpl:new vo("${",!1),p_stat:new vo(`(`,!1),p_expr:new vo(`(`,!0),q_tmpl:new vo("`",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new vo(`function`,!1),f_expr:new vo(`function`,!0),f_expr_gen:new vo(`function`,!0,!1,null,!0),f_gen:new vo(`function`,!1,!1,null,!0)},bo=Qa.prototype;bo.initialContext=function(){return[yo.b_stat]},bo.braceIsBlock=function(e){var t=this.curContext();return t===yo.f_expr||t===yo.f_stat?!0:e===J.colon&&(t===yo.b_stat||t===yo.b_expr)?!t.isExpr:e===J._return||e===J.name&&this.exprAllowed?ya.test(this.input.slice(this.lastTokEnd,this.start)):e===J._else||e===J.semi||e===J.eof||e===J.parenR||e===J.arrow?!0:e===J.braceL?t===yo.b_stat:e===J._var||e===J._const||e===J.name?!1:!this.exprAllowed},bo.inGeneratorContext=function(){for(var e=this.context.length-1;e>=1;e--){var t=this.context[e];if(t.token===`function`)return t.generator}return!1},bo.updateContext=function(e){var t,n=this.type;n.keyword&&e===J.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},J.parenR.updateContext=J.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var e=this.context.pop();e===yo.b_stat&&this.curContext().token===`function`&&(e=this.context.pop()),this.exprAllowed=!e.isExpr},J.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?yo.b_stat:yo.b_expr),this.exprAllowed=!0},J.dollarBraceL.updateContext=function(){this.context.push(yo.b_tmpl),this.exprAllowed=!0},J.parenL.updateContext=function(e){var t=e===J._if||e===J._for||e===J._with||e===J._while;this.context.push(t?yo.p_stat:yo.p_expr),this.exprAllowed=!0},J.incDec.updateContext=function(){},J._function.updateContext=J._class.updateContext=function(e){e.beforeExpr&&e!==J.semi&&e!==J._else&&!(e===J._return&&ya.test(this.input.slice(this.lastTokEnd,this.start)))&&!((e===J.colon||e===J.braceL)&&this.curContext()===yo.b_stat)?this.context.push(yo.f_expr):this.context.push(yo.f_stat),this.exprAllowed=!1},J.backQuote.updateContext=function(){this.curContext()===yo.q_tmpl?this.context.pop():this.context.push(yo.q_tmpl),this.exprAllowed=!1},J.star.updateContext=function(e){if(e===J._function){var t=this.context.length-1;this.context[t]===yo.f_expr?this.context[t]=yo.f_expr_gen:this.context[t]=yo.f_gen}this.exprAllowed=!0},J.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&e!==J.dot&&(this.value===`of`&&!this.exprAllowed||this.value===`yield`&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var xo=`ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS`,So=xo+` Extended_Pictographic`,Co={9:xo,10:So,11:So},wo=`Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu`,To=`Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb`,Eo=To+` Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd`,Do={9:To,10:Eo,11:Eo+` Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho`},Oo={};function ko(e){var t=Oo[e]={binary:ka(Co[e]+` `+wo),nonBinary:{General_Category:ka(wo),Script:ka(Do[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}ko(9),ko(10),ko(11);var Z=Qa.prototype,Ao=function(e){this.parser=e,this.validFlags=`gim`+(e.options.ecmaVersion>=6?`uy`:``)+(e.options.ecmaVersion>=9?`s`:``),this.unicodeProperties=Oo[e.options.ecmaVersion>=11?11:e.options.ecmaVersion],this.source=``,this.flags=``,this.start=0,this.switchU=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=``,this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=[],this.backReferenceNames=[]};Ao.prototype.reset=function(e,t,n){var r=n.indexOf(`u`)!==-1;this.start=e|0,this.source=t+``,this.flags=n,this.switchU=r&&this.parser.options.ecmaVersion>=6,this.switchN=r&&this.parser.options.ecmaVersion>=9},Ao.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,`Invalid regular expression: /`+this.source+`/: `+e)},Ao.prototype.at=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return-1;var i=n.charCodeAt(e);if(!(t||this.switchU)||i<=55295||i>=57344||e+1>=r)return i;var a=n.charCodeAt(e+1);return a>=56320&&a<=57343?(i<<10)+a-56613888:i},Ao.prototype.nextIndex=function(e,t){t===void 0&&(t=!1);var n=this.source,r=n.length;if(e>=r)return r;var i=n.charCodeAt(e),a;return!(t||this.switchU)||i<=55295||i>=57344||e+1>=r||(a=n.charCodeAt(e+1))<56320||a>57343?e+1:e+2},Ao.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)},Ao.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Ao.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Ao.prototype.eat=function(e,t){return t===void 0&&(t=!1),this.current(t)===e?(this.advance(t),!0):!1};function jo(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}Z.validateRegExpFlags=function(e){for(var t=e.validFlags,n=e.flags,r=0;r<n.length;r++){var i=n.charAt(r);t.indexOf(i)===-1&&this.raise(e.start,`Invalid regular expression flag`),n.indexOf(i,r+1)>-1&&this.raise(e.start,`Duplicate regular expression flag`)}},Z.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&e.groupNames.length>0&&(e.switchN=!0,this.regexp_pattern(e))},Z.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue=``,e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames.length=0,e.backReferenceNames.length=0,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise(`Unmatched ')'`),(e.eat(93)||e.eat(125))&&e.raise(`Lone quantifier brackets`)),e.maxBackReference>e.numCapturingParens&&e.raise(`Invalid escape`);for(var t=0,n=e.backReferenceNames;t<n.length;t+=1){var r=n[t];e.groupNames.indexOf(r)===-1&&e.raise(`Invalid named capture referenced`)}},Z.regexp_disjunction=function(e){for(this.regexp_alternative(e);e.eat(124);)this.regexp_alternative(e);this.regexp_eatQuantifier(e,!0)&&e.raise(`Nothing to repeat`),e.eat(123)&&e.raise(`Lone quantifier brackets`)},Z.regexp_alternative=function(e){for(;e.pos<e.source.length&&this.regexp_eatTerm(e););},Z.regexp_eatTerm=function(e){return this.regexp_eatAssertion(e)?(e.lastAssertionIsQuantifiable&&this.regexp_eatQuantifier(e)&&e.switchU&&e.raise(`Invalid quantifier`),!0):(e.switchU?this.regexp_eatAtom(e):this.regexp_eatExtendedAtom(e))?(this.regexp_eatQuantifier(e),!0):!1},Z.regexp_eatAssertion=function(e){var t=e.pos;if(e.lastAssertionIsQuantifiable=!1,e.eat(94)||e.eat(36))return!0;if(e.eat(92)){if(e.eat(66)||e.eat(98))return!0;e.pos=t}if(e.eat(40)&&e.eat(63)){var n=!1;if(this.options.ecmaVersion>=9&&(n=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise(`Unterminated group`),e.lastAssertionIsQuantifiable=!n,!0}return e.pos=t,!1},Z.regexp_eatQuantifier=function(e,t){return t===void 0&&(t=!1),this.regexp_eatQuantifierPrefix(e,t)?(e.eat(63),!0):!1},Z.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},Z.regexp_eatBracedQuantifier=function(e,t){var n=e.pos;if(e.eat(123)){var r=0,i=-1;if(this.regexp_eatDecimalDigits(e)&&(r=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue),e.eat(125)))return i!==-1&&i<r&&!t&&e.raise(`numbers out of order in {} quantifier`),!0;e.switchU&&!t&&e.raise(`Incomplete quantifier`),e.pos=n}return!1},Z.regexp_eatAtom=function(e){return this.regexp_eatPatternCharacters(e)||e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)},Z.regexp_eatReverseSolidusAtomEscape=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatAtomEscape(e))return!0;e.pos=t}return!1},Z.regexp_eatUncapturingGroup=function(e){var t=e.pos;if(e.eat(40)){if(e.eat(63)&&e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise(`Unterminated group`)}e.pos=t}return!1},Z.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):e.current()===63&&e.raise(`Invalid group`),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise(`Unterminated group`)}return!1},Z.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},Z.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise(`Nothing to repeat`),!1},Z.regexp_eatSyntaxCharacter=function(e){var t=e.current();return Mo(t)?(e.lastIntValue=t,e.advance(),!0):!1};function Mo(e){return e===36||e>=40&&e<=43||e===46||e===63||e>=91&&e<=94||e>=123&&e<=125}Z.regexp_eatPatternCharacters=function(e){for(var t=e.pos,n=0;(n=e.current())!==-1&&!Mo(n);)e.advance();return e.pos!==t},Z.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return t!==-1&&t!==36&&!(t>=40&&t<=43)&&t!==46&&t!==63&&t!==91&&t!==94&&t!==124?(e.advance(),!0):!1},Z.regexp_groupSpecifier=function(e){if(e.eat(63)){if(this.regexp_eatGroupName(e)){e.groupNames.indexOf(e.lastStringValue)!==-1&&e.raise(`Duplicate capture group name`),e.groupNames.push(e.lastStringValue);return}e.raise(`Invalid group`)}},Z.regexp_eatGroupName=function(e){if(e.lastStringValue=``,e.eat(60)){if(this.regexp_eatRegExpIdentifierName(e)&&e.eat(62))return!0;e.raise(`Invalid capture group name`)}return!1},Z.regexp_eatRegExpIdentifierName=function(e){if(e.lastStringValue=``,this.regexp_eatRegExpIdentifierStart(e)){for(e.lastStringValue+=jo(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=jo(e.lastIntValue);return!0}return!1},Z.regexp_eatRegExpIdentifierStart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),No(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function No(e){return pa(e,!0)||e===36||e===95}Z.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,n=this.options.ecmaVersion>=11,r=e.current(n);return e.advance(n),r===92&&this.regexp_eatRegExpUnicodeEscapeSequence(e,n)&&(r=e.lastIntValue),Po(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Po(e){return ma(e,!0)||e===36||e===95||e===8204||e===8205}Z.regexp_eatAtomEscape=function(e){return this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e)?!0:(e.switchU&&(e.current()===99&&e.raise(`Invalid unicode escape`),e.raise(`Invalid escape`)),!1)},Z.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var n=e.lastIntValue;if(e.switchU)return n>e.maxBackReference&&(e.maxBackReference=n),!0;if(n<=e.numCapturingParens)return!0;e.pos=t}return!1},Z.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise(`Invalid named reference`)}return!1},Z.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},Z.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},Z.regexp_eatZero=function(e){return e.current()===48&&!Bo(e.lookahead())?(e.lastIntValue=0,e.advance(),!0):!1},Z.regexp_eatControlEscape=function(e){var t=e.current();return t===116?(e.lastIntValue=9,e.advance(),!0):t===110?(e.lastIntValue=10,e.advance(),!0):t===118?(e.lastIntValue=11,e.advance(),!0):t===102?(e.lastIntValue=12,e.advance(),!0):t===114?(e.lastIntValue=13,e.advance(),!0):!1},Z.regexp_eatControlLetter=function(e){var t=e.current();return Fo(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Fo(e){return e>=65&&e<=90||e>=97&&e<=122}Z.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){t===void 0&&(t=!1);var n=e.pos,r=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(r&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=(i-55296)*1024+(o-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(r&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&Io(e.lastIntValue))return!0;r&&e.raise(`Invalid unicode escape`),e.pos=n}return!1};function Io(e){return e>=0&&e<=1114111}Z.regexp_eatIdentityEscape=function(e){if(e.switchU)return this.regexp_eatSyntaxCharacter(e)?!0:e.eat(47)?(e.lastIntValue=47,!0):!1;var t=e.current();return t!==99&&(!e.switchN||t!==107)?(e.lastIntValue=t,e.advance(),!0):!1},Z.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do e.lastIntValue=10*e.lastIntValue+(t-48),e.advance();while((t=e.current())>=48&&t<=57);return!0}return!1},Z.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(Lo(t))return e.lastIntValue=-1,e.advance(),!0;if(e.switchU&&this.options.ecmaVersion>=9&&(t===80||t===112)){if(e.lastIntValue=-1,e.advance(),e.eat(123)&&this.regexp_eatUnicodePropertyValueExpression(e)&&e.eat(125))return!0;e.raise(`Invalid property name`)}return!1};function Lo(e){return e===100||e===68||e===115||e===83||e===119||e===87}Z.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var n=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var r=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,n,r),!0}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,i),!0}return!1},Z.regexp_validateUnicodePropertyNameAndValue=function(e,t,n){Da(e.unicodeProperties.nonBinary,t)||e.raise(`Invalid property name`),e.unicodeProperties.nonBinary[t].test(n)||e.raise(`Invalid property value`)},Z.regexp_validateUnicodePropertyNameOrValue=function(e,t){e.unicodeProperties.binary.test(t)||e.raise(`Invalid property name`)},Z.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue=``;Ro(t=e.current());)e.lastStringValue+=jo(t),e.advance();return e.lastStringValue!==``};function Ro(e){return Fo(e)||e===95}Z.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=``;zo(t=e.current());)e.lastStringValue+=jo(t),e.advance();return e.lastStringValue!==``};function zo(e){return Ro(e)||Bo(e)}Z.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},Z.regexp_eatCharacterClass=function(e){if(e.eat(91)){if(e.eat(94),this.regexp_classRanges(e),e.eat(93))return!0;e.raise(`Unterminated character class`)}return!1},Z.regexp_classRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var n=e.lastIntValue;e.switchU&&(t===-1||n===-1)&&e.raise(`Invalid character class`),t!==-1&&n!==-1&&t>n&&e.raise(`Range out of order in character class`)}}},Z.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var n=e.current();(n===99||Uo(n))&&e.raise(`Invalid class escape`),e.raise(`Invalid escape`)}e.pos=t}var r=e.current();return r===93?!1:(e.lastIntValue=r,e.advance(),!0)},Z.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},Z.regexp_eatClassControlLetter=function(e){var t=e.current();return Bo(t)||t===95?(e.lastIntValue=t%32,e.advance(),!0):!1},Z.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise(`Invalid escape`),e.pos=t}return!1},Z.regexp_eatDecimalDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Bo(n=e.current());)e.lastIntValue=10*e.lastIntValue+(n-48),e.advance();return e.pos!==t};function Bo(e){return e>=48&&e<=57}Z.regexp_eatHexDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Vo(n=e.current());)e.lastIntValue=16*e.lastIntValue+Ho(n),e.advance();return e.pos!==t};function Vo(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function Ho(e){return e>=65&&e<=70?10+(e-65):e>=97&&e<=102?10+(e-97):e-48}Z.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var n=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=t*64+n*8+e.lastIntValue:e.lastIntValue=t*8+n}else e.lastIntValue=t;return!0}return!1},Z.regexp_eatOctalDigit=function(e){var t=e.current();return Uo(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Uo(e){return e>=48&&e<=55}Z.regexp_eatFixedHexDigits=function(e,t){var n=e.pos;e.lastIntValue=0;for(var r=0;r<t;++r){var i=e.current();if(!Vo(i))return e.pos=n,!1;e.lastIntValue=16*e.lastIntValue+Ho(i),e.advance()}return!0};var Wo=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new ja(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},Q=Qa.prototype;Q.next=function(e){!e&&this.type.keyword&&this.containsEsc&&this.raiseRecoverable(this.start,`Escape sequence in keyword `+this.type.keyword),this.options.onToken&&this.options.onToken(new Wo(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},Q.getToken=function(){return this.next(),new Wo(this)},typeof Symbol<`u`&&(Q[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===J.eof,value:t}}}}),Q.curContext=function(){return this.context[this.context.length-1]},Q.nextToken=function(){var e=this.curContext();if((!e||!e.preserveSpace)&&this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length)return this.finishToken(J.eof);if(e.override)return e.override(this);this.readToken(this.fullCharCodeAtPos())},Q.readToken=function(e){return pa(e,this.options.ecmaVersion>=6)||e===92?this.readWord():this.getTokenFromCode(e)},Q.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=57344)return e;var t=this.input.charCodeAt(this.pos+1);return(e<<10)+t-56613888},Q.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,n=this.input.indexOf(`*/`,this.pos+=2);if(n===-1&&this.raise(this.pos-2,`Unterminated comment`),this.pos=n+2,this.options.locations){ba.lastIndex=t;for(var r;(r=ba.exec(this.input))&&r.index<this.pos;)++this.curLine,this.lineStart=r.index+r[0].length}this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,n),t,this.pos,e,this.curPosition())},Q.skipLineComment=function(e){for(var t=this.pos,n=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!xa(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,n,this.curPosition())},Q.skipSpace=function(){loop:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break loop}break;default:if(e>8&&e<14||e>=5760&&Sa.test(String.fromCharCode(e)))++this.pos;else break loop}}},Q.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},Q.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&e===46&&t===46?(this.pos+=3,this.finishToken(J.ellipsis)):(++this.pos,this.finishToken(J.dot))},Q.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):e===61?this.finishOp(J.assign,2):this.finishOp(J.slash,1)},Q.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=e===42?J.star:J.modulo;return this.options.ecmaVersion>=7&&e===42&&t===42&&(++n,r=J.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(J.assign,n+1):this.finishOp(r,n)},Q.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(J.assign,3):this.finishOp(e===124?J.logicalOR:J.logicalAND,2):t===61?this.finishOp(J.assign,2):this.finishOp(e===124?J.bitwiseOR:J.bitwiseAND,1)},Q.readToken_caret=function(){return this.input.charCodeAt(this.pos+1)===61?this.finishOp(J.assign,2):this.finishOp(J.bitwiseXOR,1)},Q.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?t===45&&!this.inModule&&this.input.charCodeAt(this.pos+2)===62&&(this.lastTokEnd===0||ya.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(J.incDec,2):t===61?this.finishOp(J.assign,2):this.finishOp(J.plusMin,1)},Q.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=e===62&&this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+n)===61?this.finishOp(J.assign,n+1):this.finishOp(J.bitShift,n)):t===33&&e===60&&!this.inModule&&this.input.charCodeAt(this.pos+2)===45&&this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&&(n=2),this.finishOp(J.relational,n))},Q.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(J.equality,this.input.charCodeAt(this.pos+2)===61?3:2):e===61&&t===62&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(J.arrow)):this.finishOp(e===61?J.eq:J.prefix,1)},Q.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var n=this.input.charCodeAt(this.pos+2);if(n<48||n>57)return this.finishOp(J.questionDot,2)}if(t===63)return e>=12&&this.input.charCodeAt(this.pos+2)===61?this.finishOp(J.assign,3):this.finishOp(J.coalesce,2)}return this.finishOp(J.question,1)},Q.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(J.parenL);case 41:return++this.pos,this.finishToken(J.parenR);case 59:return++this.pos,this.finishToken(J.semi);case 44:return++this.pos,this.finishToken(J.comma);case 91:return++this.pos,this.finishToken(J.bracketL);case 93:return++this.pos,this.finishToken(J.bracketR);case 123:return++this.pos,this.finishToken(J.braceL);case 125:return++this.pos,this.finishToken(J.braceR);case 58:return++this.pos,this.finishToken(J.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(J.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(J.prefix,1)}this.raise(this.pos,`Unexpected character '`+qo(e)+`'`)},Q.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)},Q.readRegexp=function(){for(var e,t,n=this.pos;;){this.pos>=this.input.length&&this.raise(n,`Unterminated regular expression`);var r=this.input.charAt(this.pos);if(ya.test(r)&&this.raise(n,`Unterminated regular expression`),e)e=!1;else{if(r===`[`)t=!0;else if(r===`]`&&t)t=!1;else if(r===`/`&&!t)break;e=r===`\\`}++this.pos}var i=this.input.slice(n,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var s=this.regexpState||=new Ao(this);s.reset(n,i,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(i,o)}catch{}return this.finishToken(J.regexp,{pattern:i,flags:o,value:c})},Q.readInt=function(e,t,n){for(var r=this.options.ecmaVersion>=12&&t===void 0,i=n&&this.input.charCodeAt(this.pos)===48,a=this.pos,o=0,s=0,c=0,l=t??1/0;c<l;++c,++this.pos){var u=this.input.charCodeAt(this.pos),d=void 0;if(r&&u===95){i&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed in legacy octal numeric literals`),s===95&&this.raiseRecoverable(this.pos,`Numeric separator must be exactly one underscore`),c===0&&this.raiseRecoverable(this.pos,`Numeric separator is not allowed at the first of digits`),s=u;continue}if(d=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0,d>=e)break;s=u,o=o*e+d}return r&&s===95&&this.raiseRecoverable(this.pos-1,`Numeric separator is not allowed at the last of digits`),this.pos===a||t!=null&&this.pos-a!==t?null:o};function Go(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,``))}function Ko(e){return typeof BigInt==`function`?BigInt(e.replace(/_/g,``)):null}Q.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var n=this.readInt(e);return n??this.raise(this.start+2,`Expected number in radix `+e),this.options.ecmaVersion>=11&&this.input.charCodeAt(this.pos)===110?(n=Ko(this.input.slice(t,this.pos)),++this.pos):pa(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(J.num,n)},Q.readNumber=function(e){var t=this.pos;!e&&this.readInt(10,void 0,!0)===null&&this.raise(t,`Invalid number`);var n=this.pos-t>=2&&this.input.charCodeAt(t)===48;n&&this.strict&&this.raise(t,`Invalid number`);var r=this.input.charCodeAt(this.pos);if(!n&&!e&&this.options.ecmaVersion>=11&&r===110){var i=Ko(this.input.slice(t,this.pos));return++this.pos,pa(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`),this.finishToken(J.num,i)}n&&/[89]/.test(this.input.slice(t,this.pos))&&(n=!1),r===46&&!n&&(++this.pos,this.readInt(10),r=this.input.charCodeAt(this.pos)),(r===69||r===101)&&!n&&(r=this.input.charCodeAt(++this.pos),(r===43||r===45)&&++this.pos,this.readInt(10)===null&&this.raise(t,`Invalid number`)),pa(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`);var a=Go(this.input.slice(t,this.pos),n);return this.finishToken(J.num,a)},Q.readCodePoint=function(){var e=this.input.charCodeAt(this.pos),t;if(e===123){this.options.ecmaVersion<6&&this.unexpected();var n=++this.pos;t=this.readHexChar(this.input.indexOf(`}`,this.pos)-this.pos),++this.pos,t>1114111&&this.invalidStringToken(n,`Code point out of bounds`)}else t=this.readHexChar(4);return t};function qo(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10)+55296,(e&1023)+56320))}Q.readString=function(e){for(var t=``,n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated string constant`);var r=this.input.charCodeAt(this.pos);if(r===e)break;r===92?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):(xa(r,this.options.ecmaVersion>=10)&&this.raise(this.start,`Unterminated string constant`),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(J.string,t)};var Jo={};Q.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Jo)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},Q.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Jo;this.raise(e,t)},Q.readTmplToken=function(){for(var e=``,t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,`Unterminated template`);var n=this.input.charCodeAt(this.pos);if(n===96||n===36&&this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&&(this.type===J.template||this.type===J.invalidTemplate)?n===36?(this.pos+=2,this.finishToken(J.dollarBraceL)):(++this.pos,this.finishToken(J.backQuote)):(e+=this.input.slice(t,this.pos),this.finishToken(J.template,e));if(n===92)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(xa(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:e+=`
|
|
92
92
|
`;break;default:e+=String.fromCharCode(n);break}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else ++this.pos}},Q.readInvalidTemplateToken=function(){for(;this.pos<this.input.length;this.pos++)switch(this.input[this.pos]){case`\\`:++this.pos;break;case`$`:if(this.input[this.pos+1]!==`{`)break;case"`":return this.finishToken(J.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,`Unterminated template`)},Q.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`
|
|
93
|
-
`;case 114:return`\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return qo(this.readCodePoint());case 116:return` `;case 98:return`\b`;case 118:return`\v`;case 102:return`\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(e){var n=this.pos-1;return this.invalidStringToken(n,`Invalid escape sequence in template string`),null}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),(r!==`0`||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return xa(t)?``:String.fromCharCode(t)}},Q.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},Q.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(ma(i,r))this.pos+=i<=65535?1:2;else if(i===92){this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\uXXXX`),++this.pos;var o=this.readCodePoint();(t?pa:ma)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=qo(o),n=this.pos}else break;t=!1}return e+this.input.slice(n,this.pos)},Q.readWord=function(){var e=this.readWord1(),t=J.name;return this.keywords.test(e)&&(t=va[e]),this.finishToken(t,e)},Qa.acorn={Parser:Qa,version:`7.4.1`,defaultOptions:Na,Position:Aa,SourceLocation:ja,getLineInfo:Ma,Node:ho,TokenType:K,tokTypes:J,keywordTypes:va,TokContext:vo,tokContexts:yo,isIdentifierChar:ma,isIdentifierStart:pa,Token:Wo,isNewLine:xa,lineBreak:ya,lineBreakG:ba,nonASCIIwhitespace:Sa};function Yo(e,t){return Qa.parse(e,t)}function Xo(e){return[`ArrayOrObject1D`,`ArrayOrObject2D`,`ArrayOrObject3DPlus`,`Literal`,`Symbol`,`UnaryOperation`,`BinaryOperation`,`Random`,`CallDefinedFunction`,`AnyFunction`,`ConditionalExpression`,`ArrayExpression`,`ObjectExpression`].includes(e.type)}function Zo(e){return e.type===`Program`?e.body.map(e=>$(e)):[$(e)]}function $(e){switch(e.type){case`Program`:return ms(e);case`ExpressionStatement`:return hs(e);case`AssignmentExpression`:return gs(e);case`MemberExpression`:return ys(e);case`UnaryExpression`:return _s(e);case`BinaryExpression`:return vs(e);case`Identifier`:return bs(e);case`Literal`:return xs(e);case`CallExpression`:return ls(e);case`IfStatement`:return cs(e);case`BlockStatement`:return ss(e);case`FunctionDeclaration`:return Qo(e);case`ForStatement`:return os(e);case`BreakStatement`:return is(e);case`ReturnStatement`:return as(e);case`ContinueStatement`:return rs(e);case`UpdateExpression`:return $o(e);case`LogicalExpression`:return es(e);case`TemplateLiteral`:return ts(e);case`TemplateElement`:return ns(e);case`ConditionalExpression`:return Ss(e);case`Property`:return Cs(e);case`ObjectExpression`:return ws(e);case`ArrayExpression`:return Ts(e);default:throw console.log(e),Error(`未定義の AST ノードです :`+e.type)}}function Qo(e){return{type:`DefinedFunction`,functionName:e.id.name,body:$(e.body)}}function $o(e){return{type:`UpdateExpression`,operator:e.operator,argument:$(e.argument)}}function es(e){return{type:`LogicalExpression`,operator:e.operator,left:$(e.left),right:$(e.right)}}function ts(e){return{type:`TemplateLiteral`,expressions:e.expressions.map(e=>$(e)),quasis:e.quasis.map(e=>$(e))}}function ns(e){return{type:`TemplateElement`,value:e.value}}function rs(e){return{type:`Continue`,label:e.label}}function is(e){return{type:`Break`,label:e.label}}function as(e){return{type:`Return`,argument:$(e.argument)}}function os(e){return{type:`ForStatement`,body:e.body.body.map(e=>$(e)),init:$(e.init),test:$(e.test),update:$(e.update)}}function ss(e){return{type:`BlockStatement`,value:e.body.map(e=>$(e))}}function cs(e){return{type:`IfStatement`,consequent:$(e.consequent),test:$(e.test),alternate:e.alternate?$(e.alternate):void 0}}function ls(e){let t=e.callee.name;switch(t){case`RAND`:return ps(e.arguments);case`JUMPGATE`:return fs(e.arguments);case`MSG`:case`MESSAGE`:return ds(e.arguments);case`MUSIC`:case`SOUND`:case`BGM_STOP`:case`STOP_BGM`:case`SOUND_STOP`:case`STOP_SOUND`:case`ALL_SOUND_STOP`:case`STOP_ALL_SOUND`:case`SAVE`:case`LOG`:case`ABLE_CHANGE_SPEED`:case`SET_SPEED`:case`CHANGE_GAMEOVER_POS`:case`DEL_PLAYER`:case`RESTART_GAME`:case`URL_JUMPGATE`:case`HIDE_STATUS`:case`PARTS`:case`FACE`:case`EFFECT`:case`CHANGE_PLAYER_IMAGE`:case`CHANGE_PLAYER_IMG`:case`HAS_ITEM`:case`REMOVE_ITEM`:case`MOVE`:case`PARTS_MOVE`:case`IS_PLAYER_WAITING_MESSAGE`:case`GET_UNIXTIME`:case`GET_DATE_YEAR`:case`GET_DATE_MONTH`:case`GET_DATE_DAY`:case`GET_DATE_HOUR`:case`GET_DATE_MINUTES`:case`GET_DATE_SECONDS`:case`GET_DATE_MILLISECONDS`:case`GET_DATE_WEEKDAY`:case`CHANGE_SYSMSG`:case`PICTURE`:case`PICTURE_FROM_PARTS`:case`CLEAR_ALL_PICTURES`:case`HAS_PICTURE`:case`SHOW_USER_DEF_VAR`:case`ABS`:case`GET_GAMEOVER_POS_X`:case`GET_GAMEOVER_POS_Y`:case`ABORT_BATTLE`:case`EXIT`:case`GET_IMG_POS_X`:case`GET_IMG_POS_Y`:case`LENGTH`:case`IS_NUMBER`:case`COLOR`:case`EFFITEM`:case`CHANGE_BOM_IMG`:case`CHANGE_BOM_IMAGE`:case`CHANGE_CLICK_IMAGE`:case`CHANGE_CLICK_IMG`:case`CHANGE_FRAME_IMAGE`:case`CHANGE_FRAME_IMG`:case`CHANGE_YESNO_IMAGE`:case`CHANGE_YESNO_IMG`:case`NO_GAMEOVER`:case`DEFAULT`:case`DIR_MAP`:case`CHANGE_SOUND_ATTACK`:case`CHANGE_SOUND_DECISION`:return us(e.arguments,t);default:return{type:`CallDefinedFunction`,functionName:t}}}function us(e,t){return{type:`AnyFunction`,functionName:t,value:e.map(e=>$(e))}}function ds(e){return{type:`Msg`,value:$(e[0])}}function fs(e){if(e.length<2)throw Error(`RAND関数には引数が2つ必要です。`);let t={x:e[0],y:e[1]};return{type:`Jumpgate`,x:$(t.x),y:$(t.y)}}function ps(e){if(e.length<1)throw Error(`RAND関数には引数が必要です。`);return{type:`Random`,value:$(e[0])}}function ms(e){if(e.body.length!==1)throw Error(`bodyが1以外の場合評価できません。`);return $(e.body[0])}function hs(e){return $(e.expression)}function gs(e){let t=$(e.left),n=$(e.right);if(!Xo(n))throw Error(`値以外を代入式の右辺に設定できません`);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:if(t.type===`ArrayOrObject2D`){if(t.name===`m`||t.name===`o`)return{type:`PartsAssignment`,partsKind:t.name===`m`?`map`:`object`,destinationX:t.indecies[0],destinationY:t.indecies[1],value:n,operator:e.operator};if(t.name===`v`)return{type:`UserVariableAssignment`,index:[t.indecies[0],t.indecies[1]],value:n,operator:e.operator};throw Error(`想定していない記号が2次元配列ででてきました`)}else if(t.type===`ArrayOrObject1D`){if(t.name===`ITEM`)return{type:`ItemAssignment`,itemBoxPosition1to12:t.indecies[0],value:n,operator:e.operator};if(t.name===`v`)return{type:`UserVariableAssignment`,index:[t.indecies[0]],value:n,operator:e.operator};if(t.name===`LP`)return{type:`LoopPointerAssignment`,index:t.indecies[0],value:n,operator:e.operator};throw Error(`1次元配列にて想定していないシンボルが指定されました ${t.name}`)}else if(t.type===`Symbol`){if(t.name===`m`||t.name===`o`||t.name===`v`||t.name===`ITEM`||t.name===`X`||t.name===`Y`||t.name===`ID`||t.name===`TYPE`||t.name===`CX`||t.name===`CY`||t.name===`PICTURE`||t.name===`PLAYER_PX`||t.name===`PLAYER_PY`||t.name===`MOVE_SPEED`||t.name===`MOVE_FRAME_TIME`||t.name===`LP`||t.name===`undefined`)throw Error(`このシンボルには代入できません`);if(t.name===`AT_TOTAL`)throw Error(`"装備品込みの攻撃力(AT_TOTAL)への代入はできません。"`);if(t.name===`DF_TOTAL`)throw Error(`"装備品込みの防御力(DF_TOTAL)への代入はできません。"`);if(t.name===`ENEMY_HP`||t.name===`ENEMY_AT`||t.name===`ENEMY_DF`||t.name===`ENEMY_GD`)throw Error(`敵ステータス (ENEMY_HP, ENEMY_AT, ENEMY_DF, ENEMY_GD) への代入はできません。`);return{type:`SpecialParameterAssignment`,kind:t.name,value:n,operator:e.operator}}else if(t.type===`Literal`)throw Error(`数値には代入できません`);else if(t.type===`ArrayOrObject3DPlus`&&t.name===`v`)return{type:`UserVariableAssignment`,index:t.indecies,value:n,operator:e.operator};else throw Error(`代入できません`);default:throw Error(`想定していないオペレーターです`)}}function _s(e){let t=$(e.argument);if(![`+`,`-`,`!`].includes(e.operator))throw Error(`未定義の演算子です :`+e.operator);if(!Xo(t))throw Error(`単項演算子が適用できません`);return{type:`UnaryOperation`,operator:e.operator,argument:t}}function vs(e){let t=$(e.left),n=$(e.right);if(!Xo(t)||!Xo(n))throw Error(`左辺または右辺が評価不能です`);switch(e.operator){case`+`:case`-`:case`*`:case`/`:case`%`:case`>`:case`<`:case`>=`:case`<=`:case`==`:case`!=`:return{type:`BinaryOperation`,operator:e.operator,left:t,right:n};default:throw Error(`未定義の演算子です :`+e.operator)}}function ys(e){let t=$(e.object),n=$(e.property);if(t.type===`Symbol`){if(![`v`,`m`,`o`,`ITEM`,`LP`,`PICTURE`].includes(t.name))throw Error(`このシンボルは配列にできません`);if(Xo(n))return{type:`ArrayOrObject1D`,name:t.name,indecies:[n]};throw Error(`WWAでは存在しない構文です`)}else if(t.type===`ArrayOrObject1D`){if(t.name===`ITEM`||t.name===`PICTURE`)throw Error(`この配列は2次元以上にはできません。`);if(Xo(n))return{type:`ArrayOrObject2D`,name:t.name,indecies:[...t.indecies,n]};throw Error(`WWAでは存在しない構文です`)}else if(t.type===`ArrayOrObject2D`||t.type===`ArrayOrObject3DPlus`){if(t.name===`m`||t.name===`o`)throw Error(`この配列は3次元以上にはできません。`);if(t.name===`v`&&Xo(n))return{type:`ArrayOrObject3DPlus`,name:t.name,indecies:[...t.indecies,n]}}else throw Error(`WWAでは存在しない構文です`)}function bs(e){switch(e.name){case`m`:case`o`:case`ITEM`:case`X`:case`Y`:case`ID`:case`TYPE`:case`PX`:case`PY`:case`CX`:case`CY`:case`v`:case`HP`:case`HPMAX`:case`AT`:case`AT_TOTAL`:case`DF`:case`DF_TOTAL`:case`GD`:case`STEP`:case`TIME`:case`PDIR`:case`i`:case`j`:case`k`:case`LOOPLIMIT`:case`ITEM_ID`:case`ITEM_POS`:case`ENEMY_HP`:case`ENEMY_AT`:case`ENEMY_DF`:case`PICTURE`:case`PLAYER_PX`:case`PLAYER_PY`:case`MOVE_SPEED`:case`MOVE_FRAME_TIME`:case`LP`:case`undefined`:return{type:`Symbol`,name:e.name};default:return{type:`Literal`,value:e.name}}}function xs(e){return{type:`Literal`,value:e.value}}function Ss(e){let t=$(e.consequent),n=$(e.alternate);return{type:`ConditionalExpression`,consequent:t,test:$(e.test),alternate:n}}function Cs(e){let t=$(e.key);if(t.type===`Symbol`)throw Error(`Object のキー ${t.name} は予約されているため、使用できません。`);if(t.type!==`Literal`)throw Error(`Object のキーが不正です。 Literal を期待していましたが、実際は ${t.type} でした。`);return{type:`Property`,key:t,value:$(e.value)}}function ws(e){return{type:`ObjectExpression`,properties:e.properties.map(Cs)}}function Ts(e){return{type:`ArrayExpression`,elements:e.elements.map($)}}var Es=[A.OBJECT,A.MAP];function Ds(e){switch(typeof e){case`object`:if(e===null)break;return Array.isArray(e)?e.length:Object.keys(e).length;case`string`:return e.length}throw Error(`LENGTH: 対応できない値が指定されています。`)}var Os=(e,t)=>(e-t)*L.CHIP_SIZE,ks=(e,t)=>(e-t)*L.CHIP_SIZE,As=Object.freeze({"=":(e,t)=>t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"*=":(e,t)=>e*t,"/=":(e,t)=>e/t}),js=class{constructor(e){this.wwa=e,this.loop_limit=1e5,this.state={messagePageAdditionalQueue:[]}}setTriggerParts(e,t,n){this.state={...this.state,triggerParts:{id:e,type:t,position:n}}}clearTemporaryState(){this.state={...this.state,triggerParts:void 0,messagePageAdditionalQueue:[]}}setEarnedItem(e,t){this.state={...this.state,earnedItem:{partsId:e,itemPos1To12:t}}}clearEarnedItem(){this.state={...this.state,earnedItem:void 0}}setBattleDamageCalculationMode(e){this.state={...this.state,battleDamageCalculation:{estimatingParams:e}}}clearBattleDamageCalculationMode(){this.state={...this.state,battleDamageCalculation:void 0}}evalWwaNodes(e){return this.evalWwaNode({type:`BlockStatement`,value:e})}evalWwaNode(e){if(!(e.type===`BlockStatement`&&Array.isArray(e.value)&&e.value.length===0))try{return new Ms(this).evalWwaNode(e)}catch(e){if(e instanceof Ns||e instanceof Ps)return e.value;throw e}}addPageAdditionalItem(e){this.state.messagePageAdditionalQueue.push(e)}pickPageAdditionalQueue(){let e=[...this.state.messagePageAdditionalQueue];return this.state.messagePageAdditionalQueue=[],e}updateLoopLimit(e){this.loop_limit=e}},Ms=class{constructor(e){this.generator=e,this.for_id={i:null,j:null,k:null,LP:[],loopCount:0,break_flag:!1,continue_flag:!1}}evalWwaNodes(e){let t;return e.forEach(e=>{t=this.evalWwaNode(e)}),t}evalWwaNode(e){if(!(this.for_id.break_flag||this.for_id.continue_flag))switch(e.type){case`UnaryOperation`:return this.evalUnaryOperation(e);case`BinaryOperation`:return this.evalBinaryOperation(e);case`Symbol`:return this.evalSymbol(e);case`ArrayOrObject1D`:return this.evalArrayOrObject1D(e);case`ArrayOrObject2D`:return this.evalArrayOrObject2D(e);case`ArrayOrObject3DPlus`:return this.evalArrayOrObject3DPlus(e);case`Literal`:return this.evalLiteral(e);case`UserVariableAssignment`:return this.evalSetUserVariable(e);case`SpecialParameterAssignment`:return this.evalSetSpecialParameter(e);case`Random`:return this.evalRandom(e);case`Jumpgate`:return this.evalJumpgate(e);case`Msg`:return this.evalMessage(e);case`ItemAssignment`:return this.itemAssignment(e);case`IfStatement`:return this.ifStatement(e);case`BlockStatement`:return this.blockStatement(e);case`PartsAssignment`:return this.partsAssignment(e);case`ForStatement`:return this.forStateMent(e);case`AnyFunction`:return this.wrapCallFunction(e,e=>this.evalAnyFunction(e));case`CallDefinedFunction`:return this.wrapCallFunction(e,e=>this.callDefinedFunction(e));case`Break`:return this.breakStatement(e);case`Return`:throw new Ns(this.returnStatement(e));case`Continue`:return this.contunueStatment(e);case`UpdateExpression`:return this.updateExpression(e);case`LogicalExpression`:return this.logicalExpression(e);case`TemplateLiteral`:return this.convertTemplateLiteral(e);case`ConditionalExpression`:return this.convertConditionalExpression(e);case`Property`:return this.property(e);case`ObjectExpression`:return this.objectExpression(e);case`ArrayExpression`:return this.arrayExpression(e);case`LoopPointerAssignment`:return this.convertLoopPointerExpression(e);default:throw console.log(e),Error(`未定義または未実装のノードです`)}}wrapCallFunction(e,t){try{return t(e)}catch(e){if(e instanceof Ns)return e.value;throw e}}callDefinedFunction(e){let t=this.generator.wwa.getUserScript(e.functionName);if(t===null)throw Error(`未定義の関数が呼び出されました: ${e.functionName}`);return this.evalWwaNode(t)}updateExpression(e){if(e.argument.type!==`ArrayOrObject1D`&&e.argument.type!==`ArrayOrObject2D`&&e.argument.type!==`Symbol`)throw Error(`node.argument.typeが インクリメント/デクリメントできる対象ではありません。: ${e.argument.type}`);let t=t=>{switch(e.operator){case`++`:return t+1;case`--`:return t-1;default:throw Error(`想定外のOperatorが渡されました :`+e.operator)}},n=this.evalWwaNode(e.argument),r={type:`Literal`,value:t(n)};switch(e.argument.type){case`ArrayOrObject1D`:if(e.argument.name===`v`)this.evalSetUserVariable({type:`UserVariableAssignment`,index:[e.argument.indecies[0]],value:r});else if(e.argument.name===`ITEM`)this.itemAssignment({type:`ItemAssignment`,itemBoxPosition1to12:e.argument.indecies[0],value:r});else if(e.argument.name===`LP`)this.convertLoopPointerExpression({type:`LoopPointerAssignment`,index:e.argument.indecies[0],value:r,operator:`=`});else throw Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);break;case`ArrayOrObject2D`:{let t={type:`PartsAssignment`,destinationX:e.argument.indecies[0],destinationY:e.argument.indecies[1],value:r,operator:`=`};if(e.argument.name===`m`)this.partsAssignment({...t,partsKind:`map`});else if(e.argument.name===`o`)this.partsAssignment({...t,partsKind:`object`});else throw Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);break}case`Symbol`:{let t={type:`SpecialParameterAssignment`,kind:e.argument.name,value:r};this.evalSetSpecialParameter(t);break}}return n}logicalExpression(e){let t=this.evalWwaNode(e.left),n=this.evalWwaNode(e.right);switch(e.operator){case`||`:return t||n;case`&&`:return t&&n;default:throw Error(`存在しない論理式です!: `+e.operator)}}convertTemplateLiteral(e){let t=e.expressions.map(e=>this.evalWwaNode(e)),n=e.quasis.map(e=>e.value.cooked),r=``;return n.forEach((e,n)=>{r+=e,t[n]!==void 0&&(r+=t[n])}),r}contunueStatment(e){this.for_id.continue_flag=!0}breakStatement(e){this.for_id.break_flag=!0}returnStatement(e){return this.evalWwaNode(e.argument)}forStateMent(e){let t=e.init;for((()=>{if(`kind`in t)switch(t.kind){case`i`:if(this.for_id.i!==null)throw Error(`iの値が既に外側のforループで使われています。`);break;case`j`:if(this.for_id.j!==null)throw Error(`jの値が既に外側のforループで使われています。`);break;case`k`:if(this.for_id.k!==null)throw Error(`kの値が既に外側のforループで使われています。`);break;default:throw console.log(e),Error(`予想外の変数がfor文内で使用されました :`+t.kind)}else switch(t.type){case`LoopPointerAssignment`:let n=Number(this.evalWwaNode(t.index));if(Number.isNaN(n))throw Error(`LPのIndex値はNumberでないといけません。: ${n}`);if(this.for_id.LP[n]!==null&&this.for_id.LP[n]!==void 0)throw Error(`LP[${n}]の値が既に外側のforループで使われています。`);break;default:throw console.log(e),Error(`予想外の1次元配列がfor文内で使用されました :`+t)}this.evalWwaNode(e.init)})();this.evalWwaNode(e.test);this.evalWwaNode(e.update)){if(this.for_id.loopCount++,this.for_id.loopCount>this.generator.loop_limit)throw Error(`処理回数が多すぎます!
|
|
94
|
-
上限値は LOOPLIMIT で変えられます。`);if(this.for_id.break_flag||!this.evalWwaNode(e.test))break;this.evalWwaNodes(e.body),this.for_id.continue_flag=!1}if(this.for_id.break_flag=!1,`kind`in t)switch(t.kind){case`i`:this.for_id.i=null;break;case`j`:this.for_id.j=null;break;case`k`:this.for_id.k=null;break}else switch(t.type){case`LoopPointerAssignment`:let e=Number(this.evalWwaNode(t.index));this.for_id.LP[e]=null;break}}_checkArgsLength(e,t){if(t.value.length<e)throw Error(`関数 ${t.functionName} の引数が不足しています!`)}evalAnyFunction(e){let t=this.generator.wwa.getGameStatus();switch(e.functionName){case`MUSIC`:case`SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value[1]?this.evalWwaNode(e.value[1]):void 0,r=e.value[2]?this.evalWwaNode(e.value[2]):!1;return this.generator.wwa.playSound(t,{loopPlaying:n,bgmDelayDurationMs:r>=0?r:void 0}),t}case`BGM_STOP`:case`STOP_BGM`:this.generator.wwa.stopBgm();return;case`SOUND_STOP`:case`STOP_SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);return this.generator.wwa.stopSound(t,{includeBgm:!0}),t}case`STOP_SOUNDS`:case`ALL_SOUND_STOP`:case`STOP_ALL_SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.stopAllSound({includeBgm:!!t});return}case`SAVE`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);return this.generator.wwa.disableSave(t),t}case`LOG`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);console.log(t instanceof Map?d(t):t);return}case`ABLE_CHANGE_SPEED`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);return this.generator.wwa.speedChangeJudge(t),t}case`SET_SPEED`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));this.generator.wwa.setPlayerSpeedIndex(t);return}case`CHANGE_GAMEOVER_POS`:{this._checkArgsLength(2,e);let t={x:Number(this.evalWwaNode(e.value[0])),y:Number(this.evalWwaNode(e.value[1]))};if(t.x<0||t.x>=this.generator.wwa.getMapWidth()||t.y<0||t.y>this.generator.wwa.getMapWidth())throw Error(`マップの範囲外が指定されています!`);this.generator.wwa.setGameOverPosition(new S(t.x,t.y));return}case`DEL_PLAYER`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.setDelPlayer(t);return}case`RESTART_GAME`:this.generator.wwa.restartGame();return;case`URL_JUMPGATE`:throw Error(`URL_JUMPGATE 関数は調整中のためご利用になれません`);case`HIDE_STATUS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=!!this.evalWwaNode(e.value[1]);this.generator.wwa.hideStatus(t,n);return}case`PARTS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=e.value[2]?Number(this.evalWwaNode(e.value[2])):0,i=e.value[3]?!!this.evalWwaNode(e.value[3]):!1;if(t<0||n<0)throw Error(`パーツ番号が不正です`);if(!Es.includes(r))throw Error(`パーツ種別が不明です`);this.generator.wwa.replaceParts(t,n,r,i);return}case`FACE`:{this._checkArgsLength(6,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2])),i=Number(this.evalWwaNode(e.value[3])),a=Number(this.evalWwaNode(e.value[4])),o=Number(this.evalWwaNode(e.value[5]));if(t<0||n<0||r<0||i<0||a<0||o<0)throw Error(`各引数は0以上の整数でなければなりません。`);this.generator.addPageAdditionalItem({type:`face`,data:{face:new ee(new S(t,n),new S(r,i),new S(a,o))}});return}case`EFFECT`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));if(t<0)throw Error(`待ち時間は0以上の整数でなければなりません。`);if(t===0){this.generator.wwa.stopEffect();return}let n=[];for(let t=1;t<e.value.length;t+=2){let r=Number(this.evalWwaNode(e.value[t]));if(r<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);if(t+1===e.value.length)throw Error(`画像のパーツ座標指定で、Y座標が指定されていません。`);let i=Number(this.evalWwaNode(e.value[t+1]));if(i<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);n.push(new S(r,i))}this.generator.wwa.setEffect(t,n);return}case`CHANGE_PLAYER_IMAGE`:case`CHANGE_PLAYER_IMG`:{this._checkArgsLength(2,e);let t=new S(Number(this.evalWwaNode(e.value[0])),Number(this.evalWwaNode(e.value[1])));this.generator.wwa.setPlayerImgCoord(t);return}case`HAS_ITEM`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0]));return t.itemBox.includes(n)}case`REMOVE_ITEM`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0])),r=e.value[1]?this.evalWwaNode(e.value[1])===1:!1,i=0;for(let e=0;e<t.itemBox.length;e++)if(n===t.itemBox[e]&&(this.generator.wwa.setPlayerGetItem(e+1,0),i++,!r))return i;return i}case`MOVE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));if(t<=0||t>9)throw Error(`MOVEの移動先は2/4/6/8で指定してください!`);return this.generator.wwa.movePlayer(t),this.generator.wwa.movePlayer(t),0}case`PARTS_MOVE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return this.generator.wwa.setMoveMacroWaitingToPlayer(t),0}case`IS_PLAYER_WAITING_MESSAGE`:return this.generator.wwa.isPlayerWaitingMessage();case`GET_UNIXTIME`:return Math.floor(new Date().getTime()/1e3);case`GET_DATE_YEAR`:return new Date().getFullYear();case`GET_DATE_MONTH`:return new Date().getMonth()+1;case`GET_DATE_DAY`:return new Date().getDate();case`GET_DATE_HOUR`:return new Date().getHours();case`GET_DATE_MINUTES`:return new Date().getMinutes();case`GET_DATE_SECONDS`:return new Date().getSeconds();case`GET_DATE_MILLISECONDS`:return new Date().getMilliseconds();case`GET_DATE_WEEKDAY`:return new Date().getDay();case`SHOW_USER_DEF_VAR`:console.log(this.generator.wwa.getAllUserNameVar());return;case`CHANGE_SYSMSG`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value.length>=2?this.evalWwaNode(e.value[1]):void 0,r=this.resolveSystemMessageKeyFromMacroArg(t);if(!r)throw Error(`このIDのシステムメッセージは未定義です。`);if(typeof n==`number`||typeof n==`string`||typeof n==`boolean`)this.generator.wwa.overwriteSystemMessage(r,String(n));else if(n==null)this.generator.wwa.overwriteSystemMessage(r,void 0);else throw Error(`この値は文字列に変換できないため、システムメッセージを表示できません。`);break}case`PICTURE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=e.value.length>=2?this.evalWwaNode(e.value[1]):void 0;if(n===void 0){this.generator.wwa.deletePictureRegistry(t);return}if(n instanceof Map)this.generator.wwa.setPictureRegistryFromObject(t,d(n));else if(typeof n==`string`)this.generator.wwa.setPictureRegistryFromRawText(t,n);else throw Error(`ピクチャのプロパティ定義は文字列あるいはオブジェクトである必要があります。`);break}case`PICTURE_FROM_PARTS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(n===0){this.generator.wwa.deletePictureRegistry(t);return}let r=e.value.length>=3?Number(this.evalWwaNode(e.value[2])):A.OBJECT;if(!Es.includes(r))throw Error(`パーツ種別が不明です`);let i=this.generator.wwa.getGameStatus();this.generator.wwa.setPictureRegistry(t,n,r,i.playerCoord);break}case`CLEAR_ALL_PICTURES`:this.generator.wwa.clearAllPictures();break;case`HAS_PICTURE`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0]));return t.wwaData.pictureRegistry.some(e=>e.layerNumber===n)}case`ABS`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return Math.abs(t)}case`GET_GAMEOVER_POS_X`:return this.generator.wwa.getGemeOverPosition().x;case`GET_GAMEOVER_POS_Y`:return this.generator.wwa.getGemeOverPosition().y;case`ABORT_BATTLE`:throw this.generator.state.battleDamageCalculation&&(this.generator.state.battleDamageCalculation.aborted=!0),new Ps(`ABORT_BATTLE`);case`EXIT`:throw new Ps(`EXIT`,this.evalWwaNode(e.value[0]));case`GET_IMG_POS_X`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=(e.value[1]===void 0?0:Number(this.evalWwaNode(e.value[1])))===0?A.OBJECT:A.MAP;if(n===A.OBJECT){let n=e.value[2]===void 0?!0:Number(this.evalWwaNode(e.value[2]))===0,r=this.generator.wwa.getObjectInfo(t),i=n?r[L.ATR_X]:r[L.ATR_X2];return Math.floor(i/L.CHIP_SIZE)}else if(n===A.MAP){let e=this.generator.wwa.getMapInfo(t)[L.ATR_X];return Math.floor(e/L.CHIP_SIZE)}throw Error(`GET_IMG_POS_X: 指定したIDのパーツのTypeが異常です。`)}case`GET_IMG_POS_Y`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=(e.value[1]===void 0?0:Number(this.evalWwaNode(e.value[1])))===0?A.OBJECT:A.MAP;if(n===A.OBJECT){let n=e.value[2]===void 0?!0:Number(this.evalWwaNode(e.value[2]))===0,r=this.generator.wwa.getObjectInfo(t),i=n?r[L.ATR_Y]:r[L.ATR_Y2];return Math.floor(i/L.CHIP_SIZE)}else if(n===A.MAP){let e=this.generator.wwa.getMapInfo(t)[L.ATR_Y];return Math.floor(e/L.CHIP_SIZE)}throw Error(`GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。`)}case`LENGTH`:return this._checkArgsLength(1,e),Ds(this.evalWwaNode(e.value[0]));case`IS_NUMBER`:return this._checkArgsLength(1,e),typeof this.evalWwaNode(e.value[0])==`number`;case`COLOR`:{this._checkArgsLength(4,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2])),i=Number(this.evalWwaNode(e.value[3]));if(t<0||t>5)throw Error(`種別は0から5までです`);if(n<0||n>255||r<0||r>255||i<0||i>255)throw Error(`色が範囲外です`);this.generator.wwa.changeStyleRule(t,n,r,i);return}case`EFFITEM`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.updateItemEffectEnabled(t);return}case`CHANGE_BOM_IMAGE`:case`CHANGE_BOM_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(t<0||n<0)throw Error(`座標は0以上の整数ではありません`);this.generator.wwa.setBattleEffectCoord(new S(t,n));return}case`CHANGE_CLICK_IMAGE`:case`CHANGE_CLICK_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(t<0||n<0)throw Error(`引数が0以上の整数ではありません`);this.generator.wwa.setImgClick(new S(t,n));return}case`CHANGE_FRAME_IMAGE`:case`CHANGE_FRAME_IMG`:{this._checkArgsLength(3,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2]));if(n<0||r<0)throw Error(`座標は正でなければなりません。`);switch(t){case de.ENERGY:case de.STRENGTH:case de.DEFENCE:case de.GOLD:this.generator.wwa.setStatusIconCoord(t,new S(n,r));break;case de.WIDE_CELL_ROW:this.generator.wwa.setWideCellCoord(new S(n,r));break;case de.ITEM_BG:this.generator.wwa.setItemboxBackgroundPosition({x:n,y:r});break;case de.MAIN_FRAME:this.generator.wwa.setFrameCoord(new S(n,r));break;default:throw Error(`種別が不正です。`)}return}case`CHANGE_YESNO_IMAGE`:case`CHANGE_YESNO_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));this.generator.wwa.setYesNoImgCoord(new S(t,n));return}case`NO_GAMEOVER`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.setGameOverPolicy(t);return}case`DEFAULT`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.setObjectNotCollapseOnPartsOnPlayer(t);return}case`DIR_MAP`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=e.value[2]===void 0?A.OBJECT:Number(this.evalWwaNode(e.value[2]));if(t<0)throw Error(`パーツ番号が不正です`);if(r===A.OBJECT){if(t>=this.generator.wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(t>=this.generator.wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this.generator.wwa.appearPartsByDirection(n,t,r);return}case`CHANGE_SOUND_DECISION`:if(this.generator.wwa.getSoundEnabled()){this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.checkSoundEnabled(t),this.generator.wwa.setDecisionSound(t)}return;case`CHANGE_SOUND_ATTACK`:if(this.generator.wwa.getSoundEnabled()){this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.checkSoundEnabled(t),this.generator.wwa.setAttackSound(t)}return;default:throw Error(`未定義の関数が指定されました: `+e.functionName)}}resolveSystemMessageKeyFromMacroArg(e){if(typeof e==`string`)return v(e)?e:void 0;if(typeof e==`number`)return y(e)}partsAssignment(e){let t=this.generator.wwa.getGameStatus(),n=this.evalWwaNode(e.destinationX),r=this.evalWwaNode(e.destinationY);if(typeof n!=`number`||typeof r!=`number`)throw Error(`座標は数値で指定してください (${n}, ${r})`);new C(this.generator.wwa,n,r);let i=e.partsKind===`map`?A.MAP:A.OBJECT,a=this.resolveParts(i,n,r),o=this.evalWwaNode(e.value);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:{let s=As[e.operator](a,o)|0;if(s<0)throw Error(`負値のパーツ番号 ${s} は代入できません`);this.generator.wwa.appearPartsEval(t.playerCoord,`${n}`,`${r}`,s,i);break}default:throw Error(`演算子 ${e.operator} は partsAssignment では使えません`)}}resolveParts(e,t,n){let r=this.generator.wwa.getGameStatus();switch(e){case A.MAP:return r.wwaData.map[n][t];case A.OBJECT:return r.wwaData.mapObject[n][t];default:throw Error(`存在しないPartsTypeです`,e)}}blockStatement(e){return this.evalWwaNodes(e.value)}ifStatement(e){if(this.evalWwaNode(e.test))return this.evalWwaNode(e.consequent);if(e.alternate)return this.evalWwaNode(e.alternate)}convertConditionalExpression(e){let t=this.evalWwaNode(e.test)?e.consequent:e.alternate;return this.evalWwaNode(t)}property(e){let t=this.evalWwaNode(e.key);if(!f(t))throw Error(`オブジェクトのキーはプリミティブ値でなければなりません。: ${t}`);return[String(this.evalWwaNode(e.key)),this.evalWwaNode(e.value)]}objectExpression(e){let t=e.properties.map(e=>this.evalWwaNode(e));return new Map(t)}arrayExpression(e){return e.elements.map(e=>this.evalWwaNode(e))}convertLoopPointerExpression(e){let t=this.evalWwaNode(e.value),n=this.evalWwaNode(e.index);switch(e.operator){case`+=`:this.for_id.LP[n]=t;break;case`-=`:this.for_id.LP[n]=t;break;case`/=`:this.for_id.LP[n]=t;break;case`*=`:this.for_id.LP[n]=t;break;default:this.for_id.LP[n]=t;break}return 0}itemAssignment(e){let t=this.evalWwaNode(e.itemBoxPosition1to12);if(typeof t!=`number`||t<0||t>12)throw Error(`ITEMの添字に想定外の値が入っています。0以上12以下の添字を指定してください。: `+t);let n=this.evalWwaNode(e.value);switch(e.operator){case`=`:this.generator.wwa.setPlayerGetItem(t,n|0);break;case`+=`:case`-=`:case`*=`:case`/=`:{if(t===0)throw Error(`複合代入では ITEM[0] への操作はできません`);let r=this.generator.wwa.getGameStatus().itemBox[t-1],i=As[e.operator](r,n)|0;if(i<0)throw Error(`負値のパーツ番号 ${i} は代入できません`);this.generator.wwa.setPlayerGetItem(t,i);break}default:throw Error(`演算子 ${e.operator} は itemAssignment では使えません`)}}evalMessage(e){let t=this.evalWwaNode(e.value),n=this.generator.pickPageAdditionalQueue();this.generator.wwa.handleMsgFunction({message:String(t),additionalItems:n})}evalJumpgate(e){let t=this.evalWwaNode(e.x),n=this.evalWwaNode(e.y);if(isNaN(t)||isNaN(n))throw Error(`飛び先の値が数値になっていません。 x=${t} / y=${n}`);this.generator.wwa.forcedJumpGate(t,n)}evalRandom(e){let t=this.evalWwaNode(e.value);return Math.floor(Math.random()*t)}evalSetSpecialParameter(e){let t=this.evalWwaNode(e.value);if(!this.generator.wwa||isNaN(t))return t;let n=this.evalSymbol({type:`Symbol`,name:e.kind});if(Array.isArray(n))throw Error(`配列Objectに対して直接代入は出来ません: ${n}`);let r=(()=>{switch(e.operator){case`+=`:return n+t;case`-=`:return n-t;case`*=`:return n*t;case`/=`:return n/t;default:return t}})();switch(e.kind){case`PX`:return this.generator.wwa.jumpSpecifiedXPos(r),r;case`PY`:return this.generator.wwa.jumpSpecifiedYPos(r),r;case`AT`:return this.generator.wwa.setPlayerStatus(ue.STRENGTH,r,!1),r;case`DF`:return this.generator.wwa.setPlayerStatus(ue.DEFENCE,r,!1),r;case`GD`:return this.generator.wwa.setPlayerStatus(ue.GOLD,r,!1),r;case`HP`:return this.generator.wwa.setPlayerStatus(ue.ENERGY,r,!1),r;case`HPMAX`:return this.generator.wwa.setPlayerEnergyMax(r),r;case`i`:return this.for_id.i=this.evalWwaNode(e.value),this.for_id.i;case`j`:return this.for_id.j=this.evalWwaNode(e.value),this.for_id.j;case`k`:return this.for_id.k=this.evalWwaNode(e.value),this.for_id.k;case`LOOPLIMIT`:{let t=this.evalWwaNode(e.value);return this.generator.updateLoopLimit(t),t}default:console.error(`未実装の要素です: `+e.kind);return}}evalSetUserVariable(e){if(e.index.length>1){let t=this.evalWwaNode(e.value),n=e.index.map(e=>this.evalWwaNode(e));this.generator.wwa.setUserVarIndecies(n,t,e.operator);return}else{let t=this.evalWwaNode(e.value);if(!this.generator.wwa)return t;let n=this.evalWwaNode(e.index[0]);return this.generator.wwa.setUserVar(n,t,e.operator),t}}evalUnaryOperation(e){switch(e.operator){case`+`:return this.evalWwaNode(e.argument);case`-`:return-this.evalWwaNode(e.argument);case`!`:return!this.evalWwaNode(e.argument);default:throw Error(`存在しない単項演算子です`)}}evalBinaryOperation(e){let t=this.evalWwaNode(e.left),n=this.evalWwaNode(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return n===0?0:Math.floor(t/n);case`%`:return n===0?0:t%n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;case`==`:return t==n;case`!=`:return t!=n;default:throw Error(`存在しない単項演算子です`)}}evalSymbol(e){let t=this.generator.wwa.getGameStatus(),n=this.generator.wwa.getEnemyStatus();switch(e.name){case`X`:return this.generator.state.triggerParts?.position.x??t.playerCoord.x;case`Y`:return this.generator.state.triggerParts?.position.y??t.playerCoord.y;case`ID`:return this.generator.state.triggerParts?.id??-1;case`TYPE`:return this.generator.state.triggerParts?.type??-1;case`PX`:return t.playerCoord.x;case`PY`:return t.playerCoord.y;case`CX`:return t.cameraCoord.x;case`CY`:return t.cameraCoord.y;case`AT`:return t.bareStatus.strength;case`AT_TOTAL`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.strength??t.totalStatus.strength;case`DF`:return t.bareStatus.defence;case`DF_TOTAL`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.defence??t.totalStatus.defence;case`GD`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.gold??t.totalStatus.gold;case`HP`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.energy??t.totalStatus.energy;case`HPMAX`:return t.energyMax;case`STEP`:return t.moveCount;case`TIME`:return t.playTime;case`PDIR`:return t.playerDirection;case`i`:return this.for_id.i;case`j`:return this.for_id.j;case`k`:return this.for_id.k;case`LOOPLIMIT`:return this.generator.loop_limit;case`ITEM_ID`:return this.generator.state.earnedItem?.partsId??-1;case`ITEM_POS`:return this.generator.state.earnedItem?.itemPos1To12??-1;case`ENEMY_HP`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.energy??(typeof n==`number`?-1:n.energy);case`ENEMY_AT`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.strength??(typeof n==`number`?-1:n.strength);case`ENEMY_DF`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.defence??(typeof n==`number`?-1:n.defence);case`ENEMY_GD`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.gold??(typeof n==`number`?-1:n.gold);case`PICTURE`:throw Error(`この機能はまだ実装されていません!`);case`PLAYER_PX`:return Os(t.playerCoord.x,t.cameraCoord.x);case`PLAYER_PY`:return ks(t.playerCoord.y,t.cameraCoord.y);case`MOVE_SPEED`:return fe[t.gameSpeedIndex];case`MOVE_FRAME_TIME`:return L.CHIP_SIZE/fe[t.gameSpeedIndex];case`LP`:return this.for_id.LP;case`undefined`:return;default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject1D(e){let t=this.evalWwaNode(e.indecies[0]);if(typeof t!=`number`)switch(e.name){case`v`:return this.generator.wwa.getUserNameVar(t);default:throw Error(`このシンボルは取得できません`)}let n=this.generator.wwa.getGameStatus();switch(e.name){case`v`:return this.generator.wwa.getUserVar(t);case`ITEM`:if(t<1||t>12)throw Error(`ITEMの添字に想定外の値が入っています。1以上12以下の添字を指定してください。: `+t);return n.itemBox[t-1];case`PICTURE`:throw Error(`この機能はまだ実装されていません!`);case`LP`:return this.for_id.LP[t];default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject2D(e){switch(e.name){case`m`:case`o`:let t=this.evalWwaNode(e.indecies[0]),n=this.evalWwaNode(e.indecies[1]);if(typeof t!=`number`||typeof n!=`number`)throw Error(`座標は数値で指定してください (${t}, ${n})`);new C(this.generator.wwa,t,n);let r=e.name===`o`?A.OBJECT:A.MAP;return this.generator.wwa.getPartsID(new S(t,n),r);case`v`:{let t=e.indecies[0].value,n=this.generator.wwa.getUserNameVar(t);if(n===null||!Array.isArray(n)&&typeof n!=`object`&&typeof n!=`string`)throw Error(`指定したユーザー定義変数: v["${t}"] は配列・オブジェクト・文字列ではありません`);return Ye(n,this.evalWwaNode(e.indecies[1]))}default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject3DPlus(e){let t=e.indecies.map(e=>this.evalWwaNode(e)),n=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce((e,t)=>Ye(e,t),n)}evalLiteral(e){return e.value}},Ns=class{constructor(e){this.value=e}},Ps=class{constructor(e,t){this.reason=e,this.value=t}};function Fs(e){return Yo(e,{ecmaVersion:2020})}var Is=async e=>{try{let t=await fetch(e);return t.status===200||t.status===304?{kind:`data`,data:await new Response(t.body).text(),fileName:e}:{kind:`httpError`,errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`,fileName:e}}catch(t){return{kind:`otherError`,errorMessage:t.message,fileName:e}}},Ls=`user-variable-label`;function Rs(){let e=document.createElement(`div`);return e.textContent=`-`,e.setAttribute(`aria-hidden`,`true`),e.classList.add(Ls),e}function zs(e,t){e.textContent=t}var Bs=`-`,Vs=`user-variable-card`,Hs=`user-variable-card--is-trimmed`;function Us({index:e,value:t}){let n=document.createElement(`div`);return n.classList.add(Vs),Ys(t)&&n.classList.add(Hs),n.dataset.varIndex=String(e),n.appendChild(Ws(e)),n.appendChild(Gs(t)),n}function Ws(e){let t=document.createElement(`div`);return t.classList.add(`index`),t.textContent=String(e),typeof e==`string`&&t.setAttribute(`title`,e),t.appendChild(Rs()),t}function Gs(e){let t=document.createElement(`div`);return t.classList.add(`value`),typeof e==`string`&&t.setAttribute(`title`,Je(e)),qs(t,e),t}function Ks(e,t){e.dataset.labelledVarIndex=`true`,e.addEventListener(`mouseover`,()=>t.removeAttribute(`aria-hidden`)),e.addEventListener(`mouseleave`,()=>t.setAttribute(`aria-hidden`,`true`))}function qs(e,t){e.textContent=t===void 0?Bs:Je(t)}function Js(e){return e.querySelector(`.${Ls}`)}function Ys(e){return typeof e!=`object`}var Xs=`user-variable-list`;function Zs({kind:e}){let t=document.createElement(`ul`);return t.classList.add(Xs),e===`numbered`&&Array.from({length:L.USER_VAR_NUM}).map((e,t)=>Qs({index:t})).forEach(e=>t.appendChild(e)),t}function Qs({index:e,value:t}){let n=document.createElement(`li`);return n.appendChild(Us({index:e,value:t})),n}function $s(e,{index:t,value:n}){e.appendChild(Qs({index:t,value:n}))}var ec=`information`;function tc(){let e=document.createElement(`p`);return e.classList.add(ec),nc(e,`強調されている番号にカーソルを乗せると説明が表示されます。`),e}function nc(e,t,n=!1){e.textContent=`${n?`【エラー】`:``}${t}`}function rc({heading:e,contentVisibilityToggleButton:t,information:n}){let r=document.createElement(`header`);return r.appendChild(ac({heading:e,contentVisibilityToggleButton:t})),n&&r.appendChild(tc()),r}function ic(e,t){e.textContent=t?`▲隠す`:`▼表示`}function ac({heading:e,contentVisibilityToggleButton:t}){let n=document.createElement(`div`);n.classList.add(`heading-area`);let r=document.createElement(`h2`);r.textContent=e.text,n.appendChild(r);let i=document.createElement(`button`);return i.classList.add(`content-visibility-toggle-button`),ic(i,!0),t.onClick&&i.addEventListener(`click`,t.onClick.bind(i)),n.appendChild(i),n}var oc=`user-variable-list-section`;function sc({kind:e}){let t=document.createElement(`section`);t.classList.add(oc),t.dataset.kind=e;let n=Zs({kind:e}),r=rc({heading:{text:e===`named`?`名前つき変数一覧`:`変数一覧`},information:(e===`numbered`||void 0)&&{},contentVisibilityToggleButton:{onClick:e=>{let t=r.querySelector(`.${ec}`);n.getAttribute(`aria-hidden`)===`true`?cc(n,t,e.target):lc(n,t,e.target)}}});return t.appendChild(r),t.appendChild(n),t}function cc(e,t,n){e.removeAttribute(`aria-hidden`),t instanceof HTMLElement&&t.removeAttribute(`aria-hidden`),n instanceof HTMLElement&&ic(n,!0)}function lc(e,t,n){e.setAttribute(`aria-hidden`,`true`),t instanceof HTMLElement&&t.setAttribute(`aria-hidden`,`true`),n instanceof HTMLElement&&ic(n,!1)}function uc(e,t){if(!(e instanceof HTMLElement))return;let n=_c(e),r=mc(e);if(r instanceof HTMLElement){for(let[i,a]of t){let t=gc(e,i);n.delete(i),t instanceof HTMLElement?qs(t,a):$s(r,{index:i,value:a})}for(let t of n){let n=hc(e,t).parentElement;n instanceof HTMLLIElement&&mc(e).removeChild(n)}}}var dc=`.${oc}[data-kind="named"]`,fc=`${dc} > .${Xs} > li > .${Vs}`;function pc(e){return`${fc}[data-var-index="${CSS.escape(e)}"]`}function mc(e){return e.querySelector(`${dc} > .${Xs}`)}function hc(e,t){return e.querySelector(pc(t))}function gc(e,t){return e.querySelector(`${pc(t)} > .value`)}function _c(e){return new Set([...e.querySelectorAll(fc)].map(e=>e instanceof HTMLElement?e.dataset.varIndex:void 0).filter(Boolean))}function vc(e,t){e instanceof HTMLElement&&Array.from({length:L.USER_VAR_NUM}).map((n,r)=>{let i=Tc(e,r);i instanceof HTMLElement&&qs(i,t[r])})}function yc(e,t){e&&Array.from({length:L.USER_VAR_NUM}).map((n,r)=>{let i=t[r];if(!i)return;let a=wc(e,r);if(!(a instanceof HTMLElement))return;let o=Js(a);o instanceof HTMLElement&&(zs(o,i),Ks(a,o))})}function bc(e,t,n=!1){if(!e)return;let r=Sc(e);r instanceof HTMLElement&&nc(r,t,n)}var xc=`.${oc}[data-kind="numbered"]`;function Sc(e){return e.querySelector(`${xc} > header > .${ec}`)}function Cc(e){return`${xc} > .${Xs} > li > .${Vs}[data-var-index="${CSS.escape(String(e))}"]`}function wc(e,t){return e.querySelector(`${Cc(t)} > .index`)}function Tc(e,t){return e.querySelector(`${Cc(t)} > .value`)}function Ec({dumpElement:e,namedUserVar:t,userVar:n}){t&&uc(e,t),n&&vc(e,n)}var Dc=`wwa-vardump-wrapper`;function Oc(e){let t=Be(e);return t instanceof HTMLElement?(t.classList.add(Dc),t.appendChild(sc({kind:`named`})),t.appendChild(sc({kind:`numbered`})),t):null}function kc(){return{mapdata:``,urlGateEnable:!1,titleImg:void 0,audioDir:`./audio/`,classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDumpElm:void 0,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:`./script/script_file_list.json`}}var Ac;function jc(e,t,n){var r=new _e;return r.current=e,r.total=t,r.stage=n,r}var Mc=class{constructor(e=kc()){this._useSuspend=!1,this._useLookingAround=!0,this._isDisallowLoadOldSave=!1,this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._windowCloseWaitingJumpGateRequest=void 0,this._debugConsoleElement=void 0,this.audioExtension=``,this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this.userDefinedFunctions={},this.convertWwaNodes=e=>Zo(Fs(e)),this.mainCaller=()=>this._main(),this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(B.KEY_ESC)||this._keyStore.checkHitKey(B.KEY_SHIFT)||this._keyStore.checkHitKey(B.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new ta(H(`wwa-wrapper`));let t;window.addEventListener(`click`,e=>{this._isActive=!1}),H(`wwa-wrapper`).addEventListener(`click`,e=>{e.stopPropagation(),this._isActive=!0}),this._isActive=!0,e.titleImg===void 0?(this._hasTitleImg=!1,this._cvsCover=H(`progress-panel`),t=this._cvsCover.getContext(`2d`),t.fillStyle=`rgb(0, 0, 0)`):this._hasTitleImg=!0;try{this._hasTitleImg?(H(`unstable-version-warning`).textContent=`この WWA Wing は [不安定版] です。`,H(`version`).textContent=`WWA Wing Ver.4.0.3`):this._setLoadingMessage(t,0)}catch{}this._dumpElement=e.varDumpElm;let n=window.AudioContext||window.webkitAudioContext;n&&(this.audioContext=new n,this.audioGain=this.audioContext.createGain(),this.audioGain.gain.setValueAtTime(1,this.audioContext.currentTime));let r=new Audio;if(r.canPlayType(`audio/mpeg`)!==`no`&&r.canPlayType(`audio/mpeg`)!==``?this.audioExtension=`mp3`:this.audioExtension=`m4a`,this._isURLGateEnable=e.urlGateEnable,this._isClassicModeEnable=e.classicModeEnable,this._mainCallCounter=0,this._animationCounter=0,this._statusPressCounter=new x(0,0,0,0),e.audioDir?e.audioDir[e.audioDir.length-1]!==`/`&&(e.audioDir+=`/`):e.audioDir=`./audio/`,this._audioDirectory=e.audioDir,this._bottomButtonType=e.useGoToWwa?w.GOTO_WWA:w.BATTLE_REPORT,this._userVarNameList=[],this.evalCalcWwaNodeGenerator=new js(this),this.userDevice=new j,location.href.match(/^file/))switch(this.userDevice.device){case re.GAME:switch(this.userDevice.os){case M.NINTENDO:L.BATTLE_INTERVAL_FRAME_NUM=5;break}this._bottomButtonType=w.GAME_END;break;default:alert(`【警告】直接HTMLファイルを開いているようです。
|
|
93
|
+
`;case 114:return`\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return qo(this.readCodePoint());case 116:return` `;case 98:return`\b`;case 118:return`\v`;case 102:return`\f`;case 13:this.input.charCodeAt(this.pos)===10&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),``;case 56:case 57:if(e){var n=this.pos-1;return this.invalidStringToken(n,`Invalid escape sequence in template string`),null}default:if(t>=48&&t<=55){var r=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(r,8);return i>255&&(r=r.slice(0,-1),i=parseInt(r,8)),this.pos+=r.length-1,t=this.input.charCodeAt(this.pos),(r!==`0`||t===56||t===57)&&(this.strict||e)&&this.invalidStringToken(this.pos-1-r.length,e?`Octal literal in template string`:`Octal literal in strict mode`),String.fromCharCode(i)}return xa(t)?``:String.fromCharCode(t)}},Q.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return n===null&&this.invalidStringToken(t,`Bad character escape sequence`),n},Q.readWord1=function(){this.containsEsc=!1;for(var e=``,t=!0,n=this.pos,r=this.options.ecmaVersion>=6;this.pos<this.input.length;){var i=this.fullCharCodeAtPos();if(ma(i,r))this.pos+=i<=65535?1:2;else if(i===92){this.containsEsc=!0,e+=this.input.slice(n,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&&this.invalidStringToken(this.pos,`Expecting Unicode escape sequence \\uXXXX`),++this.pos;var o=this.readCodePoint();(t?pa:ma)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=qo(o),n=this.pos}else break;t=!1}return e+this.input.slice(n,this.pos)},Q.readWord=function(){var e=this.readWord1(),t=J.name;return this.keywords.test(e)&&(t=va[e]),this.finishToken(t,e)},Qa.acorn={Parser:Qa,version:`7.4.1`,defaultOptions:Na,Position:Aa,SourceLocation:ja,getLineInfo:Ma,Node:ho,TokenType:K,tokTypes:J,keywordTypes:va,TokContext:vo,tokContexts:yo,isIdentifierChar:ma,isIdentifierStart:pa,Token:Wo,isNewLine:xa,lineBreak:ya,lineBreakG:ba,nonASCIIwhitespace:Sa};function Yo(e,t){return Qa.parse(e,t)}function Xo(e){return[`ArrayOrObject1D`,`ArrayOrObject2D`,`ArrayOrObject3DPlus`,`Literal`,`Symbol`,`UnaryOperation`,`BinaryOperation`,`Random`,`CallDefinedFunction`,`AnyFunction`,`ConditionalExpression`,`ArrayExpression`,`ObjectExpression`].includes(e.type)}function Zo(e){return e.type===`Program`?e.body.map(e=>$(e)):[$(e)]}function $(e){switch(e.type){case`Program`:return ms(e);case`ExpressionStatement`:return hs(e);case`AssignmentExpression`:return gs(e);case`MemberExpression`:return ys(e);case`UnaryExpression`:return _s(e);case`BinaryExpression`:return vs(e);case`Identifier`:return bs(e);case`Literal`:return xs(e);case`CallExpression`:return ls(e);case`IfStatement`:return cs(e);case`BlockStatement`:return ss(e);case`FunctionDeclaration`:return Qo(e);case`ForStatement`:return os(e);case`BreakStatement`:return is(e);case`ReturnStatement`:return as(e);case`ContinueStatement`:return rs(e);case`UpdateExpression`:return $o(e);case`LogicalExpression`:return es(e);case`TemplateLiteral`:return ts(e);case`TemplateElement`:return ns(e);case`ConditionalExpression`:return Ss(e);case`Property`:return Cs(e);case`ObjectExpression`:return ws(e);case`ArrayExpression`:return Ts(e);default:throw console.log(e),Error(`未定義の AST ノードです :`+e.type)}}function Qo(e){return{type:`DefinedFunction`,functionName:e.id.name,body:$(e.body)}}function $o(e){return{type:`UpdateExpression`,operator:e.operator,argument:$(e.argument)}}function es(e){return{type:`LogicalExpression`,operator:e.operator,left:$(e.left),right:$(e.right)}}function ts(e){return{type:`TemplateLiteral`,expressions:e.expressions.map(e=>$(e)),quasis:e.quasis.map(e=>$(e))}}function ns(e){return{type:`TemplateElement`,value:e.value}}function rs(e){return{type:`Continue`,label:e.label}}function is(e){return{type:`Break`,label:e.label}}function as(e){return{type:`Return`,argument:$(e.argument)}}function os(e){return{type:`ForStatement`,body:e.body.body.map(e=>$(e)),init:$(e.init),test:$(e.test),update:$(e.update)}}function ss(e){return{type:`BlockStatement`,value:e.body.map(e=>$(e))}}function cs(e){return{type:`IfStatement`,consequent:$(e.consequent),test:$(e.test),alternate:e.alternate?$(e.alternate):void 0}}function ls(e){let t=e.callee.name;switch(t){case`RAND`:return ps(e.arguments);case`JUMPGATE`:return fs(e.arguments);case`MSG`:case`MESSAGE`:return ds(e.arguments);case`MUSIC`:case`SOUND`:case`BGM_STOP`:case`STOP_BGM`:case`SOUND_STOP`:case`STOP_SOUND`:case`ALL_SOUND_STOP`:case`STOP_ALL_SOUND`:case`SAVE`:case`LOG`:case`ABLE_CHANGE_SPEED`:case`SET_SPEED`:case`CHANGE_GAMEOVER_POS`:case`DEL_PLAYER`:case`RESTART_GAME`:case`URL_JUMPGATE`:case`HIDE_STATUS`:case`PARTS`:case`FACE`:case`EFFECT`:case`CHANGE_PLAYER_IMAGE`:case`CHANGE_PLAYER_IMG`:case`HAS_ITEM`:case`REMOVE_ITEM`:case`MOVE`:case`PARTS_MOVE`:case`IS_PLAYER_WAITING_MESSAGE`:case`IS_MANUAL_PAUSE`:case`IS_PLAYER_WAITING_ENTER`:case`GET_UNIXTIME`:case`GET_DATE_YEAR`:case`GET_DATE_MONTH`:case`GET_DATE_DAY`:case`GET_DATE_HOUR`:case`GET_DATE_MINUTES`:case`GET_DATE_SECONDS`:case`GET_DATE_MILLISECONDS`:case`GET_DATE_WEEKDAY`:case`CHANGE_SYSMSG`:case`PICTURE`:case`PICTURE_FROM_PARTS`:case`CLEAR_ALL_PICTURES`:case`HAS_PICTURE`:case`SHOW_USER_DEF_VAR`:case`ABS`:case`GET_GAMEOVER_POS_X`:case`GET_GAMEOVER_POS_Y`:case`ABORT_BATTLE`:case`EXIT`:case`GET_IMG_POS_X`:case`GET_IMG_POS_Y`:case`LENGTH`:case`IS_NUMBER`:case`MANUAL_PAUSE`:case`WAIT_ENTER`:case`COLOR`:case`EFFITEM`:case`CHANGE_BOM_IMG`:case`CHANGE_BOM_IMAGE`:case`CHANGE_CLICK_IMAGE`:case`CHANGE_CLICK_IMG`:case`CHANGE_FRAME_IMAGE`:case`CHANGE_FRAME_IMG`:case`CHANGE_YESNO_IMAGE`:case`CHANGE_YESNO_IMG`:case`NO_GAMEOVER`:case`DEFAULT`:case`DIR_MAP`:case`CHANGE_SOUND_ATTACK`:case`CHANGE_SOUND_DECISION`:return us(e.arguments,t);default:return{type:`CallDefinedFunction`,functionName:t}}}function us(e,t){return{type:`AnyFunction`,functionName:t,value:e.map(e=>$(e))}}function ds(e){return{type:`Msg`,value:$(e[0])}}function fs(e){if(e.length<2)throw Error(`RAND関数には引数が2つ必要です。`);let t={x:e[0],y:e[1]};return{type:`Jumpgate`,x:$(t.x),y:$(t.y)}}function ps(e){if(e.length<1)throw Error(`RAND関数には引数が必要です。`);return{type:`Random`,value:$(e[0])}}function ms(e){if(e.body.length!==1)throw Error(`bodyが1以外の場合評価できません。`);return $(e.body[0])}function hs(e){return $(e.expression)}function gs(e){let t=$(e.left),n=$(e.right);if(!Xo(n))throw Error(`値以外を代入式の右辺に設定できません`);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:if(t.type===`ArrayOrObject2D`){if(t.name===`m`||t.name===`o`)return{type:`PartsAssignment`,partsKind:t.name===`m`?`map`:`object`,destinationX:t.indecies[0],destinationY:t.indecies[1],value:n,operator:e.operator};if(t.name===`v`)return{type:`UserVariableAssignment`,index:[t.indecies[0],t.indecies[1]],value:n,operator:e.operator};throw Error(`想定していない記号が2次元配列ででてきました`)}else if(t.type===`ArrayOrObject1D`){if(t.name===`ITEM`)return{type:`ItemAssignment`,itemBoxPosition1to12:t.indecies[0],value:n,operator:e.operator};if(t.name===`v`)return{type:`UserVariableAssignment`,index:[t.indecies[0]],value:n,operator:e.operator};if(t.name===`LP`)return{type:`LoopPointerAssignment`,index:t.indecies[0],value:n,operator:e.operator};throw Error(`1次元配列にて想定していないシンボルが指定されました ${t.name}`)}else if(t.type===`Symbol`){if(t.name===`m`||t.name===`o`||t.name===`v`||t.name===`ITEM`||t.name===`X`||t.name===`Y`||t.name===`ID`||t.name===`TYPE`||t.name===`CX`||t.name===`CY`||t.name===`PICTURE`||t.name===`PLAYER_PX`||t.name===`PLAYER_PY`||t.name===`MOVE_SPEED`||t.name===`MOVE_FRAME_TIME`||t.name===`LP`||t.name===`undefined`)throw Error(`このシンボルには代入できません`);if(t.name===`AT_TOTAL`)throw Error(`"装備品込みの攻撃力(AT_TOTAL)への代入はできません。"`);if(t.name===`DF_TOTAL`)throw Error(`"装備品込みの防御力(DF_TOTAL)への代入はできません。"`);if(t.name===`ENEMY_HP`||t.name===`ENEMY_AT`||t.name===`ENEMY_DF`||t.name===`ENEMY_GD`)throw Error(`敵ステータス (ENEMY_HP, ENEMY_AT, ENEMY_DF, ENEMY_GD) への代入はできません。`);return{type:`SpecialParameterAssignment`,kind:t.name,value:n,operator:e.operator}}else if(t.type===`Literal`)throw Error(`数値には代入できません`);else if(t.type===`ArrayOrObject3DPlus`&&t.name===`v`)return{type:`UserVariableAssignment`,index:t.indecies,value:n,operator:e.operator};else throw Error(`代入できません`);default:throw Error(`想定していないオペレーターです`)}}function _s(e){let t=$(e.argument);if(![`+`,`-`,`!`].includes(e.operator))throw Error(`未定義の演算子です :`+e.operator);if(!Xo(t))throw Error(`単項演算子が適用できません`);return{type:`UnaryOperation`,operator:e.operator,argument:t}}function vs(e){let t=$(e.left),n=$(e.right);if(!Xo(t)||!Xo(n))throw Error(`左辺または右辺が評価不能です`);switch(e.operator){case`+`:case`-`:case`*`:case`/`:case`%`:case`>`:case`<`:case`>=`:case`<=`:case`==`:case`!=`:return{type:`BinaryOperation`,operator:e.operator,left:t,right:n};default:throw Error(`未定義の演算子です :`+e.operator)}}function ys(e){let t=$(e.object),n=$(e.property);if(t.type===`Symbol`){if(![`v`,`m`,`o`,`ITEM`,`LP`,`PICTURE`].includes(t.name))throw Error(`このシンボルは配列にできません`);if(Xo(n))return{type:`ArrayOrObject1D`,name:t.name,indecies:[n]};throw Error(`WWAでは存在しない構文です`)}else if(t.type===`ArrayOrObject1D`){if(t.name===`ITEM`||t.name===`PICTURE`)throw Error(`この配列は2次元以上にはできません。`);if(Xo(n))return{type:`ArrayOrObject2D`,name:t.name,indecies:[...t.indecies,n]};throw Error(`WWAでは存在しない構文です`)}else if(t.type===`ArrayOrObject2D`||t.type===`ArrayOrObject3DPlus`){if(t.name===`m`||t.name===`o`)throw Error(`この配列は3次元以上にはできません。`);if(t.name===`v`&&Xo(n))return{type:`ArrayOrObject3DPlus`,name:t.name,indecies:[...t.indecies,n]}}else throw Error(`WWAでは存在しない構文です`)}function bs(e){switch(e.name){case`m`:case`o`:case`ITEM`:case`X`:case`Y`:case`ID`:case`TYPE`:case`PX`:case`PY`:case`CX`:case`CY`:case`v`:case`HP`:case`HPMAX`:case`AT`:case`AT_TOTAL`:case`DF`:case`DF_TOTAL`:case`GD`:case`STEP`:case`TIME`:case`PDIR`:case`i`:case`j`:case`k`:case`LOOPLIMIT`:case`ITEM_ID`:case`ITEM_POS`:case`ENEMY_HP`:case`ENEMY_AT`:case`ENEMY_DF`:case`PICTURE`:case`PLAYER_PX`:case`PLAYER_PY`:case`MOVE_SPEED`:case`MOVE_FRAME_TIME`:case`LP`:case`undefined`:return{type:`Symbol`,name:e.name};default:return{type:`Literal`,value:e.name}}}function xs(e){return{type:`Literal`,value:e.value}}function Ss(e){let t=$(e.consequent),n=$(e.alternate);return{type:`ConditionalExpression`,consequent:t,test:$(e.test),alternate:n}}function Cs(e){let t=$(e.key);if(t.type===`Symbol`)throw Error(`Object のキー ${t.name} は予約されているため、使用できません。`);if(t.type!==`Literal`)throw Error(`Object のキーが不正です。 Literal を期待していましたが、実際は ${t.type} でした。`);return{type:`Property`,key:t,value:$(e.value)}}function ws(e){return{type:`ObjectExpression`,properties:e.properties.map(Cs)}}function Ts(e){return{type:`ArrayExpression`,elements:e.elements.map($)}}var Es=[A.OBJECT,A.MAP];function Ds(e){switch(typeof e){case`object`:if(e===null)break;return Array.isArray(e)?e.length:Object.keys(e).length;case`string`:return e.length}throw Error(`LENGTH: 対応できない値が指定されています。`)}var Os=(e,t)=>(e-t)*L.CHIP_SIZE,ks=(e,t)=>(e-t)*L.CHIP_SIZE,As=Object.freeze({"=":(e,t)=>t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"*=":(e,t)=>e*t,"/=":(e,t)=>e/t}),js=class{constructor(e){this.wwa=e,this.loop_limit=1e5,this.state={messagePageAdditionalQueue:[]}}setTriggerParts(e,t,n){this.state={...this.state,triggerParts:{id:e,type:t,position:n}}}clearTemporaryState(){this.state={...this.state,triggerParts:void 0,messagePageAdditionalQueue:[]}}setEarnedItem(e,t){this.state={...this.state,earnedItem:{partsId:e,itemPos1To12:t}}}clearEarnedItem(){this.state={...this.state,earnedItem:void 0}}setBattleDamageCalculationMode(e){this.state={...this.state,battleDamageCalculation:{estimatingParams:e}}}clearBattleDamageCalculationMode(){this.state={...this.state,battleDamageCalculation:void 0}}evalWwaNodes(e){return this.evalWwaNode({type:`BlockStatement`,value:e})}evalWwaNode(e){if(!(e.type===`BlockStatement`&&Array.isArray(e.value)&&e.value.length===0))try{return new Ms(this).evalWwaNode(e)}catch(e){if(e instanceof Ns||e instanceof Ps)return e.value;throw e}}addPageAdditionalItem(e){this.state.messagePageAdditionalQueue.push(e)}pickPageAdditionalQueue(){let e=[...this.state.messagePageAdditionalQueue];return this.state.messagePageAdditionalQueue=[],e}updateLoopLimit(e){this.loop_limit=e}},Ms=class{constructor(e){this.generator=e,this.for_id={i:null,j:null,k:null,LP:[],loopCount:0,break_flag:!1,continue_flag:!1}}evalWwaNodes(e){let t;return e.forEach(e=>{t=this.evalWwaNode(e)}),t}evalWwaNode(e){if(!(this.for_id.break_flag||this.for_id.continue_flag))switch(e.type){case`UnaryOperation`:return this.evalUnaryOperation(e);case`BinaryOperation`:return this.evalBinaryOperation(e);case`Symbol`:return this.evalSymbol(e);case`ArrayOrObject1D`:return this.evalArrayOrObject1D(e);case`ArrayOrObject2D`:return this.evalArrayOrObject2D(e);case`ArrayOrObject3DPlus`:return this.evalArrayOrObject3DPlus(e);case`Literal`:return this.evalLiteral(e);case`UserVariableAssignment`:return this.evalSetUserVariable(e);case`SpecialParameterAssignment`:return this.evalSetSpecialParameter(e);case`Random`:return this.evalRandom(e);case`Jumpgate`:return this.evalJumpgate(e);case`Msg`:return this.evalMessage(e);case`ItemAssignment`:return this.itemAssignment(e);case`IfStatement`:return this.ifStatement(e);case`BlockStatement`:return this.blockStatement(e);case`PartsAssignment`:return this.partsAssignment(e);case`ForStatement`:return this.forStateMent(e);case`AnyFunction`:return this.wrapCallFunction(e,e=>this.evalAnyFunction(e));case`CallDefinedFunction`:return this.wrapCallFunction(e,e=>this.callDefinedFunction(e));case`Break`:return this.breakStatement(e);case`Return`:throw new Ns(this.returnStatement(e));case`Continue`:return this.contunueStatment(e);case`UpdateExpression`:return this.updateExpression(e);case`LogicalExpression`:return this.logicalExpression(e);case`TemplateLiteral`:return this.convertTemplateLiteral(e);case`ConditionalExpression`:return this.convertConditionalExpression(e);case`Property`:return this.property(e);case`ObjectExpression`:return this.objectExpression(e);case`ArrayExpression`:return this.arrayExpression(e);case`LoopPointerAssignment`:return this.convertLoopPointerExpression(e);default:throw console.log(e),Error(`未定義または未実装のノードです`)}}wrapCallFunction(e,t){try{return t(e)}catch(e){if(e instanceof Ns)return e.value;throw e}}callDefinedFunction(e){let t=this.generator.wwa.getUserScript(e.functionName);if(t===null)throw Error(`未定義の関数が呼び出されました: ${e.functionName}`);return this.evalWwaNode(t)}updateExpression(e){if(e.argument.type!==`ArrayOrObject1D`&&e.argument.type!==`ArrayOrObject2D`&&e.argument.type!==`Symbol`)throw Error(`node.argument.typeが インクリメント/デクリメントできる対象ではありません。: ${e.argument.type}`);let t=t=>{switch(e.operator){case`++`:return t+1;case`--`:return t-1;default:throw Error(`想定外のOperatorが渡されました :`+e.operator)}},n=this.evalWwaNode(e.argument),r={type:`Literal`,value:t(n)};switch(e.argument.type){case`ArrayOrObject1D`:if(e.argument.name===`v`)this.evalSetUserVariable({type:`UserVariableAssignment`,index:[e.argument.indecies[0]],value:r});else if(e.argument.name===`ITEM`)this.itemAssignment({type:`ItemAssignment`,itemBoxPosition1to12:e.argument.indecies[0],value:r});else if(e.argument.name===`LP`)this.convertLoopPointerExpression({type:`LoopPointerAssignment`,index:e.argument.indecies[0],value:r,operator:`=`});else throw Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);break;case`ArrayOrObject2D`:{let t={type:`PartsAssignment`,destinationX:e.argument.indecies[0],destinationY:e.argument.indecies[1],value:r,operator:`=`};if(e.argument.name===`m`)this.partsAssignment({...t,partsKind:`map`});else if(e.argument.name===`o`)this.partsAssignment({...t,partsKind:`object`});else throw Error(`このリテラルはインクリメント/デクリメントできません: ${e.argument.type}`);break}case`Symbol`:{let t={type:`SpecialParameterAssignment`,kind:e.argument.name,value:r};this.evalSetSpecialParameter(t);break}}return n}logicalExpression(e){let t=this.evalWwaNode(e.left),n=this.evalWwaNode(e.right);switch(e.operator){case`||`:return t||n;case`&&`:return t&&n;default:throw Error(`存在しない論理式です!: `+e.operator)}}convertTemplateLiteral(e){let t=e.expressions.map(e=>this.evalWwaNode(e)),n=e.quasis.map(e=>e.value.cooked),r=``;return n.forEach((e,n)=>{r+=e,t[n]!==void 0&&(r+=t[n])}),r}contunueStatment(e){this.for_id.continue_flag=!0}breakStatement(e){this.for_id.break_flag=!0}returnStatement(e){return this.evalWwaNode(e.argument)}forStateMent(e){let t=e.init;for((()=>{if(`kind`in t)switch(t.kind){case`i`:if(this.for_id.i!==null)throw Error(`iの値が既に外側のforループで使われています。`);break;case`j`:if(this.for_id.j!==null)throw Error(`jの値が既に外側のforループで使われています。`);break;case`k`:if(this.for_id.k!==null)throw Error(`kの値が既に外側のforループで使われています。`);break;default:throw console.log(e),Error(`予想外の変数がfor文内で使用されました :`+t.kind)}else switch(t.type){case`LoopPointerAssignment`:let n=Number(this.evalWwaNode(t.index));if(Number.isNaN(n))throw Error(`LPのIndex値はNumberでないといけません。: ${n}`);if(this.for_id.LP[n]!==null&&this.for_id.LP[n]!==void 0)throw Error(`LP[${n}]の値が既に外側のforループで使われています。`);break;default:throw console.log(e),Error(`予想外の1次元配列がfor文内で使用されました :`+t)}this.evalWwaNode(e.init)})();this.evalWwaNode(e.test);this.evalWwaNode(e.update)){if(this.for_id.loopCount++,this.for_id.loopCount>this.generator.loop_limit)throw Error(`処理回数が多すぎます!
|
|
94
|
+
上限値は LOOPLIMIT で変えられます。`);if(this.for_id.break_flag||!this.evalWwaNode(e.test))break;this.evalWwaNodes(e.body),this.for_id.continue_flag=!1}if(this.for_id.break_flag=!1,`kind`in t)switch(t.kind){case`i`:this.for_id.i=null;break;case`j`:this.for_id.j=null;break;case`k`:this.for_id.k=null;break}else switch(t.type){case`LoopPointerAssignment`:let e=Number(this.evalWwaNode(t.index));this.for_id.LP[e]=null;break}}_checkArgsLength(e,t){if(t.value.length<e)throw Error(`関数 ${t.functionName} の引数が不足しています!`)}evalAnyFunction(e){let t=this.generator.wwa.getGameStatus();switch(e.functionName){case`MUSIC`:case`SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value[1]?this.evalWwaNode(e.value[1]):void 0,r=e.value[2]?this.evalWwaNode(e.value[2]):!1;return this.generator.wwa.playSound(t,{loopPlaying:n,bgmDelayDurationMs:r>=0?r:void 0}),t}case`BGM_STOP`:case`STOP_BGM`:this.generator.wwa.stopBgm();return;case`SOUND_STOP`:case`STOP_SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);return this.generator.wwa.stopSound(t,{includeBgm:!0}),t}case`STOP_SOUNDS`:case`ALL_SOUND_STOP`:case`STOP_ALL_SOUND`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.stopAllSound({includeBgm:!!t});return}case`SAVE`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);return this.generator.wwa.disableSave(t),t}case`LOG`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);console.log(t instanceof Map?d(t):t);return}case`ABLE_CHANGE_SPEED`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);return this.generator.wwa.speedChangeJudge(t),t}case`SET_SPEED`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));this.generator.wwa.setPlayerSpeedIndex(t);return}case`CHANGE_GAMEOVER_POS`:{this._checkArgsLength(2,e);let t={x:Number(this.evalWwaNode(e.value[0])),y:Number(this.evalWwaNode(e.value[1]))};if(t.x<0||t.x>=this.generator.wwa.getMapWidth()||t.y<0||t.y>this.generator.wwa.getMapWidth())throw Error(`マップの範囲外が指定されています!`);this.generator.wwa.setGameOverPosition(new S(t.x,t.y));return}case`DEL_PLAYER`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.setDelPlayer(t);return}case`RESTART_GAME`:this.generator.wwa.restartGame();return;case`URL_JUMPGATE`:throw Error(`URL_JUMPGATE 関数は調整中のためご利用になれません`);case`HIDE_STATUS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=!!this.evalWwaNode(e.value[1]);this.generator.wwa.hideStatus(t,n);return}case`PARTS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=e.value[2]?Number(this.evalWwaNode(e.value[2])):0,i=e.value[3]?!!this.evalWwaNode(e.value[3]):!1;if(t<0||n<0)throw Error(`パーツ番号が不正です`);if(!Es.includes(r))throw Error(`パーツ種別が不明です`);this.generator.wwa.replaceParts(t,n,r,i);return}case`FACE`:{this._checkArgsLength(6,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2])),i=Number(this.evalWwaNode(e.value[3])),a=Number(this.evalWwaNode(e.value[4])),o=Number(this.evalWwaNode(e.value[5]));if(t<0||n<0||r<0||i<0||a<0||o<0)throw Error(`各引数は0以上の整数でなければなりません。`);this.generator.addPageAdditionalItem({type:`face`,data:{face:new ee(new S(t,n),new S(r,i),new S(a,o))}});return}case`EFFECT`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));if(t<0)throw Error(`待ち時間は0以上の整数でなければなりません。`);if(t===0){this.generator.wwa.stopEffect();return}let n=[];for(let t=1;t<e.value.length;t+=2){let r=Number(this.evalWwaNode(e.value[t]));if(r<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);if(t+1===e.value.length)throw Error(`画像のパーツ座標指定で、Y座標が指定されていません。`);let i=Number(this.evalWwaNode(e.value[t+1]));if(i<0)throw Error(`画像のパーツ座標指定は0以上の整数でなければなりません。`);n.push(new S(r,i))}this.generator.wwa.setEffect(t,n);return}case`CHANGE_PLAYER_IMAGE`:case`CHANGE_PLAYER_IMG`:{this._checkArgsLength(2,e);let t=new S(Number(this.evalWwaNode(e.value[0])),Number(this.evalWwaNode(e.value[1])));this.generator.wwa.setPlayerImgCoord(t);return}case`HAS_ITEM`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0]));return t.itemBox.includes(n)}case`REMOVE_ITEM`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0])),r=e.value[1]?this.evalWwaNode(e.value[1])===1:!1,i=0;for(let e=0;e<t.itemBox.length;e++)if(n===t.itemBox[e]&&(this.generator.wwa.setPlayerGetItem(e+1,0),i++,!r))return i;return i}case`MOVE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));if(t<=0||t>9)throw Error(`MOVEの移動先は2/4/6/8で指定してください!`);return this.generator.wwa.movePlayer(t),this.generator.wwa.movePlayer(t),0}case`PARTS_MOVE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return this.generator.wwa.setMoveMacroWaitingToPlayer(t),0}case`IS_PLAYER_WAITING_MESSAGE`:return this.generator.wwa.isPlayerWaitingMessage();case`IS_MANUAL_PAUSE`:case`IS_PLAYER_WAITING_ENTER`:return this.generator.wwa.isManualPause();case`GET_UNIXTIME`:return Math.floor(new Date().getTime()/1e3);case`GET_DATE_YEAR`:return new Date().getFullYear();case`GET_DATE_MONTH`:return new Date().getMonth()+1;case`GET_DATE_DAY`:return new Date().getDate();case`GET_DATE_HOUR`:return new Date().getHours();case`GET_DATE_MINUTES`:return new Date().getMinutes();case`GET_DATE_SECONDS`:return new Date().getSeconds();case`GET_DATE_MILLISECONDS`:return new Date().getMilliseconds();case`GET_DATE_WEEKDAY`:return new Date().getDay();case`SHOW_USER_DEF_VAR`:console.log(this.generator.wwa.getAllUserNameVar());return;case`CHANGE_SYSMSG`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value.length>=2?this.evalWwaNode(e.value[1]):void 0,r=this.resolveSystemMessageKeyFromMacroArg(t);if(!r)throw Error(`このIDのシステムメッセージは未定義です。`);if(typeof n==`number`||typeof n==`string`||typeof n==`boolean`)this.generator.wwa.overwriteSystemMessage(r,String(n));else if(n==null)this.generator.wwa.overwriteSystemMessage(r,void 0);else throw Error(`この値は文字列に変換できないため、システムメッセージを表示できません。`);break}case`PICTURE`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=e.value.length>=2?this.evalWwaNode(e.value[1]):void 0;if(n===void 0){this.generator.wwa.deletePictureRegistry(t);return}if(n instanceof Map)this.generator.wwa.setPictureRegistryFromObject(t,d(n));else if(typeof n==`string`)this.generator.wwa.setPictureRegistryFromRawText(t,n);else throw Error(`ピクチャのプロパティ定義は文字列あるいはオブジェクトである必要があります。`);break}case`PICTURE_FROM_PARTS`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(n===0){this.generator.wwa.deletePictureRegistry(t);return}let r=e.value.length>=3?Number(this.evalWwaNode(e.value[2])):A.OBJECT;if(!Es.includes(r))throw Error(`パーツ種別が不明です`);let i=this.generator.wwa.getGameStatus();this.generator.wwa.setPictureRegistry(t,n,r,i.playerCoord);break}case`CLEAR_ALL_PICTURES`:this.generator.wwa.clearAllPictures();break;case`HAS_PICTURE`:{this._checkArgsLength(1,e);let n=Number(this.evalWwaNode(e.value[0]));return t.wwaData.pictureRegistry.some(e=>e.layerNumber===n)}case`ABS`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return Math.abs(t)}case`GET_GAMEOVER_POS_X`:return this.generator.wwa.getGemeOverPosition().x;case`GET_GAMEOVER_POS_Y`:return this.generator.wwa.getGemeOverPosition().y;case`ABORT_BATTLE`:throw this.generator.state.battleDamageCalculation&&(this.generator.state.battleDamageCalculation.aborted=!0),new Ps(`ABORT_BATTLE`);case`EXIT`:throw new Ps(`EXIT`,this.evalWwaNode(e.value[0]));case`GET_IMG_POS_X`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=(e.value[1]===void 0?0:Number(this.evalWwaNode(e.value[1])))===0?A.OBJECT:A.MAP;if(n===A.OBJECT){let n=e.value[2]===void 0?!0:Number(this.evalWwaNode(e.value[2]))===0,r=this.generator.wwa.getObjectInfo(t),i=n?r[L.ATR_X]:r[L.ATR_X2];return Math.floor(i/L.CHIP_SIZE)}else if(n===A.MAP){let e=this.generator.wwa.getMapInfo(t)[L.ATR_X];return Math.floor(e/L.CHIP_SIZE)}throw Error(`GET_IMG_POS_X: 指定したIDのパーツのTypeが異常です。`)}case`GET_IMG_POS_Y`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=(e.value[1]===void 0?0:Number(this.evalWwaNode(e.value[1])))===0?A.OBJECT:A.MAP;if(n===A.OBJECT){let n=e.value[2]===void 0?!0:Number(this.evalWwaNode(e.value[2]))===0,r=this.generator.wwa.getObjectInfo(t),i=n?r[L.ATR_Y]:r[L.ATR_Y2];return Math.floor(i/L.CHIP_SIZE)}else if(n===A.MAP){let e=this.generator.wwa.getMapInfo(t)[L.ATR_Y];return Math.floor(e/L.CHIP_SIZE)}throw Error(`GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。`)}case`LENGTH`:return this._checkArgsLength(1,e),Ds(this.evalWwaNode(e.value[0]));case`IS_NUMBER`:return this._checkArgsLength(1,e),typeof this.evalWwaNode(e.value[0])==`number`;case`MANUAL_PAUSE`:case`WAIT_ENTER`:{let t=e.value[0]?this.evalWwaNode(e.value[0]):``,n={up:e.value[1]?this.evalWwaNode(e.value[1]):``,down:e.value[2]?this.evalWwaNode(e.value[2]):``,right:e.value[3]?this.evalWwaNode(e.value[3]):``,left:e.value[4]?this.evalWwaNode(e.value[4]):``};this.generator.wwa.manualPause(t,n);return}case`COLOR`:{this._checkArgsLength(4,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2])),i=Number(this.evalWwaNode(e.value[3]));if(t<0||t>5)throw Error(`種別は0から5までです`);if(n<0||n>255||r<0||r>255||i<0||i>255)throw Error(`色が範囲外です`);this.generator.wwa.changeStyleRule(t,n,r,i);return}case`EFFITEM`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.updateItemEffectEnabled(t);return}case`CHANGE_BOM_IMAGE`:case`CHANGE_BOM_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(t<0||n<0)throw Error(`座標は0以上の整数ではありません`);this.generator.wwa.setBattleEffectCoord(new S(t,n));return}case`CHANGE_CLICK_IMAGE`:case`CHANGE_CLICK_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));if(t<0||n<0)throw Error(`引数が0以上の整数ではありません`);this.generator.wwa.setImgClick(new S(t,n));return}case`CHANGE_FRAME_IMAGE`:case`CHANGE_FRAME_IMG`:{this._checkArgsLength(3,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=Number(this.evalWwaNode(e.value[2]));if(n<0||r<0)throw Error(`座標は正でなければなりません。`);switch(t){case de.ENERGY:case de.STRENGTH:case de.DEFENCE:case de.GOLD:this.generator.wwa.setStatusIconCoord(t,new S(n,r));break;case de.WIDE_CELL_ROW:this.generator.wwa.setWideCellCoord(new S(n,r));break;case de.ITEM_BG:this.generator.wwa.setItemboxBackgroundPosition({x:n,y:r});break;case de.MAIN_FRAME:this.generator.wwa.setFrameCoord(new S(n,r));break;default:throw Error(`種別が不正です。`)}return}case`CHANGE_YESNO_IMAGE`:case`CHANGE_YESNO_IMG`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1]));this.generator.wwa.setYesNoImgCoord(new S(t,n));return}case`NO_GAMEOVER`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.setGameOverPolicy(t);return}case`DEFAULT`:{this._checkArgsLength(1,e);let t=!!this.evalWwaNode(e.value[0]);this.generator.wwa.setObjectNotCollapseOnPartsOnPlayer(t);return}case`DIR_MAP`:{this._checkArgsLength(2,e);let t=Number(this.evalWwaNode(e.value[0])),n=Number(this.evalWwaNode(e.value[1])),r=e.value[2]===void 0?A.OBJECT:Number(this.evalWwaNode(e.value[2]));if(t<0)throw Error(`パーツ番号が不正です`);if(r===A.OBJECT){if(t>=this.generator.wwa.getObjectPartsNum())throw Error(`パーツ番号が不正です`)}else if(t>=this.generator.wwa.getMapPartsNum())throw Error(`パーツ番号が不正です`);this.generator.wwa.appearPartsByDirection(n,t,r);return}case`CHANGE_SOUND_DECISION`:if(this.generator.wwa.getSoundEnabled()){this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.checkSoundEnabled(t),this.generator.wwa.setDecisionSound(t)}return;case`CHANGE_SOUND_ATTACK`:if(this.generator.wwa.getSoundEnabled()){this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.checkSoundEnabled(t),this.generator.wwa.setAttackSound(t)}return;default:throw Error(`未定義の関数が指定されました: `+e.functionName)}}resolveSystemMessageKeyFromMacroArg(e){if(typeof e==`string`)return v(e)?e:void 0;if(typeof e==`number`)return y(e)}partsAssignment(e){let t=this.generator.wwa.getGameStatus(),n=this.evalWwaNode(e.destinationX),r=this.evalWwaNode(e.destinationY);if(typeof n!=`number`||typeof r!=`number`)throw Error(`座標は数値で指定してください (${n}, ${r})`);new C(this.generator.wwa,n,r);let i=e.partsKind===`map`?A.MAP:A.OBJECT,a=this.resolveParts(i,n,r),o=this.evalWwaNode(e.value);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:{let s=As[e.operator](a,o)|0;if(s<0)throw Error(`負値のパーツ番号 ${s} は代入できません`);this.generator.wwa.appearPartsEval(t.playerCoord,`${n}`,`${r}`,s,i);break}default:throw Error(`演算子 ${e.operator} は partsAssignment では使えません`)}}resolveParts(e,t,n){let r=this.generator.wwa.getGameStatus();switch(e){case A.MAP:return r.wwaData.map[n][t];case A.OBJECT:return r.wwaData.mapObject[n][t];default:throw Error(`存在しないPartsTypeです`,e)}}blockStatement(e){return this.evalWwaNodes(e.value)}ifStatement(e){if(this.evalWwaNode(e.test))return this.evalWwaNode(e.consequent);if(e.alternate)return this.evalWwaNode(e.alternate)}convertConditionalExpression(e){let t=this.evalWwaNode(e.test)?e.consequent:e.alternate;return this.evalWwaNode(t)}property(e){let t=this.evalWwaNode(e.key);if(!f(t))throw Error(`オブジェクトのキーはプリミティブ値でなければなりません。: ${t}`);return[String(this.evalWwaNode(e.key)),this.evalWwaNode(e.value)]}objectExpression(e){let t=e.properties.map(e=>this.evalWwaNode(e));return new Map(t)}arrayExpression(e){return e.elements.map(e=>this.evalWwaNode(e))}convertLoopPointerExpression(e){let t=this.evalWwaNode(e.value),n=this.evalWwaNode(e.index);switch(e.operator){case`+=`:this.for_id.LP[n]=t;break;case`-=`:this.for_id.LP[n]=t;break;case`/=`:this.for_id.LP[n]=t;break;case`*=`:this.for_id.LP[n]=t;break;default:this.for_id.LP[n]=t;break}return 0}itemAssignment(e){let t=this.evalWwaNode(e.itemBoxPosition1to12);if(typeof t!=`number`||t<0||t>12)throw Error(`ITEMの添字に想定外の値が入っています。0以上12以下の添字を指定してください。: `+t);let n=this.evalWwaNode(e.value);switch(e.operator){case`=`:this.generator.wwa.setPlayerGetItem(t,n|0);break;case`+=`:case`-=`:case`*=`:case`/=`:{if(t===0)throw Error(`複合代入では ITEM[0] への操作はできません`);let r=this.generator.wwa.getGameStatus().itemBox[t-1],i=As[e.operator](r,n)|0;if(i<0)throw Error(`負値のパーツ番号 ${i} は代入できません`);this.generator.wwa.setPlayerGetItem(t,i);break}default:throw Error(`演算子 ${e.operator} は itemAssignment では使えません`)}}evalMessage(e){let t=this.evalWwaNode(e.value),n=this.generator.pickPageAdditionalQueue();this.generator.wwa.handleMsgFunction({message:String(t),additionalItems:n})}evalJumpgate(e){let t=this.evalWwaNode(e.x),n=this.evalWwaNode(e.y);if(isNaN(t)||isNaN(n))throw Error(`飛び先の値が数値になっていません。 x=${t} / y=${n}`);this.generator.wwa.forcedJumpGate(t,n)}evalRandom(e){let t=this.evalWwaNode(e.value);return Math.floor(Math.random()*t)}evalSetSpecialParameter(e){let t=this.evalWwaNode(e.value);if(!this.generator.wwa||isNaN(t))return t;let n=this.evalSymbol({type:`Symbol`,name:e.kind});if(Array.isArray(n))throw Error(`配列Objectに対して直接代入は出来ません: ${n}`);let r=(()=>{switch(e.operator){case`+=`:return n+t;case`-=`:return n-t;case`*=`:return n*t;case`/=`:return n/t;default:return t}})();switch(e.kind){case`PX`:return this.generator.wwa.jumpSpecifiedXPos(r),r;case`PY`:return this.generator.wwa.jumpSpecifiedYPos(r),r;case`AT`:return this.generator.wwa.setPlayerStatus(ue.STRENGTH,r,!1),r;case`DF`:return this.generator.wwa.setPlayerStatus(ue.DEFENCE,r,!1),r;case`GD`:return this.generator.wwa.setPlayerStatus(ue.GOLD,r,!1),r;case`HP`:return this.generator.wwa.setPlayerStatus(ue.ENERGY,r,!1),r;case`HPMAX`:return this.generator.wwa.setPlayerEnergyMax(r),r;case`i`:return this.for_id.i=this.evalWwaNode(e.value),this.for_id.i;case`j`:return this.for_id.j=this.evalWwaNode(e.value),this.for_id.j;case`k`:return this.for_id.k=this.evalWwaNode(e.value),this.for_id.k;case`LOOPLIMIT`:{let t=this.evalWwaNode(e.value);return this.generator.updateLoopLimit(t),t}default:console.error(`未実装の要素です: `+e.kind);return}}evalSetUserVariable(e){if(e.index.length>1){let t=this.evalWwaNode(e.value),n=e.index.map(e=>this.evalWwaNode(e));this.generator.wwa.setUserVarIndecies(n,t,e.operator);return}else{let t=this.evalWwaNode(e.value);if(!this.generator.wwa)return t;let n=this.evalWwaNode(e.index[0]);return this.generator.wwa.setUserVar(n,t,e.operator),t}}evalUnaryOperation(e){switch(e.operator){case`+`:return this.evalWwaNode(e.argument);case`-`:return-this.evalWwaNode(e.argument);case`!`:return!this.evalWwaNode(e.argument);default:throw Error(`存在しない単項演算子です`)}}evalBinaryOperation(e){let t=this.evalWwaNode(e.left),n=this.evalWwaNode(e.right);switch(e.operator){case`+`:return t+n;case`-`:return t-n;case`*`:return t*n;case`/`:return n===0?0:Math.floor(t/n);case`%`:return n===0?0:t%n;case`>`:return t>n;case`>=`:return t>=n;case`<`:return t<n;case`<=`:return t<=n;case`==`:return t==n;case`!=`:return t!=n;default:throw Error(`存在しない単項演算子です`)}}evalSymbol(e){let t=this.generator.wwa.getGameStatus(),n=this.generator.wwa.getEnemyStatus();switch(e.name){case`X`:return this.generator.state.triggerParts?.position.x??t.playerCoord.x;case`Y`:return this.generator.state.triggerParts?.position.y??t.playerCoord.y;case`ID`:return this.generator.state.triggerParts?.id??-1;case`TYPE`:return this.generator.state.triggerParts?.type??-1;case`PX`:return t.playerCoord.x;case`PY`:return t.playerCoord.y;case`CX`:return t.cameraCoord.x;case`CY`:return t.cameraCoord.y;case`AT`:return t.bareStatus.strength;case`AT_TOTAL`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.strength??t.totalStatus.strength;case`DF`:return t.bareStatus.defence;case`DF_TOTAL`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.defence??t.totalStatus.defence;case`GD`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.gold??t.totalStatus.gold;case`HP`:return this.generator.state.battleDamageCalculation?.estimatingParams?.playerStatus.energy??t.totalStatus.energy;case`HPMAX`:return t.energyMax;case`STEP`:return t.moveCount;case`TIME`:return t.playTime;case`PDIR`:return t.playerDirection;case`i`:return this.for_id.i;case`j`:return this.for_id.j;case`k`:return this.for_id.k;case`LOOPLIMIT`:return this.generator.loop_limit;case`ITEM_ID`:return this.generator.state.earnedItem?.partsId??-1;case`ITEM_POS`:return this.generator.state.earnedItem?.itemPos1To12??-1;case`ENEMY_HP`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.energy??(typeof n==`number`?-1:n.energy);case`ENEMY_AT`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.strength??(typeof n==`number`?-1:n.strength);case`ENEMY_DF`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.defence??(typeof n==`number`?-1:n.defence);case`ENEMY_GD`:return this.generator.state.battleDamageCalculation?.estimatingParams?.enemyStatus.gold??(typeof n==`number`?-1:n.gold);case`PICTURE`:throw Error(`この機能はまだ実装されていません!`);case`PLAYER_PX`:return Os(t.playerCoord.x,t.cameraCoord.x);case`PLAYER_PY`:return ks(t.playerCoord.y,t.cameraCoord.y);case`MOVE_SPEED`:return fe[t.gameSpeedIndex];case`MOVE_FRAME_TIME`:return L.CHIP_SIZE/fe[t.gameSpeedIndex];case`LP`:return this.for_id.LP;case`undefined`:return;default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject1D(e){let t=this.evalWwaNode(e.indecies[0]);if(typeof t!=`number`)switch(e.name){case`v`:return this.generator.wwa.getUserNameVar(t);default:throw Error(`このシンボルは取得できません`)}let n=this.generator.wwa.getGameStatus();switch(e.name){case`v`:return this.generator.wwa.getUserVar(t);case`ITEM`:if(t<1||t>12)throw Error(`ITEMの添字に想定外の値が入っています。1以上12以下の添字を指定してください。: `+t);return n.itemBox[t-1];case`PICTURE`:throw Error(`この機能はまだ実装されていません!`);case`LP`:return this.for_id.LP[t];default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject2D(e){switch(e.name){case`m`:case`o`:let t=this.evalWwaNode(e.indecies[0]),n=this.evalWwaNode(e.indecies[1]);if(typeof t!=`number`||typeof n!=`number`)throw Error(`座標は数値で指定してください (${t}, ${n})`);new C(this.generator.wwa,t,n);let r=e.name===`o`?A.OBJECT:A.MAP;return this.generator.wwa.getPartsID(new S(t,n),r);case`v`:{let t=e.indecies[0].value,n=this.generator.wwa.getUserNameVar(t);if(n===null||!Array.isArray(n)&&typeof n!=`object`&&typeof n!=`string`)throw Error(`指定したユーザー定義変数: v["${t}"] は配列・オブジェクト・文字列ではありません`);return Ye(n,this.evalWwaNode(e.indecies[1]))}default:throw Error(`このシンボルは取得できません`)}}evalArrayOrObject3DPlus(e){let t=e.indecies.map(e=>this.evalWwaNode(e)),n=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce((e,t)=>Ye(e,t),n)}evalLiteral(e){return e.value}},Ns=class{constructor(e){this.value=e}},Ps=class{constructor(e,t){this.reason=e,this.value=t}};function Fs(e){return Yo(e,{ecmaVersion:2020})}var Is=async e=>{try{let t=await fetch(e);return t.status===200||t.status===304?{kind:`data`,data:await new Response(t.body).text(),fileName:e}:{kind:`httpError`,errorMessage:`ファイル ${e} が読み込めませんでした。ステータスコード: ${t.status}`,fileName:e}}catch(t){return{kind:`otherError`,errorMessage:t.message,fileName:e}}},Ls=`user-variable-label`;function Rs(){let e=document.createElement(`div`);return e.textContent=`-`,e.setAttribute(`aria-hidden`,`true`),e.classList.add(Ls),e}function zs(e,t){e.textContent=t}var Bs=`-`,Vs=`user-variable-card`,Hs=`user-variable-card--is-trimmed`;function Us({index:e,value:t}){let n=document.createElement(`div`);return n.classList.add(Vs),Ys(t)&&n.classList.add(Hs),n.dataset.varIndex=String(e),n.appendChild(Ws(e)),n.appendChild(Gs(t)),n}function Ws(e){let t=document.createElement(`div`);return t.classList.add(`index`),t.textContent=String(e),typeof e==`string`&&t.setAttribute(`title`,e),t.appendChild(Rs()),t}function Gs(e){let t=document.createElement(`div`);return t.classList.add(`value`),typeof e==`string`&&t.setAttribute(`title`,Je(e)),qs(t,e),t}function Ks(e,t){e.dataset.labelledVarIndex=`true`,e.addEventListener(`mouseover`,()=>t.removeAttribute(`aria-hidden`)),e.addEventListener(`mouseleave`,()=>t.setAttribute(`aria-hidden`,`true`))}function qs(e,t){e.textContent=t===void 0?Bs:Je(t)}function Js(e){return e.querySelector(`.${Ls}`)}function Ys(e){return typeof e!=`object`}var Xs=`user-variable-list`;function Zs({kind:e}){let t=document.createElement(`ul`);return t.classList.add(Xs),e===`numbered`&&Array.from({length:L.USER_VAR_NUM}).map((e,t)=>Qs({index:t})).forEach(e=>t.appendChild(e)),t}function Qs({index:e,value:t}){let n=document.createElement(`li`);return n.appendChild(Us({index:e,value:t})),n}function $s(e,{index:t,value:n}){e.appendChild(Qs({index:t,value:n}))}var ec=`information`;function tc(){let e=document.createElement(`p`);return e.classList.add(ec),nc(e,`強調されている番号にカーソルを乗せると説明が表示されます。`),e}function nc(e,t,n=!1){e.textContent=`${n?`【エラー】`:``}${t}`}function rc({heading:e,contentVisibilityToggleButton:t,information:n}){let r=document.createElement(`header`);return r.appendChild(ac({heading:e,contentVisibilityToggleButton:t})),n&&r.appendChild(tc()),r}function ic(e,t){e.textContent=t?`▲隠す`:`▼表示`}function ac({heading:e,contentVisibilityToggleButton:t}){let n=document.createElement(`div`);n.classList.add(`heading-area`);let r=document.createElement(`h2`);r.textContent=e.text,n.appendChild(r);let i=document.createElement(`button`);return i.classList.add(`content-visibility-toggle-button`),ic(i,!0),t.onClick&&i.addEventListener(`click`,t.onClick.bind(i)),n.appendChild(i),n}var oc=`user-variable-list-section`;function sc({kind:e}){let t=document.createElement(`section`);t.classList.add(oc),t.dataset.kind=e;let n=Zs({kind:e}),r=rc({heading:{text:e===`named`?`名前つき変数一覧`:`変数一覧`},information:(e===`numbered`||void 0)&&{},contentVisibilityToggleButton:{onClick:e=>{let t=r.querySelector(`.${ec}`);n.getAttribute(`aria-hidden`)===`true`?cc(n,t,e.target):lc(n,t,e.target)}}});return t.appendChild(r),t.appendChild(n),t}function cc(e,t,n){e.removeAttribute(`aria-hidden`),t instanceof HTMLElement&&t.removeAttribute(`aria-hidden`),n instanceof HTMLElement&&ic(n,!0)}function lc(e,t,n){e.setAttribute(`aria-hidden`,`true`),t instanceof HTMLElement&&t.setAttribute(`aria-hidden`,`true`),n instanceof HTMLElement&&ic(n,!1)}function uc(e,t){if(!(e instanceof HTMLElement))return;let n=_c(e),r=mc(e);if(r instanceof HTMLElement){for(let[i,a]of t){let t=gc(e,i);n.delete(i),t instanceof HTMLElement?qs(t,a):$s(r,{index:i,value:a})}for(let t of n){let n=hc(e,t).parentElement;n instanceof HTMLLIElement&&mc(e).removeChild(n)}}}var dc=`.${oc}[data-kind="named"]`,fc=`${dc} > .${Xs} > li > .${Vs}`;function pc(e){return`${fc}[data-var-index="${CSS.escape(e)}"]`}function mc(e){return e.querySelector(`${dc} > .${Xs}`)}function hc(e,t){return e.querySelector(pc(t))}function gc(e,t){return e.querySelector(`${pc(t)} > .value`)}function _c(e){return new Set([...e.querySelectorAll(fc)].map(e=>e instanceof HTMLElement?e.dataset.varIndex:void 0).filter(Boolean))}function vc(e,t){e instanceof HTMLElement&&Array.from({length:L.USER_VAR_NUM}).map((n,r)=>{let i=Tc(e,r);i instanceof HTMLElement&&qs(i,t[r])})}function yc(e,t){e&&Array.from({length:L.USER_VAR_NUM}).map((n,r)=>{let i=t[r];if(!i)return;let a=wc(e,r);if(!(a instanceof HTMLElement))return;let o=Js(a);o instanceof HTMLElement&&(zs(o,i),Ks(a,o))})}function bc(e,t,n=!1){if(!e)return;let r=Sc(e);r instanceof HTMLElement&&nc(r,t,n)}var xc=`.${oc}[data-kind="numbered"]`;function Sc(e){return e.querySelector(`${xc} > header > .${ec}`)}function Cc(e){return`${xc} > .${Xs} > li > .${Vs}[data-var-index="${CSS.escape(String(e))}"]`}function wc(e,t){return e.querySelector(`${Cc(t)} > .index`)}function Tc(e,t){return e.querySelector(`${Cc(t)} > .value`)}function Ec({dumpElement:e,namedUserVar:t,userVar:n}){t&&uc(e,t),n&&vc(e,n)}var Dc=`wwa-vardump-wrapper`;function Oc(e){let t=Be(e);return t instanceof HTMLElement?(t.classList.add(Dc),t.appendChild(sc({kind:`named`})),t.appendChild(sc({kind:`numbered`})),t):null}function kc(){return{mapdata:``,urlGateEnable:!1,titleImg:void 0,audioDir:`./audio/`,classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDumpElm:void 0,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:`./script/script_file_list.json`}}var Ac;function jc(e,t,n){var r=new _e;return r.current=e,r.total=t,r.stage=n,r}var Mc=class{constructor(e=kc()){this._useSuspend=!1,this._useLookingAround=!0,this._isDisallowLoadOldSave=!1,this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._windowCloseWaitingJumpGateRequest=void 0,this._debugConsoleElement=void 0,this.audioExtension=``,this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this.userDefinedFunctions={},this.convertWwaNodes=e=>Zo(Fs(e)),this.mainCaller=()=>this._main(),this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(B.KEY_ESC)||this._keyStore.checkHitKey(B.KEY_SHIFT)||this._keyStore.checkHitKey(B.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new ta(H(`wwa-wrapper`));let t;window.addEventListener(`click`,e=>{this._isActive=!1}),H(`wwa-wrapper`).addEventListener(`click`,e=>{e.stopPropagation(),this._isActive=!0}),this._isActive=!0,e.titleImg===void 0?(this._hasTitleImg=!1,this._cvsCover=H(`progress-panel`),t=this._cvsCover.getContext(`2d`),t.fillStyle=`rgb(0, 0, 0)`):this._hasTitleImg=!0;try{this._hasTitleImg?(H(`unstable-version-warning`).textContent=`この WWA Wing は [不安定版] です。`,H(`version`).textContent=`WWA Wing Ver.4.0.4`):this._setLoadingMessage(t,0)}catch{}this._dumpElement=e.varDumpElm;let n=window.AudioContext||window.webkitAudioContext;n&&(this.audioContext=new n,this.audioGain=this.audioContext.createGain(),this.audioGain.gain.setValueAtTime(1,this.audioContext.currentTime));let r=new Audio;if(r.canPlayType(`audio/mpeg`)!==`no`&&r.canPlayType(`audio/mpeg`)!==``?this.audioExtension=`mp3`:this.audioExtension=`m4a`,this._isURLGateEnable=e.urlGateEnable,this._isClassicModeEnable=e.classicModeEnable,this._mainCallCounter=0,this._animationCounter=0,this._statusPressCounter=new x(0,0,0,0),e.audioDir?e.audioDir[e.audioDir.length-1]!==`/`&&(e.audioDir+=`/`):e.audioDir=`./audio/`,this._audioDirectory=e.audioDir,this._bottomButtonType=e.useGoToWwa?w.GOTO_WWA:w.BATTLE_REPORT,this._userVarNameList=[],this.evalCalcWwaNodeGenerator=new js(this),this.userDevice=new j,location.href.match(/^file/))switch(this.userDevice.device){case re.GAME:switch(this.userDevice.os){case M.NINTENDO:L.BATTLE_INTERVAL_FRAME_NUM=5;break}this._bottomButtonType=w.GAME_END;break;default:alert(`【警告】直接HTMLファイルを開いているようです。
|
|
95
95
|
このプログラムは正常に動作しない可能性があります。
|
|
96
96
|
マップデータの確認を行う場合には同梱の「wwa-server.exe」をご利用ください。
|
|
97
97
|
`+(this.userDevice.browser===ie.FIREFOX?`Firefoxの場合も、バージョン68以降はローカルのHTMLファイルを直接開いた場合、通常起動できないことを確認しております。`:``));break}switch(this.userDevice.device){case re.VR:case re.GAME:this._usePassword=!1;break;default:this._usePassword=!0;break}switch(H(`cell-save`).textContent=ge.QUICK_SAVE,this._usePassword?H(`cell-load`).textContent=ge.PASSWORD:H(`cell-load`).textContent=ge.EMPTY_LOAD,this._bottomButtonType){case w.GOTO_WWA:H(`cell-gotowwa`).textContent=ge.GOTO_WWA;break;case w.BATTLE_REPORT:H(`cell-gotowwa`).textContent=ge.BATTLE_REPORT;break;case w.GAME_END:H(`cell-gotowwa`).textContent=ge.GAME_END;break}let i=performance.now();console.log(`WWA のロード処理を開始します`),Promise.all([new Promise(async n=>{let r=performance.now();console.log(`(A-1) マップデータ ${e.mapdata} のロードを開始します`);let i=new ta,a=t=>{i.removeListener(`mapData`,a),i.removeListener(`progress`,o),i.removeListener(`error`,s),console.log(`(A-1) マップデータ ${e.mapdata} のロードが完了しました (${performance.now()-r}ms)`),n(t)},o=e=>this._setProgressBar(e),s=e=>{throw this._setErrorMessage(`下記のエラーが発生しました。:
|
|
@@ -100,14 +100,14 @@ ${t?Re():``}
|
|
|
100
100
|
パーミッションを確かめてください。`,t),Error(`Map CG Image Load Error`)})})),new Promise(async t=>{if(this._canDisplayUserVars=e.displayUserVars,!this._canDisplayUserVars){console.log(`(B) ユーザー変数の表示機能は無効化されています`),t();return}let n=performance.now();console.log(`(B) ユーザー変数名一覧のロードおよび初期化を開始します (名前一覧ファイル: ${e.userVarNamesFile??`未指定`})`),this._inlineUserVarViewer={topUserVarIndex:{named:0,numbered:0},isVisible:!1,kind:`numbered`};let r=await(e.userVarNamesFile?Un(e.userVarNamesFile):{kind:`noFileSpecified`,errorMessage:`data-wwa-user-var-names-file 属性に、変数の説明を記したファイル名を書くことで、その説明を表示できます。詳しくはマニュアルをご覧ください。`});switch(this.setUserVarStatus(r,e.userVarNamesFile),r.kind){case`data`:console.log(`(B) ユーザー変数名一覧のロードおよび初期化が完了しました (${performance.now()-n}ms)`);break;case`noFileSpecified`:console.log(`(B) ユーザー変数名一覧のロードはスキップされました (${performance.now()-n}ms)`);break;default:console.warn(`(B) ユーザー変数名一覧のロード中にエラーが発生しました (${performance.now()-n}ms)`),console.warn(`(B) `+r.errorMessage);break}t()}),new Promise(async t=>{let n=performance.now(),r=e.userDefinedScriptsFile??`./script/script_file_list.json`;console.log(`(C) 外部 WWA Script のロード・解析を開始します (リストファイル: ${r})`);let i=await Un(r);if(i?.kind===`data`&&Array.isArray(i.data)){console.log(`(C) これらの外部 WWA Script がロードされます:`,i.data);let e=i.data.map(e=>Is(e));(await Promise.allSettled(e)).forEach(e=>{if(e.status!==`fulfilled`){alert(`(C) 外部スクリプト ${e.reason.fileName} のロード中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${e.reason.message}`),console.error(e.reason.message);return}switch(e.value.kind){case`data`:try{this.setUserScript(e.value)}catch(t){alert(`外部スクリプト ${e.value.fileName} の解析中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${t instanceof Error?t.message:String(t)}`),console.error(`(C) 外部スクリプト ${e.value.fileName} の解析中にエラーが発生しました。`,t)}return;case`httpError`:console.warn(`(C) 外部スクリプト ${e.value.fileName} が見つからなかったか、その他のHTTPエラーが発生しました。`,e.value.errorMessage);return;case`otherError`:alert(`外部スクリプト ${e.value.fileName} のロード中にエラーが発生しました。\nこのままゲームを開始することはできますが、正常に動作しない可能性が高いです。\n\n詳細:\n${e.value.errorMessage}`),console.error(`(C) 外部スクリプト ${e.value.fileName} のロード中にエラーが発生しました。`,e.value.errorMessage);return;default:alert(`外部スクリプトの解析中に予期せぬエラーが発生しました`),console.error(`(C) 外部スクリプト ${e.value.fileName} の解析中に予期せぬエラーが発生しました`,e.value);return}})}else console.log(`(C) 外部 WWA Script のリスト ${r} が見つからなかったか、内容が不正だったため、外部スクリプトはロードされませんでした。`);console.log(`(C) 外部 WWA Script のロード・解析が完了しました (${performance.now()-n}ms)`),t()})]).then(([{wwaData:e,restartData:t,checkOriginalMapString:n}])=>{this._wwaData=e,this._restartData=t,this.checkOriginalMapString=n,console.log(`WWAのロード処理が完了しました。(${performance.now()-i}ms)`)}).then(()=>{try{this._hasTitleImg?H(`version`).textContent+=` (Map data Ver. `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10+`)`:this._setLoadingMessage(t,1)}catch{}this.initCSSRule(),this._setProgressBar(jc(0,4,ve.GAME_INIT)),this._setLoadingMessage(t,2);let n=this._wwaData.mapCGName.replace(`(`,`\\(`).replace(`)`,`\\)`),r=e=>{e.style.backgroundImage=`url(`+n+`)`};Array.prototype.forEach.call(He(`div.item-cell`),e=>{e.style.backgroundPosition=`-${this._wwaData.imgItemboxX*L.CHIP_SIZE}px -${this._wwaData.imgItemboxY*L.CHIP_SIZE}px`,e.style.backgroundImage=`url(`+n+`)`}),Array.prototype.forEach.call(He(`div.wide-cell-row`),e=>{e.style.backgroundPosition=`-160px -120px`,e.style.backgroundImage=`url(`+n+`)`}),Array.prototype.forEach.call(He(`.item-cell>.item-click-border`),e=>{e.style.backgroundImage=`url('`+L.ITEM_BORDER_IMG_DATA_URL+`')`,e.style.backgroundPosition=`0 0`,e.style.display=`none`,e.style.cursor=`pointer`}),Array.prototype.forEach.call(He(`.item-cell>.item-disp`),r),Array.prototype.forEach.call(He(`div.wide-cell-row>.status-icon`),r),this.setStatusIconCoord(de.ENERGY,new S(this._wwaData.imgStatusEnergyX,this._wwaData.imgStatusEnergyY)),this.setStatusIconCoord(de.STRENGTH,new S(this._wwaData.imgStatusStrengthX,this._wwaData.imgStatusStrengthY)),this.setStatusIconCoord(de.DEFENCE,new S(this._wwaData.imgStatusDefenceX,this._wwaData.imgStatusDefenceY)),this.setStatusIconCoord(de.GOLD,new S(this._wwaData.imgStatusGoldX,this._wwaData.imgStatusGoldY)),this._setProgressBar(jc(1,4,ve.GAME_INIT)),this._setLoadingMessage(t,3),this._mapIDTableCreate(),this._replaceAllRandomObjects(),this._cvs=H(`wwa-map`);var i=this._cvs.getContext(`2d`,{alpha:!1});i.fillStyle=`rgba( 255, 255, 255, 0.5)`,i.fillRect(0,0,440,440);var a=new C(this,this._wwaData.playerX,this._wwaData.playerY);this._camera=new qn(a),this._itemMenu=new Pr;var o=new x(this._wwaData.statusEnergy,this._wwaData.statusStrength,this._wwaData.statusDefence,this._wwaData.statusGold);this._player=new Xn(this,a,this._camera,o,this._wwaData.statusEnergyMax,this._wwaData.moves,this._wwaData.gameSpeedIndex),this._userVar={numbered:Array.from({length:L.USER_VAR_NUM}).map(()=>0),named:new Map},this._objectMovingDataManager=new $n(this,this._player),this._camera.setPlayer(this._player),this._keyStore=new Te,this._mouseStore=new Oe,e.virtualPadEnable?(this._virtualPadButtonElements={BUTTON_ENTER:H(`wwa-enter-button`),BUTTON_ESC:H(`wwa-esc-button`),BUTTON_FAST:H(`wwa-fast-button`),BUTTON_SLOW:H(`wwa-slow-button`),BUTTON_LEFT:H(`wwa-left-button`),BUTTON_UP:H(`wwa-up-button`),BUTTON_RIGHT:H(`wwa-right-button`),BUTTON_DOWN:H(`wwa-down-button`)},this._virtualPadStore=new Fe(this._virtualPadButtonElements,Mr(),H(`wwa-virtualpad-right`),H(`wwa-virtualpad-left`),this._setVirtualPadTouch.bind(this),this._setVirtualPadLeave.bind(this)),Pc(e.virtualPadControllerElm,()=>{this._virtualPadStore.toggleVisible()})):(this._virtualPadButtonElements=null,this._virtualPadStore=new Fe({})),this._debugConsoleElement=Fc(H(`wwa-debug-console-area`)),this._debugConsoleElement?.querySelector(`.script-running-button`).addEventListener(`click`,()=>{this._debugEvalString()}),this._gamePadStore=new Ae,this._pages=[],this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._yesNoChoiceCallInfo=N.NONE,this._prevFrameEventExected=!1,this._isLastPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._shouldSetNextPage=!1,this._passwordLoadExecInNextFrame=!1,this._pageExecuting=!1,this._messageWindow=new Cr(this,50,180,340,0,this._wwaData.mapCGName,!1,!0,!1,H(`wwa-wrapper`)),this._scoreWindow=new xr(this,new S(50,50),!1,H(`wwa-wrapper`)),this._wwaSave=new $i(Ac,Ac._wwaData.worldName,Ac._wwaData.worldPassNumber,this._checkSaveDataCompatibility.bind(this),e=>{if(e.length>0){let t=`これまでに保存されていたセーブデータは、下記の理由により消えたものがあります。`;e.forEach(e=>{switch(e){case Qi.UNMATCHED_WORLD_NAME:t+=`
|
|
101
101
|
・制作者によるマップデータのワールド名の変更`;break;case Qi.UNMATCHED_WORLD_PASS_NUMBER:t+=`
|
|
102
102
|
・制作者によるマップデータの暗証番号の変更`;break;case Qi.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:t+=`
|
|
103
|
-
・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)`;break}}),alert(t)}}),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Vi.setRestartData(this._restartData,this._wwaData),this.clearFaces();let s=H(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof s==`string`&&(this._useSuspend=!0,s)){var c=Vi.getStartWWAData(s);this._restartData!==c&&(this._applyQuickLoad(c),this._wwaSave.resumeStart())}let l=H(`wwa-wrapper`).getAttribute(`data-wwa-autosave`);l!==null&&this._wwaSave.setAutoSaveInterval(Number(l)|0);let u=H(`wwa-wrapper`).getAttribute(`data-wwa-looking-around`);if(this._useLookingAround=!(u&&u.match(/false/i)),this._setProgressBar(jc(2,4,ve.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener(`keydown`,e=>{if(this._isActive){switch(this.userDevice.os){case M.NINTENDO:e.preventDefault(),e.stopPropagation();return}if(this._keyStore.setPressInfo(e.keyCode),e.keyCode===B.KEY_F5){e.preventDefault();return}this._player.
|
|
103
|
+
・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)`;break}}),alert(t)}}),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Vi.setRestartData(this._restartData,this._wwaData),this.clearFaces();let s=H(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof s==`string`&&(this._useSuspend=!0,s)){var c=Vi.getStartWWAData(s);this._restartData!==c&&(this._applyQuickLoad(c),this._wwaSave.resumeStart())}let l=H(`wwa-wrapper`).getAttribute(`data-wwa-autosave`);l!==null&&this._wwaSave.setAutoSaveInterval(Number(l)|0);let u=H(`wwa-wrapper`).getAttribute(`data-wwa-looking-around`);if(this._useLookingAround=!(u&&u.match(/false/i)),this._setProgressBar(jc(2,4,ve.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener(`keydown`,e=>{if(this._isActive){switch(this.userDevice.os){case M.NINTENDO:e.preventDefault(),e.stopPropagation();return}if(this._keyStore.setPressInfo(e.keyCode),e.keyCode===B.KEY_F5){e.preventDefault();return}this._player.isWaitingMessageOrManualPause()?(e.keyCode===B.KEY_DOWN||e.keyCode===B.KEY_LEFT||e.keyCode===B.KEY_RIGHT||e.keyCode===B.KEY_UP||e.keyCode===B.KEY_SHIFT||e.keyCode===B.KEY_ENTER||e.keyCode===B.KEY_ESC||e.keyCode===B.KEY_SPACE)&&e.preventDefault():this._player.isWaitingPasswordWindow()||(e.keyCode===B.KEY_DOWN||e.keyCode===B.KEY_LEFT||e.keyCode===B.KEY_RIGHT||e.keyCode===B.KEY_UP||e.keyCode===B.KEY_SHIFT||e.keyCode===B.KEY_ENTER||e.keyCode===B.KEY_1||e.keyCode===B.KEY_2||e.keyCode===B.KEY_3||e.keyCode===B.KEY_A||e.keyCode===B.KEY_C||e.keyCode===B.KEY_D||e.keyCode===B.KEY_E||e.keyCode===B.KEY_M||e.keyCode===B.KEY_N||e.keyCode===B.KEY_Q||e.keyCode===B.KEY_S||e.keyCode===B.KEY_W||e.keyCode===B.KEY_X||e.keyCode===B.KEY_Y||e.keyCode===B.KEY_Z||e.keyCode===B.KEY_ESC||e.keyCode===B.KEY_F1||e.keyCode===B.KEY_F2||e.keyCode===B.KEY_F3||e.keyCode===B.KEY_F4||e.keyCode===B.KEY_F6||e.keyCode===B.KEY_F7||e.keyCode===B.KEY_F8||e.keyCode===B.KEY_F12||e.keyCode===B.KEY_SPACE)&&e.preventDefault()}}),window.addEventListener(`keyup`,e=>{if(this._isActive){switch(this.userDevice.os){case M.NINTENDO:e.preventDefault(),e.stopPropagation();return}this._keyStore.setReleaseInfo(e.keyCode),(e.keyCode===B.KEY_F5||(e.keyCode===B.KEY_DOWN||e.keyCode===B.KEY_LEFT||e.keyCode===B.KEY_RIGHT||e.keyCode===B.KEY_UP||e.keyCode===B.KEY_SHIFT||e.keyCode===B.KEY_ENTER||e.keyCode===B.KEY_0||e.keyCode===B.KEY_1||e.keyCode===B.KEY_2||e.keyCode===B.KEY_3||e.keyCode===B.KEY_4||e.keyCode===B.KEY_5||e.keyCode===B.KEY_6||e.keyCode===B.KEY_7||e.keyCode===B.KEY_8||e.keyCode===B.KEY_9||e.keyCode===B.KEY_A||e.keyCode===B.KEY_C||e.keyCode===B.KEY_D||e.keyCode===B.KEY_E||e.keyCode===B.KEY_M||e.keyCode===B.KEY_N||e.keyCode===B.KEY_Q||e.keyCode===B.KEY_S||e.keyCode===B.KEY_W||e.keyCode===B.KEY_X||e.keyCode===B.KEY_Y||e.keyCode===B.KEY_Z||e.keyCode===B.KEY_ESC||e.keyCode===B.KEY_NUM0||e.keyCode===B.KEY_NUM1||e.keyCode===B.KEY_NUM2||e.keyCode===B.KEY_NUM3||e.keyCode===B.KEY_NUM4||e.keyCode===B.KEY_NUM5||e.keyCode===B.KEY_NUM6||e.keyCode===B.KEY_NUM7||e.keyCode===B.KEY_NUM8||e.keyCode===B.KEY_NUM9||e.keyCode===B.KEY_F1||e.keyCode===B.KEY_F3||e.keyCode===B.KEY_F4||e.keyCode===B.KEY_F6||e.keyCode===B.KEY_F7||e.keyCode===B.KEY_F8||e.keyCode===B.KEY_F9||e.keyCode===B.KEY_F12||e.keyCode===B.KEY_SPACE)&&!this._player.isWaitingMessageOrManualPause()&&!this._player.isWaitingPasswordWindow())&&e.preventDefault()}}),window.addEventListener(`blur`,e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()}),window.addEventListener(`contextmenu`,e=>{this._keyStore.allClear(),this._mouseStore.clear(),this._virtualPadStore.allClear()}),window.addEventListener(`help`,e=>{this._isActive&&e.preventDefault()}),this._mouseControllerElement=H(`wwa-controller`),this._mouseControllerElement.addEventListener(`mousedown`,e=>{if(this._isActive&&e.which===1){if(this._mouseStore.getMouseState()!==Ee.NONE){e.preventDefault();return}let t=Ue(e.clientX,e.clientY),n=this._player.getDrawingCenterPosition(),r=t.substract(n),i=Math.abs(r.x),a=Math.abs(r.y),o,s=!1;if(i<L.CHIP_SIZE&&a<L.CHIP_SIZE){switch(n.x/L.CHIP_SIZE|0){case 0:s=!0,o=T.LEFT;break;case L.H_PARTS_NUM_IN_WINDOW-1:s=!0,o=T.RIGHT;break}switch(n.y/L.CHIP_SIZE|0){case 0:s=!0,o=T.UP;break;case L.V_PARTS_NUM_IN_WINDOW-1:s=!0,o=T.DOWN;break}}s||(r.y>0&&a>i?o=T.DOWN:r.y<0&&a>i?o=T.UP:r.x>0&&a<i?o=T.RIGHT:r.x<0&&a<i&&(o=T.LEFT)),this._mouseStore.setPressInfo(o,0)}}),this._mouseControllerElement.addEventListener(`mouseleave`,e=>{this._mouseStore.clear()}),this._mouseControllerElement.addEventListener(`mouseup`,e=>{this._isActive&&e.which===1&&(this._mouseStore.setReleaseInfo(),e.preventDefault())}),window.TouchEvent){if(this.audioContext){let e=()=>{this.audioContext.createBufferSource().start(0),this._mouseControllerElement.removeEventListener(`touchstart`,e),e=null};this._mouseControllerElement.addEventListener(`touchstart`,e)}this._mouseControllerElement.addEventListener(`touchstart`,e=>{if(!this._isActive)return;if(this._mouseStore.getMouseState()!==Ee.NONE){e.preventDefault();return}let t=e.changedTouches,n=t.length;for(let e=0;e<n;e++){let n=t[e],r=Ue(n.clientX,n.clientY),i=this._player.getDrawingCenterPosition(),a=r.substract(i),o=Math.abs(a.x),s=Math.abs(a.y),c,l=!1;if(o<L.CHIP_SIZE&&s<L.CHIP_SIZE){switch(i.x/L.CHIP_SIZE|0){case 0:l=!0,c=T.LEFT;break;case L.H_PARTS_NUM_IN_WINDOW-1:l=!0,c=T.RIGHT;break}switch(i.y/L.CHIP_SIZE|0){case 0:l=!0,c=T.UP;break;case L.V_PARTS_NUM_IN_WINDOW-1:l=!0,c=T.DOWN;break}}l||(a.y>0&&s>o?c=T.DOWN:a.y<0&&s>o?c=T.UP:a.x>0&&s<o?c=T.RIGHT:a.x<0&&s<o&&(c=T.LEFT)),this._mouseStore.setPressInfo(c,n.identifier)}e.cancelable&&e.preventDefault()});let e=e=>{if(this._isActive){for(let t=0;t<e.changedTouches.length;t++)if(this._mouseStore.getTouchID()===e.changedTouches[t].identifier){this._mouseStore.setReleaseInfo(),e.preventDefault();break}}};this._mouseControllerElement.addEventListener(`touchend`,e),this._mouseControllerElement.addEventListener(`touchcancel`,e)}H(`button-load`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_LOAD)}),H(`button-save`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_SAVE)}),H(`button-restart`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.RESTART_GAME)}),H(`button-gotowwa`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.GOTO_WWA,!1,!1)}),Array.prototype.forEach.call(He(`.wide-cell-row`),e=>{e.addEventListener(`click`,()=>{this._displayHelp()})}),this._frameCoord=new S(L.IMGPOS_DEFAULT_FRAME_X,L.IMGPOS_DEFAULT_YESNO_Y),this._battleEffectCoord=new S(L.IMGPOS_DEFAULT_BATTLE_EFFECT_X,L.IMGPOS_DEFAULT_BATTLE_EFFECT_Y),this._battleEstimateWindow=new Tr(this,this._wwaData.mapCGName,H(`wwa-wrapper`)),this._passwordWindow=new Ar(this,H(`wwa-wrapper`),e.disallowLoadOldSave),this._monsterWindow=new br(this,new S(50,180),340,60,!1,H(`wwa-wrapper`),this._wwaData.mapCGName),this._setProgressBar(jc(3,4,ve.GAME_INIT)),this._isLoadedSound=!1,this._temporaryInputDisable=!1,this._paintSkipByDoorOpen=!1,this._clearFacesInNextFrame=!1,this._useConsole=!1,this._playTimeCalculator=new je,this.wwaCustomEvent(`wwa_startup`),this._cgManager=new Kn(i,this._wwaData.mapCGName,this._frameCoord,this,e.pictureImageNamesFile,()=>{this._isSkippedSoundMessage=!0;let n=()=>{switch(this.userDevice.device){case re.PC:this.registerSystemMessagePage(`ゲームを開始します。
|
|
104
104
|
画面をクリックしてください。`,!1);break;case re.SP:this.registerSystemMessagePage(`ゲームを開始します。
|
|
105
105
|
画面にふれてください。`,!1);break}},r=this.resolveSystemMessage(g.CONFIRM_LOAD_SOUND);if(r===`ON`){this._isLoadedSound=!0,n(),this._setLoadingMessage(t,ve.AUDIO),this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller));return}else if(r===`OFF`){this._isLoadedSound=!1,n(),this.openGameWindow();return}if(this._isSkippedSoundMessage=!1,this._hasTitleImg||t.clearRect(0,0,L.SCREEN_WIDTH,L.SCREEN_HEIGHT),this._usePassword){let n=r;e.displayUserVars&&(n+=`
|
|
106
106
|
|
|
107
107
|
※変数表示が有効になっています。
|
|
108
108
|
公開前に必ずHTMLファイル内の
|
|
109
109
|
data-wwa-display-user-vars="true"
|
|
110
|
-
を消してください。`),this._messageWindow.setMessage(n),this._messageWindow.show(),this._setProgressBar(jc(4,4,ve.GAME_INIT));var i=setInterval(()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===O.UNSELECTED&&(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudgeInNextFrame=O.YES:(this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudgeInNextFrame=O.NO)),this._yesNoJudgeInNextFrame===O.YES?(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,ve.AUDIO),this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))},L.YESNO_PRESS_DISP_FRAME_NUM*L.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===O.NO&&(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()},L.YESNO_PRESS_DISP_FRAME_NUM*L.DEFAULT_FRAME_INTERVAL))},L.DEFAULT_FRAME_INTERVAL)}else clearInterval(i),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!0,this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))}),console.log(`WWA_START`),this.wwaCustomEvent(`wwa_start`);let d=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_WWA_START;if(d)try{this.evalCalcWwaNodeGenerator.evalWwaNode(d)}catch(e){alert(`CALL_WWA_START でエラーが発生しました。\n\n詳細:\n${e.message}`),console.error(e.message)}})}setEvalCalcWwaNodeEarnedItem(e,t){this.evalCalcWwaNodeGenerator.setEarnedItem(e,t)}clearEvalCalcWwaNodeEarnedItem(){this.evalCalcWwaNodeGenerator.clearEarnedItem()}callGetItemUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callGetItemFullUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM_FULL;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUseItemUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_USE_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callJumpGateUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_JUMPGATE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUserDefinedBattleDamageFunction(e,t){let n=this.getUserDefinedDamageFunctionNode(e);if(n){this.evalCalcWwaNodeGenerator.setBattleDamageCalculationMode(t);try{let t=this.evalCalcWwaNodeGenerator.evalWwaNode(n),r=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),r?{damage:0,aborted:r}:typeof t==`number`?{damage:this.toAssignableValue(t),aborted:r}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${t})。このターンのダメージは無効になります。`),{damage:0,aborted:r})}catch(t){return console.warn(`${e} のダメージ計算中にエラーが発生しました。このターンのダメージは無効になります。`),console.warn(t),{damage:0,hasError:!0}}}}getUserDefinedDamageFunctionNode(e){return this.userDefinedFunctions?.[{playerToEnemy:`CALC_PLAYER_TO_ENEMY_DAMAGE`,enemyToPlayer:`CALC_ENEMY_TO_PLAYER_DAMAGE`}[e]]}callMoveUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callCameraMoveUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CAMERA_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}getUserScript(e){return this.userDefinedFunctions&&this.userDefinedFunctions[e]||null}setUserScript(e){if(e.kind!==`data`){console.error(e);return}this.convertWwaNodes(e.data).forEach(e=>{if(e.type===`DefinedFunction`&&this.userDefinedFunctions){let t=e.functionName;this.userDefinedFunctions[t]=e.body}})}callUserScript(e){let t=this.getUserScript(e);t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}setUserVarStatus(e,t){if(e){if(e.kind===`noFileSpecified`){bc(this._dumpElement,e.errorMessage,!1);return}if(e.kind!==`data`){this._userVarNameListRequestError=e,bc(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);return}if(!e.data||typeof e.data!=`object`){this._userVarNameListRequestError={kind:`notObject`,errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},bc(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);return}this._userVarNameList=this.convertUserVariableNameListToArray(e.data),yc(this._dumpElement,this._userVarNameList)}}convertUserVariableNameListToArray(e){let t=Array(L.USER_VAR_NUM);for(let e=0;e<L.USER_VAR_NUM;e++)t[e]=void 0;return Object.keys(e).forEach(n=>{let r=parseInt(n,10);typeof e[n]!=`string`||typeof n!=`string`||isNaN(r)||r<0||r>=L.USER_VAR_NUM||(t[r]=e[n])}),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=L.LOAD_STAGE_MAX_EXCEPT_AUDIO?(H(`progress-message-container`).textContent=e.stage===L.LOAD_STAGE_MAX_EXCEPT_AUDIO?`World Name: `+this._wwaData.worldName:ye[e.stage],H(`progress-bar`).style.width=(1*e.stage+e.current/e.total*1)/(L.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*L.MAP_WINDOW_WIDTH+`px`,H(`progress-disp`).textContent=((1*e.stage+e.current/e.total*1)/(L.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+`%`):(this._usePassword?H(`progress-message-container`).textContent=`効果音/BGMを読み込んでいます。(スペースキーでスキップ)`:H(`progress-message-container`).textContent=`ゲームデータを読み込んでいます。`,H(`progress-bar-audio`).style.width=e.current*L.MAP_WINDOW_WIDTH/e.total+`px`,H(`progress-disp`).textContent=(e.current/e.total*100).toFixed(2)+`%`))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=xe.TITLE+`px `+L.LOADING_FONT,e.fillText(be[0],R.TITLE_X,R.TITLE_Y),e.font=xe.FOOTER+`px `+L.LOADING_FONT,e.fillText(`WWA Wing Ver.4.0.
|
|
110
|
+
を消してください。`),this._messageWindow.setMessage(n),this._messageWindow.show(),this._setProgressBar(jc(4,4,ve.GAME_INIT));var i=setInterval(()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===O.UNSELECTED&&(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudgeInNextFrame=O.YES:(this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudgeInNextFrame=O.NO)),this._yesNoJudgeInNextFrame===O.YES?(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,ve.AUDIO),this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))},L.YESNO_PRESS_DISP_FRAME_NUM*L.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===O.NO&&(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()},L.YESNO_PRESS_DISP_FRAME_NUM*L.DEFAULT_FRAME_INTERVAL))},L.DEFAULT_FRAME_INTERVAL)}else clearInterval(i),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=O.UNSELECTED,this._yesNoJudgeInNextFrame=O.UNSELECTED,this._isLoadedSound=!0,this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))}),console.log(`WWA_START`),this.wwaCustomEvent(`wwa_start`);let d=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_WWA_START;if(d)try{this.evalCalcWwaNodeGenerator.evalWwaNode(d)}catch(e){alert(`CALL_WWA_START でエラーが発生しました。\n\n詳細:\n${e.message}`),console.error(e.message)}})}setEvalCalcWwaNodeEarnedItem(e,t){this.evalCalcWwaNodeGenerator.setEarnedItem(e,t)}clearEvalCalcWwaNodeEarnedItem(){this.evalCalcWwaNodeGenerator.clearEarnedItem()}callGetItemUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callGetItemFullUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GET_ITEM_FULL;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUseItemUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_USE_ITEM;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callJumpGateUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_JUMPGATE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callUserDefinedBattleDamageFunction(e,t){let n=this.getUserDefinedDamageFunctionNode(e);if(n){this.evalCalcWwaNodeGenerator.setBattleDamageCalculationMode(t);try{let t=this.evalCalcWwaNodeGenerator.evalWwaNode(n),r=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),r?{damage:0,aborted:r}:typeof t==`number`?{damage:this.toAssignableValue(t),aborted:r}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${t})。このターンのダメージは無効になります。`),{damage:0,aborted:r})}catch(t){return console.warn(`${e} のダメージ計算中にエラーが発生しました。このターンのダメージは無効になります。`),console.warn(t),{damage:0,hasError:!0}}}}getUserDefinedDamageFunctionNode(e){return this.userDefinedFunctions?.[{playerToEnemy:`CALC_PLAYER_TO_ENEMY_DAMAGE`,enemyToPlayer:`CALC_ENEMY_TO_PLAYER_DAMAGE`}[e]]}callMoveUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}callCameraMoveUserDefineFunction(){let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CAMERA_MOVE;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}getUserScript(e){return this.userDefinedFunctions&&this.userDefinedFunctions[e]||null}setUserScript(e){if(e.kind!==`data`){console.error(e);return}this.convertWwaNodes(e.data).forEach(e=>{if(e.type===`DefinedFunction`&&this.userDefinedFunctions){let t=e.functionName;this.userDefinedFunctions[t]=e.body}})}callUserScript(e){let t=this.getUserScript(e);t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}setUserVarStatus(e,t){if(e){if(e.kind===`noFileSpecified`){bc(this._dumpElement,e.errorMessage,!1);return}if(e.kind!==`data`){this._userVarNameListRequestError=e,bc(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);return}if(!e.data||typeof e.data!=`object`){this._userVarNameListRequestError={kind:`notObject`,errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},bc(this._dumpElement,this._userVarNameListRequestError.errorMessage,!0);return}this._userVarNameList=this.convertUserVariableNameListToArray(e.data),yc(this._dumpElement,this._userVarNameList)}}convertUserVariableNameListToArray(e){let t=Array(L.USER_VAR_NUM);for(let e=0;e<L.USER_VAR_NUM;e++)t[e]=void 0;return Object.keys(e).forEach(n=>{let r=parseInt(n,10);typeof e[n]!=`string`||typeof n!=`string`||isNaN(r)||r<0||r>=L.USER_VAR_NUM||(t[r]=e[n])}),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=L.LOAD_STAGE_MAX_EXCEPT_AUDIO?(H(`progress-message-container`).textContent=e.stage===L.LOAD_STAGE_MAX_EXCEPT_AUDIO?`World Name: `+this._wwaData.worldName:ye[e.stage],H(`progress-bar`).style.width=(1*e.stage+e.current/e.total*1)/(L.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*L.MAP_WINDOW_WIDTH+`px`,H(`progress-disp`).textContent=((1*e.stage+e.current/e.total*1)/(L.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+`%`):(this._usePassword?H(`progress-message-container`).textContent=`効果音/BGMを読み込んでいます。(スペースキーでスキップ)`:H(`progress-message-container`).textContent=`ゲームデータを読み込んでいます。`,H(`progress-bar-audio`).style.width=e.current*L.MAP_WINDOW_WIDTH/e.total+`px`,H(`progress-disp`).textContent=(e.current/e.total*100).toFixed(2)+`%`))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=xe.TITLE+`px `+L.LOADING_FONT,e.fillText(be[0],R.TITLE_X,R.TITLE_Y),e.font=xe.FOOTER+`px `+L.LOADING_FONT,e.fillText(`WWA Wing Ver.4.0.4`,R.FOOTER_X,R.COPYRIGHT_Y);else if(t<=be.length)e.font=xe.LOADING+`px `+L.LOADING_FONT,t>=2&&(e.clearRect(R.LOADING_X,R.LOADING_Y+R.LINE*(t-3),L.SCREEN_WIDTH-R.LOADING_X,R.LINE),e.fillText(be[t-1]+` Complete!`,R.LOADING_X,R.LOADING_Y+R.LINE*(t-2))),t<be.length&&e.fillText(be[t],R.LOADING_X,R.LOADING_Y+R.LINE*(t-1)),t==1&&(e.font=xe.FOOTER+`px `+L.LOADING_FONT,e.fillText(`World Name `+this._wwaData.worldName,R.FOOTER_X,R.WORLD_Y),e.fillText(` (Map data Ver. `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10+`)`,R.FOOTER_X,R.WORLD_Y+R.LINE));else{var n=this._isSkippedSoundMessage?R.LOADING_Y+R.LINE*(be.length-1):R.FOOTER_Y;t<=ve.AUDIO?e.fillText(`Now Sound data Loading .....`,R.LOADING_X,n):(e.clearRect(R.LOADING_X,n-R.LINE,L.SCREEN_WIDTH-R.LOADING_X,R.LINE),e.fillText(`Now Sound data Loading ..... Complete!`,R.LOADING_X,n))}}_setErrorMessage(e,t){this._hasTitleImg?alert(e):(t.clearRect(0,0,L.SCREEN_WIDTH,L.SCREEN_HEIGHT),t.font=xe.ERRROR+`px `+L.LOADING_FONT,e.split(`
|
|
111
111
|
`).forEach(function(e,n){t.fillText(e,R.ERROR_X,R.ERROR_Y+R.LINE*n)}))}createSoundInstance(e){if(e===0||e===p.NO_SOUND||this._soundMap.has(e))return;let t=`${this._audioDirectory}${e}.${this.audioExtension}`;this._soundMap.set(e,new ea(e,t,this.audioContext,this.audioGain))}async loadSound(){this._soundMap=new Map,console.log(`(D) サウンドのロードを開始します。`),console.log(`(D-1) システムサウンドのロードを開始します。`),this.createSoundInstance(p.DECISION),this.createSoundInstance(p.ATTACK),console.log(`(D-2) 背景パーツ記載のサウンドのロードを開始します。`);for(let e=1;e<this._wwaData.mapPartsMax;e++){let t=this._wwaData.mapAttribute[e][L.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-3) 物体パーツ記載のサウンドのロードを開始します。`);for(let e=1;e<this._wwaData.objPartsMax;e++){if(this._wwaData.objectAttribute[e][L.ATR_TYPE]===L.OBJECT_RANDOM)continue;let t=this._wwaData.objectAttribute[e][L.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-4) $sound マクロ記載のサウンドのロードを開始します。`),this._wwaData.message.forEach(e=>e.split(`
|
|
112
112
|
`).forEach(e=>{let t=e.match(/^\$sound=(\d+)/);if(!t||t.length<2)return;let n=parseInt(t[1],10);!isNaN(n)&&0<n&&n<p.NO_SOUND&&this.createSoundInstance(n)})),console.log(`(D-4) マップから抽出したサウンド番号一覧:`,Array.from(this._soundMap.keys())),await this.loadCustomSound(),console.log(`(D-6) 次のサウンドがロードされます:`,Array.from(this._soundMap.keys()).sort((e,t)=>typeof e==`number`?typeof t==`number`?e-t:-1:typeof t==`number`?1:e.localeCompare(t))),this._wwaData.bgm=0,this._soundLoadSkipFlag=!1}async loadCustomSound(){let e=this._audioDirectory+`sound-list.json`;console.log(`(D-5) サウンドリストファイル: ${e} の解析を開始します。`);let t=await Un(e);if(t?.kind!==`data`||!Array.isArray(t.data)){console.warn(`(D-5) カスタムオーディオファイルのリストの取得に失敗しました。リストファイルが存在するか、正しい形式で書かれているかを確認してください。 (リストファイル: ${e})`);return}t.data.forEach(e=>{switch(typeof e){case`number`:this.createSoundInstance(e);return;case`string`:{if(e.startsWith(`#`))return;let t=Number(e);if(e.includes(`/`)||e.includes(`\\`)||t<=0||t>2**53-1||t==p.NO_SOUND){console.warn(`(D-5) 無効なサウンドIDが指定されました: ${e}`);return}if(!Number.isNaN(t)){console.warn(`(D-5) 文字列で数値のサウンドIDが与えられました。数値として解釈します。 (指定されたサウンドID: `+e+`)`),this.createSoundInstance(t);return}this.createSoundInstance(e);return}case`object`:if(!e)return;if(Array.isArray(e)){if(e.length!==2){console.warn(`(D-5) 配列形式でサウンドIDを与える場合は2要素で与えてください: ${JSON.stringify(e)}`);return}try{e.forEach(t=>{if(typeof t!=`number`||t<=0||t>2**53-1)throw Error(`(D-5) 無効なサウンドIDが指定されました: ${JSON.stringify(e)}`)})}catch(e){console.warn(e.message);return}let[t,n]=e;if(t>n){console.warn(`(D-5) サウンドIDが配列形式で与えられていますが、from (${t}) が to (${n}) より大きくなっています: ${JSON.stringify(e)}`);return}for(let e=t;e<=n;e++){if(e==p.NO_SOUND){console.warn(`(D-5) サウンドID ${e} が範囲に含まれていますが、これは停止用に使用している値で無効なのでスキップします。`);continue}this.createSoundInstance(e)}return}console.warn(`(D-5) サウンドIDがオブジェクトのようですが、現在この記法はサポートされていません: ${JSON.stringify(e)}`);return;default:console.warn(`(D-5) この形式のサウンドIDはサポートされていません: ${e}`);return}})}checkAllSoundLoaded(){let e=0,t=0;if(!this._hasTitleImg)var n=this._cvsCover.getContext(`2d`);if(this._keyStore.update(),this._keyStore.getKeyState(B.KEY_SPACE)===z.KEYDOWN&&(this._soundLoadSkipFlag=!0),this._soundMap.forEach(n=>{!n||n.isError()||(t++,n.hasData()&&e++)}),e<t&&!this._soundLoadSkipFlag){this._setProgressBar(jc(e,t,ve.AUDIO)),window.requestAnimationFrame(this.soundCheckCaller);return}this._setProgressBar(jc(L.SOUND_MAX,L.SOUND_MAX,ve.AUDIO)),this._setLoadingMessage(n,ve.FINISH),console.log(`(D-7) サウンドのロードが完了しました。`),this.openGameWindow()}_setSoundLoadedCheckTimer(e){let t=this._soundMap.get(e);!t||t.isError()||(this.soundLoadedCheckTimer=window.setInterval(()=>{this._wwaData.bgm===e?t.hasData()?(t.play(this._wwaData.bgmDelayDurationMs),this._wwaData.bgm=e,this._clearSoundLoadedCheckTimer()):t.isError()&&this._clearSoundLoadedCheckTimer():this._clearSoundLoadedCheckTimer()},100))}_clearSoundLoadedCheckTimer(){this.soundLoadedCheckTimer&&=(clearInterval(this.soundLoadedCheckTimer),void 0)}getSoundEnabled(){return this._isLoadedSound}checkSoundEnabled(e){this._soundMap.get(e).hasData()}stopBgm(){let e=this._soundMap.get(this._wwaData.bgm);e?.isPlaying()&&e.pause(),this._wwaData.bgm=0}stopSound(e,t){if(this.soundIsBgm(e)){t.includeBgm&&this._wwaData.bgm===e&&this.stopBgm();return}let n=this._soundMap.get(e);n?.isPlaying()&&n.pause()}stopAllSound(e){this._soundMap.keys().forEach(t=>this.stopSound(t,e))}playSound(e,t={}){let n=this.soundIsBgm(e),r=t.loopPlaying===void 0?n:t.loopPlaying;if(!this._isLoadedSound){e===p.NO_SOUND?this._wwaData.bgm=0:n&&(this._wwaData.bgm=r?e:0);return}if(typeof e==`number`&&(e<0||e>=L.SOUND_MAX)){console.warn(`サウンド番号が範囲外です。`);return}if(n&&this._wwaData.bgm===e||((e===p.NO_SOUND||n)&&this._wwaData.bgm!==0&&this.stopBgm(),e===0||e===p.NO_SOUND))return;let i=this._soundMap.get(e);if(!i){console.warn(`サウンドID ${e} は、マップデータにも ${this._audioDirectory}sound-list.json にも出現しないため、再生できません。`);return}i.hasData()?n?(i?.play(t.bgmDelayDurationMs??this._wwaData.bgmDelayDurationMs,r,()=>{e===this._wwaData.bgm&&!r&&(this._wwaData.bgm=0)}),this._wwaData.bgm=e):i?.play(0,r):n&&(this._wwaData.bgm=r?e:0,this._setSoundLoadedCheckTimer(e))}playDecisionSound(){this.playSound(this._wwaData.decisionSound??p.DECISION)}playAttackSound(){this.playSound(this._wwaData.attackSound??p.ATTACK)}setDecisionSound(e){if(this.soundIsBgm(e)){console.warn(`決定音にBGMを設定することはできません。`);return}this._wwaData.decisionSound=e}setAttackSound(e){if(this.soundIsBgm(e)){console.warn(`攻撃音にBGMを設定することはできません。`);return}this._wwaData.attackSound=e}soundIsBgm(e){switch(typeof e){case`number`:return e>=p.BGM_LB;case`string`:return e.match(/^bgm_/i)!==null;default:throw TypeError(`Invalid soundId type: ${typeof e}`)}}openGameWindow(){var e=this._player.getPosition();H(`wwa-cover`).style.opacity=`0`,this.getObjectIdByPosition(e)!==0&&this._player.setPartsAppearedFlag();var t=H(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof t==`string`&&(this._useSuspend=!0,t)){var n=Vi.getStartWWAData(t);this._restartData!==n&&(this._applyQuickLoad(n),this._wwaSave.resumeStart())}setTimeout(()=>{H(`wwa-wrapper`).removeChild(H(`wwa-cover`)),this._main()},L.SPLASH_SCREEN_DISP_MILLS)}onselectitem(e){if(this._player.canUseItem(e)){H(`item`+(e-1)).classList.add(`onpress`),this.playDecisionSound();let r=this.resolveSystemMessage(g.CONFIRM_USE_ITEM);if(r===`BLANK`){this._player.readyToUseItem(e);var t=this._player.useItem(),n=this.getObjectAttributeById(t,L.ATR_STRING);this.registerPageByMessage(this.getMessageById(n),{showChoice:!1,isSystemMessage:!1,triggerParts:{id:t,type:A.OBJECT,position:this._player.getPosition().getPartsCoord()}})}else this.registerPageByMessage(r,{showChoice:!0,isSystemMessage:!0}),this._yesNoChoiceCallInfo=N.CALL_BY_ITEM_USE,this._yesNoUseItemPos=e;return!0}return!1}onselectbutton(e,t=!1,n=!1){var r=H(F[e]);if(this.playDecisionSound(),this._itemMenu.close(),r.classList.add(`onpress`),e===P.QUICK_LOAD)switch(this._yesNoChoiceCallInfo=this._wwaSave.getFirstSaveChoiceCallInfo(t),this._yesNoChoiceCallInfo){case N.CALL_BY_QUICK_LOAD:case N.CALL_BY_LOG_QUICK_LOAD:var i,a=``;switch(this._yesNoChoiceCallInfo){case N.CALL_BY_QUICK_LOAD:a=`読み込むデータを選んでください。`,this._wwaSave.selectDBSaveDataList();break;case N.CALL_BY_LOG_QUICK_LOAD:a=`読み込むオートセーブを選んでください。`,this._wwaSave.selectLogSaveDataList();break}switch(i=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._messageWindow.createSaveDom(),i){case N.CALL_BY_LOG_QUICK_LOAD:this.registerSystemMessagePage(a+`
|
|
113
113
|
→Noでオートセーブ復帰画面に移ります。`,!0);break;case N.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage(a+`
|
|
@@ -118,9 +118,9 @@ ${t?Re():``}
|
|
|
118
118
|
表示選択ができます。`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_QUICK_SAVE):(this.registerSystemMessagePage(`データの一時保存先を選んでください。`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_QUICK_SAVE));else if(e===P.RESTART_GAME)this.registerSystemMessagePage(`初めからスタートしなおしますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_RESTART_GAME;else if(e===P.GOTO_WWA)if(n)this._bottomButtonType!==w.GOTO_WWA&&H(F[P.GOTO_WWA]).classList.remove(`onpress`),this.registerSystemMessagePage(`WWAの公式サイトを開きますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_GOTO_WWA;else switch(this._bottomButtonType){case w.GOTO_WWA:this._yesNoChoiceCallInfo=N.CALL_BY_GOTO_WWA,this.registerSystemMessagePage(`WWAの公式サイトを開きますか?`,!0);break;case w.GAME_END:this._yesNoChoiceCallInfo=N.CALL_BY_END_GAME,this.registerSystemMessagePage(`WWAゲームを終了しますか?`,!0);break;case w.BATTLE_REPORT:this.launchBattleEstimateWindow();break}}onpasswordloadcalled(){this._usePassword?(H(F[P.QUICK_LOAD]).classList.add(`onpress`),this.registerSystemMessagePage(`データ復帰用のパスワードを入力しますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_PASSWORD_LOAD):this.registerSystemMessagePage(`セーブデータがありません。`)}onpasswordsavecalled(){H(F[P.QUICK_SAVE]).classList.add(`onpress`),this._wwaData.disableSaveFlag?this.registerSystemMessagePage(`ここではセーブ機能は
|
|
119
119
|
使用できません。`):this._useSuspend?(this.registerSystemMessagePage(`ゲームを中断しますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_SUSPEND):this._usePassword&&(this.registerSystemMessagePage(`データ復帰用のパスワードを表示しますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_PASSWORD_SAVE)}onpasssuspendsavecalled(){H(F[P.QUICK_SAVE]).classList.add(`onpress`),this._wwaData.disableSaveFlag?this.registerSystemMessagePage(`ここではセーブ機能は
|
|
120
120
|
使用できません。`):(this.registerSystemMessagePage(`ゲームを中断しますか?`,!0),this._yesNoChoiceCallInfo=N.CALL_BY_SUSPEND)}onitemmenucalled(){this.registerSystemMessagePage(`右のメニューを選択してください。`),this._messageWindow.setItemMenuChoice(!0),this.playDecisionSound(),this._itemMenu.openView()}onchangespeed(e){if(!this._wwaData.permitChangeGameSpeed){this.registerSystemMessagePageByKey(g.GAME_SPEED_CHANGE_DISABLED);return}switch(e){case ae.UP:this._player.speedUp();break;case ae.DOWN:this._player.speedDown();break}let t=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_CHANGE_SPEED;t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t),this.registerSystemMessagePageByKey(g.GAME_SPEED_CHANGED)}isBattleSpeedIndexForQuickBattle(e){return L.QUICK_BATTLE_SPEED_INDECIES.some(t=>t===e)}_main(){this._temporaryInputDisable=!1,this._stopUpdateByLoadFlag=!1,this._keyStore.update(),this._mouseStore.update(),this._virtualPadStore.update(),this._gamePadStore.update();let e=this._reservedPartsAppearances.length>0;if(this._reservedPartsAppearances.forEach(e=>this.appearParts(e)),this._reservedPartsAppearances=[],this._waitFrame-- >0){e&&this._drawAll(),window.requestAnimationFrame(this.mainCaller);return}if(this._waitFrame=0,this._yesNoJudgeInNextFrame!==void 0&&(this._yesNoJudge=this._yesNoJudgeInNextFrame,this._yesNoJudgeInNextFrame=void 0),this._clearFacesInNextFrame&&=(this.clearFaces(),!1),this._pageExecuting=!0,this._pages.length>0&&this._shouldSetNextPage)for(this._shouldSetNextPage=!1;this._pages.length>0;){let e=this._pages.shift(),t=rr.executeNodes(e.firstNode,e.triggerParts);if(t.isError===!0){this._isLastPage=!1;break}this._reservedMoveMacroTurn!==void 0&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0);let n=t.messages.filter(e=>!e.isEmpty()),r=!!e.scoreOption;if(r&&n.length===0&&n.push(this._createSimpleMessage(`スコアを表示します。`,e.triggerParts)),e.additionalItems&&e.additionalItems.forEach(e=>{switch(e.type){case`face`:this.addFace(e.data.face)}}),n.length>0){let t=n.map(e=>e.generatePrintableMessage()).join(`
|
|
121
|
-
`);this._messageWindow.setMessage(t),this._messageWindow.setYesNoChoice(e.showChoice),this._messageWindow.setPositionByPlayerPosition(this._faces.length!==0,r,e.isSystemMessage,this._player.getPosition(),this._camera.getPosition()),r&&(this._lastScoreOptions=e.scoreOption,this.updateScore(e.scoreOption),this._scoreWindow.show()),this._player.setMessageWaiting(),this._isLastPage=e.isLastPage,this._shouldSetNextPage=!1;break}if(this._pages.length===0){if(this._hideMessageWindow().newPageGenerated||this._dispatchWindowClosedTimeRequests().newPageGenerated)continue;this.clearFaces();break}}if(this._pageExecuting=!1,this._reservedJumpDestination&&=(this._player.jumpTo(this._reservedJumpDestination),void 0),this._player.mainFrameCount(),this._player.isControllable()){if(this._wwaData.disableSaveFlag||this._wwaSave.isAutoSaveFrame(this._player)&&this._quickSave(N.CALL_BY_LOG_QUICK_SAVE),this._player.isDelayFrame())this._player.updateDelayFrame();else{let e=this._player.getDir(),t=[NaN,NaN,B.KEY_DOWN,NaN,B.KEY_LEFT,NaN,B.KEY_RIGHT,NaN,B.KEY_UP,NaN][e];this._actionGamePadButtonItemMacro()||(this._keyStore.getKeyStateForControllPlayer(B.KEY_LEFT)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_UP)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_RIGHT)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_DOWN)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.LEFT)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.UP)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.RIGHT)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.DOWN)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(t)?this._checkTurnKeyPressed()?this._player.setDir(e):(this._player.controll(e),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_LEFT)?this._checkTurnKeyPressed()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_UP)?this._checkTurnKeyPressed()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_RIGHT)?this._checkTurnKeyPressed()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_DOWN)?this._checkTurnKeyPressed()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.LEFT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.UP)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.RIGHT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.DOWN)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_LEFT`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_UP`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_RIGHT`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_DOWN`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._keyStore.getKeyState(B.KEY_1)===z.KEYDOWN?this.onselectitem(1):this._keyStore.getKeyState(B.KEY_2)===z.KEYDOWN?this.onselectitem(2):this._keyStore.getKeyState(B.KEY_3)===z.KEYDOWN?this.onselectitem(3):this._keyStore.getKeyState(B.KEY_Q)===z.KEYDOWN?this.onselectitem(4):this._keyStore.getKeyState(B.KEY_W)===z.KEYDOWN?this.onselectitem(5):this._keyStore.getKeyState(B.KEY_E)===z.KEYDOWN?this.onselectitem(6):this._keyStore.getKeyState(B.KEY_A)===z.KEYDOWN?this.onselectitem(7):this._keyStore.getKeyState(B.KEY_S)===z.KEYDOWN?this.onselectitem(8):this._keyStore.getKeyState(B.KEY_D)===z.KEYDOWN?this.onselectitem(9):this._keyStore.getKeyState(B.KEY_Z)===z.KEYDOWN?this.onselectitem(10):this._keyStore.getKeyState(B.KEY_X)===z.KEYDOWN?this.onselectitem(11):this._keyStore.getKeyState(B.KEY_C)===z.KEYDOWN?this.onselectitem(12):this._keyStore.getKeyState(B.KEY_I)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_MINUS)||this._virtualPadStore.checkTouchButton(`BUTTON_SLOW`)?this.onchangespeed(ae.DOWN):this._keyStore.getKeyState(B.KEY_P)===z.KEYDOWN||this._keyStore.checkHitKey(B.KEY_F2)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_PLUS)||this._virtualPadStore.checkTouchButton(`BUTTON_FAST`)?this.onchangespeed(ae.UP):this._keyStore.getKeyState(B.KEY_F1)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_M)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this.launchBattleEstimateWindow():this._keyStore.checkHitKey(B.KEY_F3)?(this.playDecisionSound(),this.onselectbutton(P.QUICK_LOAD,!0)):this._keyStore.checkHitKey(B.KEY_F4)?(this.playDecisionSound(),this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled()):this._keyStore.checkHitKey(B.KEY_F5)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_ZR)?this.onselectbutton(P.QUICK_LOAD):this._keyStore.checkHitKey(B.KEY_F6)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_ZL)?this.onselectbutton(P.QUICK_SAVE):this._keyStore.checkHitKey(B.KEY_F7)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_R)?this.onselectbutton(P.RESTART_GAME):this._keyStore.checkHitKey(B.KEY_F8)?this.onselectbutton(P.GOTO_WWA,!1,!0):this._keyStore.checkHitKey(B.KEY_F9)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_X)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)?(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onitemmenucalled():this._keyStore.checkHitKey(B.KEY_V)?this._displayUserVars():this._keyStore.checkHitKey(B.KEY_X)?this._debugConsoleElement&&this._debugEvalString():(this._keyStore.checkHitKey(B.KEY_F12)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_Y))&&this._displayHelp());let n=(e,t)=>({key:B[`KEY_${e}`],func:t});[...`0123456789`.split(``).map(e=>n(e,`CALL_PUSH_${e}`)),...`0123456789`.split(``).map(e=>n(`NUM${e}`,`CALL_PUSH_${e}`)),...`ABCDEFGHIJKLMNOPQRSTUVWXYZ`.split(``).map(e=>n(e,`CALL_PUSH_${e}`)),...[`ENTER`,`SHIFT`,`ESC`,`SPACE`,`LEFT`,`RIGHT`,`UP`,`DOWN`].map(e=>n(e,`CALL_PUSH_${e}`))].forEach(e=>{if(this._keyStore.checkHitKey(e.key)){let t=this.userDefinedFunctions&&this.userDefinedFunctions[e.func];t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}})}this._keyStore.memorizeKeyStateOnControllableFrame(),this._mouseStore.memorizeMouseStateOnControllableFrame()}else if(this._player.isJumped())this._camera.isResetting()||this._player.processAfterJump();else if(this._player.isMoving())this._player.move(),this._objectMovingDataManager.update(),this._player.getPosition().isJustPosition()&&this._dispatchPlayerAndObjectsStopTimeRequests();else if(this._player.isWaitingMessage()){if(this._messageWindow.isVisible()||this._messageWindow.show(),this._messageWindow.isYesNoChoice())this._messageWindow.isSaveChoice()&&(this._messageWindow.saveUpdate(),this._messageWindow.isSaveClose()||(this._keyStore.checkHitKey(B.KEY_LEFT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchButton(`BUTTON_LEFT`)?this._messageWindow.saveControll(T.LEFT):this._keyStore.checkHitKey(B.KEY_UP)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchButton(`BUTTON_UP`)?this._messageWindow.saveControll(T.UP):this._keyStore.checkHitKey(B.KEY_RIGHT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchButton(`BUTTON_RIGHT`)?this._messageWindow.saveControll(T.RIGHT):(this._keyStore.checkHitKey(B.KEY_DOWN)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchButton(`BUTTON_DOWN`))&&this._messageWindow.saveControll(T.DOWN))),this._messageWindow.isInputDisable()||(this._yesNoJudge===O.UNSELECTED&&(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudge=O.YES:(this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudge=O.NO)),(this._yesNoJudge===O.YES||this._yesNoJudge===O.NO)&&(this.playDecisionSound(),this._yesNoDispCounter=L.YESNO_PRESS_DISP_FRAME_NUM,this._messageWindow.setInputDisable(),this._messageWindow.update()));else if(this._messageWindow.isItemMenuChoice()){if(this._itemMenu.update(),this._keyStore.checkHitKey(B.KEY_LEFT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchingButton(`BUTTON_LEFT`)?this._itemMenu.controll(T.LEFT):this._keyStore.checkHitKey(B.KEY_UP)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchingButton(`BUTTON_UP`)?this._itemMenu.controll(T.UP):this._keyStore.checkHitKey(B.KEY_RIGHT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchingButton(`BUTTON_RIGHT`)?this._itemMenu.controll(T.RIGHT):(this._keyStore.checkHitKey(B.KEY_DOWN)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchingButton(`BUTTON_DOWN`))&&this._itemMenu.controll(T.DOWN),this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`))this._setNextPage(),this._messageWindow.setItemMenuChoice(!1),this._itemMenu.ok();else if(this._mouseStore.checkClickMouse(T.LEFT)||this._mouseStore.checkClickMouse(T.UP)||this._mouseStore.checkClickMouse(T.RIGHT)||this._mouseStore.checkClickMouse(T.DOWN)||this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)){for(var t=0;t<F.length;t++){var n=H(F[t]);n.classList.contains(`onpress`)&&n.classList.remove(`onpress`)}this._itemMenu.ng(),this._setNextPage(),this.playDecisionSound(),this._messageWindow.setItemMenuChoice(!1)}}else{var r=this._keyStore.getKeyStateForMessageCheck(B.KEY_ENTER),i=this._keyStore.getKeyStateForMessageCheck(B.KEY_SPACE),a=this._keyStore.getKeyStateForMessageCheck(B.KEY_ESC);if(r===z.KEYDOWN||r===z.KEYPRESS_MESSAGECHANGE||i===z.KEYDOWN||i===z.KEYPRESS_MESSAGECHANGE||a===z.KEYDOWN||a===z.KEYPRESS_MESSAGECHANGE||this._mouseStore.getMouseState()===Ee.MOUSEDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)){for(var t=0;t<F.length;t++){var n=H(F[t]);n.classList.contains(`onpress`)&&n.classList.remove(`onpress`)}this._setNextPage()}}if(this._inlineUserVarViewer?.isVisible){let e=this._inlineUserVarViewer.kind,t=!1,n=e===`named`?this._userVar.named.size:L.USER_VAR_NUM;this._keyStore.getKeyState(B.KEY_DOWN)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]++,t=!0),this._keyStore.getKeyState(B.KEY_UP)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]--,t=!0),this._keyStore.getKeyState(B.KEY_RIGHT)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]+=L.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(B.KEY_LEFT)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]-=L.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(B.KEY_V)===z.KEYDOWN&&(this._inlineUserVarViewer.kind===`named`?this._inlineUserVarViewer.kind=`numbered`:this._inlineUserVarViewer.kind===`numbered`&&(this._inlineUserVarViewer.kind=`named`),t=!0),this._inlineUserVarViewer.topUserVarIndex[e]<0&&(this._inlineUserVarViewer.topUserVarIndex[e]+=n),this._inlineUserVarViewer.topUserVarIndex[e]>n&&(this._inlineUserVarViewer.topUserVarIndex[e]-=n),t&&(this._setNextPage(),this._inlineUserVarViewer.isVisible=!0,this._displayUserVars())}}else this._player.isWaitingEstimateWindow()?(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_SPACE)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&this.hideBattleEstimateWindow():this._player.isFighting()?(this._player.fight(),this._monsterWindow.update(this._monster)):this._player.isWaitingMoveMacro()&&(this._player.isMoveObjectAutoExecTime()&&(this.moveObjects(!1),this._player.resetMoveObjectAutoExecTimer()),this._objectMovingDataManager.update());if(this.updatePicturesAnimation(),this._cgManager.picture.updateFrameTimerValue(),this._prevFrameEventExected=!1,this._player.getPosition().isJustPosition()&&this._camera.getPosition().isScreenTopPosition()){if(!this._shouldTreatWillMessageDisplay(this._pages)&&!this._player.isPausing()){this._player.isPartsAppearedTime()&&this._player.clearPartsAppearedFlag(),this._replaceRandomObjectsInScreen();var o=this.checkMap();o||this.checkObject(),this._prevFrameEventExected=o}this._player.isWaitingMessage()&&this._messageWindow.isYesNoChoice()&&this._yesNoJudge!==O.UNSELECTED&&!this._player.isWaitingMoveMacro()&&!this._player.isFighting()&&this._execChoiceWindowRunningEvent()}this._passwordLoadExecInNextFrame&&=(this._stopUpdateByLoadFlag=!0,this._loadType=oe.PASSWORD,this._player.clearPasswordWindowWaiting(),!1),this._drawAll(),this._mainCallCounter++,this._mainCallCounter%=1e9,(!this._player.isWaitingMessage()||!this._isClassicModeEnable)&&(this._animationCounter=(this._animationCounter+1)%(L.ANIMATION_REP_HALF_FRAME*2),(this._animationCounter===0||this._animationCounter===L.ANIMATION_REP_HALF_FRAME+1)&&this.updateAllPicturesCache()),this._camera.isResetting()&&this._camera.advanceTransitionStepNum(),this._player.isWaitingMessage()||(this._player.decrementLookingAroundTimer(),this._statusPressCounter.energy>0&&--this._statusPressCounter.energy===0&&H(`disp-energy`).classList.remove(`onpress`),this._statusPressCounter.strength>0&&--this._statusPressCounter.strength===0&&H(`disp-strength`).classList.remove(`onpress`),this._statusPressCounter.defence>0&&--this._statusPressCounter.defence===0&&H(`disp-defence`).classList.remove(`onpress`),this._statusPressCounter.gold>0&&--this._statusPressCounter.gold===0&&H(`disp-gold`).classList.remove(`onpress`)),this._player.isWaitingMoveMacro()&&(this._player.decrementMoveObjectAutoExecTimer(),this._player.isWaitingMoveMacro()||this._dispatchPlayerAndObjectsStopTimeRequests()),this._stopUpdateByLoadFlag?this._fadeout(()=>{if(this._loadType===oe.QUICK_LOAD){this._quickLoad(),this.wwaCustomEvent(`wwa_quickload`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_QUICKLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===oe.RESTART_GAME){this.restartGame(),this.wwaCustomEvent(`wwa_restert`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_RESTART;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===oe.PASSWORD){this._applyQuickLoad(this._passwordSaveExtractData),this._passwordSaveExtractData=void 0,this.wwaCustomEvent(`wwa_passwordload`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_PASSWORDLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}setTimeout(this.mainCaller,L.DEFAULT_FRAME_INTERVAL,this)}):window.requestAnimationFrame(this.mainCaller),Ec({dumpElement:this._dumpElement,userVar:this._userVar.numbered,namedUserVar:this._userVar.named});let s=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_FRAME;s&&this.evalCalcWwaNodeGenerator.evalWwaNode(s)}vibration(e){this._gamePadStore.vibration(e)}_isMainAnimation(){return this._animationCounter>L.ANIMATION_REP_HALF_FRAME}_drawAll(){var e=this._camera.getPosition().getPartsCoord(),t=this._camera.getPosition().getOffsetCoord(),n=L.MAP_WINDOW_HEIGHT,r,i,a=this._player.getPosition().getPartsCoord();if(this._paintSkipByDoorOpen){this._paintSkipByDoorOpen=!1;return}if(this._cgManager.clearCanvas(0,0,L.MAP_WINDOW_WIDTH,L.MAP_WINDOW_HEIGHT),this._cgManager.drawBase(0,0,L.MAP_WINDOW_WIDTH,L.MAP_WINDOW_HEIGHT),this._camera.isResetting()){if(this._camera.getPreviousPosition()!==null)var o=this._camera.getPreviousPosition().getPartsCoord(),s=this._camera.getPreviousPosition().getOffsetCoord();n=this._camera.getTransitionStepNum()*L.CHIP_SIZE}var c=!1;if(n!==this._cgManager.mapCacheYLimit&&(this._cgManager.mapCacheYLimit=n,c=!0),(e.x!==this._cgManager.cpPartsLog.x||e.y!==this._cgManager.cpPartsLog.y)&&(this._cgManager.cpPartsLog.x=e.x,this._cgManager.cpPartsLog.y=e.y,c=!0),c&&(this._cgManager.clearBackCanvas(),this._cgManager.clearObjectCanvases()),this._camera.isResetting()&&(this._drawMap(o,s,n,!0),this._drawPlayer(o,s,n,!0),this._drawObjects(o,s,n,!0),this._camera.isFinalStep()))var l=255,u=setInterval(()=>{var e=H(`wwa-fader`);if(l-=L.FADEOUT_SPEED*3,l<=0){clearInterval(u),e.style.backgroundColor=`transparent`,e.removeAttribute(`style`),e.style.display=`none`;return}e.style.opacity=l/255+``},20);this._drawMap(e,t,n,!1,c),this._drawPlayer(e,t,n),this._drawObjects(e,t,n,!1,c),this._player.isFighting()&&!this._player.isBattleStartFrame()&&(r=this._player.isTurn()?this._monster.position.x:a.x,i=this._player.isTurn()?this._monster.position.y:a.y,this._cgManager.drawCanvas(this._battleEffectCoord.x,this._battleEffectCoord.y,L.CHIP_SIZE*(r-e.x)-t.x,L.CHIP_SIZE*(i-e.y)-t.y)),this._drawEffect(),this._drawPictures(),this._drawFaces(),this._drawFrame()}_drawMap(e,t,n,r=!1,i=!1){if(e!==void 0){var a=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),s=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),l=0;if(r)for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u],p=this._wwaData.mapAttribute[f][L.ATR_X]/L.CHIP_SIZE,m=this._wwaData.mapAttribute[f][L.ATR_Y]/L.CHIP_SIZE,h=L.CHIP_SIZE*(u-e.x)-t.x,g=L.CHIP_SIZE*(d-e.y)-t.y;this._cgManager.copyBackCanvasWithLowerYLimit(p,m,h,g,n)}else{for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u];this._cgManager.mapCache[l]!==f&&(this._cgManager.mapCache[l]=f,i=!0),l++}if(i){this._cgManager.clearBackCanvasWithLowerYLimit(n);for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u],p=this._wwaData.mapAttribute[f][L.ATR_X]/L.CHIP_SIZE,m=this._wwaData.mapAttribute[f][L.ATR_Y]/L.CHIP_SIZE,h=L.CHIP_SIZE*(u-e.x)-t.x,g=L.CHIP_SIZE*(d-e.y)-t.y;this._cgManager.copyBackCanvasWithUpperYLimit(p,m,h,g,n)}}this._cgManager.drawBackCanvas()}}}_drawPlayer(e,t,n,r=!1){if(e===void 0||this._wwaData.delPlayerFlag)return;let i=this._player.getPosition().getPartsCoord(),a=this._player.getPosition().getOffsetCoord(),o=[NaN,NaN,2,NaN,4,NaN,6,NaN,0,NaN][this._player.getDir()],s=(i.x-e.x)*L.CHIP_SIZE+a.x-t.x,c=(i.y-e.y)*L.CHIP_SIZE+a.y-t.y,l;l=this._useLookingAround&&this._player.isLookingAround()&&!this._player.isWaitingMessage()?this._wwaData.playerImgPosX+[2,3,4,5,0,1,6,7][Math.floor(this._mainCallCounter%64/8)]:this._player.isMovingImage()?this._wwaData.playerImgPosX+o+1:this._wwaData.playerImgPosX+o,r?this._cgManager.drawCanvasWithLowerYLimit(l,this._wwaData.playerImgPosY,s,c,n):this._cgManager.drawCanvasWithUpperYLimit(l,this._wwaData.playerImgPosY,s,c,n)}_drawObjects(e,t,n,r=!1,i=!1){if(e!==void 0){var a=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),s=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),l,u=0,d=this._isMainAnimation(),f,p,m,h,g,_,v,y,b,x,C,ee,w,T=this._player.isFighting()&&this._player.isTurn()&&this._player.getPosition().getPartsCoord().equals(this._monster.position);if(r)for(b=a;b<=o;b++)for(x=s;x<=c;x++)T&&new S(b,x).equals(this._monster.position)||(C=this._wwaData.mapObject[x][b],l=new S(0,0),this._wwaData.objectAttribute[C][L.ATR_MOVE]!==se.STATIC&&(y=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new S(b,x)),y!==null&&(l=y)),h=L.CHIP_SIZE*(b-e.x)+l.x-t.x,g=L.CHIP_SIZE*(x-e.y)+l.y-t.y,f=d||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,_=this._wwaData.objectAttribute[C][L.ATR_TYPE],v=this._wwaData.objectAttribute[C][L.ATR_NUMBER],C!==0&&!this._checkNoDrawObject(new S(b,x),_,v)&&this._cgManager.copyObjectCanvasWithLowerYLimit(+!!d,p,m,h,g,n));else{var E=[],D=[],O,k,ne;for(b=a;b<=o;b++)for(x=s;x<=c;x++)ee=C=this._wwaData.mapObject[x][b],_=this._wwaData.objectAttribute[C][L.ATR_TYPE],v=this._wwaData.objectAttribute[C][L.ATR_NUMBER],this._checkNoDrawObject(new S(b,x),_,v)&&(ee=0),k=this._wwaData.objectAttribute[C][L.ATR_MOVE]===se.STATIC,ee!==0&&(ne=!!(T&&new S(b,x).equals(this._monster.position)),k?D.push(new te(C,b,x,k,ne)):(E.push(new te(C,b,x,k,ne)),ee=0),ne&&(ee=0)),this._cgManager.mapObjectCache[u]!==ee&&(this._cgManager.mapObjectCache[u]=ee,i=!0),u++;i&&(this._cgManager.clearObjectCanvasesWithLowerYLimit(n),Array.prototype.push.apply(E,D));var A,j=E.length;for(A=0;A<j;A++)if(O=E[A],b=O.x,x=O.y,C=O.partsIDObj,k=O.isStatic,ne=O.isFighting,h=L.CHIP_SIZE*(b-e.x)-t.x,g=L.CHIP_SIZE*(x-e.y)-t.y,k){if(ne)continue;for(w=0;w<2;w++)f=!!w||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,this._cgManager.copyObjectCanvasWithUpperYLimit(w,p,m,h,g,n)}else y=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new S(b,x)),y!==null&&(h+=y.x,g+=y.y),f=d||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,this._cgManager.drawCanvasWithUpperYLimit(p,m,h,g,n);this._cgManager.drawObjectCanvas(+!!d)}}}_drawEffect(){if(!(this._wwaData.effectCoords.length===0||this._wwaData.effectWaits===0)){var e=Math.floor(this._mainCallCounter%(this._wwaData.effectCoords.length*this._wwaData.effectWaits)/this._wwaData.effectWaits);this._cgManager.drawEffect(e)}}_drawFaces(){for(var e=0;e<this._faces.length;e++)this._cgManager.drawCanvasWithSize(this._faces[e].srcPos.x,this._faces[e].srcPos.y,this._faces[e].srcSize.x,this._faces[e].srcSize.y,this._faces[e].destPos.x,this._faces[e].destPos.y)}_drawFrame(){this._cgManager.drawFrame()}_drawPictures(){this._cgManager.drawPictures()}_checkNoDrawObject(e,t,n){var r=this._player.getPosition(),i=r.getPartsCoord();return!r.isJustPosition()||i.x!==e.x||i.y!==e.y||this._wwaData.objectNoCollapseDefaultFlag?!1:t===L.OBJECT_DOOR&&n===0?!0:t===L.OBJECT_STATUS||t===L.OBJECT_MESSAGE||t===L.OBJECT_ITEM||t===L.OBJECT_SELL||t===L.OBJECT_BUY||t===L.OBJECT_SELL||t===L.OBJECT_LOCALGATE}getMapWidth(){if(this._wwaData===void 0)throw Error(`マップデータがロードされていません`);return this._wwaData.mapWidth}getMapIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.map[t.y][t.x]}getObjectIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.mapObject[t.y][t.x]}getMapTypeByPosition(e){var t=e.getPartsCoord(),n=this._wwaData.map[t.y][t.x];return this._wwaData.mapAttribute[n][L.ATR_TYPE]}getObjectTypeByPosition(e){var t=e.getPartsCoord(),n=this._wwaData.mapObject[t.y][t.x];return this._wwaData.objectAttribute[n][L.ATR_TYPE]}getMapAttributeByPosition(e,t){var n=e.getPartsCoord(),r=this._wwaData.map[n.y][n.x];return this._wwaData.mapAttribute[r][t]}isCurrentPosMapPartsIncludingMessage(e){return this.getMapAttributeByPosition(e,L.ATR_STRING)!==0}getObjectAttributeByPosition(e,t){var n=e.getPartsCoord(),r=this._wwaData.mapObject[n.y][n.x];return this._wwaData.objectAttribute[r][t]}getMapAttributeById(e,t){return this._wwaData.mapAttribute[e][t]}getObjectAttributeById(e,t){return this._wwaData.objectAttribute[e][t]}getObjectCropXById(e){return this._wwaData.objectAttribute[e][L.ATR_X]}getObjectCropYById(e){return this._wwaData.objectAttribute[e][L.ATR_Y]}getMessageById(e){return this._wwaData.message[e]}getSystemMessageById(e){return this._wwaData.systemMessage[e]}getMapInfo(e){return this._wwaData.mapAttribute[e]}checkMap(e){var t=this._player.getPosition().getPartsCoord();e??=t;var n=this._wwaData.map[e.y][e.x],r=this.getMapInfo(n)[L.ATR_TYPE],i=e.x===t.x&&e.y===t.y,a=!1;return i&&this._player.getLastExecPartsIDOnSamePosition(A.MAP)===n?!1:(r===L.MAP_STREET?a=this._execMapStreetEvent(e,n,r):r===L.MAP_WALL?a=this._execMapWallEvent(e,n,r):r===L.MAP_LOCALGATE?a=this._execMapLocalGateEvent(e,n,r):r===L.MAP_URLGATE&&(a=this._execMapUrlGateEvent(e,n,r)),i&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(A.MAP,n),a)}getObjectInfo(e){return this._wwaData.objectAttribute[e]}checkObject(e){var t=this._player.getPosition().getPartsCoord();e??=t;var n=this._wwaData.mapObject[e.y][e.x],r=this.getObjectInfo(n)[L.ATR_TYPE],i=e.x===t.x&&e.y===t.y;i&&this._player.getLastExecPartsIDOnSamePosition(A.OBJECT)===n||(r===L.OBJECT_NORMAL?this._execObjectNormalEvent(e,n,r):r===L.OBJECT_MESSAGE?this._execObjectMessageEvent(e,n,r):r===L.OBJECT_MONSTER?this._execObjectMonsterEvent(e,n,r):r===L.OBJECT_ITEM?this._execObjectItemEvent(e,n,r):r===L.OBJECT_DOOR?this._execObjectDoorEvent(e,n,r):r===L.OBJECT_STATUS?this._execObjectStatusEvent(e,n,r):r===L.OBJECT_BUY?this._execObjectBuyEvent(e,n,r):r===L.OBJECT_SELL?this._execObjectSellEvent(e,n,r):r===L.OBJECT_URLGATE?this._execObjectUrlGateEvent(e,n,r):r===L.OBJECT_SCORE?this._execObjectScoreEvent(e,n,r):r===L.OBJECT_SELECT?this._execObjectYesNoChoiceEvent(e,n,r):r===L.OBJECT_LOCALGATE&&this._execObjectLocalGateEvent(e,n,r),i&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(A.OBJECT,n))}_execMapStreetEvent(e,t,n){var r=this._wwaData.mapAttribute[t][L.ATR_ITEM];if(r!==0&&!this._player.hasItem(r))return!1;this.reserveAppearPartsInNextFrame(e,k.MAP,t);let i=this._wwaData.mapAttribute[t][L.ATR_STRING],a=this._wwaData.message[i],o=this._wwaData.mapAttribute[t][L.ATR_NUMBER];return this._waitFrame+=o*L.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.registerPageByMessage(a,{triggerParts:{id:t,type:A.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),i!==0&&this._shouldTreatWillMessageDisplay(this._pages)||o!==0}_shouldTreatWillMessageDisplay(e){return e.reduce((e,t)=>e||!vr(t.firstNode),!1)}_execMapWallEvent(e,t,n){var r=this.getObjectIdByPosition(e.convertIntoPosition(this)),i=this.getObjectAttributeById(r,L.ATR_TYPE);if(r===0||i===L.OBJECT_NORMAL||i===L.OBJECT_DOOR&&(!this._player.hasItem(this.getObjectAttributeById(r,L.ATR_ITEM))||this.getObjectAttributeById(i,L.ATR_MODE)===L.PASSABLE_OBJECT)){this.reserveAppearPartsInNextFrame(e,k.MAP,t);var a=this._wwaData.mapAttribute[t][L.ATR_STRING],o=this._wwaData.message[a];return this.registerPageByMessage(o,{triggerParts:{id:t,type:A.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),!1}return!1}_execMapLocalGateEvent(e,t,n){var r=this._player.getPosition().getPartsCoord(),i=this._wwaData.mapAttribute[t][L.ATR_JUMP_X],a=this._wwaData.mapAttribute[t][L.ATR_JUMP_Y];return i>L.RELATIVE_COORD_LOWER&&(i=e.x+i-L.RELATIVE_COORD_BIAS),a>L.RELATIVE_COORD_LOWER&&(a=e.y+a-L.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,k.MAP,t),0<=i&&0<=a&&i<this._wwaData.mapWidth&&a<this._wwaData.mapWidth&&(i!==r.x||a!==r.y)?(this.reserveJumpInNextFrame(new C(this,i,a,0,0)),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),!0):!1}_execMapUrlGateEvent(e,t,n){var r=this._wwaData.mapAttribute[t][L.ATR_STRING];if(!this._isURLGateEnable)return!0;let i=this.resolveSystemMessage(g.CONFIRM_ENTER_URL_GATE);if(i===`BLANK`){location.href=We(this._wwaData.message[r].split(/\s/g)[0]);return}return this.registerSystemMessagePage(i,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_MAP_PARTS,this._yesNoURL=this._wwaData.message[r].split(/\s/g)[0],!0}_execObjectNormalEvent(e,t,n){}_execObjectMessageEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord(),o=this._wwaData.objectAttribute[t][L.ATR_SOUND];e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{triggerParts:{id:t,type:A.OBJECT,position:e}}),this._waitFrame+=this._wwaData.objectAttribute[t][L.ATR_NUMBER]*L.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this.playSound(o)}_execObjectStatusEvent(e,t,n){var r=new x(this._wwaData.objectAttribute[t][L.ATR_ENERGY],this._wwaData.objectAttribute[t][L.ATR_STRENGTH],this._wwaData.objectAttribute[t][L.ATR_DEFENCE],this._wwaData.objectAttribute[t][L.ATR_GOLD]),i=this._wwaData.objectAttribute[t][L.ATR_STRING],a=this._wwaData.message[i],o=this._player.getStatusWithoutEquipments();if(r.strength>L.STATUS_MINUS_BORDER&&o.strength<r.strength-L.STATUS_MINUS_BORDER||r.defence>L.STATUS_MINUS_BORDER&&o.defence<r.defence-L.STATUS_MINUS_BORDER||r.gold>L.STATUS_MINUS_BORDER&&o.gold<r.gold-L.STATUS_MINUS_BORDER){this.setPartsOnPosition(A.OBJECT,0,e),this._keyStore.allClear(),this._mouseStore.clear();return}if(r.energy=r.energy>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.energy:r.energy,r.strength=r.strength>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.strength:r.strength,r.defence=r.defence>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.defence:r.defence,r.gold=r.gold>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.gold:r.gold,this._player.addStatusAll(r),this.setStatusChangedEffect(r),this._player.isDead()&&this._wwaData.objectAttribute[t][L.ATR_ENERGY]!==0&&this.shouldApplyGameOver({isCalledByMacro:!1})){this.gameover();return}this.registerPageByMessage(a,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.setPartsOnPosition(A.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectMonsterEvent(e,t,n){this._monster=this._createMonster(t,e,()=>{this._monster=void 0,this._monsterWindow.hide(),this._dispatchWindowClosedTimeRequests()}),this._player.startBattleWith(this._monster)}_execObjectBuyEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectSellEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectItemEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r];try{var a=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),o=(e.x-a.x)*L.CHIP_SIZE,s=(e.y-a.y)*L.CHIP_SIZE;this._player.addItem(t,this._wwaData.objectAttribute[t][L.ATR_NUMBER],!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new S(o,s),itemBoxBackgroundImageCoord:new S(this._wwaData.imgItemboxX*L.CHIP_SIZE,this._wwaData.imgItemboxY*L.CHIP_SIZE)}:void 0),this.setPartsOnPosition(A.OBJECT,0,e),this._wwaData.objectAttribute[t][L.ATR_MODE]!==0||(this.registerPageByMessage(i,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t))}catch{this.registerSystemMessagePageByKey(g.ITEM_BOX_FULL)}this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectDoorEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_ITEM],i=this._wwaData.objectAttribute[t][L.ATR_STRING],a=this._wwaData.message[i];this._player.hasItem(r)&&(this._wwaData.objectAttribute[t][L.ATR_MODE]===0&&this._player.removeItemByPartsID(r),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND]),this.registerPageByMessage(a,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.setPartsOnPosition(A.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this._paintSkipByDoorOpen=!0)}_execObjectYesNoChoiceEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectLocalGateEvent(e,t,n){var r=this._player.getPosition().getPartsCoord();e.x===r.x&&e.y===r.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e);var i=this._wwaData.objectAttribute[t][L.ATR_JUMP_X],a=this._wwaData.objectAttribute[t][L.ATR_JUMP_Y];i>L.RELATIVE_COORD_LOWER&&(i=r.x+i-L.RELATIVE_COORD_BIAS),a>L.RELATIVE_COORD_LOWER&&(a=r.y+a-L.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),0<=i&&0<=a&&i<this._wwaData.mapWidth&&a<this._wwaData.mapWidth&&(i!==r.x||a!==r.y)&&(this.reserveJumpInNextFrame(new C(this,i,a,0,0)),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND]))}_execObjectUrlGateEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING];if(!this._isURLGateEnable)return;let i=this.resolveSystemMessage(g.CONFIRM_ENTER_URL_GATE);if(i===`BLANK`){location.href=We(this._wwaData.message[r].split(/\s/g)[0]);return}this.registerSystemMessagePage(i,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this._yesNoURL=this._wwaData.message[r].split(/\s/g)[0]}_execObjectScoreEvent(e,t,n){let r=this._wwaData.objectAttribute[t][L.ATR_STRING];this.registerPageByMessage(this._wwaData.message[r],{triggerParts:{id:t,type:A.OBJECT,position:e},scoreOption:{rates:{energy:this._wwaData.objectAttribute[t][L.ATR_ENERGY],strength:this._wwaData.objectAttribute[t][L.ATR_STRENGTH],defence:this._wwaData.objectAttribute[t][L.ATR_DEFENCE],gold:this._wwaData.objectAttribute[t][L.ATR_GOLD]}}}),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}updateScore(e){let t=e||this._lastScoreOptions;if(!t)return;let n=this._player.getStatus().calculateScore(t);this._scoreWindow.update(n)}_execChoiceWindowObjectSellEvent(){if(!this._player.hasGold(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD]))return this.registerSystemMessagePageByKey(g.NO_MONEY),{};if(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM]!==0){let e=this._yesNoChoicePartsCoord,t=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),n=(e.x-t.x)*L.CHIP_SIZE,r=(e.y-t.y)*L.CHIP_SIZE,i=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM],a=this._wwaData.objectAttribute[i][L.ATR_NUMBER];try{this._player.addItem(i,a,!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new S(n,r),itemBoxBackgroundImageCoord:new S(this._wwaData.imgItemboxX*L.CHIP_SIZE,this._wwaData.imgItemboxY*L.CHIP_SIZE)}:void 0)}catch{return this.registerSystemMessagePageByKey(g.ITEM_BOX_FULL),{}}}let e=new x(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ENERGY],this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_STRENGTH],this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_DEFENCE],-this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD]);return e.energy=e.energy>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-e.energy:e.energy,this.setStatusChangedEffect(e),this._player.addStatusAll(e),this._player.isDead()&&this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ENERGY]!==0&&this.shouldApplyGameOver({isCalledByMacro:!1})?(this.gameover(),{isGameOver:!0}):(this.appearParts({pos:this._yesNoChoicePartsCoord,triggerType:k.OBJECT,triggerPartsId:this._yesNoChoicePartsID}),{})}_execChoiceWindowRunningEvent(){var e,t;if(--this._yesNoDispCounter===0){if(this._yesNoJudge===O.YES){if(this._yesNoChoiceCallInfo===N.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.MAP_URLGATE&&(location.href=We(this._yesNoURL));else if(this._yesNoChoiceCallInfo===N.CALL_BY_OBJECT_PARTS)if(e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.OBJECT_BUY)this._player.hasItem(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM])?(this._player.removeItemByPartsID(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM]),t=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD],this._player.earnGold(t),this.setStatusChangedEffect(new x(0,0,0,t)),this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.OBJECT,this._yesNoChoicePartsID)):this.registerSystemMessagePageByKey(g.NO_ITEM);else if(e===L.OBJECT_SELL){let{isGameOver:e}=this._execChoiceWindowObjectSellEvent();if(e)return}else e===L.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.CHOICE_YES,this._yesNoChoicePartsID):e===L.OBJECT_URLGATE&&(location.href=We(this._yesNoURL));else this._yesNoChoiceCallInfo===N.CALL_BY_ITEM_USE?this._player.readyToUseItem(this._yesNoUseItemPos):this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===N.CALL_BY_LOG_QUICK_LOAD?(this._messageWindow.deleteSaveDom(),H(F[P.QUICK_LOAD]).classList.remove(`onpress`),this._messageWindow.load()&&(this._stopUpdateByLoadFlag=!0,this._loadType=oe.QUICK_LOAD)):this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_SAVE?(this._messageWindow.deleteSaveDom(),H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._quickSave(N.CALL_BY_QUICK_SAVE)):this._yesNoChoiceCallInfo===N.CALL_BY_RESTART_GAME?(H(F[P.RESTART_GAME]).classList.remove(`onpress`),this._stopUpdateByLoadFlag=!0,this._loadType=oe.RESTART_GAME):this._yesNoChoiceCallInfo===N.CALL_BY_END_GAME?(window.history.back(-1),H(F[P.GOTO_WWA]).classList.remove(`onpress`)):this._yesNoChoiceCallInfo===N.CALL_BY_GOTO_WWA?(location.href=We(L.WWA_HOME),H(F[P.GOTO_WWA]).classList.remove(`onpress`)):this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_LOAD?(H(F[P.QUICK_LOAD]).classList.remove(`onpress`),this._player.setPasswordWindowWating(),this._passwordWindow.show(Dr.LOAD)):this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_SAVE?(H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._player.setPasswordWindowWating(),this._passwordWindow.password=this._quickSave(N.CALL_BY_PASSWORD_SAVE),this._passwordWindow.show(Dr.SAVE)):this._yesNoChoiceCallInfo===N.CALL_BY_SUSPEND&&(H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._quickSave(N.CALL_BY_SUSPEND));this._yesNoJudge=O.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._messageWindow.setYesNoChoice(!1)}else if(this._yesNoJudge===O.NO){if(this._yesNoChoiceCallInfo===N.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],L.MAP_URLGATE;else if(this._yesNoChoiceCallInfo===N.CALL_BY_OBJECT_PARTS)e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.OBJECT_BUY||e===L.OBJECT_SELL||(e===L.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.CHOICE_NO,this._yesNoChoicePartsID):L.OBJECT_URLGATE);else if(this._yesNoChoiceCallInfo===N.CALL_BY_ITEM_USE)H(`item`+(this._yesNoUseItemPos-1)).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===N.CALL_BY_LOG_QUICK_LOAD)switch(this._messageWindow.deleteSaveDom(),this._yesNoChoiceCallInfo=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._yesNoChoiceCallInfo){case N.NONE:H(F[P.QUICK_LOAD]).classList.remove(`onpress`);break;case N.CALL_BY_PASSWORD_LOAD:this._yesNoJudge=O.UNSELECTED,this.onpasswordloadcalled();return;case N.CALL_BY_LOG_QUICK_LOAD:this._wwaSave.selectLogSaveDataList(),this._messageWindow.createSaveDom();var n=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword);switch(this._yesNoJudge=O.UNSELECTED,n){case N.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage(`読み込むオートセーブを選んでください。
|
|
121
|
+
`);this._messageWindow.setMessage(t),this._messageWindow.setYesNoChoice(e.showChoice),this._messageWindow.setPositionByPlayerPosition(this._faces.length!==0,r,e.isSystemMessage,this._player.getPosition(),this._camera.getPosition()),r&&(this._lastScoreOptions=e.scoreOption,this.updateScore(e.scoreOption),this._scoreWindow.show()),this._player.setMessageWaiting(),this._isLastPage=e.isLastPage,this._shouldSetNextPage=!1;break}if(this._pages.length===0){if(this._hideMessageWindow().newPageGenerated||this._dispatchWindowClosedTimeRequests().newPageGenerated)continue;this.clearFaces();break}}if(this._pageExecuting=!1,this._reservedJumpDestination&&=(this._player.jumpTo(this._reservedJumpDestination),void 0),this._player.mainFrameCount(),this._player.isControllable()){if(this._wwaData.disableSaveFlag||this._wwaSave.isAutoSaveFrame(this._player)&&this._quickSave(N.CALL_BY_LOG_QUICK_SAVE),this._player.isDelayFrame())this._player.updateDelayFrame();else{let e=this._player.getDir(),t=[NaN,NaN,B.KEY_DOWN,NaN,B.KEY_LEFT,NaN,B.KEY_RIGHT,NaN,B.KEY_UP,NaN][e];this._actionGamePadButtonItemMacro()||(this._keyStore.getKeyStateForControllPlayer(B.KEY_LEFT)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_UP)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_RIGHT)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._keyStore.getKeyStateForControllPlayer(B.KEY_DOWN)===z.KEYDOWN?this._checkTurnKeyPressed()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.LEFT)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.UP)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.RIGHT)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.getMouseStateForControllPlayer(T.DOWN)===Ee.MOUSEDOWN?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(t)?this._checkTurnKeyPressed()?this._player.setDir(e):(this._player.controll(e),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_LEFT)?this._checkTurnKeyPressed()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_UP)?this._checkTurnKeyPressed()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_RIGHT)?this._checkTurnKeyPressed()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._keyStore.checkHitKey(B.KEY_DOWN)?this._checkTurnKeyPressed()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.LEFT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.UP)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.RIGHT)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._mouseStore.checkClickMouse(T.DOWN)?this._mouseStore.touchIDIsSetDir()?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)?this._gamePadStore.buttonPressed(V.BUTTON_INDEX_B)?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_LEFT`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.LEFT):(this._player.controll(T.LEFT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_UP`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.UP):(this._player.controll(T.UP),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_RIGHT`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.RIGHT):(this._player.controll(T.RIGHT),this._objectMovingDataManager.update()):this._virtualPadStore.checkTouchingButton(`BUTTON_DOWN`)?this._virtualPadStore.checkTouchingButton(`BUTTON_ESC`)?this._player.setDir(T.DOWN):(this._player.controll(T.DOWN),this._objectMovingDataManager.update()):this._keyStore.getKeyState(B.KEY_1)===z.KEYDOWN?this.onselectitem(1):this._keyStore.getKeyState(B.KEY_2)===z.KEYDOWN?this.onselectitem(2):this._keyStore.getKeyState(B.KEY_3)===z.KEYDOWN?this.onselectitem(3):this._keyStore.getKeyState(B.KEY_Q)===z.KEYDOWN?this.onselectitem(4):this._keyStore.getKeyState(B.KEY_W)===z.KEYDOWN?this.onselectitem(5):this._keyStore.getKeyState(B.KEY_E)===z.KEYDOWN?this.onselectitem(6):this._keyStore.getKeyState(B.KEY_A)===z.KEYDOWN?this.onselectitem(7):this._keyStore.getKeyState(B.KEY_S)===z.KEYDOWN?this.onselectitem(8):this._keyStore.getKeyState(B.KEY_D)===z.KEYDOWN?this.onselectitem(9):this._keyStore.getKeyState(B.KEY_Z)===z.KEYDOWN?this.onselectitem(10):this._keyStore.getKeyState(B.KEY_X)===z.KEYDOWN?this.onselectitem(11):this._keyStore.getKeyState(B.KEY_C)===z.KEYDOWN?this.onselectitem(12):this._keyStore.getKeyState(B.KEY_I)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_MINUS)||this._virtualPadStore.checkTouchButton(`BUTTON_SLOW`)?this.onchangespeed(ae.DOWN):this._keyStore.getKeyState(B.KEY_P)===z.KEYDOWN||this._keyStore.checkHitKey(B.KEY_F2)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_PLUS)||this._virtualPadStore.checkTouchButton(`BUTTON_FAST`)?this.onchangespeed(ae.UP):this._keyStore.getKeyState(B.KEY_F1)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_M)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this.launchBattleEstimateWindow():this._keyStore.checkHitKey(B.KEY_F3)?(this.playDecisionSound(),this.onselectbutton(P.QUICK_LOAD,!0)):this._keyStore.checkHitKey(B.KEY_F4)?(this.playDecisionSound(),this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled()):this._keyStore.checkHitKey(B.KEY_F5)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_ZR)?this.onselectbutton(P.QUICK_LOAD):this._keyStore.checkHitKey(B.KEY_F6)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_ZL)?this.onselectbutton(P.QUICK_SAVE):this._keyStore.checkHitKey(B.KEY_F7)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_R)?this.onselectbutton(P.RESTART_GAME):this._keyStore.checkHitKey(B.KEY_F8)?this.onselectbutton(P.GOTO_WWA,!1,!0):this._keyStore.checkHitKey(B.KEY_F9)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_X)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)?(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onitemmenucalled():this._keyStore.checkHitKey(B.KEY_V)?this._displayUserVars():this._keyStore.checkHitKey(B.KEY_X)?this._debugConsoleElement&&!this._player.isControllable()&&this._debugEvalString():(this._keyStore.checkHitKey(B.KEY_F12)||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_Y))&&this._displayHelp());let n=(e,t)=>({key:B[`KEY_${e}`],func:t});[...`0123456789`.split(``).map(e=>n(e,`CALL_PUSH_${e}`)),...`0123456789`.split(``).map(e=>n(`NUM${e}`,`CALL_PUSH_${e}`)),...`ABCDEFGHIJKLMNOPQRSTUVWXYZ`.split(``).map(e=>n(e,`CALL_PUSH_${e}`)),...[`ENTER`,`SHIFT`,`ESC`,`SPACE`,`LEFT`,`RIGHT`,`UP`,`DOWN`].map(e=>n(e,`CALL_PUSH_${e}`))].forEach(e=>{if(this._keyStore.checkHitKey(e.key)){let t=this.userDefinedFunctions&&this.userDefinedFunctions[e.func];t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t)}})}this._keyStore.memorizeKeyStateOnControllableFrame(),this._mouseStore.memorizeMouseStateOnControllableFrame()}else if(this._player.isJumped())this._camera.isResetting()||this._player.processAfterJump();else if(this._player.isMoving())this._player.move(),this._objectMovingDataManager.update(),this._player.getPosition().isJustPosition()&&this._dispatchPlayerAndObjectsStopTimeRequests();else if(this._player.isWaitingMessage()){if(this._messageWindow.isVisible()||this._messageWindow.show(),this._messageWindow.isYesNoChoice())this._messageWindow.isSaveChoice()&&(this._messageWindow.saveUpdate(),this._messageWindow.isSaveClose()||(this._keyStore.checkHitKey(B.KEY_LEFT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchButton(`BUTTON_LEFT`)?this._messageWindow.saveControll(T.LEFT):this._keyStore.checkHitKey(B.KEY_UP)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchButton(`BUTTON_UP`)?this._messageWindow.saveControll(T.UP):this._keyStore.checkHitKey(B.KEY_RIGHT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchButton(`BUTTON_RIGHT`)?this._messageWindow.saveControll(T.RIGHT):(this._keyStore.checkHitKey(B.KEY_DOWN)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchButton(`BUTTON_DOWN`))&&this._messageWindow.saveControll(T.DOWN))),this._messageWindow.isInputDisable()||(this._yesNoJudge===O.UNSELECTED&&(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudge=O.YES:(this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudge=O.NO)),(this._yesNoJudge===O.YES||this._yesNoJudge===O.NO)&&(this.playDecisionSound(),this._yesNoDispCounter=L.YESNO_PRESS_DISP_FRAME_NUM,this._messageWindow.setInputDisable(),this._messageWindow.update()));else if(this._messageWindow.isItemMenuChoice()){if(this._itemMenu.update(),this._keyStore.checkHitKey(B.KEY_LEFT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)||this._virtualPadStore.checkTouchingButton(`BUTTON_LEFT`)?this._itemMenu.controll(T.LEFT):this._keyStore.checkHitKey(B.KEY_UP)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)||this._virtualPadStore.checkTouchingButton(`BUTTON_UP`)?this._itemMenu.controll(T.UP):this._keyStore.checkHitKey(B.KEY_RIGHT)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)||this._virtualPadStore.checkTouchingButton(`BUTTON_RIGHT`)?this._itemMenu.controll(T.RIGHT):(this._keyStore.checkHitKey(B.KEY_DOWN)||this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)||this._virtualPadStore.checkTouchingButton(`BUTTON_DOWN`))&&this._itemMenu.controll(T.DOWN),this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_Y)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`))this._setNextPage(),this._messageWindow.setItemMenuChoice(!1),this._itemMenu.ok();else if(this._mouseStore.checkClickMouse(T.LEFT)||this._mouseStore.checkClickMouse(T.UP)||this._mouseStore.checkClickMouse(T.RIGHT)||this._mouseStore.checkClickMouse(T.DOWN)||this._keyStore.getKeyState(B.KEY_N)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_ESC)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)){for(var t=0;t<F.length;t++){var n=H(F[t]);n.classList.contains(`onpress`)&&n.classList.remove(`onpress`)}this._itemMenu.ng(),this._setNextPage(),this.playDecisionSound(),this._messageWindow.setItemMenuChoice(!1)}}else{var r=this._keyStore.getKeyStateForMessageCheck(B.KEY_ENTER),i=this._keyStore.getKeyStateForMessageCheck(B.KEY_SPACE),a=this._keyStore.getKeyStateForMessageCheck(B.KEY_ESC);if(r===z.KEYDOWN||r===z.KEYPRESS_MESSAGECHANGE||i===z.KEYDOWN||i===z.KEYPRESS_MESSAGECHANGE||a===z.KEYDOWN||a===z.KEYPRESS_MESSAGECHANGE||this._mouseStore.getMouseState()===Ee.MOUSEDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)){for(var t=0;t<F.length;t++){var n=H(F[t]);n.classList.contains(`onpress`)&&n.classList.remove(`onpress`)}this._setNextPage()}}if(this._inlineUserVarViewer?.isVisible){let e=this._inlineUserVarViewer.kind,t=!1,n=e===`named`?this._userVar.named.size:L.USER_VAR_NUM;this._keyStore.getKeyState(B.KEY_DOWN)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]++,t=!0),this._keyStore.getKeyState(B.KEY_UP)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]--,t=!0),this._keyStore.getKeyState(B.KEY_RIGHT)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]+=L.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(B.KEY_LEFT)===z.KEYDOWN&&(this._inlineUserVarViewer.topUserVarIndex[e]-=L.INLINE_USER_VAR_VIEWER_DISPLAY_NUM,t=!0),this._keyStore.getKeyState(B.KEY_V)===z.KEYDOWN&&(this._inlineUserVarViewer.kind===`named`?this._inlineUserVarViewer.kind=`numbered`:this._inlineUserVarViewer.kind===`numbered`&&(this._inlineUserVarViewer.kind=`named`),t=!0),this._inlineUserVarViewer.topUserVarIndex[e]<0&&(this._inlineUserVarViewer.topUserVarIndex[e]+=n),this._inlineUserVarViewer.topUserVarIndex[e]>n&&(this._inlineUserVarViewer.topUserVarIndex[e]-=n),t&&(this._setNextPage(),this._inlineUserVarViewer.isVisible=!0,this._displayUserVars())}}else if(this._player.isWaitingEstimateWindow())(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyState(B.KEY_SPACE)===z.KEYDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&this.hideBattleEstimateWindow();else if(this._player.isFighting())this._player.fight(),this._monsterWindow.update(this._monster);else if(this._player.isWaitingMoveMacro())this._player.isMoveObjectAutoExecTime()&&(this.moveObjects(!1),this._player.resetMoveObjectAutoExecTimer()),this._objectMovingDataManager.update();else if(this._player.isManualPause()){if(this._keyStore.getKeyState(B.KEY_ENTER)===z.KEYDOWN||this._keyStore.getKeyStateForMessageCheck(B.KEY_SPACE)===z.KEYDOWN||this._keyStore.getKeyStateForMessageCheck(B.KEY_ESC)===z.KEYDOWN||this._mouseStore.getMouseState()===Ee.MOUSEDOWN||this._gamePadStore.buttonTrigger(V.BUTTON_INDEX_A,V.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`)){this._player.clearWaitingMessageOrManualPause();let e=this._player.getAfterEnterExecFuncName();if(e!==``)try{this.evalCalcWwaNodeGenerator.evalWwaNode({type:`CallDefinedFunction`,functionName:e})}catch(e){console.error(e)}}let e=this._player.getNoMessageWaitExecFuncNames();[{keyCode:B.KEY_UP,funcKey:`up`},{keyCode:B.KEY_DOWN,funcKey:`down`},{keyCode:B.KEY_RIGHT,funcKey:`right`},{keyCode:B.KEY_LEFT,funcKey:`left`}].forEach(({keyCode:t,funcKey:n})=>{let r=e[n];if(this._keyStore.getKeyState(t)===z.KEYDOWN&&r!==``)try{this.evalCalcWwaNodeGenerator.evalWwaNode({type:`CallDefinedFunction`,functionName:r})}catch(e){console.error(e)}})}if(this.updatePicturesAnimation(),this._cgManager.picture.updateFrameTimerValue(),this._prevFrameEventExected=!1,this._player.getPosition().isJustPosition()&&this._camera.getPosition().isScreenTopPosition()){if(!this._shouldTreatWillMessageDisplay(this._pages)&&!this._player.isPausing()){this._player.isPartsAppearedTime()&&this._player.clearPartsAppearedFlag(),this._replaceRandomObjectsInScreen();var o=this.checkMap();o||this.checkObject(),this._prevFrameEventExected=o}this._player.isWaitingMessage()&&this._messageWindow.isYesNoChoice()&&this._yesNoJudge!==O.UNSELECTED&&!this._player.isWaitingMoveMacro()&&!this._player.isFighting()&&this._execChoiceWindowRunningEvent()}this._passwordLoadExecInNextFrame&&=(this._stopUpdateByLoadFlag=!0,this._loadType=oe.PASSWORD,this._player.clearPasswordWindowWaiting(),!1),this._drawAll(),this._mainCallCounter++,this._mainCallCounter%=1e9,(!this._player.isWaitingMessageOrManualPause()||!this._isClassicModeEnable)&&(this._animationCounter=(this._animationCounter+1)%(L.ANIMATION_REP_HALF_FRAME*2),(this._animationCounter===0||this._animationCounter===L.ANIMATION_REP_HALF_FRAME+1)&&this.updateAllPicturesCache()),this._camera.isResetting()&&this._camera.advanceTransitionStepNum(),this._player.isWaitingMessageOrManualPause()||(this._player.decrementLookingAroundTimer(),this._statusPressCounter.energy>0&&--this._statusPressCounter.energy===0&&H(`disp-energy`).classList.remove(`onpress`),this._statusPressCounter.strength>0&&--this._statusPressCounter.strength===0&&H(`disp-strength`).classList.remove(`onpress`),this._statusPressCounter.defence>0&&--this._statusPressCounter.defence===0&&H(`disp-defence`).classList.remove(`onpress`),this._statusPressCounter.gold>0&&--this._statusPressCounter.gold===0&&H(`disp-gold`).classList.remove(`onpress`)),this._player.isWaitingMoveMacro()&&(this._player.decrementMoveObjectAutoExecTimer(),this._player.isWaitingMoveMacro()||this._dispatchPlayerAndObjectsStopTimeRequests()),this._stopUpdateByLoadFlag?this._fadeout(()=>{if(this._loadType===oe.QUICK_LOAD){this._quickLoad(),this.wwaCustomEvent(`wwa_quickload`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_QUICKLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===oe.RESTART_GAME){this.restartGame(),this.wwaCustomEvent(`wwa_restert`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_RESTART;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}else if(this._loadType===oe.PASSWORD){this._applyQuickLoad(this._passwordSaveExtractData),this._passwordSaveExtractData=void 0,this.wwaCustomEvent(`wwa_passwordload`);let e=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_PASSWORDLOAD;e&&this.evalCalcWwaNodeGenerator.evalWwaNode(e)}setTimeout(this.mainCaller,L.DEFAULT_FRAME_INTERVAL,this)}):window.requestAnimationFrame(this.mainCaller),Ec({dumpElement:this._dumpElement,userVar:this._userVar.numbered,namedUserVar:this._userVar.named});let s=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_FRAME;s&&this.evalCalcWwaNodeGenerator.evalWwaNode(s)}vibration(e){this._gamePadStore.vibration(e)}_isMainAnimation(){return this._animationCounter>L.ANIMATION_REP_HALF_FRAME}_drawAll(){var e=this._camera.getPosition().getPartsCoord(),t=this._camera.getPosition().getOffsetCoord(),n=L.MAP_WINDOW_HEIGHT,r,i,a=this._player.getPosition().getPartsCoord();if(this._paintSkipByDoorOpen){this._paintSkipByDoorOpen=!1;return}if(this._cgManager.clearCanvas(0,0,L.MAP_WINDOW_WIDTH,L.MAP_WINDOW_HEIGHT),this._cgManager.drawBase(0,0,L.MAP_WINDOW_WIDTH,L.MAP_WINDOW_HEIGHT),this._camera.isResetting()){if(this._camera.getPreviousPosition()!==null)var o=this._camera.getPreviousPosition().getPartsCoord(),s=this._camera.getPreviousPosition().getOffsetCoord();n=this._camera.getTransitionStepNum()*L.CHIP_SIZE}var c=!1;if(n!==this._cgManager.mapCacheYLimit&&(this._cgManager.mapCacheYLimit=n,c=!0),(e.x!==this._cgManager.cpPartsLog.x||e.y!==this._cgManager.cpPartsLog.y)&&(this._cgManager.cpPartsLog.x=e.x,this._cgManager.cpPartsLog.y=e.y,c=!0),c&&(this._cgManager.clearBackCanvas(),this._cgManager.clearObjectCanvases()),this._camera.isResetting()&&(this._drawMap(o,s,n,!0),this._drawPlayer(o,s,n,!0),this._drawObjects(o,s,n,!0),this._camera.isFinalStep()))var l=255,u=setInterval(()=>{var e=H(`wwa-fader`);if(l-=L.FADEOUT_SPEED*3,l<=0){clearInterval(u),e.style.backgroundColor=`transparent`,e.removeAttribute(`style`),e.style.display=`none`;return}e.style.opacity=l/255+``},20);this._drawMap(e,t,n,!1,c),this._drawPlayer(e,t,n),this._drawObjects(e,t,n,!1,c),this._player.isFighting()&&!this._player.isBattleStartFrame()&&(r=this._player.isTurn()?this._monster.position.x:a.x,i=this._player.isTurn()?this._monster.position.y:a.y,this._cgManager.drawCanvas(this._battleEffectCoord.x,this._battleEffectCoord.y,L.CHIP_SIZE*(r-e.x)-t.x,L.CHIP_SIZE*(i-e.y)-t.y)),this._drawEffect(),this._drawPictures(),this._drawFaces(),this._drawFrame()}_drawMap(e,t,n,r=!1,i=!1){if(e!==void 0){var a=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),s=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),l=0;if(r)for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u],p=this._wwaData.mapAttribute[f][L.ATR_X]/L.CHIP_SIZE,m=this._wwaData.mapAttribute[f][L.ATR_Y]/L.CHIP_SIZE,h=L.CHIP_SIZE*(u-e.x)-t.x,g=L.CHIP_SIZE*(d-e.y)-t.y;this._cgManager.copyBackCanvasWithLowerYLimit(p,m,h,g,n)}else{for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u];this._cgManager.mapCache[l]!==f&&(this._cgManager.mapCache[l]=f,i=!0),l++}if(i){this._cgManager.clearBackCanvasWithLowerYLimit(n);for(var u=a;u<=o;u++)for(var d=s;d<=c;d++){var f=this._wwaData.map[d][u],p=this._wwaData.mapAttribute[f][L.ATR_X]/L.CHIP_SIZE,m=this._wwaData.mapAttribute[f][L.ATR_Y]/L.CHIP_SIZE,h=L.CHIP_SIZE*(u-e.x)-t.x,g=L.CHIP_SIZE*(d-e.y)-t.y;this._cgManager.copyBackCanvasWithUpperYLimit(p,m,h,g,n)}}this._cgManager.drawBackCanvas()}}}_drawPlayer(e,t,n,r=!1){if(e===void 0||this._wwaData.delPlayerFlag)return;let i=this._player.getPosition().getPartsCoord(),a=this._player.getPosition().getOffsetCoord(),o=[NaN,NaN,2,NaN,4,NaN,6,NaN,0,NaN][this._player.getDir()],s=(i.x-e.x)*L.CHIP_SIZE+a.x-t.x,c=(i.y-e.y)*L.CHIP_SIZE+a.y-t.y,l;l=this._useLookingAround&&this._player.isLookingAround()&&!this._player.isWaitingMessageOrManualPause()?this._wwaData.playerImgPosX+[2,3,4,5,0,1,6,7][Math.floor(this._mainCallCounter%64/8)]:this._player.isMovingImage()?this._wwaData.playerImgPosX+o+1:this._wwaData.playerImgPosX+o,r?this._cgManager.drawCanvasWithLowerYLimit(l,this._wwaData.playerImgPosY,s,c,n):this._cgManager.drawCanvasWithUpperYLimit(l,this._wwaData.playerImgPosY,s,c,n)}_drawObjects(e,t,n,r=!1,i=!1){if(e!==void 0){var a=Math.max(0,e.x-1),o=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),s=Math.max(0,e.y-1),c=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),l,u=0,d=this._isMainAnimation(),f,p,m,h,g,_,v,y,b,x,C,ee,w,T=this._player.isFighting()&&this._player.isTurn()&&this._player.getPosition().getPartsCoord().equals(this._monster.position);if(r)for(b=a;b<=o;b++)for(x=s;x<=c;x++)T&&new S(b,x).equals(this._monster.position)||(C=this._wwaData.mapObject[x][b],l=new S(0,0),this._wwaData.objectAttribute[C][L.ATR_MOVE]!==se.STATIC&&(y=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new S(b,x)),y!==null&&(l=y)),h=L.CHIP_SIZE*(b-e.x)+l.x-t.x,g=L.CHIP_SIZE*(x-e.y)+l.y-t.y,f=d||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,_=this._wwaData.objectAttribute[C][L.ATR_TYPE],v=this._wwaData.objectAttribute[C][L.ATR_NUMBER],C!==0&&!this._checkNoDrawObject(new S(b,x),_,v)&&this._cgManager.copyObjectCanvasWithLowerYLimit(+!!d,p,m,h,g,n));else{var E=[],D=[],O,k,ne;for(b=a;b<=o;b++)for(x=s;x<=c;x++)ee=C=this._wwaData.mapObject[x][b],_=this._wwaData.objectAttribute[C][L.ATR_TYPE],v=this._wwaData.objectAttribute[C][L.ATR_NUMBER],this._checkNoDrawObject(new S(b,x),_,v)&&(ee=0),k=this._wwaData.objectAttribute[C][L.ATR_MOVE]===se.STATIC,ee!==0&&(ne=!!(T&&new S(b,x).equals(this._monster.position)),k?D.push(new te(C,b,x,k,ne)):(E.push(new te(C,b,x,k,ne)),ee=0),ne&&(ee=0)),this._cgManager.mapObjectCache[u]!==ee&&(this._cgManager.mapObjectCache[u]=ee,i=!0),u++;i&&(this._cgManager.clearObjectCanvasesWithLowerYLimit(n),Array.prototype.push.apply(E,D));var A,j=E.length;for(A=0;A<j;A++)if(O=E[A],b=O.x,x=O.y,C=O.partsIDObj,k=O.isStatic,ne=O.isFighting,h=L.CHIP_SIZE*(b-e.x)-t.x,g=L.CHIP_SIZE*(x-e.y)-t.y,k){if(ne)continue;for(w=0;w<2;w++)f=!!w||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,this._cgManager.copyObjectCanvasWithUpperYLimit(w,p,m,h,g,n)}else y=this._objectMovingDataManager.getOffsetByBeforePartsCoord(new S(b,x)),y!==null&&(h+=y.x,g+=y.y),f=d||this._wwaData.objectAttribute[C][L.ATR_X2]===0&&this._wwaData.objectAttribute[C][L.ATR_Y2]===0,p=this._wwaData.objectAttribute[C][f?L.ATR_X:L.ATR_X2]/L.CHIP_SIZE,m=this._wwaData.objectAttribute[C][f?L.ATR_Y:L.ATR_Y2]/L.CHIP_SIZE,this._cgManager.drawCanvasWithUpperYLimit(p,m,h,g,n);this._cgManager.drawObjectCanvas(+!!d)}}}_drawEffect(){if(!(this._wwaData.effectCoords.length===0||this._wwaData.effectWaits===0)){var e=Math.floor(this._mainCallCounter%(this._wwaData.effectCoords.length*this._wwaData.effectWaits)/this._wwaData.effectWaits);this._cgManager.drawEffect(e)}}_drawFaces(){for(var e=0;e<this._faces.length;e++)this._cgManager.drawCanvasWithSize(this._faces[e].srcPos.x,this._faces[e].srcPos.y,this._faces[e].srcSize.x,this._faces[e].srcSize.y,this._faces[e].destPos.x,this._faces[e].destPos.y)}_drawFrame(){this._cgManager.drawFrame()}_drawPictures(){this._cgManager.drawPictures()}_checkNoDrawObject(e,t,n){var r=this._player.getPosition(),i=r.getPartsCoord();return!r.isJustPosition()||i.x!==e.x||i.y!==e.y||this._wwaData.objectNoCollapseDefaultFlag?!1:t===L.OBJECT_DOOR&&n===0?!0:t===L.OBJECT_STATUS||t===L.OBJECT_MESSAGE||t===L.OBJECT_ITEM||t===L.OBJECT_SELL||t===L.OBJECT_BUY||t===L.OBJECT_SELL||t===L.OBJECT_LOCALGATE}getMapWidth(){if(this._wwaData===void 0)throw Error(`マップデータがロードされていません`);return this._wwaData.mapWidth}getMapIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.map[t.y][t.x]}getObjectIdByPosition(e){var t=e.getPartsCoord();return this._wwaData.mapObject[t.y][t.x]}getMapTypeByPosition(e){var t=e.getPartsCoord(),n=this._wwaData.map[t.y][t.x];return this._wwaData.mapAttribute[n][L.ATR_TYPE]}getObjectTypeByPosition(e){var t=e.getPartsCoord(),n=this._wwaData.mapObject[t.y][t.x];return this._wwaData.objectAttribute[n][L.ATR_TYPE]}getMapAttributeByPosition(e,t){var n=e.getPartsCoord(),r=this._wwaData.map[n.y][n.x];return this._wwaData.mapAttribute[r][t]}isCurrentPosMapPartsIncludingMessage(e){return this.getMapAttributeByPosition(e,L.ATR_STRING)!==0}getObjectAttributeByPosition(e,t){var n=e.getPartsCoord(),r=this._wwaData.mapObject[n.y][n.x];return this._wwaData.objectAttribute[r][t]}getMapAttributeById(e,t){return this._wwaData.mapAttribute[e][t]}getObjectAttributeById(e,t){return this._wwaData.objectAttribute[e][t]}getObjectCropXById(e){return this._wwaData.objectAttribute[e][L.ATR_X]}getObjectCropYById(e){return this._wwaData.objectAttribute[e][L.ATR_Y]}getMessageById(e){return this._wwaData.message[e]}getSystemMessageById(e){return this._wwaData.systemMessage[e]}getMapInfo(e){return this._wwaData.mapAttribute[e]}checkMap(e){var t=this._player.getPosition().getPartsCoord();e??=t;var n=this._wwaData.map[e.y][e.x],r=this.getMapInfo(n)[L.ATR_TYPE],i=e.x===t.x&&e.y===t.y,a=!1;return i&&this._player.getLastExecPartsIDOnSamePosition(A.MAP)===n?!1:(r===L.MAP_STREET?a=this._execMapStreetEvent(e,n,r):r===L.MAP_WALL?a=this._execMapWallEvent(e,n,r):r===L.MAP_LOCALGATE?a=this._execMapLocalGateEvent(e,n,r):r===L.MAP_URLGATE&&(a=this._execMapUrlGateEvent(e,n,r)),i&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(A.MAP,n),a)}getObjectInfo(e){return this._wwaData.objectAttribute[e]}checkObject(e){var t=this._player.getPosition().getPartsCoord();e??=t;var n=this._wwaData.mapObject[e.y][e.x],r=this.getObjectInfo(n)[L.ATR_TYPE],i=e.x===t.x&&e.y===t.y;i&&this._player.getLastExecPartsIDOnSamePosition(A.OBJECT)===n||(r===L.OBJECT_NORMAL?this._execObjectNormalEvent(e,n,r):r===L.OBJECT_MESSAGE?this._execObjectMessageEvent(e,n,r):r===L.OBJECT_MONSTER?this._execObjectMonsterEvent(e,n,r):r===L.OBJECT_ITEM?this._execObjectItemEvent(e,n,r):r===L.OBJECT_DOOR?this._execObjectDoorEvent(e,n,r):r===L.OBJECT_STATUS?this._execObjectStatusEvent(e,n,r):r===L.OBJECT_BUY?this._execObjectBuyEvent(e,n,r):r===L.OBJECT_SELL?this._execObjectSellEvent(e,n,r):r===L.OBJECT_URLGATE?this._execObjectUrlGateEvent(e,n,r):r===L.OBJECT_SCORE?this._execObjectScoreEvent(e,n,r):r===L.OBJECT_SELECT?this._execObjectYesNoChoiceEvent(e,n,r):r===L.OBJECT_LOCALGATE&&this._execObjectLocalGateEvent(e,n,r),i&&!this._player.isJumped()&&this._player.setLastExecInfoOnSamePosition(A.OBJECT,n))}_execMapStreetEvent(e,t,n){var r=this._wwaData.mapAttribute[t][L.ATR_ITEM];if(r!==0&&!this._player.hasItem(r))return!1;this.reserveAppearPartsInNextFrame(e,k.MAP,t);let i=this._wwaData.mapAttribute[t][L.ATR_STRING],a=this._wwaData.message[i],o=this._wwaData.mapAttribute[t][L.ATR_NUMBER];return this._waitFrame+=o*L.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.registerPageByMessage(a,{triggerParts:{id:t,type:A.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),i!==0&&this._shouldTreatWillMessageDisplay(this._pages)||o!==0}_shouldTreatWillMessageDisplay(e){return e.reduce((e,t)=>e||!vr(t.firstNode),!1)}_execMapWallEvent(e,t,n){var r=this.getObjectIdByPosition(e.convertIntoPosition(this)),i=this.getObjectAttributeById(r,L.ATR_TYPE);if(r===0||i===L.OBJECT_NORMAL||i===L.OBJECT_DOOR&&(!this._player.hasItem(this.getObjectAttributeById(r,L.ATR_ITEM))||this.getObjectAttributeById(i,L.ATR_MODE)===L.PASSABLE_OBJECT)){this.reserveAppearPartsInNextFrame(e,k.MAP,t);var a=this._wwaData.mapAttribute[t][L.ATR_STRING],o=this._wwaData.message[a];return this.registerPageByMessage(o,{triggerParts:{id:t,type:A.MAP,position:e.clone()}}),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),!1}return!1}_execMapLocalGateEvent(e,t,n){var r=this._player.getPosition().getPartsCoord(),i=this._wwaData.mapAttribute[t][L.ATR_JUMP_X],a=this._wwaData.mapAttribute[t][L.ATR_JUMP_Y];return i>L.RELATIVE_COORD_LOWER&&(i=e.x+i-L.RELATIVE_COORD_BIAS),a>L.RELATIVE_COORD_LOWER&&(a=e.y+a-L.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,k.MAP,t),0<=i&&0<=a&&i<this._wwaData.mapWidth&&a<this._wwaData.mapWidth&&(i!==r.x||a!==r.y)?(this.reserveJumpInNextFrame(new C(this,i,a,0,0)),this.playSound(this._wwaData.mapAttribute[t][L.ATR_SOUND]),!0):!1}_execMapUrlGateEvent(e,t,n){var r=this._wwaData.mapAttribute[t][L.ATR_STRING];if(!this._isURLGateEnable)return!0;let i=this.resolveSystemMessage(g.CONFIRM_ENTER_URL_GATE);if(i===`BLANK`){location.href=We(this._wwaData.message[r].split(/\s/g)[0]);return}return this.registerSystemMessagePage(i,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_MAP_PARTS,this._yesNoURL=this._wwaData.message[r].split(/\s/g)[0],!0}_execObjectNormalEvent(e,t,n){}_execObjectMessageEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord(),o=this._wwaData.objectAttribute[t][L.ATR_SOUND];e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{triggerParts:{id:t,type:A.OBJECT,position:e}}),this._waitFrame+=this._wwaData.objectAttribute[t][L.ATR_NUMBER]*L.WAIT_TIME_FRAME_NUM,this._temporaryInputDisable=!0,this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this.playSound(o)}_execObjectStatusEvent(e,t,n){var r=new x(this._wwaData.objectAttribute[t][L.ATR_ENERGY],this._wwaData.objectAttribute[t][L.ATR_STRENGTH],this._wwaData.objectAttribute[t][L.ATR_DEFENCE],this._wwaData.objectAttribute[t][L.ATR_GOLD]),i=this._wwaData.objectAttribute[t][L.ATR_STRING],a=this._wwaData.message[i],o=this._player.getStatusWithoutEquipments();if(r.strength>L.STATUS_MINUS_BORDER&&o.strength<r.strength-L.STATUS_MINUS_BORDER||r.defence>L.STATUS_MINUS_BORDER&&o.defence<r.defence-L.STATUS_MINUS_BORDER||r.gold>L.STATUS_MINUS_BORDER&&o.gold<r.gold-L.STATUS_MINUS_BORDER){this.setPartsOnPosition(A.OBJECT,0,e),this._keyStore.allClear(),this._mouseStore.clear();return}if(r.energy=r.energy>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.energy:r.energy,r.strength=r.strength>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.strength:r.strength,r.defence=r.defence>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.defence:r.defence,r.gold=r.gold>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-r.gold:r.gold,this._player.addStatusAll(r),this.setStatusChangedEffect(r),this._player.isDead()&&this._wwaData.objectAttribute[t][L.ATR_ENERGY]!==0&&this.shouldApplyGameOver({isCalledByMacro:!1})){this.gameover();return}this.registerPageByMessage(a,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.setPartsOnPosition(A.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectMonsterEvent(e,t,n){this._monster=this._createMonster(t,e,()=>{this._monster=void 0,this._monsterWindow.hide(),this._dispatchWindowClosedTimeRequests()}),this._player.startBattleWith(this._monster)}_execObjectBuyEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectSellEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectItemEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r];try{var a=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),o=(e.x-a.x)*L.CHIP_SIZE,s=(e.y-a.y)*L.CHIP_SIZE;this._player.addItem(t,this._wwaData.objectAttribute[t][L.ATR_NUMBER],!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new S(o,s),itemBoxBackgroundImageCoord:new S(this._wwaData.imgItemboxX*L.CHIP_SIZE,this._wwaData.imgItemboxY*L.CHIP_SIZE)}:void 0),this.setPartsOnPosition(A.OBJECT,0,e),this._wwaData.objectAttribute[t][L.ATR_MODE]!==0||(this.registerPageByMessage(i,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t))}catch{this.registerSystemMessagePageByKey(g.ITEM_BOX_FULL)}this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectDoorEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_ITEM],i=this._wwaData.objectAttribute[t][L.ATR_STRING],a=this._wwaData.message[i];this._player.hasItem(r)&&(this._wwaData.objectAttribute[t][L.ATR_MODE]===0&&this._player.removeItemByPartsID(r),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND]),this.registerPageByMessage(a,{triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this.setPartsOnPosition(A.OBJECT,0,e),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),this._paintSkipByDoorOpen=!0)}_execObjectYesNoChoiceEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING],i=this._wwaData.message[r],a=this._player.getPosition().getPartsCoord();e.x===a.x&&e.y===a.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e),this.registerPageByMessage(i,{showChoice:!0,triggerParts:{id:t,type:A.OBJECT,position:e.clone()}}),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}_execObjectLocalGateEvent(e,t,n){var r=this._player.getPosition().getPartsCoord();e.x===r.x&&e.y===r.y&&!this._wwaData.objectNoCollapseDefaultFlag&&this.setPartsOnPosition(A.OBJECT,0,e);var i=this._wwaData.objectAttribute[t][L.ATR_JUMP_X],a=this._wwaData.objectAttribute[t][L.ATR_JUMP_Y];i>L.RELATIVE_COORD_LOWER&&(i=r.x+i-L.RELATIVE_COORD_BIAS),a>L.RELATIVE_COORD_LOWER&&(a=r.y+a-L.RELATIVE_COORD_BIAS),this.reserveAppearPartsInNextFrame(e,k.OBJECT,t),0<=i&&0<=a&&i<this._wwaData.mapWidth&&a<this._wwaData.mapWidth&&(i!==r.x||a!==r.y)&&(this.reserveJumpInNextFrame(new C(this,i,a,0,0)),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND]))}_execObjectUrlGateEvent(e,t,n){var r=this._wwaData.objectAttribute[t][L.ATR_STRING];if(!this._isURLGateEnable)return;let i=this.resolveSystemMessage(g.CONFIRM_ENTER_URL_GATE);if(i===`BLANK`){location.href=We(this._wwaData.message[r].split(/\s/g)[0]);return}this.registerSystemMessagePage(i,!0),this._yesNoChoicePartsCoord=e,this._yesNoChoicePartsID=t,this._yesNoChoiceCallInfo=N.CALL_BY_OBJECT_PARTS,this._yesNoURL=this._wwaData.message[r].split(/\s/g)[0]}_execObjectScoreEvent(e,t,n){let r=this._wwaData.objectAttribute[t][L.ATR_STRING];this.registerPageByMessage(this._wwaData.message[r],{triggerParts:{id:t,type:A.OBJECT,position:e},scoreOption:{rates:{energy:this._wwaData.objectAttribute[t][L.ATR_ENERGY],strength:this._wwaData.objectAttribute[t][L.ATR_STRENGTH],defence:this._wwaData.objectAttribute[t][L.ATR_DEFENCE],gold:this._wwaData.objectAttribute[t][L.ATR_GOLD]}}}),this.playSound(this._wwaData.objectAttribute[t][L.ATR_SOUND])}updateScore(e){let t=e||this._lastScoreOptions;if(!t)return;let n=this._player.getStatus().calculateScore(t);this._scoreWindow.update(n)}_execChoiceWindowObjectSellEvent(){if(!this._player.hasGold(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD]))return this.registerSystemMessagePageByKey(g.NO_MONEY),{};if(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM]!==0){let e=this._yesNoChoicePartsCoord,t=this._camera.getPosition().getScreenTopPosition().getPartsCoord(),n=(e.x-t.x)*L.CHIP_SIZE,r=(e.y-t.y)*L.CHIP_SIZE,i=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM],a=this._wwaData.objectAttribute[i][L.ATR_NUMBER];try{this._player.addItem(i,a,!1,this._wwaData.isItemEffectEnabled?{screenPixelCoord:new S(n,r),itemBoxBackgroundImageCoord:new S(this._wwaData.imgItemboxX*L.CHIP_SIZE,this._wwaData.imgItemboxY*L.CHIP_SIZE)}:void 0)}catch{return this.registerSystemMessagePageByKey(g.ITEM_BOX_FULL),{}}}let e=new x(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ENERGY],this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_STRENGTH],this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_DEFENCE],-this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD]);return e.energy=e.energy>L.STATUS_MINUS_BORDER?L.STATUS_MINUS_BORDER-e.energy:e.energy,this.setStatusChangedEffect(e),this._player.addStatusAll(e),this._player.isDead()&&this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ENERGY]!==0&&this.shouldApplyGameOver({isCalledByMacro:!1})?(this.gameover(),{isGameOver:!0}):(this.appearParts({pos:this._yesNoChoicePartsCoord,triggerType:k.OBJECT,triggerPartsId:this._yesNoChoicePartsID}),{})}_execChoiceWindowRunningEvent(){var e,t;if(--this._yesNoDispCounter===0){if(this._yesNoJudge===O.YES){if(this._yesNoChoiceCallInfo===N.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.MAP_URLGATE&&(location.href=We(this._yesNoURL));else if(this._yesNoChoiceCallInfo===N.CALL_BY_OBJECT_PARTS)if(e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.OBJECT_BUY)this._player.hasItem(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM])?(this._player.removeItemByPartsID(this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_ITEM]),t=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_GOLD],this._player.earnGold(t),this.setStatusChangedEffect(new x(0,0,0,t)),this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.OBJECT,this._yesNoChoicePartsID)):this.registerSystemMessagePageByKey(g.NO_ITEM);else if(e===L.OBJECT_SELL){let{isGameOver:e}=this._execChoiceWindowObjectSellEvent();if(e)return}else e===L.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.CHOICE_YES,this._yesNoChoicePartsID):e===L.OBJECT_URLGATE&&(location.href=We(this._yesNoURL));else this._yesNoChoiceCallInfo===N.CALL_BY_ITEM_USE?this._player.readyToUseItem(this._yesNoUseItemPos):this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===N.CALL_BY_LOG_QUICK_LOAD?(this._messageWindow.deleteSaveDom(),H(F[P.QUICK_LOAD]).classList.remove(`onpress`),this._messageWindow.load()&&(this._stopUpdateByLoadFlag=!0,this._loadType=oe.QUICK_LOAD)):this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_SAVE?(this._messageWindow.deleteSaveDom(),H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._quickSave(N.CALL_BY_QUICK_SAVE)):this._yesNoChoiceCallInfo===N.CALL_BY_RESTART_GAME?(H(F[P.RESTART_GAME]).classList.remove(`onpress`),this._stopUpdateByLoadFlag=!0,this._loadType=oe.RESTART_GAME):this._yesNoChoiceCallInfo===N.CALL_BY_END_GAME?(window.history.back(-1),H(F[P.GOTO_WWA]).classList.remove(`onpress`)):this._yesNoChoiceCallInfo===N.CALL_BY_GOTO_WWA?(location.href=We(L.WWA_HOME),H(F[P.GOTO_WWA]).classList.remove(`onpress`)):this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_LOAD?(H(F[P.QUICK_LOAD]).classList.remove(`onpress`),this._player.setPasswordWindowWating(),this._passwordWindow.show(Dr.LOAD)):this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_SAVE?(H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._player.setPasswordWindowWating(),this._passwordWindow.password=this._quickSave(N.CALL_BY_PASSWORD_SAVE),this._passwordWindow.show(Dr.SAVE)):this._yesNoChoiceCallInfo===N.CALL_BY_SUSPEND&&(H(F[P.QUICK_SAVE]).classList.remove(`onpress`),this._quickSave(N.CALL_BY_SUSPEND));this._yesNoJudge=O.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._messageWindow.setYesNoChoice(!1)}else if(this._yesNoJudge===O.NO){if(this._yesNoChoiceCallInfo===N.CALL_BY_MAP_PARTS)e=this._wwaData.mapAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],L.MAP_URLGATE;else if(this._yesNoChoiceCallInfo===N.CALL_BY_OBJECT_PARTS)e=this._wwaData.objectAttribute[this._yesNoChoicePartsID][L.ATR_TYPE],e===L.OBJECT_BUY||e===L.OBJECT_SELL||(e===L.OBJECT_SELECT?this.reserveAppearPartsInNextFrame(this._yesNoChoicePartsCoord,k.CHOICE_NO,this._yesNoChoicePartsID):L.OBJECT_URLGATE);else if(this._yesNoChoiceCallInfo===N.CALL_BY_ITEM_USE)H(`item`+(this._yesNoUseItemPos-1)).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_LOAD||this._yesNoChoiceCallInfo===N.CALL_BY_LOG_QUICK_LOAD)switch(this._messageWindow.deleteSaveDom(),this._yesNoChoiceCallInfo=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword),this._yesNoChoiceCallInfo){case N.NONE:H(F[P.QUICK_LOAD]).classList.remove(`onpress`);break;case N.CALL_BY_PASSWORD_LOAD:this._yesNoJudge=O.UNSELECTED,this.onpasswordloadcalled();return;case N.CALL_BY_LOG_QUICK_LOAD:this._wwaSave.selectLogSaveDataList(),this._messageWindow.createSaveDom();var n=this._wwaSave.getSecondSaveChoiceCallInfo(this._usePassword);switch(this._yesNoJudge=O.UNSELECTED,n){case N.CALL_BY_PASSWORD_LOAD:this.registerSystemMessagePage(`読み込むオートセーブを選んでください。
|
|
122
122
|
→Noでデータ復帰用パスワードの
|
|
123
|
-
入力選択ができます。`,!0);break;case N.NONE:this.registerSystemMessagePage(`読み込むオートセーブを選んでください。`,!0);break}return}else if(this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_SAVE)if(this._messageWindow.deleteSaveDom(),this._usePassword||this._useSuspend){this._yesNoJudge=O.UNSELECTED,this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled();return}else H(F[P.QUICK_SAVE]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_RESTART_GAME)H(F[P.RESTART_GAME]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_END_GAME)H(F[P.GOTO_WWA]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_GOTO_WWA)H(F[P.GOTO_WWA]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_LOAD)H(F[P.QUICK_LOAD]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_SAVE)H(F[P.QUICK_SAVE]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_SUSPEND)if(this._usePassword){this._yesNoJudge=O.UNSELECTED,this.onpasswordsavecalled();return}else H(F[P.QUICK_SAVE]).classList.remove(`onpress`);this._yesNoJudge=O.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._messageWindow.setYesNoChoice(!1)}}}_dispatchWindowClosedTimeRequests(){if(this._windowCloseWaitingJumpGateRequest&&this.forcedJumpGate(this._windowCloseWaitingJumpGateRequest.x,this._windowCloseWaitingJumpGateRequest.y),this._windowCloseWaitingMessageDisplayRequests.length>0){let e=this._windowCloseWaitingMessageDisplayRequests.shift();return this.registerPageByMessage(e.message,{additionalItems:e.additionalItems}),{newPageGenerated:!0}}return{newPageGenerated:!1}}_dispatchPlayerAndObjectsStopTimeRequests(){this._playerAndObjectsStopWaitingGameSpeedChangeRequest&&=(this.setPlayerSpeedIndex(this._playerAndObjectsStopWaitingGameSpeedChangeRequest.speedIndex),void 0),this._playerAndObjectsStopWaitingMessageDisplayRequests.length>0&&(this.registerPageByMessage(this._playerAndObjectsStopWaitingMessageDisplayRequests.map(e=>e.message).join(`<p>`),{additionalItems:this._playerAndObjectsStopWaitingMessageDisplayRequests.map(e=>e.additionalItems).flat()}),this._playerAndObjectsStopWaitingMessageDisplayRequests=[])}_clearAllRequests(){this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingJumpGateRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[]}reserveMessageDisplayWhenShouldOpen(e){this._player.isWaitingMessage()||this._player.isFighting()||this._player.isWaitingPasswordWindow()||this._player.isWaitingEstimateWindow()?this._windowCloseWaitingMessageDisplayRequests.push(e):this._player.isMoving()||this._player.isWaitingMoveMacro()?this._playerAndObjectsStopWaitingMessageDisplayRequests.push(e):this.registerPageByMessage(e.message,{additionalItems:e.additionalItems})}handleMsgFunction(e){this._pageExecuting?this._windowCloseWaitingMessageDisplayRequests.push(e):this.reserveMessageDisplayWhenShouldOpen(e)}registerSystemMessagePage(e,t=!1){this.registerPageByMessage(e,{showChoice:t,isSystemMessage:!0})}registerSystemMessagePageByKey(e){let t=this.resolveSystemMessage(e);t!==`BLANK`&&this.registerPageByMessage(t,{isSystemMessage:!0})}_createSimpleMessage(e,t){return new ar(e,()=>this.generateTokenValues(t),(e,t)=>this._execEvalString(e,t))}registerPageByMessage(e,{showChoice:t=!1,isSystemMessage:n=!1,triggerParts:r={id:0,type:A.OBJECT,position:new S(0,0)},scoreOption:i=void 0,additionalItems:a=[]}={}){let o=gr(e,{triggerParts:r,isSystemMessage:n,showChoice:t,scoreOption:i,additionalItems:a},e=>nr(this,r,e),(e,t)=>this._execEvalString(e,t),e=>this.generateTokenValues(e));this._pages=this._pages.concat(o),this._shouldSetNextPage=!0}appearParts({pos:e,triggerType:t,triggerPartsId:n}){var r,i=t===k.CHOICE_NO?L.APPERANCE_PARTS_MIN_INDEX_NO:L.APPERANCE_PARTS_MIN_INDEX,a=t===k.CHOICE_YES?L.APPERANCE_PARTS_MAX_INDEX_YES:L.APPERANCE_PARTS_MAX_INDEX,o,s,c,l,u;for(t===k.MAP?(n=n===0?this._wwaData.map[e.y][e.x]:n,r=A.MAP):(n=n===0?this._wwaData.mapObject[e.y][e.x]:n,r=A.OBJECT),u=i;u<=a;u++){var d=L.ATR_APPERANCE_BASE+u*L.REL_ATR_APPERANCE_UNIT_LENGTH,f=d+L.REL_ATR_APPERANCE_ID,p=d+L.REL_ATR_APPERANCE_X,m=d+L.REL_ATR_APPERANCE_Y,h=d+L.REL_ATR_APPERANCE_TYPE;if(o=r===A.MAP?this._wwaData.mapAttribute[n][f]:this._wwaData.objectAttribute[n][f],s=r===A.MAP?this._wwaData.mapAttribute[n][h]:this._wwaData.objectAttribute[n][h],c=r===A.MAP?this._wwaData.mapAttribute[n][p]:this._wwaData.objectAttribute[n][p],l=r===A.MAP?this._wwaData.mapAttribute[n][m]:this._wwaData.objectAttribute[n][m],c===L.PLAYER_COORD?(c=this._player.getPosition().getPartsCoord().x,this._player.resetEventExecutionInfo()):c>L.RELATIVE_COORD_LOWER&&(c=e.x+c-L.RELATIVE_COORD_BIAS),l===L.PLAYER_COORD?(l=this._player.getPosition().getPartsCoord().y,this._player.resetEventExecutionInfo()):l>L.RELATIVE_COORD_LOWER&&(l=e.y+l-L.RELATIVE_COORD_BIAS),!(c===0&&l===0))try{if(new C(this,c,l,0,0),s===A.MAP){if(o>=this._wwaData.mapPartsMax)throw Error(`背景パーツの範囲外IDが指定されました`);var g=new S(c,l);this.setPartsOnPosition(A.MAP,o,g)}else{if(o>=this._wwaData.objPartsMax)throw Error(`物体パーツの範囲外IDが指定されました`);var g=new S(c,l);this.setPartsOnPosition(A.OBJECT,o,g),this._replaceRandomObject(new S(c,l)),c===this._player.getPosition().getPartsCoord().x&&l===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch{}}}reserveAppearPartsInNextFrame(e,t,n=0){this._reservedPartsAppearances.push({pos:e,triggerType:t,triggerPartsId:n})}reserveJumpInNextFrame(e){this._reservedJumpDestination=e}appearPartsByDirection(e,t,n){var r=this._player.getPosition().getPartsCoord(),i=this._player.getDir(),a=E[i],o=D[i];this.appearPartsEval(r,(a>=0?`+`:`-`)+Math.abs(a)*e,(o>=0?`+`:`-`)+Math.abs(o)*e,t,n)}appearPartsEval(e,t,n,r,i){var a,o,s=this._player.getPosition().getPartsCoord();if(t===`P`||t===`p`)a=s.x;else if(t[0]===`+`)a=e.x+parseInt(t.substr(1));else if(t[0]===`-`)a=e.x-parseInt(t.substr(1));else if(a=parseInt(t),isNaN(a))throw Error(`座標として解釈できない文字が含まれています。`);if(n===`P`||n===`p`)o=s.y;else if(n[0]===`+`)o=e.y+parseInt(n.substr(1));else if(n[0]===`-`)o=e.y-parseInt(n.substr(1));else if(o=parseInt(n),isNaN(o))throw Error(`座標として解釈できない文字が含まれています。`);try{if(new C(this,a,o,0,0),i===A.MAP){if(r>=this._wwaData.mapPartsMax)throw Error(`背景パーツの範囲外IDが指定されました`);var c=new S(a,o);this.setPartsOnPosition(A.MAP,r,c)}else{if(r>=this._wwaData.objPartsMax)throw Error(`物体パーツの範囲外IDが指定されました`);var c=new S(a,o);this.setPartsOnPosition(A.OBJECT,r,c),this._replaceRandomObject(new S(a,o)),a===this._player.getPosition().getPartsCoord().x&&o===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch{}}getPartsID(e,t){if(e.x<0||e.y<0)throw Error(`想定外の座標が指定されました`);return t===A.MAP?this._wwaData.map[e.y][e.x]:this._wwaData.mapObject[e.y][e.x]}_replaceRandomObject(e){var t=this._wwaData.mapObject[e.y][e.x],n=this._wwaData.objectAttribute[t][L.ATR_TYPE],r,i;if(n===L.OBJECT_RANDOM){for(var a=0;a<L.RANDOM_ITERATION_MAX;a++){if(i=Math.floor(Math.random()*10),r=this._wwaData.objectAttribute[t][L.ATR_RANDOM_BASE+i],r>=this._wwaData.objPartsMax){r=0;break}if(this._wwaData.objectAttribute[r][L.ATR_TYPE]!==L.OBJECT_RANDOM)break;t=r}this.setPartsOnPosition(A.OBJECT,r,e)}}_replaceRandomObjectsInScreen(){for(var e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x-1),n=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),r=Math.max(0,e.y-1),i=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),a=t;a<=n;a++)for(var o=r;o<=i;o++)this._replaceRandomObject(new S(a,o))}_replaceAllRandomObjects(){for(var e=0;e<this._wwaData.mapWidth;e++)for(var t=0;t<this._wwaData.mapWidth;t++)this._replaceRandomObject(new S(e,t))}gameover(){var e=this._wwaData.gameoverX,t=this._wwaData.gameoverY;this._yesNoJudge=O.UNSELECTED,this._pages=[],this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._player.clearMessageWaiting(),this._messageWindow.clear(),this._messageWindow.setYesNoChoice(!1),this._waitFrame=0,this._temporaryInputDisable=!0,this._shouldSetNextPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._clearAllRequests(),this._player.jumpTo(new C(this,e,t,0,0));let n=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GAMEOVER;n&&this.evalCalcWwaNodeGenerator.evalWwaNode(n)}setYesNoInput(e){this._yesNoJudgeInNextFrame=e}getYesNoState(){return this._yesNoJudgeInNextFrame===void 0?this._yesNoJudge:this._yesNoJudgeInNextFrame}setStatusChangedEffect(e){this._wwaData.isItemEffectEnabled&&(e.strength!==0&&(H(`disp-strength`).classList.add(`onpress`),this._statusPressCounter.strength=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e.defence!==0&&(H(`disp-defence`).classList.add(`onpress`),this._statusPressCounter.defence=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e instanceof x&&(e.energy!==0&&(H(`disp-energy`).classList.add(`onpress`),this._statusPressCounter.energy=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e.gold!==0&&(H(`disp-gold`).classList.add(`onpress`),this._statusPressCounter.gold=L.STATUS_CHANGED_EFFECT_FRAME_NUM)))}setPartsOnPosition(e,t,n){var r,i,a=n.y<<we.BITSHIFT|n.x;e===A.MAP?(r=this._wwaData.map[n.y][n.x],t=this.loadMapPartsID(t),r=this.loadMapPartsID(r),this._wwaData.map[n.y][n.x]=t,i=this._mapIDTable[r].indexOf(a),i!==-1&&this._mapIDTable[r].splice(i,1),i=this._mapIDTable[t].indexOf(a),i===-1&&this._mapIDTable[t].push(a)):(r=this._wwaData.mapObject[n.y][n.x],t=this.loadMapPartsObjectID(t),r=this.loadMapPartsObjectID(r),this._wwaData.mapObject[n.y][n.x]=t,i=this._mapObjectIDTable[r].indexOf(a),i!==-1&&this._mapObjectIDTable[r].splice(i,1),i=this._mapObjectIDTable[t].indexOf(a),i===-1&&this._mapObjectIDTable[t].push(a))}_countSamePartsLength(e,t){var n;for(n=t+1;n<e.length&&e[n]===e[n-1];n++);return n-t}_compressMap(e){for(var t=[],n=0;n<e.length;n++){t[n]=[];for(var r=0;r<e[n].length;){var i=this._countSamePartsLength(e[n],r);t[n].push([e[n][r],i]),r+=i}}return t}_decompressMap(e){for(var t=[],n=0;n<e.length;n++){t[n]=[];for(var r=0;r<e[n].length;r++)for(var i=e[n][r][1],a=0;a<i;a++)t[n].push(e[n][r][0])}return t}_generateMapDataHash(e){var t=`A`,n=0,r=0,i=0;for(i=0;i<e.map.length;i++){for(r=0;r<e.map[i].length;)n=this._countSamePartsLength(e.map[i],r),t+=e.map[i][r]+`|`+n+`/`,r+=n;for(r=0;r<e.mapObject[i].length;)n=this._countSamePartsLength(e.mapObject[i],r),t+=e.mapObject[i][r]+`|`+n+`/`,r+=n}for(var a=0;a<e.mapAttribute.length;a++)for(var o=0;o<e.mapAttribute[a].length;o++)t+=e.mapAttribute[a][o]+`/`;for(var s=0;s<e.objectAttribute.length;s++)for(var c=0;c<e.objectAttribute[s].length;c++)t+=e.objectAttribute[s][c]+`/`;return t+=`Z`,xi(t)}_generateSaveDataHash(e){var t=this._generateMapDataHash(e),n=[];for(var r in e)r===`map`||r===`mapObject`||r===`mapCompressed`||r===`mapObjectCompressed`||r===`mapAttribute`||r===`objectAttribute`||r===`checkString`||n.push(r);n.sort();for(var i=0;i<n.length;i++)t+=Ge(e[n[i]]);return xi(t)}compressSystem(){return Vi}_quickSave(e){let t=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_SAVE;t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t);var n=structuredClone(this._wwaData),r=this._player.getPosition().getPartsCoord(),i=this._player.getStatusWithoutEquipments();switch(n.itemBox=this._player.getCopyOfItemBox(),n.playerX=r.x,n.playerY=r.y,n.statusEnergyMax=this._player.getEnergyMax(),n.statusEnergy=i.energy,n.statusStrength=i.strength,n.statusDefence=i.defence,n.statusGold=i.gold,n.moves=this._player.getMoveCount(),n.frameCount=this._player.getFrameCount(),n.gameSpeedIndex=this._player.getSpeedIndex(),n.playTime=this._playTimeCalculator?.calculateTimeMs()??0,n.userVar=this._userVar.numbered.slice(),n.userNamedVar=structuredClone(this._userVar.named),e){case N.CALL_BY_LOG_QUICK_SAVE:case N.CALL_BY_QUICK_SAVE:case N.CALL_BY_SUSPEND:break;case N.CALL_BY_PASSWORD_SAVE:n.checkOriginalMapString=this.checkOriginalMapString,n.checkString=this._generateSaveDataHash(n);break}switch(n.message=void 0,n.mapAttribute=void 0,n.objectAttribute=void 0,e){case N.CALL_BY_QUICK_SAVE:return this._messageWindow.save(this._cvs,n),this.wwaCustomEvent(`wwa_quicksave`,{data:n}),``;case N.CALL_BY_PASSWORD_SAVE:let e=Vi.compress(n,{isPassword:!0});e.isCompress=1;let t=JSON.stringify(e);return this.wwaCustomEvent(`wwa_passwordsave`,{data:n,compress:e}),vi(t,this._wwaData.worldPassNumber);case N.CALL_BY_SUSPEND:this.wwaCustomEvent(`wwa_suspend`,{data:n,compress:Vi.compress(n)});break;case N.CALL_BY_LOG_QUICK_SAVE:this.wwaCustomEvent(`wwa_autosave`,{data:n}),this._wwaSave.autoSave(this._cvs,n);break}}wwaCustomEvent(e,t={}){this.wwaCustomEventEmitter.dispatch(e,t)}_decodePassword(e){let t=``,n;try{t=bi(e,this._wwaData.worldPassNumber)}catch(e){n=e}if(!t){console.warn(`新方式でのパスワード暗号化解除失敗:`,n);try{t=yi(e,this._wwaData.worldPassNumber,this.checkOriginalMapString)}catch(e){n=e}}if(!t){console.warn(`旧方式でのパスワード暗号化解除失敗:`,n);let e=n&&n.message?n.message:``;throw Error(`パスワード取得時からワールド制作者によってマップの暗証番号が変更されたか、
|
|
123
|
+
入力選択ができます。`,!0);break;case N.NONE:this.registerSystemMessagePage(`読み込むオートセーブを選んでください。`,!0);break}return}else if(this._yesNoChoiceCallInfo===N.CALL_BY_QUICK_SAVE)if(this._messageWindow.deleteSaveDom(),this._usePassword||this._useSuspend){this._yesNoJudge=O.UNSELECTED,this._useSuspend?this.onpasssuspendsavecalled():this._usePassword&&this.onpasswordsavecalled();return}else H(F[P.QUICK_SAVE]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_RESTART_GAME)H(F[P.RESTART_GAME]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_END_GAME)H(F[P.GOTO_WWA]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_GOTO_WWA)H(F[P.GOTO_WWA]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_LOAD)H(F[P.QUICK_LOAD]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_PASSWORD_SAVE)H(F[P.QUICK_SAVE]).classList.remove(`onpress`);else if(this._yesNoChoiceCallInfo===N.CALL_BY_SUSPEND)if(this._usePassword){this._yesNoJudge=O.UNSELECTED,this.onpasswordsavecalled();return}else H(F[P.QUICK_SAVE]).classList.remove(`onpress`);this._yesNoJudge=O.UNSELECTED,this._setNextPage(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._messageWindow.setYesNoChoice(!1)}}}_dispatchWindowClosedTimeRequests(){if(this._windowCloseWaitingJumpGateRequest&&this.forcedJumpGate(this._windowCloseWaitingJumpGateRequest.x,this._windowCloseWaitingJumpGateRequest.y),this._windowCloseWaitingMessageDisplayRequests.length>0){let e=this._windowCloseWaitingMessageDisplayRequests.shift();return this.registerPageByMessage(e.message,{additionalItems:e.additionalItems}),{newPageGenerated:!0}}return{newPageGenerated:!1}}_dispatchPlayerAndObjectsStopTimeRequests(){this._playerAndObjectsStopWaitingGameSpeedChangeRequest&&=(this.setPlayerSpeedIndex(this._playerAndObjectsStopWaitingGameSpeedChangeRequest.speedIndex),void 0),this._playerAndObjectsStopWaitingMessageDisplayRequests.length>0&&(this.registerPageByMessage(this._playerAndObjectsStopWaitingMessageDisplayRequests.map(e=>e.message).join(`<p>`),{additionalItems:this._playerAndObjectsStopWaitingMessageDisplayRequests.map(e=>e.additionalItems).flat()}),this._playerAndObjectsStopWaitingMessageDisplayRequests=[])}_clearAllRequests(){this._playerAndObjectsStopWaitingMessageDisplayRequests=[],this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0,this._windowCloseWaitingJumpGateRequest=void 0,this._windowCloseWaitingMessageDisplayRequests=[]}reserveMessageDisplayWhenShouldOpen(e){this._player.isWaitingMessageOrManualPause()||this._player.isFighting()||this._player.isWaitingPasswordWindow()||this._player.isWaitingEstimateWindow()?this._windowCloseWaitingMessageDisplayRequests.push(e):this._player.isMoving()||this._player.isWaitingMoveMacro()?this._playerAndObjectsStopWaitingMessageDisplayRequests.push(e):this.registerPageByMessage(e.message,{additionalItems:e.additionalItems})}handleMsgFunction(e){this._pageExecuting?this._windowCloseWaitingMessageDisplayRequests.push(e):this.reserveMessageDisplayWhenShouldOpen(e)}registerSystemMessagePage(e,t=!1){this.registerPageByMessage(e,{showChoice:t,isSystemMessage:!0})}registerSystemMessagePageByKey(e){let t=this.resolveSystemMessage(e);t!==`BLANK`&&this.registerPageByMessage(t,{isSystemMessage:!0})}_createSimpleMessage(e,t){return new ar(e,()=>this.generateTokenValues(t),(e,t)=>this._execEvalString(e,t))}registerPageByMessage(e,{showChoice:t=!1,isSystemMessage:n=!1,triggerParts:r={id:0,type:A.OBJECT,position:new S(0,0)},scoreOption:i=void 0,additionalItems:a=[]}={}){let o=gr(e,{triggerParts:r,isSystemMessage:n,showChoice:t,scoreOption:i,additionalItems:a},e=>nr(this,r,e),(e,t)=>this._execEvalString(e,t),e=>this.generateTokenValues(e));this._pages=this._pages.concat(o),this._shouldSetNextPage=!0}appearParts({pos:e,triggerType:t,triggerPartsId:n}){var r,i=t===k.CHOICE_NO?L.APPERANCE_PARTS_MIN_INDEX_NO:L.APPERANCE_PARTS_MIN_INDEX,a=t===k.CHOICE_YES?L.APPERANCE_PARTS_MAX_INDEX_YES:L.APPERANCE_PARTS_MAX_INDEX,o,s,c,l,u;for(t===k.MAP?(n=n===0?this._wwaData.map[e.y][e.x]:n,r=A.MAP):(n=n===0?this._wwaData.mapObject[e.y][e.x]:n,r=A.OBJECT),u=i;u<=a;u++){var d=L.ATR_APPERANCE_BASE+u*L.REL_ATR_APPERANCE_UNIT_LENGTH,f=d+L.REL_ATR_APPERANCE_ID,p=d+L.REL_ATR_APPERANCE_X,m=d+L.REL_ATR_APPERANCE_Y,h=d+L.REL_ATR_APPERANCE_TYPE;if(o=r===A.MAP?this._wwaData.mapAttribute[n][f]:this._wwaData.objectAttribute[n][f],s=r===A.MAP?this._wwaData.mapAttribute[n][h]:this._wwaData.objectAttribute[n][h],c=r===A.MAP?this._wwaData.mapAttribute[n][p]:this._wwaData.objectAttribute[n][p],l=r===A.MAP?this._wwaData.mapAttribute[n][m]:this._wwaData.objectAttribute[n][m],c===L.PLAYER_COORD?(c=this._player.getPosition().getPartsCoord().x,this._player.resetEventExecutionInfo()):c>L.RELATIVE_COORD_LOWER&&(c=e.x+c-L.RELATIVE_COORD_BIAS),l===L.PLAYER_COORD?(l=this._player.getPosition().getPartsCoord().y,this._player.resetEventExecutionInfo()):l>L.RELATIVE_COORD_LOWER&&(l=e.y+l-L.RELATIVE_COORD_BIAS),!(c===0&&l===0))try{if(new C(this,c,l,0,0),s===A.MAP){if(o>=this._wwaData.mapPartsMax)throw Error(`背景パーツの範囲外IDが指定されました`);var g=new S(c,l);this.setPartsOnPosition(A.MAP,o,g)}else{if(o>=this._wwaData.objPartsMax)throw Error(`物体パーツの範囲外IDが指定されました`);var g=new S(c,l);this.setPartsOnPosition(A.OBJECT,o,g),this._replaceRandomObject(new S(c,l)),c===this._player.getPosition().getPartsCoord().x&&l===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch{}}}reserveAppearPartsInNextFrame(e,t,n=0){this._reservedPartsAppearances.push({pos:e,triggerType:t,triggerPartsId:n})}reserveJumpInNextFrame(e){this._reservedJumpDestination=e}appearPartsByDirection(e,t,n){var r=this._player.getPosition().getPartsCoord(),i=this._player.getDir(),a=E[i],o=D[i];this.appearPartsEval(r,(a>=0?`+`:`-`)+Math.abs(a)*e,(o>=0?`+`:`-`)+Math.abs(o)*e,t,n)}appearPartsEval(e,t,n,r,i){var a,o,s=this._player.getPosition().getPartsCoord();if(t===`P`||t===`p`)a=s.x;else if(t[0]===`+`)a=e.x+parseInt(t.substr(1));else if(t[0]===`-`)a=e.x-parseInt(t.substr(1));else if(a=parseInt(t),isNaN(a))throw Error(`座標として解釈できない文字が含まれています。`);if(n===`P`||n===`p`)o=s.y;else if(n[0]===`+`)o=e.y+parseInt(n.substr(1));else if(n[0]===`-`)o=e.y-parseInt(n.substr(1));else if(o=parseInt(n),isNaN(o))throw Error(`座標として解釈できない文字が含まれています。`);try{if(new C(this,a,o,0,0),i===A.MAP){if(r>=this._wwaData.mapPartsMax)throw Error(`背景パーツの範囲外IDが指定されました`);var c=new S(a,o);this.setPartsOnPosition(A.MAP,r,c)}else{if(r>=this._wwaData.objPartsMax)throw Error(`物体パーツの範囲外IDが指定されました`);var c=new S(a,o);this.setPartsOnPosition(A.OBJECT,r,c),this._replaceRandomObject(new S(a,o)),a===this._player.getPosition().getPartsCoord().x&&o===this._player.getPosition().getPartsCoord().y&&this._player.setPartsAppearedFlag()}}catch{}}getPartsID(e,t){if(e.x<0||e.y<0)throw Error(`想定外の座標が指定されました`);return t===A.MAP?this._wwaData.map[e.y][e.x]:this._wwaData.mapObject[e.y][e.x]}_replaceRandomObject(e){var t=this._wwaData.mapObject[e.y][e.x],n=this._wwaData.objectAttribute[t][L.ATR_TYPE],r,i;if(n===L.OBJECT_RANDOM){for(var a=0;a<L.RANDOM_ITERATION_MAX;a++){if(i=Math.floor(Math.random()*10),r=this._wwaData.objectAttribute[t][L.ATR_RANDOM_BASE+i],r>=this._wwaData.objPartsMax){r=0;break}if(this._wwaData.objectAttribute[r][L.ATR_TYPE]!==L.OBJECT_RANDOM)break;t=r}this.setPartsOnPosition(A.OBJECT,r,e)}}_replaceRandomObjectsInScreen(){for(var e=this._camera.getPosition().getPartsCoord(),t=Math.max(0,e.x-1),n=Math.min(this._wwaData.mapWidth-1,e.x+L.H_PARTS_NUM_IN_WINDOW),r=Math.max(0,e.y-1),i=Math.min(this._wwaData.mapWidth-1,e.y+L.V_PARTS_NUM_IN_WINDOW),a=t;a<=n;a++)for(var o=r;o<=i;o++)this._replaceRandomObject(new S(a,o))}_replaceAllRandomObjects(){for(var e=0;e<this._wwaData.mapWidth;e++)for(var t=0;t<this._wwaData.mapWidth;t++)this._replaceRandomObject(new S(e,t))}gameover(){var e=this._wwaData.gameoverX,t=this._wwaData.gameoverY;this._yesNoJudge=O.UNSELECTED,this._pages=[],this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoChoicePartsCoord=void 0,this._yesNoChoicePartsID=void 0,this._yesNoUseItemPos=void 0,this._yesNoChoiceCallInfo=N.NONE,this._player.clearWaitingMessageOrManualPause(),this._messageWindow.clear(),this._messageWindow.setYesNoChoice(!1),this._waitFrame=0,this._temporaryInputDisable=!0,this._shouldSetNextPage=!1,this._reservedPartsAppearances=[],this._reservedJumpDestination=void 0,this._clearAllRequests(),this._player.jumpTo(new C(this,e,t,0,0));let n=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_GAMEOVER;n&&this.evalCalcWwaNodeGenerator.evalWwaNode(n)}setYesNoInput(e){this._yesNoJudgeInNextFrame=e}getYesNoState(){return this._yesNoJudgeInNextFrame===void 0?this._yesNoJudge:this._yesNoJudgeInNextFrame}setStatusChangedEffect(e){this._wwaData.isItemEffectEnabled&&(e.strength!==0&&(H(`disp-strength`).classList.add(`onpress`),this._statusPressCounter.strength=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e.defence!==0&&(H(`disp-defence`).classList.add(`onpress`),this._statusPressCounter.defence=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e instanceof x&&(e.energy!==0&&(H(`disp-energy`).classList.add(`onpress`),this._statusPressCounter.energy=L.STATUS_CHANGED_EFFECT_FRAME_NUM),e.gold!==0&&(H(`disp-gold`).classList.add(`onpress`),this._statusPressCounter.gold=L.STATUS_CHANGED_EFFECT_FRAME_NUM)))}setPartsOnPosition(e,t,n){var r,i,a=n.y<<we.BITSHIFT|n.x;e===A.MAP?(r=this._wwaData.map[n.y][n.x],t=this.loadMapPartsID(t),r=this.loadMapPartsID(r),this._wwaData.map[n.y][n.x]=t,i=this._mapIDTable[r].indexOf(a),i!==-1&&this._mapIDTable[r].splice(i,1),i=this._mapIDTable[t].indexOf(a),i===-1&&this._mapIDTable[t].push(a)):(r=this._wwaData.mapObject[n.y][n.x],t=this.loadMapPartsObjectID(t),r=this.loadMapPartsObjectID(r),this._wwaData.mapObject[n.y][n.x]=t,i=this._mapObjectIDTable[r].indexOf(a),i!==-1&&this._mapObjectIDTable[r].splice(i,1),i=this._mapObjectIDTable[t].indexOf(a),i===-1&&this._mapObjectIDTable[t].push(a))}_countSamePartsLength(e,t){var n;for(n=t+1;n<e.length&&e[n]===e[n-1];n++);return n-t}_compressMap(e){for(var t=[],n=0;n<e.length;n++){t[n]=[];for(var r=0;r<e[n].length;){var i=this._countSamePartsLength(e[n],r);t[n].push([e[n][r],i]),r+=i}}return t}_decompressMap(e){for(var t=[],n=0;n<e.length;n++){t[n]=[];for(var r=0;r<e[n].length;r++)for(var i=e[n][r][1],a=0;a<i;a++)t[n].push(e[n][r][0])}return t}_generateMapDataHash(e){var t=`A`,n=0,r=0,i=0;for(i=0;i<e.map.length;i++){for(r=0;r<e.map[i].length;)n=this._countSamePartsLength(e.map[i],r),t+=e.map[i][r]+`|`+n+`/`,r+=n;for(r=0;r<e.mapObject[i].length;)n=this._countSamePartsLength(e.mapObject[i],r),t+=e.mapObject[i][r]+`|`+n+`/`,r+=n}for(var a=0;a<e.mapAttribute.length;a++)for(var o=0;o<e.mapAttribute[a].length;o++)t+=e.mapAttribute[a][o]+`/`;for(var s=0;s<e.objectAttribute.length;s++)for(var c=0;c<e.objectAttribute[s].length;c++)t+=e.objectAttribute[s][c]+`/`;return t+=`Z`,xi(t)}_generateSaveDataHash(e){var t=this._generateMapDataHash(e),n=[];for(var r in e)r===`map`||r===`mapObject`||r===`mapCompressed`||r===`mapObjectCompressed`||r===`mapAttribute`||r===`objectAttribute`||r===`checkString`||n.push(r);n.sort();for(var i=0;i<n.length;i++)t+=Ge(e[n[i]]);return xi(t)}compressSystem(){return Vi}_quickSave(e){let t=this.userDefinedFunctions&&this.userDefinedFunctions.CALL_SAVE;t&&this.evalCalcWwaNodeGenerator.evalWwaNode(t);var n=structuredClone(this._wwaData),r=this._player.getPosition().getPartsCoord(),i=this._player.getStatusWithoutEquipments();switch(n.itemBox=this._player.getCopyOfItemBox(),n.playerX=r.x,n.playerY=r.y,n.statusEnergyMax=this._player.getEnergyMax(),n.statusEnergy=i.energy,n.statusStrength=i.strength,n.statusDefence=i.defence,n.statusGold=i.gold,n.moves=this._player.getMoveCount(),n.frameCount=this._player.getFrameCount(),n.gameSpeedIndex=this._player.getSpeedIndex(),n.playTime=this._playTimeCalculator?.calculateTimeMs()??0,n.userVar=this._userVar.numbered.slice(),n.userNamedVar=structuredClone(this._userVar.named),e){case N.CALL_BY_LOG_QUICK_SAVE:case N.CALL_BY_QUICK_SAVE:case N.CALL_BY_SUSPEND:break;case N.CALL_BY_PASSWORD_SAVE:n.checkOriginalMapString=this.checkOriginalMapString,n.checkString=this._generateSaveDataHash(n);break}switch(n.message=void 0,n.mapAttribute=void 0,n.objectAttribute=void 0,e){case N.CALL_BY_QUICK_SAVE:return this._messageWindow.save(this._cvs,n),this.wwaCustomEvent(`wwa_quicksave`,{data:n}),``;case N.CALL_BY_PASSWORD_SAVE:let e=Vi.compress(n,{isPassword:!0});e.isCompress=1;let t=JSON.stringify(e);return this.wwaCustomEvent(`wwa_passwordsave`,{data:n,compress:e}),vi(t,this._wwaData.worldPassNumber);case N.CALL_BY_SUSPEND:this.wwaCustomEvent(`wwa_suspend`,{data:n,compress:Vi.compress(n)});break;case N.CALL_BY_LOG_QUICK_SAVE:this.wwaCustomEvent(`wwa_autosave`,{data:n}),this._wwaSave.autoSave(this._cvs,n);break}}wwaCustomEvent(e,t={}){this.wwaCustomEventEmitter.dispatch(e,t)}_decodePassword(e){let t=``,n;try{t=bi(e,this._wwaData.worldPassNumber)}catch(e){n=e}if(!t){console.warn(`新方式でのパスワード暗号化解除失敗:`,n);try{t=yi(e,this._wwaData.worldPassNumber,this.checkOriginalMapString)}catch(e){n=e}}if(!t){console.warn(`旧方式でのパスワード暗号化解除失敗:`,n);let e=n&&n.message?n.message:``;throw Error(`パスワード取得時からワールド制作者によってマップの暗証番号が変更されたか、
|
|
124
124
|
パスワードが壊れているために正常にセーブデータが復元できませんでした。
|
|
125
125
|
`+e)}var r;try{r=JSON.parse(t)}catch{throw Error(`マップデータ以外のものが暗号化されたか、マップデータに何かが不足しているようです。
|
|
126
126
|
JSON PARSE FAILED`)}if(r.isCompress){delete r.isCompress;let[e,t]=Vi.decompress(r);return[qi(e),t]}else return[r,{isWorldNameEmpty:!1}]}_quickLoad(e=!1,t=null,n=!0){if(!e&&this._wwaSave.hasSaveData()===void 0&&t===null)throw Error(`セーブデータがありません。`);let r,i=!1;if(t!==null){let e=this._decodePassword(t);r=e[0],i=e[1].isWorldNameEmpty}else r=structuredClone(e?this._restartData:this._messageWindow.load());if(r.message=structuredClone(this._restartData.message),r.mapAttribute=structuredClone(this._restartData.mapAttribute),r.objectAttribute=structuredClone(this._restartData.objectAttribute),r.map===void 0&&(r.map=this._decompressMap(r.mapCompressed)),r.mapObject===void 0&&(r.mapObject=this._decompressMap(r.mapObjectCompressed)),delete r.mapCompressed,delete r.mapObjectCompressed,t!==null){if(!i&&r.worldName!==this._wwaData.worldName)throw console.error(`Invalid title`,`(password)=${r.worldName} (current map)=${this._wwaData.worldName}`),Error(`前回パスワード取得時から、制作者によってワールド名が変更されたためロードできませんでした。
|
|
@@ -150,7 +150,7 @@ JSON PARSE FAILED`)}if(r.isCompress){delete r.isCompress;let[e,t]=Vi.decompress(
|
|
|
150
150
|
ZR:一時保存データの読み込み
|
|
151
151
|
+: 移動速度を上げる
|
|
152
152
|
-: 移動速度を落とす
|
|
153
|
-
WWA Wing バージョン:4.0.
|
|
153
|
+
WWA Wing バージョン:4.0.4
|
|
154
154
|
マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;case M.PLAY_STATION:e=` 【操作方法】
|
|
155
155
|
〇:Yes,戦闘結果予測の表示
|
|
156
156
|
×:No
|
|
@@ -163,7 +163,7 @@ OPTIONS: 移動速度を上げる
|
|
|
163
163
|
SHARE: 移動速度を落とす
|
|
164
164
|
現在の移動回数:`+this._player.getMoveCount()+`
|
|
165
165
|
`+(t?` プレイ時間:`+t+`
|
|
166
|
-
`:``)+` WWA Wing バージョン:4.0.
|
|
166
|
+
`:``)+` WWA Wing バージョン:4.0.4
|
|
167
167
|
マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;case M.XBOX:e=` 【操作方法】
|
|
168
168
|
B:Yes,戦闘結果予測の表示
|
|
169
169
|
A:No
|
|
@@ -176,7 +176,7 @@ MENU: 移動速度を上げる
|
|
|
176
176
|
WINDOW: 移動速度を落とす
|
|
177
177
|
現在の移動回数:`+this._player.getMoveCount()+`
|
|
178
178
|
`+(t?` プレイ時間:`+t+`
|
|
179
|
-
`:``)+` WWA Wing バージョン:4.0.
|
|
179
|
+
`:``)+` WWA Wing バージョン:4.0.4
|
|
180
180
|
マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;default:return}break;case re.SP:return;case re.VR:return;case re.PC:e=` 【操作方法】
|
|
181
181
|
F1、M:戦闘結果予測の表示
|
|
182
182
|
F3:復帰用パスワード入力
|
|
@@ -193,8 +193,8 @@ WINDOW: 移動速度を落とす
|
|
|
193
193
|
F2、P: 移動速度を上げる
|
|
194
194
|
現在の移動回数:`+this._player.getMoveCount()+`
|
|
195
195
|
`+(t?` プレイ時間:`+t+`
|
|
196
|
-
`:``)+` WWA Wing バージョン:4.0.
|
|
197
|
-
マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;default:return}e&&this.registerSystemMessagePage(e)}}_setNextPage(){if(this._clearFacesInNextFrame=!0,this._scoreWindow.isVisible()&&this._scoreWindow.hide(),this._isLastPage&&this._reservedMoveMacroTurn!==void 0&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0),this._pages.length===0){let{newPageGenerated:e}=this._hideMessageWindow();e||(this.clearFaces(),this._dispatchWindowClosedTimeRequests())}else this._shouldSetNextPage=!0;this._inlineUserVarViewer&&(this._inlineUserVarViewer.isVisible=!1)}_hideMessageWindow(){let e=this._player.isReadyToUseItem()?this._player.useItem():0,t=this.getObjectAttributeById(e,L.ATR_STRING);return t===0?(this._messageWindow.isVisible()&&(this._player.setDelayFrame(),this._messageWindow.hide(),this._keyStore.allClear(),this._mouseStore.clear()),this._player.
|
|
196
|
+
`:``)+` WWA Wing バージョン:4.0.4
|
|
197
|
+
マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;default:return}e&&this.registerSystemMessagePage(e)}}_setNextPage(){if(this._clearFacesInNextFrame=!0,this._scoreWindow.isVisible()&&this._scoreWindow.hide(),this._isLastPage&&this._reservedMoveMacroTurn!==void 0&&(this._player.setMoveMacroWaiting(this._reservedMoveMacroTurn),this._reservedMoveMacroTurn=void 0),this._pages.length===0){let{newPageGenerated:e}=this._hideMessageWindow();e||(this.clearFaces(),this._dispatchWindowClosedTimeRequests())}else this._shouldSetNextPage=!0;this._inlineUserVarViewer&&(this._inlineUserVarViewer.isVisible=!1)}_hideMessageWindow(){let e=this._player.isReadyToUseItem()?this._player.useItem():0,t=this.getObjectAttributeById(e,L.ATR_STRING);return t===0?(this._messageWindow.isVisible()&&(this._player.setDelayFrame(),this._messageWindow.hide(),this._keyStore.allClear(),this._mouseStore.clear()),this._player.clearWaitingMessageOrManualPause(),{newPageGenerated:!1}):(this.registerPageByMessage(this.getMessageById(t),{triggerParts:{id:e,type:A.OBJECT,position:this._player.getPosition().getPartsCoord()}}),{newPageGenerated:this._pages.length!==0})}getPlayerPositon(){return this._player.getPosition()}loadMapPartsObjectID(e){return e|=0,e<0||e>=this._wwaData.objPartsMax?0:e}loadMapPartsID(e){return e|=0,e<0||e>=this._wwaData.mapPartsMax?0:e}replaceParts(e,t,n=A.OBJECT,r=!1){var i=this._camera.getPosition().getPartsCoord(),a=r?Math.max(0,i.x):0,o=r?Math.min(this._wwaData.mapWidth-1,i.x+L.H_PARTS_NUM_IN_WINDOW-1):this._wwaData.mapWidth-1,s=r?Math.max(0,i.y):0,c=r?Math.min(this._wwaData.mapWidth-1,i.y+L.V_PARTS_NUM_IN_WINDOW)-1:this._wwaData.mapWidth-1;r=a!==0||o!==this._wwaData.mapWidth-1||s!==0||c!==this._wwaData.mapWidth-1;var l,u,d,f,p,m,h,g;if(n===A.OBJECT)if(e=this.loadMapPartsObjectID(e),t=this.loadMapPartsObjectID(t),f=this._mapObjectIDTable[e].concat(),h=this._mapObjectIDTable[e],h.length=0,g=this._mapObjectIDTable[t],u=f.length,r)for(d=0;d<u;d++)l=f[d],p=l&we.BITMASK,m=l>>>we.BITSHIFT&we.BITMASK,a<=p&&p<=o&&s<=m&&m<=c?(this._wwaData.mapObject[m][p]=t,g.push(l)):h.push(l);else{for(d=0;d<u;d++)l=f[d],p=l&we.BITMASK,m=l>>>we.BITSHIFT&we.BITMASK,this._wwaData.mapObject[m][p]=t;Array.prototype.push.apply(g,f)}else if(e=this.loadMapPartsID(e),t=this.loadMapPartsID(t),f=this._mapIDTable[e].concat(),h=this._mapIDTable[e],h.length=0,g=this._mapIDTable[t],u=f.length,r)for(d=0;d<u;d++)l=f[d],p=l&we.BITMASK,m=l>>>we.BITSHIFT&we.BITMASK,a<=p&&p<=o&&s<=m&&m<=c?(this._wwaData.map[m][p]=t,g.push(l)):h.push(l);else{for(d=0;d<u;d++)l=f[d],p=l&we.BITMASK,m=l>>>we.BITSHIFT&we.BITMASK,this._wwaData.map[m][p]=t;Array.prototype.push.apply(g,f)}}getYesNoImgCoord(){return new S(this._wwaData.yesnoImgPosX,this._wwaData.yesnoImgPosY)}setYesNoImgCoord(e){return this._wwaData.yesnoImgPosX=e.x,this._wwaData.yesnoImgPosY=e.y,e}getPlayerImgCoord(){return new S(this._wwaData.playerImgPosX,this._wwaData.playerImgPosY)}setPlayerImgCoord(e){return this._wwaData.playerImgPosX=e.x,this._wwaData.playerImgPosY=e.y,e}setPlayerEnergyMax(e){return this._player.setEnergyMax(this.toValidStatusValue(e))}getMapPartsNum(){return this._wwaData.mapPartsMax}getObjectPartsNum(){return this._wwaData.objPartsMax}setMoveMacroWaitingToPlayer(e){this._reservedMoveMacroTurn=e}disableSave(e){return this._wwaData.disableSaveFlag=e,this._wwaSave.quickSaveButtonUpdate(this._wwaData),e}isOldMap(){return this._wwaData.isOldMap}setOldMap(e){return this._wwaData.isOldMap=e}setObjectNotCollapseOnPartsOnPlayer(e){return this._wwaData.objectNoCollapseDefaultFlag=e}setGameOverPosition(e){if(e.x<0||e.x>=this.getMapWidth()||e.y<0||e.y>=this.getMapWidth())throw Error(`マップの範囲外が指定されています!`);return this._wwaData.gameoverX=e.x,this._wwaData.gameoverY=e.y,e}getGemeOverPosition(){return new S(this._wwaData.gameoverX,this._wwaData.gameoverY)}toValidStatusValue(e){return this.isNotNumberTypeOrNaN(e)||e<0?0:Math.floor(e)}setPlayerStatus(e,t,n){if(e===ue.ENERGY){if(this._player.setEnergy(this.toValidStatusValue(t)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:n}))return this.gameover(),{isGameOver:!0}}else if(e===ue.STRENGTH)this._player.setStrength(this.toValidStatusValue(t));else if(e===ue.DEFENCE)this._player.setDefence(this.toValidStatusValue(t));else if(e===ue.GOLD)this._player.setGold(this.toValidStatusValue(t));else if(e===ue.MOVES)this._player.setMoveCount(this.toValidStatusValue(t));else throw Error(`未定義のステータスタイプです`);return{}}setDelPlayer(e){return this._wwaData.delPlayerFlag=e}setPlayerGetItem(e,t){try{this._player.addItem(t,e,!0)}catch{}}setStatusIconCoord(e,t){let n=t.x*L.CHIP_SIZE,r=t.y*L.CHIP_SIZE,i=e=>{let t=Ve(`${e}>.status-icon`);t.style.backgroundPosition=`-${n}px -${r}px`};switch(e){case de.ENERGY:this._wwaData.imgStatusEnergyX=t.x,this._wwaData.imgStatusEnergyY=t.y,i(`#disp-energy`);break;case de.STRENGTH:this._wwaData.imgStatusStrengthX=t.x,this._wwaData.imgStatusStrengthY=t.y,i(`#disp-strength`);break;case de.DEFENCE:this._wwaData.imgStatusDefenceX=t.x,this._wwaData.imgStatusDefenceY=t.y,i(`#disp-defence`);break;case de.GOLD:this._wwaData.imgStatusGoldX=t.x,this._wwaData.imgStatusGoldY=t.y,i(`#disp-gold`);break;default:throw Error(`種別が不正です。`)}return t.clone()}setWideCellCoord(e){this._wwaData.imgWideCellX=e.x,this._wwaData.imgWideCellY=e.y;let t=e.x*L.CHIP_SIZE,n=e.y*L.CHIP_SIZE;return Array.prototype.forEach.call(He(`div.wide-cell-row`),e=>{e.style.backgroundPosition=`-`+t+`px -`+n+`px`}),e.clone()}setFrameCoord(e){return this._wwaData.imgFrameX=e.x,this._wwaData.imgFrameY=e.y,this._cgManager.setFrameImage(e),e.clone()}setBattleEffectCoord(e){return this._battleEffectCoord=e.clone()}canInput(){return!this._temporaryInputDisable&&!this._cgManager.picture.isWaiting()}setEffect(e,t){this._wwaData.effectWaits=e,this._wwaData.effectCoords=t,this.updateEffect()}stopEffect(){this._wwaData.effectCoords=[],this.updateEffect()}updateEffect(){this._cgManager.updateEffects(this._wwaData.effectCoords)}updateAllPicturesCache(){this._cgManager.updateAllPicturesCache(this._isMainAnimation())}updatePicturesAnimation(){this._player.isPausing()||this._cgManager.updatePicturesAnimation(this._isMainAnimation())}setImgClick(e){if(this._wwaData.imgClickX=e.x,this._wwaData.imgClickY=e.y,e.equals(new S(0,0)))Array.prototype.forEach.call(He(`.item-cell>.item-click-border`),e=>{e.style.backgroundImage=`url('`+L.ITEM_BORDER_IMG_DATA_URL+`')`,e.style.backgroundPosition=`0 0`});else{var t=this._wwaData.mapCGName.replace(`(`,`\\(`).replace(`)`,`\\)`);Array.prototype.forEach.call(He(`.item-cell>.item-click-border`),n=>{n.style.backgroundImage=`url('`+t+`')`,n.style.backgroundPosition=`-`+e.x*L.CHIP_SIZE+`px -`+e.y*L.CHIP_SIZE+`px`})}}addFace(e){this._faces.push(e),this._messageWindow.setPositionByPlayerPosition(this._faces.length!==0,this._scoreWindow.isVisible(),!1,this._player.getPosition(),this._camera.getPosition())}clearFaces(){this._faces=[]}updateItemEffectEnabled(e){this._wwaData.isItemEffectEnabled=e}setOldMove(e){this._wwaData.isOldMove=e}setGameOverPolicy(e){switch(e){case 0:this._wwaData.gameOverPolicy=`default`;return;case 1:this._wwaData.gameOverPolicy=`never`;return;case 2:this._wwaData.gameOverPolicy=`except-macro`;return;default:return}}setBgmDelay(e){this._wwaData.bgmDelayDurationMs=e}setPictureRegistry(e,t,n,r,i){let a=n===A.OBJECT?this._wwaData.objectAttribute[t]:n===A.MAP?this._wwaData.mapAttribute[t]:null;if(a===null)throw Error(`対応していないパーツ番号です。`);let o=this.getMessageById(a[L.ATR_STRING]);if(!o)throw n===A.OBJECT?Error(`物体パーツ ${t} 番に対応したテキストが見つかりませんでした。`):Error(`背景パーツ ${t} 番に対応したテキストが見つかりませんでした。`);let s=this._returnEvalString(`(`+o+`)`),c=this._cgManager.picture.registerPictureFromRawRegistry({layerNumber:e,imgPosX:(a[L.ATR_X]??0)/L.CHIP_SIZE,imgPosX2:(a[L.ATR_X2]??0)/L.CHIP_SIZE,imgPosY:(a[L.ATR_Y]??0)/L.CHIP_SIZE,imgPosY2:(a[L.ATR_Y2]??0)/L.CHIP_SIZE,triggerPartsX:r.x,triggerPartsY:r.y,soundNumber:a[L.ATR_SOUND]??0,properties:d(s)},t,n,i);this._wwaData.pictureRegistry=c,this.updateAllPicturesCache()}setPictureRegistryFromRawText(e,t){let n=this._cgManager.picture.registerPictureFromRawText(e,t);this._wwaData.pictureRegistry=n,this.updateAllPicturesCache()}setPictureRegistryFromObject(e,t){let n=this._cgManager.picture.registerPictureFromObject(e,t);this._wwaData.pictureRegistry=n,this.updateAllPicturesCache()}deletePictureRegistry(e){let t=this._cgManager.picture.deletePicture(e);this._wwaData.pictureRegistry=t}clearAllPictures(){this._cgManager.picture.clearAllPictures(),this._wwaData.pictureRegistry=[]}initCSSRule(){this._styleElm=H(L.WWA_STYLE_TAG_ID),this._sheet=this._styleElm.sheet,this.updateCSSRule()}updateCSSRule(){if(this._stylePos===void 0)this._stylePos=[,,];else if(this._sheet.addRule!==void 0)for(var e=0;e<this._stylePos.length;e++)this._sheet.removeRule(this._stylePos[this._styleElm[e]]);else for(var e=0;e<this._stylePos.length;e++)this._sheet.deleteRule(this._stylePos[this._styleElm[e]]);let t=`div.wwa-message-window, div#wwa-text-message-window, div#wwa-battle-estimate, div#wwa-password-window`,n=this._isClassicModeEnable?1:.9,r=`
|
|
198
198
|
background-color: rgba(${this._wwaData.frameColorR}, ${this._wwaData.frameColorG}, ${this._wwaData.frameColorB}, ${n});
|
|
199
199
|
border-color: rgba(${this._wwaData.frameOutColorR}, ${this._wwaData.frameOutColorG}, ${this._wwaData.frameOutColorB}, 1);
|
|
200
200
|
color: rgba(${this._wwaData.fontColorR}, ${this._wwaData.fontColorG}, ${this._wwaData.fontColorB}, 1);
|
|
@@ -202,11 +202,11 @@ white-space: pre-wrap;
|
|
|
202
202
|
`,i=`div#wwa-sidebar`,a=`
|
|
203
203
|
color: rgba(${this._wwaData.statusColorR}, ${this._wwaData.statusColorG}, ${this._wwaData.statusColorB},1);
|
|
204
204
|
font-weight: bold;
|
|
205
|
-
`;this._sheet.addRule===void 0?(this._stylePos[Ce.MESSAGE_WINDOW]=this._sheet.insertRule(`${t} { ${r} }`,0),this._stylePos[Ce.SIDEBAR]=this._sheet.insertRule(`${i} { ${a} }`,1)):(this._stylePos[Ce.MESSAGE_WINDOW]=this._sheet.addRule(t,r),this._stylePos[Ce.SIDEBAR]=this._sheet.addRule(i,a))}changeStyleRule(e,t,n,r){e===Se.COLOR_FRAME?(this._wwaData.frameColorR=t,this._wwaData.frameColorG=n,this._wwaData.frameColorB=r):e===Se.COLOR_FRAMEOUT?(this._wwaData.frameOutColorR=t,this._wwaData.frameOutColorG=n,this._wwaData.frameOutColorB=r):e===Se.COLOR_STR?(this._wwaData.fontColorR=t,this._wwaData.fontColorG=n,this._wwaData.fontColorB=r):e===Se.COLOR_STATUS_STR&&(this._wwaData.statusColorR=t,this._wwaData.statusColorG=n,this._wwaData.statusColorB=r),this.updateCSSRule()}showMonsterWindow(){this._monsterWindow.show()}isClassicMode(){return this._isClassicModeEnable}isConsoleOutputMode(){return this._useConsole}forcedJumpGate(e,t){this._player.isWaitingMessage()?this._windowCloseWaitingJumpGateRequest={x:e,y:t}:(this._windowCloseWaitingJumpGateRequest=void 0,this._player.jumpTo(new C(this,e,t,0,0)))}setUserVarIndecies(e,t,n=`=`){let r=this._userVar.named.get(e[0]),i=e.length-1,a=e.slice(1,i).reduce((e,t)=>Ye(e,t),r),o=t,s=e[i];if(e.length>1){switch(n){case`=`:o=t;break;case`+=`:o=Ye(a,s)+t;break;case`-=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)-t;break;case`*=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)*t;break;case`/=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)/t;break;default:throw TypeError(`その演算子は利用できません: ${n}`)}if(Array.isArray(a))if(typeof s==`number`)a[s]=o;else throw TypeError(`配列の添字に数字以外は使えません: ${e[i]}`);else if(typeof a==`object`&&a)Xe(a,String(s),o);else if(typeof a==`string`)throw TypeError(`文字列 "${a}" の特定の文字を直接書き換えることはできません`);else Xe(a,s,o);this._userVar.named.set(e[0],r)}else throw Error(`indeciesの引数が足りていません: ${e}`)}setUserVar(e,t,n){let r=(e,t)=>{if(typeof e==`number`){if(typeof t!=`number`)throw TypeError(`数字index変数への数値以外の代入は今のところできません。あらかじめご了承ください。`);this._userVar.numbered[e]=typeof t==`number`?this.toAssignableValue(t):t}else this._userVar.named.set(e,t)},i=(e=>typeof e==`number`?this._userVar.numbered[e]:this._userVar.named.get(e))(e);if(typeof t==`number`)switch(n){case`+=`:if(typeof i==`number`)r(e,i+t);else if(typeof i==`string`)r(e,String(i)+t);else throw TypeError(`boolean に number は足せません`);break;case`-=`:if(typeof i==`number`)r(e,i-t);else throw TypeError(`string/boolean から number は引けません`);break;case`*=`:if(typeof i==`number`)r(e,i*t);else throw TypeError(`string/boolean に number はかけられません`);break;case`/=`:if(typeof i==`number`)r(e,i/t);else throw TypeError(`string/boolean は number で割れません`);break;default:r(e,t);break}else if(typeof t==`string`)switch(n){case`+=`:r(e,i+t);break;case`=`:r(e,t);break;default:throw TypeError(`文字列を -=, *=, /= で複合代入することはできません`)}else switch(n){case`+=`:if(typeof i==`string`)r(e,i+t);else throw TypeError(`number/boolean に boolean を足せません`);break;case`=`:r(e,t);break;default:throw TypeError(`booleanを -=, *=, /= で複合代入することはできません`)}this._messageWindow.update()}toAssignableValue(e){let t=Math.max(Math.min(e>0?Math.floor(e):Math.ceil(e),L.USER_VAR_NUM_MAX_VALUE),L.USET_VAR_NUM_MIN_VALUE);return this.isNotNumberTypeOrNaN(t)?0:t}isValidUserVarIndex(e){return typeof e==`number`&&e>=0&&e<L.USER_VAR_NUM&&(e|0)===e}isNotNumberTypeOrNaN(e){return typeof e!=`number`||e!==e}getUserVar(e){return this._userVar.numbered[e]}getUserNameVar(e){return this._userVar.named.get(e.toString())}getAllUserNameVar(){return d(this._userVar.named)}recUserPosition(e,t){var n=this._player.getPosition().getPartsCoord();this.setUserVar(e,n.x),this.setUserVar(t,n.y)}jumpRecUserPosition(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];!qe(n,`v[${e}]`)||!qe(r,`v[${t}]`)||this.forcedJumpGate(n,r)}jumpSpecifiedXPos(e){let t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(e,t.y)}jumpSpecifiedYPos(e){let t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(t.x,e)}outputUserVar(e){console.log(`Var[`+e+`] = `+this._userVar.numbered[e])}setUserVarHP(e){this.setUserVar(e,this._player.getStatus().energy)}setUserVarHPMAX(e){this.setUserVar(e,this._player.getEnergyMax())}setUserVarAT(e,t){switch(t){case`bare`:this.setUserVar(e,this._player.getStatusWithoutEquipments().strength);return;case`equipment`:this.setUserVar(e,this._player.getStatusOfEquipments().strength);return;default:this.setUserVar(e,this._player.getStatus().strength);return}}setUserVarDF(e,t){switch(t){case`bare`:this.setUserVar(e,this._player.getStatusWithoutEquipments().defence);return;case`equipment`:this.setUserVar(e,this._player.getStatusOfEquipments().defence);return;default:this.setUserVar(e,this._player.getStatus().defence);return}}setUserVarMONEY(e){this.setUserVar(e,this._player.getStatus().gold)}setHPUserVar(e,t){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let n=this._userVar.numbered[e];if(qe(n,`v[${e}]`))return this._player.setEnergy(this.toValidStatusValue(n)),this._player.updateStatusValueBox(),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:t})?(this.gameover(),{isGameOver:!0}):{}}setHPMAXUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setEnergyMax(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setATUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setStrength(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setDFUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setDefence(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setMONEYUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setGold(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setUserVarStep(e){this.setUserVar(e,this._player.getMoveCount())}setUserVarVal(e,t){this.setUserVar(e,t)}setUserValOtherUserVal(e,t){this.setUserVar(e,this._userVar.numbered[t])}setUserValAdd(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];typeof n!=`boolean`&&typeof r!=`boolean`&&this.setUserVar(e,n+r)}setUserValSub(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,n-r)}setUserValMul(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,n*r)}setUserValDiv(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,r===0?0:n/r)}setUserValMod(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,r===0?0:n%r)}setUserValRandNum(e,t,n){this.setUserVar(e,Math.floor(Math.random()*this.toAssignableValue(t))+n)}speedChangeJudge(e){this._wwaData.permitChangeGameSpeed=e}execSetMacro(e=``,t){let n=qt(e,this.generateTokenValues(t.triggerParts)),{assignee:r,rawValue:i}=n;switch(r){case`energy`:if(this._player.setEnergy(this.toValidStatusValue(i)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:!0}))return this._player.updateStatusValueBox(),this.gameover(),{isGameOver:!0};break;case`energyMax`:this._player.setEnergyMax(this.toValidStatusValue(i));break;case`strength`:this._player.setStrength(this.toValidStatusValue(i));break;case`defence`:this._player.setDefence(this.toValidStatusValue(i));break;case`gold`:this._player.setGold(this.toValidStatusValue(i));break;case`moveCount`:this._player.setMoveCount(this.toValidStatusValue(i));break;case`variable`:if(isNaN(n.index)||!this.isValidUserVarIndex(n.index))throw Error(`ユーザ変数の添字が範囲外です。`);this.setUserVar(n.index,this.toAssignableValue(i));break;case`map`:this.appearPartsEval(t.triggerParts.position,`${n.x}`,`${n.y}`,n.rawValue,A.MAP);break;case`mapObject`:this.appearPartsEval(t.triggerParts.position,`${n.x}`,`${n.y}`,n.rawValue,A.OBJECT);break;case`item`:this.setPlayerGetItem(n.boxIndex1to12,i);break;case`playerDirection`:this._player.setDir(i);break}return this._player.updateStatusValueBox(),{}}generateTokenValues(e){return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:this._playTimeCalculator?.calculateTimeMs()??0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),itemBox:this._player.getCopyOfItemBox(),partsId:e?.id,partsType:e?.type,partsPosition:e?.position,map:this._wwaData.map,mapObject:this._wwaData.mapObject}}userVarUserIf(e,t){if(t[5]===void 0)throw Error(`$if の引数不足 str=`+t);let n=parseInt(t[0],10),r=parseInt(t[2],10);if(!this.isValidUserVarIndex(n)||!this.isValidUserVarIndex(r))throw Error(`判定対象のユーザ変数の添字が範囲外です!`);let i=this._userVar.numbered[n],a=t[1],o=this._userVar.numbered[r];if(!qe(i,`v[${n}]`)||!qe(o,`v[${r}]`))return;let s=e=>parseInt(e,10)?A.MAP:A.OBJECT;if(this.compareUserVar(i,a,o)){let n=parseInt(t[3],10),r=t[4],i=t[5],a=s(t[6]);this.appearPartsEval(e,r,i,n,a);return}if(t[9]===void 0)return;let c=parseInt(t[7],10),l=t[8],u=t[9],d=s(t[10]);this.appearPartsEval(e,l,u,c,d)}compareUserVar(e,t,n){switch(t){case`==`:return e===n;case`!=`:return e!==n;case`>=`:return e>=n;case`>`:return e>n;case`<=`:return e<=n;case`<`:return e<n;default:throw Error(`未定義の演算子です: ${t}`)}}setPlayerSpeedIndex(e){if(e<L.MIN_SPEED_INDEX||L.MAX_SPEED_INDEX<e)throw Error(`#set_speed の引数が異常です:`+e);if(this._player.isMoving()){this._playerAndObjectsStopWaitingGameSpeedChangeRequest={speedIndex:e};return}this._wwaData.gameSpeedIndex=this._player.setSpeedIndex(e),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0}setUserVarPlayTime(e){this.setUserVar(e,this._playTimeCalculator?.calculateTimeMs()??0)}hideStatus(e,t){if(e<0||e>me.length)throw Error(`隠すパラメータは0から3の間で指定してください。`);this._changeStatusVisibility(me[e],!t),this._player.updateStatusValueBox()}varMap(e,t,n,r,i){if(!this.isValidUserVarIndex(r))throw Error(`対象のユーザ変数の添字が範囲外です`);let a=this._userVar.numbered[r];if(typeof a!=`number`)throw Error(`数値でないパーツ番号は指定できません`);if(a<0)throw Error(`負のパーツ番号は指定できません`);if(i===A.OBJECT&&a>=this.getObjectPartsNum())throw Error(`物体パーツ番号の最大値を超えるパーツ番号が指定されました`);if(i===A.MAP&&a>=this.getMapPartsNum())throw Error(`背景パーツ番号の最大値を超えるパーツ番号が指定されました`);this.appearPartsEval(e,t,n,a,i)}setItemboxBackgroundPosition(e){this._wwaData.imgItemboxX=e.x,this._wwaData.imgItemboxY=e.y,Array.prototype.forEach.call(He(`div.item-cell`),t=>{t.style.backgroundPosition=`-${e.x*L.CHIP_SIZE}px -${e.y*L.CHIP_SIZE}px`})}_getVirtualPadButton(e){if(!Me.includes(e))throw ReferenceError(`WWAの仮想パッド ${e} は存在しません。`);return this._virtualPadButtonElements[e]}_setVirtualPadTouch(e){this._getVirtualPadButton(e).classList.add(`wwa-virtualpad__button--pressed`)}_setVirtualPadLeave(e){this._getVirtualPadButton(e).classList.remove(`wwa-virtualpad__button--pressed`)}_actionGamePadButtonItemMacro(){if(!this._wwaData.gamePadButtonItemTable)return!1;var e=this._wwaData.gamePadButtonItemTable.length,t,n,r;for(t=0;t<e;t++)if(n=this._wwaData.gamePadButtonItemTable[t],n){switch(r=!1,t){case V.BUTTON_CROSS_KEY_LEFT:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)&&(r=!0);break;case V.BUTTON_CROSS_KEY_RIGHT:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)&&(r=!0);break;case V.BUTTON_CROSS_KEY_UP:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)&&(r=!0);break;case V.BUTTON_CROSS_KEY_DOWN:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)&&(r=!0);break}if(this._gamePadStore.buttonTrigger(t)&&(r=!0),r&&this.onselectitem(n))return!0}return!1}setGamePadButtonItemTable(e,t){if(!this._wwaData.gamePadButtonItemTable){var n,r;for(r in this._wwaData.gamePadButtonItemTable=[],V)n=r,this._wwaData.gamePadButtonItemTable[n]=0}this._wwaData.gamePadButtonItemTable.length>e&&(this._wwaData.gamePadButtonItemTable[e]=t)}_checkSaveDataCompatibility(e,t,n){return e!==void 0&&e!==this._wwaData.worldName?Qi.UNMATCHED_WORLD_NAME:n&&n!==Zi(this._wwaData.worldName,this._wwaData.worldPassNumber)?Qi.UNMATCHED_WORLD_PASS_NUMBER:this._isDisallowLoadOldSave&&t!==this.checkOriginalMapString?Qi.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:null}isVisibleStatus(e){switch(e){case`energy`:return this._wwaData.isVisibleStatusEnergy;case`strength`:return this._wwaData.isVisibleStatusStrength;case`defence`:return this._wwaData.isVisibleStatusDefence;case`gold`:return this._wwaData.isVisibleStatusGold;default:throw Error(`存在しないステータスが与えられました`)}}_changeStatusVisibility(e,t){switch(e){case`energy`:this._wwaData.isVisibleStatusEnergy=t;return;case`strength`:this._wwaData.isVisibleStatusStrength=t;return;case`defence`:this._wwaData.isVisibleStatusDefence=t;return;case`gold`:this._wwaData.isVisibleStatusGold=t;return;default:throw Error(`存在しないステータスが与えられました`)}}shouldApplyGameOver({isCalledByMacro:e}){return e?this._wwaData.gameOverPolicy===`default`:this._wwaData.gameOverPolicy===`default`||this._wwaData.gameOverPolicy===`except-macro`}getEnemyStatus(){return this._monster?this._monster.status:-1}setEnemyStatus(e){if(this._monster)this._monster.setStatus(e);else throw Error(`敵が存在しません`)}getGameStatus(){return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:this._playTimeCalculator?.calculateTimeMs()??0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),cameraCoord:this._camera.getPosition().getPartsCoord(),itemBox:this._player.getCopyOfItemBox(),gameSpeedIndex:this._player.getSpeedIndex(),wwaData:this._wwaData}}_debugEvalString(){if(this._player.isControllable())try{let e=this._debugConsoleElement.querySelector(`.console-text-area`);if(!(e instanceof HTMLTextAreaElement))throw Error(`要素 #wwa-debug-console > .console-text-area が textarea 要素でありません`);this._execEvalString(e.value)}catch(e){console.error(e),this.registerSystemMessagePage(`解析中にエラーが発生しました :
|
|
205
|
+
`;this._sheet.addRule===void 0?(this._stylePos[Ce.MESSAGE_WINDOW]=this._sheet.insertRule(`${t} { ${r} }`,0),this._stylePos[Ce.SIDEBAR]=this._sheet.insertRule(`${i} { ${a} }`,1)):(this._stylePos[Ce.MESSAGE_WINDOW]=this._sheet.addRule(t,r),this._stylePos[Ce.SIDEBAR]=this._sheet.addRule(i,a))}changeStyleRule(e,t,n,r){e===Se.COLOR_FRAME?(this._wwaData.frameColorR=t,this._wwaData.frameColorG=n,this._wwaData.frameColorB=r):e===Se.COLOR_FRAMEOUT?(this._wwaData.frameOutColorR=t,this._wwaData.frameOutColorG=n,this._wwaData.frameOutColorB=r):e===Se.COLOR_STR?(this._wwaData.fontColorR=t,this._wwaData.fontColorG=n,this._wwaData.fontColorB=r):e===Se.COLOR_STATUS_STR&&(this._wwaData.statusColorR=t,this._wwaData.statusColorG=n,this._wwaData.statusColorB=r),this.updateCSSRule()}showMonsterWindow(){this._monsterWindow.show()}isClassicMode(){return this._isClassicModeEnable}isConsoleOutputMode(){return this._useConsole}forcedJumpGate(e,t){this._player.isWaitingMessageOrManualPause()?this._windowCloseWaitingJumpGateRequest={x:e,y:t}:(this._windowCloseWaitingJumpGateRequest=void 0,this._player.jumpTo(new C(this,e,t,0,0)))}setUserVarIndecies(e,t,n=`=`){let r=this._userVar.named.get(e[0]),i=e.length-1,a=e.slice(1,i).reduce((e,t)=>Ye(e,t),r),o=t,s=e[i];if(e.length>1){switch(n){case`=`:o=t;break;case`+=`:o=Ye(a,s)+t;break;case`-=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)-t;break;case`*=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)*t;break;case`/=`:if(typeof t!=`number`)throw TypeError(`その演算子は利用できません: ${n}`);o=Ye(a,s)/t;break;default:throw TypeError(`その演算子は利用できません: ${n}`)}if(Array.isArray(a))if(typeof s==`number`)a[s]=o;else throw TypeError(`配列の添字に数字以外は使えません: ${e[i]}`);else if(typeof a==`object`&&a)Xe(a,String(s),o);else if(typeof a==`string`)throw TypeError(`文字列 "${a}" の特定の文字を直接書き換えることはできません`);else Xe(a,s,o);this._userVar.named.set(e[0],r)}else throw Error(`indeciesの引数が足りていません: ${e}`)}setUserVar(e,t,n){let r=(e,t)=>{if(typeof e==`number`){if(typeof t!=`number`)throw TypeError(`数字index変数への数値以外の代入は今のところできません。あらかじめご了承ください。`);this._userVar.numbered[e]=typeof t==`number`?this.toAssignableValue(t):t}else this._userVar.named.set(e,t)},i=(e=>typeof e==`number`?this._userVar.numbered[e]:this._userVar.named.get(e))(e);if(typeof t==`number`)switch(n){case`+=`:if(typeof i==`number`)r(e,i+t);else if(typeof i==`string`)r(e,String(i)+t);else throw TypeError(`boolean に number は足せません`);break;case`-=`:if(typeof i==`number`)r(e,i-t);else throw TypeError(`string/boolean から number は引けません`);break;case`*=`:if(typeof i==`number`)r(e,i*t);else throw TypeError(`string/boolean に number はかけられません`);break;case`/=`:if(typeof i==`number`)r(e,i/t);else throw TypeError(`string/boolean は number で割れません`);break;default:r(e,t);break}else if(typeof t==`string`)switch(n){case`+=`:r(e,i+t);break;case`=`:r(e,t);break;default:throw TypeError(`文字列を -=, *=, /= で複合代入することはできません`)}else switch(n){case`+=`:if(typeof i==`string`)r(e,i+t);else throw TypeError(`number/boolean に boolean を足せません`);break;case`=`:r(e,t);break;default:throw TypeError(`booleanを -=, *=, /= で複合代入することはできません`)}this._messageWindow.update()}toAssignableValue(e){let t=Math.max(Math.min(e>0?Math.floor(e):Math.ceil(e),L.USER_VAR_NUM_MAX_VALUE),L.USET_VAR_NUM_MIN_VALUE);return this.isNotNumberTypeOrNaN(t)?0:t}isValidUserVarIndex(e){return typeof e==`number`&&e>=0&&e<L.USER_VAR_NUM&&(e|0)===e}isNotNumberTypeOrNaN(e){return typeof e!=`number`||e!==e}getUserVar(e){return this._userVar.numbered[e]}getUserNameVar(e){return this._userVar.named.get(e.toString())}getAllUserNameVar(){return d(this._userVar.named)}recUserPosition(e,t){var n=this._player.getPosition().getPartsCoord();this.setUserVar(e,n.x),this.setUserVar(t,n.y)}jumpRecUserPosition(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];!qe(n,`v[${e}]`)||!qe(r,`v[${t}]`)||this.forcedJumpGate(n,r)}jumpSpecifiedXPos(e){let t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(e,t.y)}jumpSpecifiedYPos(e){let t=this._player.getPosition().getPartsCoord();this.forcedJumpGate(t.x,e)}outputUserVar(e){console.log(`Var[`+e+`] = `+this._userVar.numbered[e])}setUserVarHP(e){this.setUserVar(e,this._player.getStatus().energy)}setUserVarHPMAX(e){this.setUserVar(e,this._player.getEnergyMax())}setUserVarAT(e,t){switch(t){case`bare`:this.setUserVar(e,this._player.getStatusWithoutEquipments().strength);return;case`equipment`:this.setUserVar(e,this._player.getStatusOfEquipments().strength);return;default:this.setUserVar(e,this._player.getStatus().strength);return}}setUserVarDF(e,t){switch(t){case`bare`:this.setUserVar(e,this._player.getStatusWithoutEquipments().defence);return;case`equipment`:this.setUserVar(e,this._player.getStatusOfEquipments().defence);return;default:this.setUserVar(e,this._player.getStatus().defence);return}}setUserVarMONEY(e){this.setUserVar(e,this._player.getStatus().gold)}setHPUserVar(e,t){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let n=this._userVar.numbered[e];if(qe(n,`v[${e}]`))return this._player.setEnergy(this.toValidStatusValue(n)),this._player.updateStatusValueBox(),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:t})?(this.gameover(),{isGameOver:!0}):{}}setHPMAXUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setEnergyMax(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setATUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setStrength(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setDFUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setDefence(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setMONEYUserVar(e){if(!this.isValidUserVarIndex(e))throw Error(`ユーザ変数の添字が範囲外です。`);let t=this._userVar.numbered[e];qe(t,`v[${e}]`)&&(this._player.setGold(this.toValidStatusValue(t)),this._player.updateStatusValueBox())}setUserVarStep(e){this.setUserVar(e,this._player.getMoveCount())}setUserVarVal(e,t){this.setUserVar(e,t)}setUserValOtherUserVal(e,t){this.setUserVar(e,this._userVar.numbered[t])}setUserValAdd(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];typeof n!=`boolean`&&typeof r!=`boolean`&&this.setUserVar(e,n+r)}setUserValSub(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,n-r)}setUserValMul(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,n*r)}setUserValDiv(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,r===0?0:n/r)}setUserValMod(e,t){let n=this._userVar.numbered[e],r=this._userVar.numbered[t];qe(n,`v[${e}]`)&&qe(r,`v[${t}]`)&&this.setUserVar(e,r===0?0:n%r)}setUserValRandNum(e,t,n){this.setUserVar(e,Math.floor(Math.random()*this.toAssignableValue(t))+n)}speedChangeJudge(e){this._wwaData.permitChangeGameSpeed=e}execSetMacro(e=``,t){let n=qt(e,this.generateTokenValues(t.triggerParts)),{assignee:r,rawValue:i}=n;switch(r){case`energy`:if(this._player.setEnergy(this.toValidStatusValue(i)),this._player.isDead()&&this.shouldApplyGameOver({isCalledByMacro:!0}))return this._player.updateStatusValueBox(),this.gameover(),{isGameOver:!0};break;case`energyMax`:this._player.setEnergyMax(this.toValidStatusValue(i));break;case`strength`:this._player.setStrength(this.toValidStatusValue(i));break;case`defence`:this._player.setDefence(this.toValidStatusValue(i));break;case`gold`:this._player.setGold(this.toValidStatusValue(i));break;case`moveCount`:this._player.setMoveCount(this.toValidStatusValue(i));break;case`variable`:if(isNaN(n.index)||!this.isValidUserVarIndex(n.index))throw Error(`ユーザ変数の添字が範囲外です。`);this.setUserVar(n.index,this.toAssignableValue(i));break;case`map`:this.appearPartsEval(t.triggerParts.position,`${n.x}`,`${n.y}`,n.rawValue,A.MAP);break;case`mapObject`:this.appearPartsEval(t.triggerParts.position,`${n.x}`,`${n.y}`,n.rawValue,A.OBJECT);break;case`item`:this.setPlayerGetItem(n.boxIndex1to12,i);break;case`playerDirection`:this._player.setDir(i);break}return this._player.updateStatusValueBox(),{}}generateTokenValues(e){return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:this._playTimeCalculator?.calculateTimeMs()??0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),itemBox:this._player.getCopyOfItemBox(),partsId:e?.id,partsType:e?.type,partsPosition:e?.position,map:this._wwaData.map,mapObject:this._wwaData.mapObject}}userVarUserIf(e,t){if(t[5]===void 0)throw Error(`$if の引数不足 str=`+t);let n=parseInt(t[0],10),r=parseInt(t[2],10);if(!this.isValidUserVarIndex(n)||!this.isValidUserVarIndex(r))throw Error(`判定対象のユーザ変数の添字が範囲外です!`);let i=this._userVar.numbered[n],a=t[1],o=this._userVar.numbered[r];if(!qe(i,`v[${n}]`)||!qe(o,`v[${r}]`))return;let s=e=>parseInt(e,10)?A.MAP:A.OBJECT;if(this.compareUserVar(i,a,o)){let n=parseInt(t[3],10),r=t[4],i=t[5],a=s(t[6]);this.appearPartsEval(e,r,i,n,a);return}if(t[9]===void 0)return;let c=parseInt(t[7],10),l=t[8],u=t[9],d=s(t[10]);this.appearPartsEval(e,l,u,c,d)}compareUserVar(e,t,n){switch(t){case`==`:return e===n;case`!=`:return e!==n;case`>=`:return e>=n;case`>`:return e>n;case`<=`:return e<=n;case`<`:return e<n;default:throw Error(`未定義の演算子です: ${t}`)}}setPlayerSpeedIndex(e){if(e<L.MIN_SPEED_INDEX||L.MAX_SPEED_INDEX<e)throw Error(`#set_speed の引数が異常です:`+e);if(this._player.isMoving()){this._playerAndObjectsStopWaitingGameSpeedChangeRequest={speedIndex:e};return}this._wwaData.gameSpeedIndex=this._player.setSpeedIndex(e),this._playerAndObjectsStopWaitingGameSpeedChangeRequest=void 0}setUserVarPlayTime(e){this.setUserVar(e,this._playTimeCalculator?.calculateTimeMs()??0)}hideStatus(e,t){if(e<0||e>me.length)throw Error(`隠すパラメータは0から3の間で指定してください。`);this._changeStatusVisibility(me[e],!t),this._player.updateStatusValueBox()}varMap(e,t,n,r,i){if(!this.isValidUserVarIndex(r))throw Error(`対象のユーザ変数の添字が範囲外です`);let a=this._userVar.numbered[r];if(typeof a!=`number`)throw Error(`数値でないパーツ番号は指定できません`);if(a<0)throw Error(`負のパーツ番号は指定できません`);if(i===A.OBJECT&&a>=this.getObjectPartsNum())throw Error(`物体パーツ番号の最大値を超えるパーツ番号が指定されました`);if(i===A.MAP&&a>=this.getMapPartsNum())throw Error(`背景パーツ番号の最大値を超えるパーツ番号が指定されました`);this.appearPartsEval(e,t,n,a,i)}setItemboxBackgroundPosition(e){this._wwaData.imgItemboxX=e.x,this._wwaData.imgItemboxY=e.y,Array.prototype.forEach.call(He(`div.item-cell`),t=>{t.style.backgroundPosition=`-${e.x*L.CHIP_SIZE}px -${e.y*L.CHIP_SIZE}px`})}_getVirtualPadButton(e){if(!Me.includes(e))throw ReferenceError(`WWAの仮想パッド ${e} は存在しません。`);return this._virtualPadButtonElements[e]}_setVirtualPadTouch(e){this._getVirtualPadButton(e).classList.add(`wwa-virtualpad__button--pressed`)}_setVirtualPadLeave(e){this._getVirtualPadButton(e).classList.remove(`wwa-virtualpad__button--pressed`)}_actionGamePadButtonItemMacro(){if(!this._wwaData.gamePadButtonItemTable)return!1;var e=this._wwaData.gamePadButtonItemTable.length,t,n,r;for(t=0;t<e;t++)if(n=this._wwaData.gamePadButtonItemTable[t],n){switch(r=!1,t){case V.BUTTON_CROSS_KEY_LEFT:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_LEFT)&&(r=!0);break;case V.BUTTON_CROSS_KEY_RIGHT:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_RIGHT)&&(r=!0);break;case V.BUTTON_CROSS_KEY_UP:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_UP)&&(r=!0);break;case V.BUTTON_CROSS_KEY_DOWN:this._gamePadStore.crossPressed(V.BUTTON_CROSS_KEY_DOWN)&&(r=!0);break}if(this._gamePadStore.buttonTrigger(t)&&(r=!0),r&&this.onselectitem(n))return!0}return!1}setGamePadButtonItemTable(e,t){if(!this._wwaData.gamePadButtonItemTable){var n,r;for(r in this._wwaData.gamePadButtonItemTable=[],V)n=r,this._wwaData.gamePadButtonItemTable[n]=0}this._wwaData.gamePadButtonItemTable.length>e&&(this._wwaData.gamePadButtonItemTable[e]=t)}_checkSaveDataCompatibility(e,t,n){return e!==void 0&&e!==this._wwaData.worldName?Qi.UNMATCHED_WORLD_NAME:n&&n!==Zi(this._wwaData.worldName,this._wwaData.worldPassNumber)?Qi.UNMATCHED_WORLD_PASS_NUMBER:this._isDisallowLoadOldSave&&t!==this.checkOriginalMapString?Qi.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:null}isVisibleStatus(e){switch(e){case`energy`:return this._wwaData.isVisibleStatusEnergy;case`strength`:return this._wwaData.isVisibleStatusStrength;case`defence`:return this._wwaData.isVisibleStatusDefence;case`gold`:return this._wwaData.isVisibleStatusGold;default:throw Error(`存在しないステータスが与えられました`)}}_changeStatusVisibility(e,t){switch(e){case`energy`:this._wwaData.isVisibleStatusEnergy=t;return;case`strength`:this._wwaData.isVisibleStatusStrength=t;return;case`defence`:this._wwaData.isVisibleStatusDefence=t;return;case`gold`:this._wwaData.isVisibleStatusGold=t;return;default:throw Error(`存在しないステータスが与えられました`)}}shouldApplyGameOver({isCalledByMacro:e}){return e?this._wwaData.gameOverPolicy===`default`:this._wwaData.gameOverPolicy===`default`||this._wwaData.gameOverPolicy===`except-macro`}getEnemyStatus(){return this._monster?this._monster.status:-1}setEnemyStatus(e){if(this._monster)this._monster.setStatus(e);else throw Error(`敵が存在しません`)}getGameStatus(){return{totalStatus:this._player.getStatus(),bareStatus:this._player.getStatusWithoutEquipments(),itemStatus:this._player.getStatusOfEquipments(),energyMax:this._player.getEnergyMax(),moveCount:this._player.getMoveCount(),playTime:this._playTimeCalculator?.calculateTimeMs()??0,userVars:this._userVar.numbered,playerCoord:this._player.getPosition().getPartsCoord(),playerDirection:this._player.getDir(),cameraCoord:this._camera.getPosition().getPartsCoord(),itemBox:this._player.getCopyOfItemBox(),gameSpeedIndex:this._player.getSpeedIndex(),wwaData:this._wwaData}}_debugEvalString(){try{let e=this._debugConsoleElement.querySelector(`.console-text-area`);if(!(e instanceof HTMLTextAreaElement))throw Error(`要素 #wwa-debug-console > .console-text-area が textarea 要素でありません`);this._execEvalString(e.value)}catch(e){console.error(e),this.registerSystemMessagePage(`解析中にエラーが発生しました :
|
|
206
206
|
`+e.message)}}_execEvalString(e,t){try{let n=this.convertWwaNodes(e);t&&this.evalCalcWwaNodeGenerator.setTriggerParts(t.id,t.type,t.position),this.evalCalcWwaNodeGenerator.evalWwaNodes(n),this.evalCalcWwaNodeGenerator.clearTemporaryState()}catch(e){console.error(e),this.registerSystemMessagePage(`解析中にエラーが発生しました :
|
|
207
207
|
`+e.message)}}_returnEvalString(e){try{let t=$(Fs(`(`+e+`)`));return this.evalCalcWwaNodeGenerator.evalWwaNode(t)}catch(e){console.error(e),this.registerSystemMessagePage(`解析中にエラーが発生しました :
|
|
208
|
-
`+e.message,!1)}}movePlayer(e){this._player.controll(e)}isPlayerWaitingMessage(){return this._player.
|
|
209
|
-
`:``).replaceAll(`%MAX_SPEED_INDEX%`,String(L.MAX_SPEED_INDEX+1)).replaceAll(`%GAME_SPEED_INDEX%`,String(e+1)).replaceAll(`%SPEED_UP_BUTTON%`,this.userDevice.os===M.NINTENDO?`+ボタン`:`Pキー`).replaceAll(`%SPEED_DOWN_BUTTON%`,this.userDevice.os===M.NINTENDO?`-ボタン`:`Iキー`)}default:return t}}overwriteSystemMessage(e,t){this._wwaData.customSystemMessages[e]=t}},Nc=!1;function Pc(e,t){if(e===null)return;let n=document.createElement(`button`);n.classList.add(`wwa-virtualpad-toggle-button`),n.textContent=`仮想パッド表示切り替え`,n.addEventListener(`click`,t),e.appendChild(n)}function Fc(e){if(e===null)return;let t=document.createElement(`section`);t.setAttribute(`id`,`wwa-debug-console`);let n=document.createElement(`textarea`);n.setAttribute(`rows`,`10`),n.setAttribute(`cols`,`60`),n.textContent=`v["money"] = 100;
|
|
208
|
+
`+e.message,!1)}}movePlayer(e){this._player.controll(e)}isPlayerWaitingMessage(){return this._player.isWaitingMessageOrManualPause()}isManualPause(){return this._player.isManualPause()}_loadSystemMessage(e){if(this._wwaData.customSystemMessages[e])return this._wwaData.customSystemMessages[e];let t=_[e];if(t.mapdataParams)switch(t.mapdataParams.messageArea){case`message`:{let e=this._wwaData.message[t.mapdataParams.index];return e===``?t.defaultText:e}case`systemMessage`:{let e=this._wwaData.systemMessage[t.mapdataParams.index];return e===``?t.defaultText:e}default:throw Error(`システムエラー: システムメッセージの設定がおかしいようです`)}return t.defaultText}resolveSystemMessage(e){let t=this._loadSystemMessage(e);switch(e){case g.ITEM_SELECT_TUTORIAL:return t.replaceAll(`%HOW_TO_USE_ITEM%`,(()=>{switch(this.userDevice.device){case re.PC:return`右のボックスを選択する`;case re.VR:return`右のボックスをクリックする`;case re.SP:return`右のボックスをタップする`;case re.GAME:switch(this.userDevice.os){case M.NINTENDO:return`Xボタンを押すか、右のボックスをタップする`;case M.PLAY_STATION:return`△ボタンを押す`;case M.XBOX:return`Yボタンを押す`;default:return`右のボックスを選択する`}default:return`右のボックスを選択する`}})());case g.GAME_SPEED_CHANGED:{let e=this._player.getSpeedIndex();return t.replaceAll(`%GAME_SPEED_NAME%`,pe[e]).replaceAll(`%HIGH_SPEED_MESSAGE%`,this.isBattleSpeedIndexForQuickBattle(e)?`戦闘も速くなります。
|
|
209
|
+
`:``).replaceAll(`%MAX_SPEED_INDEX%`,String(L.MAX_SPEED_INDEX+1)).replaceAll(`%GAME_SPEED_INDEX%`,String(e+1)).replaceAll(`%SPEED_UP_BUTTON%`,this.userDevice.os===M.NINTENDO?`+ボタン`:`Pキー`).replaceAll(`%SPEED_DOWN_BUTTON%`,this.userDevice.os===M.NINTENDO?`-ボタン`:`Iキー`)}default:return t}}overwriteSystemMessage(e,t){this._wwaData.customSystemMessages[e]=t}manualPause(e,t){this._player.setManualPause(e,t)}},Nc=!1;function Pc(e,t){if(e===null)return;let n=document.createElement(`button`);n.classList.add(`wwa-virtualpad-toggle-button`),n.textContent=`仮想パッド表示切り替え`,n.addEventListener(`click`,t),e.appendChild(n)}function Fc(e){if(e===null)return;let t=document.createElement(`section`);t.setAttribute(`id`,`wwa-debug-console`);let n=document.createElement(`textarea`);n.setAttribute(`rows`,`10`),n.setAttribute(`cols`,`60`),n.textContent=`v["money"] = 100;
|
|
210
210
|
v["name"] = "ヤツロウ";
|
|
211
211
|
MSG(v["name"]+"「俺の所持金は"+v["money"]+"ゴールドだ」");
|
|
212
212
|
for(LP[0]=0; LP[0]<2; LP[0]++) {
|