@wwawing/engine 4.0.9-fps-measure.based-on.4.0.8 → 4.0.11

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.
Files changed (2) hide show
  1. package/lib/wwa.js +10 -10
  2. package/package.json +11 -11
package/lib/wwa.js CHANGED
@@ -35,7 +35,7 @@ file name:`+this._fileName)}),this._image.src=this._fileName,this._isLoaded=!0)}
35
35
  `).replace(/\\\/\\\//gi,`//`)}function ir(e){if(e===``)return{pageContents:[]};let t=e.split(/\<script\>/i),[n,r]=t.length>1?[t[0],t[1]]:[t[0]];return{pageContents:n.split(/\<p\>/gi),script:r}}function ar({content:e,script:t,generatingOption:n,pageType:r,parseMacro:i,evalScript:a,generateTokenValuesCallback:o}){let s,c,l,u=sr(e,i),d=[];if(u.forEach((e,t)=>{try{let r=t===0?void 0:u[t-1].type,i=d[d.length-1],f=cr(e,!s||!or(r),o,a,{triggerParts:n.triggerParts}),p=lr(f,e,i,d);p&&(l=p),r?ur(e,r,c,f,i,l,o,{triggerParts:n.triggerParts}):s=f,f&&(c=f)}catch(e){console.error(`$if-$else_if-$else-$endif マクロの解析中にエラーが発生しました。ページ ${t}`),console.error(e)}}),t&&r===`first`){let e=nr.createEmptyMessage(o,a,t);e.next=s,s=e}return{firstNode:s,isLastPage:r===`last`,triggerParts:n.triggerParts,isSystemMessage:n.isSystemMessage,showChoice:r===`first`?n.showChoice:void 0,scoreOption:r===`first`?n.scoreOption:void 0,additionalItems:n.additionalItems}}var or=e=>e===I.SHOW_STR||e===I.SHOW_STR2||e===`text`||e===`normalMacro`;function sr(e,t){return e.split(`
36
36
  `).map(e=>{let n=e.match(/(\$(?:[a-zA-Z_][a-zA-Z0-9_]*)(?:.*))/);if(!n||n.length<2)return e.startsWith(`$`)?void 0:{type:`text`,text:e};let r=t(n[1]);switch(r.macroType){case I.IF:case I.ELSE_IF:case I.ELSE:case I.END_IF:case I.SHOW_STR:case I.SHOW_STR2:return{type:r.macroType,text:e,macro:r};default:return{type:`normalMacro`,text:e,macro:r}}}).filter(Boolean)}function cr(e,t,n,r,i){switch(e.type){case I.IF:return new tr([{descriminant:qt(e.macro.macroArgs[0])}],n);case I.SHOW_STR:case I.SHOW_STR2:return t?new nr(fr(e.macro.macroArgs,n,{triggerParts:i.triggerParts,version:e.type===I.SHOW_STR2?2:1}),n,r):void 0;case`text`:return t?new nr(e.text,n,r):void 0;case`normalMacro`:return t?new nr(``,n,r,[e.macro]):void 0;default:return}}function lr(e,t,n,r){let i=r.length===0;switch(t.type){case I.IF:r.push(e);return;case I.ELSE_IF:if(i)throw Error(`構文エラー: $if を呼ぶ前に $else_if は呼べません`);n.appendBranch({descriminant:qt(t.macro.macroArgs[0])});return;case I.ELSE:if(i)throw Error(`構文エラー: $if を呼ぶ前に $else は呼べません`);n.appendBranch({descriminant:!0,elseBranch:{type:`real`}});return;case I.END_IF:if(i)throw Error(`構文エラー: $if を呼ぶ前に $endif は呼べません`);return r.pop()}}function ur(e,t,n,r,i,a,o,s){let c=or(t);switch(t){case I.IF:case I.ELSE_IF:case I.ELSE:{if(!r||!i)return;let e=i.getLastUnconnectedBranch();if(e)e.next=r;else throw Error(`lastUnconnectedBranchが見つかりませんでした。`);return}case I.END_IF:if(!r||!(a instanceof tr))return;for(let e=0;e<a.branches.length;e++){let t=a.branches[e].next;if(!t){a.branches[e].next=r;continue}dr(t,r)}a.hasElseBranch()||a.branches.push({next:r,descriminant:!0,elseBranch:{type:`pesudo-else`}});return;default:{if(!c||!(n instanceof nr))return;let t=!n.isEmpty();e.type===I.SHOW_STR||e.type===I.SHOW_STR2?n.appendMessage(fr(e.macro.macroArgs,o,{triggerParts:s.triggerParts,version:e.type===I.SHOW_STR2?2:1}),t):e.type===`text`?n.appendMessage(e.text,t):e.type===`normalMacro`?n.macro.push(e.macro):n.next=r}}}function dr(e,t){let n=e;for(;;)if(n instanceof tr&&(n=n.branches[0].next),n instanceof nr){if(!n.next){n.next=t;return}n=n.next}}function fr(e,t,n){return e.map(e=>{let r=Number(e);return isNaN(r)?Kt(e)?()=>Gt(e,t(n.triggerParts)):e.replace(/\\n/g,`
37
37
  `):()=>{let e=t(n.triggerParts).userVars;return n.version===1?e[r]:r}})}function pr(e,t,n,r,i){let{pageContents:a,script:o}=ir(rr(e));return a.length===0?[{firstNode:nr.createEmptyMessage(i,r,o),isLastPage:!0,...t}]:a.map((e,s)=>ar({script:o,content:e,generatingOption:t,pageType:mr(s,a.length),parseMacro:n,evalScript:r,generateTokenValuesCallback:i}))}function mr(e,t){return e===0?`first`:e===t-1?`last`:`other`}function hr(e){if(e===void 0)return!0;if(e instanceof tr)return e.branches.reduce((e,t)=>e&&hr(t.next),!0);if(e instanceof nr)return e.isEmpty()&&hr(e.next)}var gr=class{constructor(e,t,n,r,i,a,o){this._wwa=e,this._coord=t,this._width=n,this._height=r,this._isVisible=i,this._parentElement=a,this._element=document.createElement(`div`),this._element.style.position=`absolute`,this._element.style.borderWidth=`2px`,this._element.style.borderStyle=`solid`,e.isClassicMode()?this._element.style.borderRadius=`15px`:this._element.style.borderRadius=`10px`,this._element.classList.add(`wwa-message-window`),this._element.style.zIndex=o+``,this._element.style.left=this._coord.x+`px`,this._element.style.top=this._coord.y+`px`,this._element.style.width=this._width+`px`,this._element.style.height=this._height+`px`,this._parentElement.appendChild(this._element)}update(e){}show(){this._isVisible=!0,this._element.style.display=`block`,this.update(),this._wwa.wwaCustomEvent(`wwa_window_show`,{name:this.windowName,element:this._element,text:this._element.textContent})}hide(){this._isVisible=!1,this._element.style.display=`none`,this.update(),this._wwa.wwaCustomEvent(`wwa_window_hide`,{name:this.windowName})}isVisible(){return this._isVisible}get windowName(){return`TextWindow`}},_r=class extends gr{constructor(e,t,n,r,i,a,o){super(e,new S(t.x,t.y),n,r,i,a,201),this._cgFileName=o,this._monsterBox=document.createElement(`div`),this._monsterBox.style.width=R.CHIP_SIZE+`px`,this._monsterBox.style.height=R.CHIP_SIZE+`px`,this._monsterBox.style.position=`absolute`,this._monsterBox.style.left=`10px`,this._monsterBox.style.top=`10px`,this._monsterBox.style.backgroundImage=`url(`+this._cgFileName.replace(`(`,`\\(`).replace(`)`,`\\)`)+`)`,this._monsterBox.style.backgroundPosition=`0 0`,this._element.appendChild(this._monsterBox),this._energyBox=document.createElement(`div`),this._energyBox.style.position=`absolute`,this._energyBox.style.left=`80px`,this._energyBox.style.top=`10px`,this._energyBox.textContent=`生命力 0`,this._element.appendChild(this._energyBox),this._strengthBox=document.createElement(`div`),this._strengthBox.style.position=`absolute`,this._strengthBox.style.left=`80px`,this._strengthBox.style.top=`30px`,this._strengthBox.textContent=`攻撃力 0`,this._element.appendChild(this._strengthBox),this._defenceBox=document.createElement(`div`),this._defenceBox.style.position=`absolute`,this._defenceBox.style.left=`180px`,this._defenceBox.style.top=`30px`,this._defenceBox.textContent=`防御力 0`,this._element.appendChild(this._defenceBox),this._isVisible?this._element.style.display=`block`:this._element.style.display=`none`}update(e){e!==void 0&&(this._monsterBox.style.backgroundPosition=`-`+e.imgCoord.x+`px -`+e.imgCoord.y+`px`,this._energyBox.textContent=`生命力 `+e.status.energy,this._strengthBox.textContent=`攻撃力 `+e.status.strength,this._defenceBox.textContent=`防御力 `+e.status.defence)}get windowName(){return`MonsterWindow`}},vr=class extends gr{static{this.WINDOW_NAME=`ScoreWindow`}constructor(e,t,n,r){e.isClassicMode()?(super(e,new S(R.CHIP_SIZE*2,30),R.CHIP_SIZE*7,40,n,r,202),this._element.style.borderWidth=`0`,this._element.style.borderRadius=`4px`,this._element.style.fontSize=`20px`,this._element.style.lineHeight=`40px`):super(e,new S(t.x,t.y),340,30,n,r,202),this._element.style.textAlign=`center`,this._isVisible?this._element.style.display=`block`:this._element.style.display=`none`,this.update(0)}update(e){e!==void 0&&(this._element.textContent=`Score: `+e)}get windowName(){return`ScoreWindow`}},yr=class{constructor(e,t,n,r,i,a,o,s,c,l){this._wwaSave=void 0,this._save_select_id=0,this._save_counter=0,this._save_close=!1;var u=this,d=a.replace(`(`,`\\(`).replace(`)`,`\\)`);switch(this._wwa=e,this._cgFileName=a,this._x=t,this._y=n,this._width=r,this._height=i,this._message=``,this._isVisible=o,this._isYesno=s,this._isItemMenu=c,this._element=document.createElement(`div`),this._element.id=`wwa-text-message-window`,this._element.classList.add(`wwa-message-window`),this._msgWrapperElement=document.createElement(`div`),this._msgWrapperElement.style.textAlign=`left`,this._msgWrapperElement.style.wordWrap=`break-word`,this._msgWrapperElement.style.margin=e.isClassicMode()?`8px 0 8px 16px`:`0`,this._msgWrapperElement.style.padding=e.isClassicMode()?`0`:`7px`,this._element.appendChild(this._msgWrapperElement),this._saveElement=document.createElement(`div`),this._saveElement.style.padding=`0`,this._saveElement.style.margin=`0`,this._element.appendChild(this._saveElement),this._dummyElement=document.createElement(`div`),this._dummyElement.style.display=`none`,this._dummyElement.style.padding=`0`,this._dummyElement.style.margin=`0`,this._dummyElement.style.height=`55px`,this._element.appendChild(this._dummyElement),this._ynWrapperElement=document.createElement(`div`),this._ynWrapperElement.classList.add(`wwa-yesno-wrapper`),this._element.appendChild(this._ynWrapperElement),this._parentElement=l,this._parentElement.appendChild(this._element),this._divYesElement=document.createElement(`div`),this._divYesElement.classList.add(`wwa-yes-button`),this._divYesElement.style.background=`url(`+d+`)`,this._divYesElement.onclick=function(){u._isInputDisable||(e.setYesNoInput(k.YES),u.update())},this._divYesElement.style.cursor=`pointer`,this._divNoElement=document.createElement(`div`),this._divNoElement.classList.add(`wwa-no-button`),this._divNoElement.style.background=`url(`+d+`)`,this._divNoElement.onclick=function(){u._isInputDisable||(e.setYesNoInput(k.NO),u.update())},this._ynWrapperElement.appendChild(this._divYesElement),this._ynWrapperElement.appendChild(this._divNoElement),u._isInputDisable=!1,e.userDevice.device){case re.SP:case re.VR:this._parentElement.classList.add(`useScaleUp`);break}this.update()}setPosition(e,t,n,r){this._x=e,this._y=t,this._width=n,this._height=r,this.update()}setPositionByPlayerPosition(e,t,n,r,i){var a=r.getPartsCoord().substract(i.getPartsCoord()).y,o=e?2:t?3:n?1:a>=Math.ceil(R.V_PARTS_NUM_IN_WINDOW/2)?0:2;this.setPositionEasy(o)}setPositionEasy(e){var t=Math.floor(this._element.clientHeight/2);if(e===1){this._y=R.MAP_WINDOW_HEIGHT/2-t,this.update();return}if(e===0){this._y=Math.max(20,R.MAP_WINDOW_HEIGHT/4-t)+10,this.update();return}if(e===2){this._y=Math.min(R.MAP_WINDOW_HEIGHT-20-this._element.clientHeight,R.MAP_WINDOW_HEIGHT*3/4-t),this.update();return}if(e===3){this._y=80,this.update();return}}setMessage(e){this._message=e,this.update()}clear(){this._message=``,this.update()}setYesNoChoice(e){return this._isInputDisable=!1,this._isYesno=e,this.update(),this._isYesno}isYesNoChoice(){return this._isYesno}isSaveChoice(){return this._isSave}setItemMenuChoice(e){return this._isInputDisable=!1,this._isItemMenu=e,this.update(),this._isItemMenu}isItemMenuChoice(){return this._isItemMenu}setInputDisable(){this._isInputDisable=!0}isInputDisable(){return this._isInputDisable}show(){this._isVisible=!0,this.update()}hide(){this._isVisible=!1,this.update()}isVisible(){return this._isVisible}isWideChar(e){return e.match(/^[^\x01-\x7E\xA1-\xDF]+$/)!==null}createClassicTextElement(e){var t=document.createElement(`span`);let n=0,r=``;for(let a=0;a<e.length||n!=0;a++)if(this.isWideChar(e.charAt(a))?n+=2:n+=1,r+=e.charAt(a),n+1>R.MSG_STR_WIDTH*2){(e.charAt(a+1)===`。`||e.charAt(a+1)===`、`)&&(r+=e.charAt(a+1),a++);var i=document.createElement(`span`);i.style.display=`inline-block`,i.style.width=`100%`,i.textContent=r,t.appendChild(i),n=0,r=``}return t}update(){var e=this._wwa.getYesNoImgCoord();this._isYesno?(this._wwa.getYesNoState()===k.YES?(this._divYesElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_YESP_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`,this._divNoElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_NO_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`):this._wwa.getYesNoState()===k.NO?(this._divYesElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_YES_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`,this._divNoElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_NOP_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`):(this._divYesElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_YES_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`,this._divNoElement.style.backgroundPosition=`-`+(e.x+R.IMGRELPOS_YESNO_NO_X)*R.CHIP_SIZE+`px -`+e.y*R.CHIP_SIZE+`px`),this._ynWrapperElement.style.display=`block`):this._ynWrapperElement.style.display=`none`,this._msgWrapperElement.textContent=``;var t=this._message.split(`
38
- `);t.forEach((e,n)=>{let r;this._wwa.isClassicMode()?r=this.createClassicTextElement(e):(r=document.createElement(`span`),r.textContent=t[n]),this._msgWrapperElement.appendChild(r),this._msgWrapperElement.appendChild(document.createElement(`br`))}),this._isVisible?(this._element.style.left=this._x+`px`,this._element.style.top=this._y+`px`):(this._element.style.left=`-999999px`,this._element.style.top=`-999999px`),this._isSave?this._saveElement.style.display=`block`:this._saveElement.style.display=`none`,this._element.style.width=this._width+`px`,this._element.style.minHeight=this._height+`px`}setWWASave(e){this._wwaSave=e}createSaveDom(){for(var e,t=document.createElement(`div`),n,r,i,a,o,s=document.getElementById(`disp-energy`),c,l=s.style.backgroundPosition,u=s.style.backgroundImage,d=this._wwaSave.list.length,f=0;f<d;f++)e=this._wwaSave.list[f],n=document.createElement(`div`),n.classList.add(`savedata`),n.setAttribute(`save_id`,f),n.addEventListener(`click`,e=>{this.setSaveID(e.currentTarget.getAttribute(`save_id`)|0),this._save_close=!0,e.preventDefault()}),r=document.createElement(`div`),r.classList.add(`ss`),n.appendChild(r),i=document.createElement(`div`),i.classList.add(`wide-cell-row`),i.style.backgroundPosition=l,i.style.backgroundImage=u,n.appendChild(i),t.appendChild(n),e.flag&&(r.appendChild(e.cvs),a=document.createElement(`span`),a.textContent=e.getDateText(),e.isLastSaveData()&&(a.style.color=me.DATE_LAST_SAVE_TEXT_COLOR),r.appendChild(a),o=document.createElement(`div`),o.classList.add(`status-icon`),o.style.backgroundImage=u,o.style.backgroundPosition=`-120px -80px`,i.appendChild(o),c=document.createElement(`div`),c.classList.add(`status-value-box`),c.textContent=e.getStatusEnergy(),i.appendChild(c));this._saveElement.textContent=``,this._saveElement.appendChild(t),this.setSaveID(this._save_select_id),this._isSave=!0,this._save_counter=0,this._save_close=!1}deleteSaveDom(){this._saveElement.textContent=``,this._isSave=!1}setSaveID(e){this._save_select_id=e;for(var t=document.querySelectorAll(`.savedata`),n,r=t.length,i=0;i<r;i++)n=t[i],e===i?n.classList.add(`select`):n.classList.remove(`select`)}save(e,t){return this._wwaSave.save(e,t,this._save_select_id)}load(){return this._wwaSave.load(this._save_select_id)}saveUpdate(){this._save_counter>0&&this._save_counter--}isSaveClose(){return this._save_close}cursor_wait(){this._save_counter=R.CONTROLL_WAIT_FRAME}saveControll(e){if(!(this._save_counter>0)&&!this._isInputDisable){switch(e){case E.DOWN:this._save_select_id-=2,this.cursor_wait();break;case E.UP:this._save_select_id+=2,this.cursor_wait();break;case E.LEFT:this._save_select_id--,this.cursor_wait();break;case E.RIGHT:this._save_select_id++,this.cursor_wait();break}this.setSaveID((this._save_select_id+me.QUICK_SAVE_MAX)%me.QUICK_SAVE_MAX)}}get windowName(){return`MessageWindow`}},br=class e{constructor(e,t){this.element=document.createElement(`div`),this.element.setAttribute(`id`,`wwa-game-frame-rate-window`),this.currentFpsIndicatorElement=document.createElement(`span`),this.element.appendChild(this.currentFpsIndicatorElement),this.separatorElement=document.createElement(`span`),this.separatorElement.textContent=`/`,this.element.appendChild(this.separatorElement),this.targetFpsIndicatorElement=document.createElement(`span`),this.element.appendChild(this.targetFpsIndicatorElement),this.unitElement=document.createElement(`span`),this.unitElement.textContent=`fps`,this.element.appendChild(this.unitElement),t&&(this.closeButtonElement=document.createElement(`button`),this.closeButtonElement.textContent=`✕`,this.closeButtonElement.classList.add(`wwa-game-frame-rate-window-close-button`),this.closeButtonElement.addEventListener(`click`,t),this.element.appendChild(this.closeButtonElement)),this.reset(),e.appendChild(this.element)}updateCurrentFps(t){this.currentFpsIndicatorElement.textContent=e.formatFps(t)}updateTargetFps(t){this.targetFpsIndicatorElement.textContent=e.formatFps(t)}reset(){this.updateCurrentFps(NaN),this.updateTargetFps(NaN)}show(){this.element.removeAttribute(`aria-hidden`)}hide(){this.element.setAttribute(`aria-hidden`,`true`),this.reset()}toggleVisibility(){this.element.hasAttribute(`aria-hidden`)?this.show():this.hide()}static formatFps(e){if(Number.isNaN(e))return`--.--`;let t=Math.round(e*100);return`${Math.floor(t/100)}.${(t%100).toString().padStart(2,`0`)} `}},xr=class{constructor(e,t,n){this.id=e,this.imgFileName=t,this.parent=n,this.elem=document.createElement(`div`),this.elem.classList.add(`est`),this.elem.setAttribute(`id`,`wwa-est-`+e),this.imgElem=document.createElement(`div`),this.imgElem.classList.add(`est-img-wrapper`),this.imgElem.style.backgroundImage=`url(`+this.imgFileName.replace(`(`,`\\(`).replace(`)`,`\\)`)+`)`,this.statusElem=document.createElement(`div`),this.statusElem.classList.add(`est-status-wrapper`),this.energyElem=document.createElement(`div`),this.energyElem.classList.add(`est-energy`),this.energyDispElem=document.createElement(`span`),this.energyDispElem.classList.add(`est-energy-disp`),this.energyElem.appendChild(this.energyDispElem),this.statusElem.appendChild(this.energyElem),this.strengthElem=document.createElement(`div`),this.strengthElem.classList.add(`est-strength`),this.strengthDispElem=document.createElement(`span`),this.strengthDispElem.classList.add(`est-strength-disp`),this.strengthElem.appendChild(this.strengthDispElem),this.statusElem.appendChild(this.strengthElem),this.defenceElem=document.createElement(`div`),this.defenceElem.classList.add(`est-defence`),this.defenceDispElem=document.createElement(`span`),this.defenceDispElem.classList.add(`est-defence-disp`),this.defenceElem.appendChild(this.defenceDispElem),this.statusElem.appendChild(this.defenceElem),this.damageElem=document.createElement(`div`),this.damageElem.classList.add(`est-damage`),this.damageDispElem=document.createElement(`span`),this.damageDispElem.classList.add(`est-damage-disp`),this.damageElem.appendChild(this.damageDispElem),this.statusElem.appendChild(this.damageElem),this.elem.appendChild(this.imgElem),this.elem.appendChild(this.statusElem)}hide(){this.elem.style.display=`none`}show(){this.elem.style.display=`block`}setResult(e,t,n){this.imgElem.style.backgroundPosition=`-`+e.x+`px -`+e.y+`px`,this.energyDispElem.textContent=`生命力 `+t.energy,this.strengthDispElem.textContent=`攻撃力 `+t.strength,this.defenceDispElem.textContent=`防御力 `+t.defence,n.cannotDamageMonster?this.damageDispElem.textContent=`攻撃無効`:n.noSettled?this.damageDispElem.textContent=`勝負がつきません`:n.isOverMaxTurn?this.damageDispElem.textContent=`長期戦が予想されます`:this.damageDispElem.textContent=`予測ダメージ `+n.estimatedDamage}},Sr=class{constructor(e,t,n){this._wwa=e,this._imgFileName=t,this._parent=n;var r;this._element=document.createElement(`div`),this._element.setAttribute(`id`,`wwa-battle-estimate`),this._element.style.display=`none`,this._edes=[];for(var i=0;i<R.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;i++)r=new xr(i,this._imgFileName,this._element),this._edes.push(r),this._element.appendChild(r.elem);this._element.addEventListener(`click`,()=>{this._wwa.hideBattleEstimateWindow()}),this._parent.appendChild(this._element)}update(e,t,n,r,i){for(let a=0;a<R.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;a++){if(a>=t.length){this._edes[a].hide();continue}let o=new S(this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_X),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_Y)),s=new x(this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_ENERGY),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_STRENGTH),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_DEFENCE),0),c=Cr(e,t[a],n,r,i);this._edes[a].setResult(o,s,c),this._edes[a].show()}}show(){this._element.style.display=`block`}hide(){this._element.style.display=`none`}};function Cr(e,t,n,r,i){let a=t.clone(),o=e.clone(),s=0,c=0,l=0,u=e.energy;if(i&&o.strength<=a.status.defence&&o.defence>=a.status.strength)return{cannotDamageMonster:!0,estimatedDamage:0};for(;;){c++;let e=n(o,a);if(a.status.energy-=e.damage,e.damage===0?l++:l=0,a.status.energy<=0)return{estimatedDamage:s};if(l>R.FIGHT_DRAW_TURN||e.aborted)return{noSettled:(u<=0||o.energy>0)&&a.status.energy>0,estimatedDamage:s};if(c>2e4)return{isOverMaxTurn:!0,estimatedDamage:0};c++;let t=r(a,o),i=Math.max(t.damage,0);if(i===0?l++:l=0,s+=i,o.energy=Math.max(o.energy-i,0),l>R.FIGHT_DRAW_TURN||t.aborted)return{noSettled:(u<=0||o.energy>0)&&a.status.energy>0,estimatedDamage:s};if(c>2e4)return{isOverMaxTurn:!0,estimatedDamage:0}}}var wr=function(e){return e[e.SAVE=0]=`SAVE`,e[e.LOAD=1]=`LOAD`,e}({});function Tr(e){return`下のボックスに前回のプレイで取得した
38
+ `);t.forEach((e,n)=>{let r;this._wwa.isClassicMode()?r=this.createClassicTextElement(e):(r=document.createElement(`span`),r.textContent=t[n]),this._msgWrapperElement.appendChild(r),this._msgWrapperElement.appendChild(document.createElement(`br`))}),this._isVisible?(this._element.style.left=this._x+`px`,this._element.style.top=this._y+`px`):(this._element.style.left=`-999999px`,this._element.style.top=`-999999px`),this._isSave?this._saveElement.style.display=`block`:this._saveElement.style.display=`none`,this._element.style.width=this._width+`px`,this._element.style.minHeight=this._height+`px`}setWWASave(e){this._wwaSave=e}createSaveDom(){for(var e,t=document.createElement(`div`),n,r,i,a,o,s=document.getElementById(`disp-energy`),c,l=s.style.backgroundPosition,u=s.style.backgroundImage,d=this._wwaSave.list.length,f=0;f<d;f++)e=this._wwaSave.list[f],n=document.createElement(`div`),n.classList.add(`savedata`),n.setAttribute(`save_id`,f),n.addEventListener(`click`,e=>{this.setSaveID(e.currentTarget.getAttribute(`save_id`)|0),this._save_close=!0,e.preventDefault()}),r=document.createElement(`div`),r.classList.add(`ss`),n.appendChild(r),i=document.createElement(`div`),i.classList.add(`wide-cell-row`),i.style.backgroundPosition=l,i.style.backgroundImage=u,n.appendChild(i),t.appendChild(n),e.flag&&(r.appendChild(e.cvs),a=document.createElement(`span`),a.textContent=e.getDateText(),e.isLastSaveData()&&(a.style.color=me.DATE_LAST_SAVE_TEXT_COLOR),r.appendChild(a),o=document.createElement(`div`),o.classList.add(`status-icon`),o.style.backgroundImage=u,o.style.backgroundPosition=`-120px -80px`,i.appendChild(o),c=document.createElement(`div`),c.classList.add(`status-value-box`),c.textContent=e.getStatusEnergy(),i.appendChild(c));this._saveElement.textContent=``,this._saveElement.appendChild(t),this.setSaveID(this._save_select_id),this._isSave=!0,this._save_counter=0,this._save_close=!1}deleteSaveDom(){this._saveElement.textContent=``,this._isSave=!1}setSaveID(e){this._save_select_id=e;for(var t=document.querySelectorAll(`.savedata`),n,r=t.length,i=0;i<r;i++)n=t[i],e===i?n.classList.add(`select`):n.classList.remove(`select`)}save(e,t){return this._wwaSave.save(e,t,this._save_select_id)}load(){return this._wwaSave.load(this._save_select_id)}saveUpdate(){this._save_counter>0&&this._save_counter--}isSaveClose(){return this._save_close}cursor_wait(){this._save_counter=R.CONTROLL_WAIT_FRAME}saveControll(e){if(!(this._save_counter>0)&&!this._isInputDisable){switch(e){case E.DOWN:this._save_select_id-=2,this.cursor_wait();break;case E.UP:this._save_select_id+=2,this.cursor_wait();break;case E.LEFT:this._save_select_id--,this.cursor_wait();break;case E.RIGHT:this._save_select_id++,this.cursor_wait();break}this.setSaveID((this._save_select_id+me.QUICK_SAVE_MAX)%me.QUICK_SAVE_MAX)}}get windowName(){return`MessageWindow`}},br=class e{constructor(e,t,n){this.element=document.createElement(`div`),this.element.setAttribute(`id`,`wwa-game-frame-rate-window`),t&&(this.element.dataset.classicModeEnabled=`true`),this.currentFpsIndicatorElement=document.createElement(`span`),this.element.appendChild(this.currentFpsIndicatorElement),this.separatorElement=document.createElement(`span`),this.separatorElement.textContent=`/`,this.element.appendChild(this.separatorElement),this.targetFpsIndicatorElement=document.createElement(`span`),this.element.appendChild(this.targetFpsIndicatorElement),this.unitElement=document.createElement(`span`),this.unitElement.textContent=`fps`,this.element.appendChild(this.unitElement),n&&(this.closeButtonElement=document.createElement(`button`),this.closeButtonElement.textContent=`✕`,this.closeButtonElement.classList.add(`wwa-game-frame-rate-window-close-button`),this.closeButtonElement.addEventListener(`click`,n),this.element.appendChild(this.closeButtonElement)),this.reset(),e.appendChild(this.element)}updateCurrentFps(t){this.currentFpsIndicatorElement.textContent=e.formatFps(t)}updateTargetFps(t){this.targetFpsIndicatorElement.textContent=e.formatFps(t)}reset(){this.updateCurrentFps(NaN),this.updateTargetFps(NaN)}show(){this.element.removeAttribute(`aria-hidden`)}hide(){this.element.setAttribute(`aria-hidden`,`true`),this.reset()}toggleVisibility(){this.element.hasAttribute(`aria-hidden`)?this.show():this.hide()}static formatFps(e){if(Number.isNaN(e))return`--.--`;let t=Math.round(e*100);return`${Math.floor(t/100)}.${(t%100).toString().padStart(2,`0`)} `}},xr=class{constructor(e,t,n){this.id=e,this.imgFileName=t,this.parent=n,this.elem=document.createElement(`div`),this.elem.classList.add(`est`),this.elem.setAttribute(`id`,`wwa-est-`+e),this.imgElem=document.createElement(`div`),this.imgElem.classList.add(`est-img-wrapper`),this.imgElem.style.backgroundImage=`url(`+this.imgFileName.replace(`(`,`\\(`).replace(`)`,`\\)`)+`)`,this.statusElem=document.createElement(`div`),this.statusElem.classList.add(`est-status-wrapper`),this.energyElem=document.createElement(`div`),this.energyElem.classList.add(`est-energy`),this.energyDispElem=document.createElement(`span`),this.energyDispElem.classList.add(`est-energy-disp`),this.energyElem.appendChild(this.energyDispElem),this.statusElem.appendChild(this.energyElem),this.strengthElem=document.createElement(`div`),this.strengthElem.classList.add(`est-strength`),this.strengthDispElem=document.createElement(`span`),this.strengthDispElem.classList.add(`est-strength-disp`),this.strengthElem.appendChild(this.strengthDispElem),this.statusElem.appendChild(this.strengthElem),this.defenceElem=document.createElement(`div`),this.defenceElem.classList.add(`est-defence`),this.defenceDispElem=document.createElement(`span`),this.defenceDispElem.classList.add(`est-defence-disp`),this.defenceElem.appendChild(this.defenceDispElem),this.statusElem.appendChild(this.defenceElem),this.damageElem=document.createElement(`div`),this.damageElem.classList.add(`est-damage`),this.damageDispElem=document.createElement(`span`),this.damageDispElem.classList.add(`est-damage-disp`),this.damageElem.appendChild(this.damageDispElem),this.statusElem.appendChild(this.damageElem),this.elem.appendChild(this.imgElem),this.elem.appendChild(this.statusElem)}hide(){this.elem.style.display=`none`}show(){this.elem.style.display=`block`}setResult(e,t,n){this.imgElem.style.backgroundPosition=`-`+e.x+`px -`+e.y+`px`,this.energyDispElem.textContent=`生命力 `+t.energy,this.strengthDispElem.textContent=`攻撃力 `+t.strength,this.defenceDispElem.textContent=`防御力 `+t.defence,n.cannotDamageMonster?this.damageDispElem.textContent=`攻撃無効`:n.noSettled?this.damageDispElem.textContent=`勝負がつきません`:n.isOverMaxTurn?this.damageDispElem.textContent=`長期戦が予想されます`:this.damageDispElem.textContent=`予測ダメージ `+n.estimatedDamage}},Sr=class{constructor(e,t,n){this._wwa=e,this._imgFileName=t,this._parent=n;var r;this._element=document.createElement(`div`),this._element.setAttribute(`id`,`wwa-battle-estimate`),this._element.style.display=`none`,this._edes=[];for(var i=0;i<R.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;i++)r=new xr(i,this._imgFileName,this._element),this._edes.push(r),this._element.appendChild(r.elem);this._element.addEventListener(`click`,()=>{this._wwa.hideBattleEstimateWindow()}),this._parent.appendChild(this._element)}update(e,t,n,r,i){for(let a=0;a<R.BATTLE_ESTIMATE_MONSTER_TYPE_MAX;a++){if(a>=t.length){this._edes[a].hide();continue}let o=new S(this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_X),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_Y)),s=new x(this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_ENERGY),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_STRENGTH),this._wwa.getObjectAttributeById(t[a].partsID,R.ATR_DEFENCE),0),c=Cr(e,t[a],n,r,i);this._edes[a].setResult(o,s,c),this._edes[a].show()}}show(){this._element.style.display=`block`}hide(){this._element.style.display=`none`}};function Cr(e,t,n,r,i){let a=t.clone(),o=e.clone(),s=0,c=0,l=0,u=e.energy;if(i&&o.strength<=a.status.defence&&o.defence>=a.status.strength)return{cannotDamageMonster:!0,estimatedDamage:0};for(;;){c++;let e=n(o,a);if(a.status.energy-=e.damage,e.damage===0?l++:l=0,a.status.energy<=0)return{estimatedDamage:s};if(l>R.FIGHT_DRAW_TURN||e.aborted)return{noSettled:(u<=0||o.energy>0)&&a.status.energy>0,estimatedDamage:s};if(c>2e4)return{isOverMaxTurn:!0,estimatedDamage:0};c++;let t=r(a,o),i=Math.max(t.damage,0);if(i===0?l++:l=0,s+=i,o.energy=Math.max(o.energy-i,0),l>R.FIGHT_DRAW_TURN||t.aborted)return{noSettled:(u<=0||o.energy>0)&&a.status.energy>0,estimatedDamage:s};if(c>2e4)return{isOverMaxTurn:!0,estimatedDamage:0}}}var wr=function(e){return e[e.SAVE=0]=`SAVE`,e[e.LOAD=1]=`LOAD`,e}({});function Tr(e){return`下のボックスに前回のプレイで取得した
39
39
  復帰用パスワードを貼り付けてください。
40
40
  Java 版 WWA で取得したパスワードはご利用になれません。
41
41
  作成者が ${e?`マップの内容`:`ワールド名 か マップの暗証番号`} を変更した場合は
@@ -91,7 +91,7 @@ ${t?Fe():``}
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)&&!ga.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(Ha(t,r.generator)|Ba|(n?Va: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(Ha(n,!1)|Ra),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,Ja),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,Wa,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 co=Ya.prototype;co.raise=function(e,t){var n=ka(this.input,e);t+=` (`+n.line+`:`+n.column+`)`;var r=SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},co.raiseRecoverable=co.raise,co.curPosition=function(){if(this.options.locations)return new Da(this.curLine,this.pos-this.lineStart)};var lo=Ya.prototype,uo=function(e){this.flags=e,this.var=[],this.lexical=[],this.functions=[]};lo.enterScope=function(e){this.scopeStack.push(new uo(e))},lo.exitScope=function(){this.scopeStack.pop()},lo.treatFunctionsAsVarInScope=function(e){return e.flags&Pa||!this.inModule&&e.flags&Na},lo.declareName=function(e,t,n){var r=!1;if(t===Ga){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&Na&&delete this.undefinedExports[e]}else if(t===qa)this.currentScope().lexical.push(e);else if(t===Ka){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&za&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){r=!0;break}if(s.var.push(e),this.inModule&&s.flags&Na&&delete this.undefinedExports[e],s.flags&Fa)break}r&&this.raiseRecoverable(n,`Identifier '`+e+`' has already been declared`)},lo.checkLocalExport=function(e){this.scopeStack[0].lexical.indexOf(e.name)===-1&&this.scopeStack[0].var.indexOf(e.name)===-1&&(this.undefinedExports[e.name]=e)},lo.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},lo.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Fa)return t}},lo.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&Fa&&!(t.flags&Ra))return t}};var fo=function(e,t,n){this.type=``,this.start=t,this.end=0,e.options.locations&&(this.loc=new Oa(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},po=Ya.prototype;po.startNode=function(){return new fo(this,this.start,this.startLoc)},po.startNodeAt=function(e,t){return new fo(this,e,t)};function mo(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}po.finishNode=function(e,t){return mo.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},po.finishNodeAt=function(e,t,n,r){return mo.call(this,e,t,n,r)};var ho=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},go={b_stat:new ho(`{`,!1),b_expr:new ho(`{`,!0),b_tmpl:new ho("${",!1),p_stat:new ho(`(`,!1),p_expr:new ho(`(`,!0),q_tmpl:new ho("`",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new ho(`function`,!1),f_expr:new ho(`function`,!0),f_expr_gen:new ho(`function`,!0,!1,null,!0),f_gen:new ho(`function`,!1,!1,null,!0)},_o=Ya.prototype;_o.initialContext=function(){return[go.b_stat]},_o.braceIsBlock=function(e){var t=this.curContext();return t===go.f_expr||t===go.f_stat?!0:e===J.colon&&(t===go.b_stat||t===go.b_expr)?!t.isExpr:e===J._return||e===J.name&&this.exprAllowed?ga.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===go.b_stat:e===J._var||e===J._const||e===J.name?!1:!this.exprAllowed},_o.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},_o.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===go.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)?go.b_stat:go.b_expr),this.exprAllowed=!0},J.dollarBraceL.updateContext=function(){this.context.push(go.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?go.p_stat:go.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&&ga.test(this.input.slice(this.lastTokEnd,this.start)))&&!((e===J.colon||e===J.braceL)&&this.curContext()===go.b_stat)?this.context.push(go.f_expr):this.context.push(go.f_stat),this.exprAllowed=!1},J.backQuote.updateContext=function(){this.curContext()===go.q_tmpl?this.context.pop():this.context.push(go.q_tmpl),this.exprAllowed=!1},J.star.updateContext=function(e){if(e===J._function){var t=this.context.length-1;this.context[t]===go.f_expr?this.context[t]=go.f_expr_gen:this.context[t]=go.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 vo=`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`,yo=vo+` Extended_Pictographic`,bo={9:vo,10:yo,11:yo},xo=`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`,So=`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`,Co=So+` Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd`,wo={9:So,10:Co,11:Co+` Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho`},To={};function Eo(e){var t=To[e]={binary:Ea(bo[e]+` `+xo),nonBinary:{General_Category:Ea(xo),Script:Ea(wo[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}Eo(9),Eo(10),Eo(11);var Z=Ya.prototype,Do=function(e){this.parser=e,this.validFlags=`gim`+(e.options.ecmaVersion>=6?`uy`:``)+(e.options.ecmaVersion>=9?`s`:``),this.unicodeProperties=To[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=[]};Do.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},Do.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,`Invalid regular expression: /`+this.source+`/: `+e)},Do.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},Do.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},Do.prototype.current=function(e){return e===void 0&&(e=!1),this.at(this.pos,e)},Do.prototype.lookahead=function(e){return e===void 0&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Do.prototype.advance=function(e){e===void 0&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Do.prototype.eat=function(e,t){return t===void 0&&(t=!1),this.current(t)===e?(this.advance(t),!0):!1};function Oo(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 ko(t)?(e.lastIntValue=t,e.advance(),!0):!1};function ko(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&&!ko(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+=Oo(e.lastIntValue);this.regexp_eatRegExpIdentifierPart(e);)e.lastStringValue+=Oo(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),Ao(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function Ao(e){return ua(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),jo(r)?(e.lastIntValue=r,!0):(e.pos=t,!1)};function jo(e){return da(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&&!Lo(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 Mo(t)?(e.lastIntValue=t%32,e.advance(),!0):!1};function Mo(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)&&No(e.lastIntValue))return!0;r&&e.raise(`Invalid unicode escape`),e.pos=n}return!1};function No(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(Po(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 Po(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){wa(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=``;Fo(t=e.current());)e.lastStringValue+=Oo(t),e.advance();return e.lastStringValue!==``};function Fo(e){return Mo(e)||e===95}Z.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue=``;Io(t=e.current());)e.lastStringValue+=Oo(t),e.advance();return e.lastStringValue!==``};function Io(e){return Fo(e)||Lo(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||Bo(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 Lo(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;Lo(n=e.current());)e.lastIntValue=10*e.lastIntValue+(n-48),e.advance();return e.pos!==t};function Lo(e){return e>=48&&e<=57}Z.regexp_eatHexDigits=function(e){var t=e.pos,n=0;for(e.lastIntValue=0;Ro(n=e.current());)e.lastIntValue=16*e.lastIntValue+zo(n),e.advance();return e.pos!==t};function Ro(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function zo(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 Bo(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)};function Bo(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(!Ro(i))return e.pos=n,!1;e.lastIntValue=16*e.lastIntValue+zo(i),e.advance()}return!0};var Vo=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new Oa(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},Q=Ya.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 Vo(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 Vo(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 ua(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){_a.lastIndex=t;for(var r;(r=_a.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&&!va(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&&ya.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||ga.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 '`+Wo(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(ga.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 Do(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 Ho(e,t){return t?parseInt(e,8):parseFloat(e.replace(/_/g,``))}function Uo(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=Uo(this.input.slice(t,this.pos)),++this.pos):ua(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=Uo(this.input.slice(t,this.pos));return++this.pos,ua(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`)),ua(this.fullCharCodeAtPos())&&this.raise(this.pos,`Identifier directly after number`);var a=Ho(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 Wo(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):(va(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 Go={};Q.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e===Go)this.readInvalidTemplateToken();else throw e}this.inTemplateElement=!1},Q.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Go;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(va(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
93
  `;case 114:return`\r`;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Wo(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 va(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(da(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?ua:da)(o,r)||this.invalidStringToken(a,`Invalid Unicode escape`),e+=Wo(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=ha[e]),this.finishToken(t,e)},Ya.acorn={Parser:Ya,version:`7.4.1`,defaultOptions:Aa,Position:Da,SourceLocation:Oa,getLineInfo:ka,Node:fo,TokenType:K,tokTypes:J,keywordTypes:ha,TokContext:ho,tokContexts:go,isIdentifierChar:da,isIdentifierStart:ua,Token:Vo,isNewLine:va,lineBreak:ga,lineBreakG:_a,nonASCIIwhitespace:ya};function Ko(e,t){return Ya.parse(e,t)}function qo(e){return[`ArrayOrObject1D`,`ArrayOrObject2D`,`ArrayOrObject3DPlus`,`Literal`,`Symbol`,`UnaryOperation`,`BinaryOperation`,`Random`,`CallDefinedFunction`,`AnyFunction`,`ConditionalExpression`,`ArrayExpression`,`ObjectExpression`].includes(e.type)}function Jo(e){return e.type===`Program`?e.body.map(e=>$(e)):[$(e)]}function $(e){switch(e.type){case`Program`:return ds(e);case`ExpressionStatement`:return fs(e);case`AssignmentExpression`:return ps(e);case`MemberExpression`:return gs(e);case`UnaryExpression`:return ms(e);case`BinaryExpression`:return hs(e);case`Identifier`:return _s(e);case`Literal`:return vs(e);case`CallExpression`:return os(e);case`IfStatement`:return as(e);case`BlockStatement`:return is(e);case`FunctionDeclaration`:return Yo(e);case`ForStatement`:return rs(e);case`BreakStatement`:return ts(e);case`ReturnStatement`:return ns(e);case`ContinueStatement`:return es(e);case`UpdateExpression`:return Xo(e);case`LogicalExpression`:return Zo(e);case`TemplateLiteral`:return Qo(e);case`TemplateElement`:return $o(e);case`ConditionalExpression`:return ys(e);case`Property`:return bs(e);case`ObjectExpression`:return xs(e);case`ArrayExpression`:return Ss(e);default:throw console.log(e),Error(`未定義の AST ノードです :`+e.type)}}function Yo(e){return{type:`DefinedFunction`,functionName:e.id.name,body:$(e.body)}}function Xo(e){return{type:`UpdateExpression`,operator:e.operator,argument:$(e.argument)}}function Zo(e){return{type:`LogicalExpression`,operator:e.operator,left:$(e.left),right:$(e.right)}}function Qo(e){return{type:`TemplateLiteral`,expressions:e.expressions.map(e=>$(e)),quasis:e.quasis.map(e=>$(e))}}function $o(e){return{type:`TemplateElement`,value:e.value}}function es(e){return{type:`Continue`,label:e.label}}function ts(e){return{type:`Break`,label:e.label}}function ns(e){return{type:`Return`,argument:$(e.argument)}}function rs(e){return{type:`ForStatement`,body:e.body.body.map(e=>$(e)),init:$(e.init),test:$(e.test),update:$(e.update)}}function is(e){return{type:`BlockStatement`,value:e.body.map(e=>$(e))}}function as(e){return{type:`IfStatement`,consequent:$(e.consequent),test:$(e.test),alternate:e.alternate?$(e.alternate):void 0}}function os(e){let t=e.callee.name;switch(t){case`RAND`:return us(e.arguments);case`JUMPGATE`:return ls(e.arguments);case`MSG`:case`MESSAGE`:return cs(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`POW`:case`SQRT`:case`SIN`:case`COS`:case`TAN`: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`CANCEL_MANUAL_PAUSE`:case`CANCEL_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`:case`SORT`:return ss(e.arguments,t);default:return{type:`CallDefinedFunction`,functionName:t}}}function ss(e,t){return{type:`AnyFunction`,functionName:t,value:e.map(e=>$(e))}}function cs(e){return{type:`Msg`,value:$(e[0])}}function ls(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 us(e){if(e.length<1)throw Error(`RAND関数には引数が必要です。`);return{type:`Random`,value:$(e[0])}}function ds(e){if(e.body.length!==1)throw Error(`bodyが1以外の場合評価できません。`);return $(e.body[0])}function fs(e){return $(e.expression)}function ps(e){let t=$(e.left),n=$(e.right);if(!qo(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===`SORT_A`||t.name===`SORT_B`||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 ms(e){let t=$(e.argument);if(![`+`,`-`,`!`].includes(e.operator))throw Error(`未定義の演算子です :`+e.operator);if(!qo(t))throw Error(`単項演算子が適用できません`);return{type:`UnaryOperation`,operator:e.operator,argument:t}}function hs(e){let t=$(e.left),n=$(e.right);if(!qo(t)||!qo(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 gs(e){let t=$(e.object),n=$(e.property);if(t.type===`Symbol`){if(![`v`,`m`,`o`,`ITEM`,`LP`,`PICTURE`,`SORT_A`,`SORT_B`].includes(t.name))throw Error(`このシンボルは配列にできません`);if(qo(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(qo(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`||t.name===`SORT_A`||t.name===`SORT_B`)&&qo(n))return{type:`ArrayOrObject3DPlus`,name:t.name,indecies:[...t.indecies,n]}}else throw Error(`WWAでは存在しない構文です`)}function _s(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`SORT_A`:case`SORT_B`:case`undefined`:return{type:`Symbol`,name:e.name};default:return{type:`Literal`,value:e.name}}}function vs(e){return{type:`Literal`,value:e.value}}function ys(e){let t=$(e.consequent),n=$(e.alternate);return{type:`ConditionalExpression`,consequent:t,test:$(e.test),alternate:n}}function bs(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 xs(e){return{type:`ObjectExpression`,properties:e.properties.map(bs)}}function Ss(e){return{type:`ArrayExpression`,elements:e.elements.map($)}}var Cs=[j.OBJECT,j.MAP],ws=e=>Math.abs(e)<2**-52;function Ts(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 Es=(e,t)=>(e-t)*R.CHIP_SIZE,Ds=(e,t)=>(e-t)*R.CHIP_SIZE,Os=class{constructor(e){this.value=e}},ks=Object.freeze({"=":(e,t)=>t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"*=":(e,t)=>e*t,"/=":(e,t)=>e/t}),As=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){try{return this.evalWwaNodeInternal({type:`BlockStatement`,value:e})}catch(e){if(e instanceof Os)return{isGameOver:!0,value:e.value};throw e}}evalWwaNode(e){try{return{isGameOver:!1,value:this.evalWwaNodeInternal(e)}}catch(e){if(e instanceof Os)return{isGameOver:!0,value:e.value};throw e}}evalWwaNodeInternal(e){if(!(e.type===`BlockStatement`&&Array.isArray(e.value)&&e.value.length===0))try{return new js(this).evalWwaNode(e)}catch(e){if(e instanceof Ms)return e.value;if(e instanceof Ns)switch(e.reason){case`ABORT_BATTLE`:case`EXIT`:return e.value;case`GAME_OVER`:throw new Os(e.value);default:throw TypeError(`ExitInformationのreasonが不正です: `+e.reason)}else 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}},js=class{constructor(e){this.generator=e,this.for_id={i:null,j:null,k:null,LP:[],loopCount:0,break_flag:!1,continue_flag:!1,sort_a:null,sort_b:null}}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 Ms(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 Ms)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(!Cs.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 w(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])):j.OBJECT;if(!Cs.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`POW`:return this._checkArgsLength(2,e),Number(this.evalWwaNode(e.value[0]))**+Number(this.evalWwaNode(e.value[1]));case`SQRT`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return Math.sqrt(t)}case`SIN`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.sin(t*Math.PI/180);return ws(n)?0:n}case`COS`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.cos(t*Math.PI/180);return ws(n)?0:n}case`TAN`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.tan(t*Math.PI/180);return ws(n)?0:n}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 Ns(`ABORT_BATTLE`);case`EXIT`:throw new Ns(`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?j.OBJECT:j.MAP;if(n===j.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[R.ATR_X]:r[R.ATR_X2];return Math.floor(i/R.CHIP_SIZE)}else if(n===j.MAP){let e=this.generator.wwa.getMapInfo(t)[R.ATR_X];return Math.floor(e/R.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?j.OBJECT:j.MAP;if(n===j.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[R.ATR_Y]:r[R.ATR_Y2];return Math.floor(i/R.CHIP_SIZE)}else if(n===j.MAP){let e=this.generator.wwa.getMapInfo(t)[R.ATR_Y];return Math.floor(e/R.CHIP_SIZE)}throw Error(`GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。`)}case`LENGTH`:return this._checkArgsLength(1,e),Ts(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=this.evalWwaNode(e.value[0]),n=t===`__BLOCK`;this.generator.wwa.manualPause({functionNames:{cancelPause:t&&!n?t:``,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]):``},blockingCancelPauseByPlayer:n});return}case`CANCEL_MANUAL_PAUSE`:case`CANCEL_WAIT_ENTER`:this.generator.wwa.cancelManualPause();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 L.ENERGY:case L.STRENGTH:case L.DEFENCE:case L.GOLD:this.generator.wwa.setStatusIconCoord(t,new S(n,r));break;case L.WIDE_CELL_ROW:this.generator.wwa.setWideCellCoord(new S(n,r));break;case L.ITEM_BG:this.generator.wwa.setItemboxBackgroundPosition({x:n,y:r});break;case L.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?j.OBJECT:Number(this.evalWwaNode(e.value[2]));if(t<0)throw Error(`パーツ番号が不正です`);if(r===j.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;case`SORT`:{if(this.for_id.sort_a||this.for_id.sort_b)throw Error(`SORT関数に与えた関数内でSORT関数を呼び出すことはできません。`);this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value[1]?this.evalWwaNode(e.value[1]):void 0;if(!Array.isArray(t))throw Error(`SORT関数の引数は配列である必要があります。`);if(n!==void 0&&typeof n!=`string`)throw Error(`SORT関数の比較関数名は文字列である必要があります。`);let r=this.generator.wwa.getUserScript(n);t.sort(n?(e,t)=>{this.for_id.sort_a={value:e},this.for_id.sort_b={value:t};try{this.evalWwaNode(r)}catch(e){if(e instanceof Ms)return this.for_id.sort_a=void 0,this.for_id.sort_b=void 0,e.value;throw e}}:void 0);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`?j.MAP:j.OBJECT,a=this.resolveParts(i,n,r),o=this.evalWwaNode(e.value);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:{let s=ks[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 j.MAP:return r.wwaData.map[n][t];case j.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=ks[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 typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の減算をすることはできません、`),NaN):n-t;case`*=`:return typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の乗算をすることはできません、`),NaN):n*t;case`/=`:return typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の除算をすることはできません、`),NaN):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,!0),r;case`DF`:return this.generator.wwa.setPlayerStatus(ue.DEFENCE,r,!0),r;case`GD`:return this.generator.wwa.setPlayerStatus(ue.GOLD,r,!0),r;case`HP`:{let{isGameOver:e}=this.generator.wwa.setPlayerStatus(ue.ENERGY,r,!0);if(e)throw new Ns(`GAME_OVER`);return 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 Es(t.playerCoord.x,t.cameraCoord.x);case`PLAYER_PY`:return Ds(t.playerCoord.y,t.cameraCoord.y);case`MOVE_SPEED`:return de[t.gameSpeedIndex];case`MOVE_FRAME_TIME`:return R.CHIP_SIZE/de[t.gameSpeedIndex];case`LP`:return this.for_id.LP;case`undefined`:return;case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_a?.value;case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_b?.value;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);case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return Ke(this.for_id.sort_a.value,t);case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return Ke(this.for_id.sort_b.value,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];case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_a.value[t];case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_b.value[t];default:throw console.log(e.name,e.indecies[0],t),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`?j.OBJECT:j.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 Ke(n,this.evalWwaNode(e.indecies[1]))}case`SORT_A`:{let t=e.indecies.map(e=>this.evalWwaNode(e));if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_a.value)}case`SORT_B`:{let t=e.indecies.map(e=>this.evalWwaNode(e));if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_b.value)}}}evalArrayOrObject3DPlus(e){let t=e.indecies.map(e=>this.evalWwaNode(e));switch(e.name){case`v`:{let e=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce((e,t)=>Ke(e,t),e)}case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_a.value);case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_b.value)}}evalLiteral(e){return e.value}},Ms=class{constructor(e){this.value=e}},Ns=class{constructor(e,t){this.reason=e,this.value=t}};function Ps(e){return Ko(e,{ecmaVersion:2020})}var Fs=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}}},Is=`user-variable-label`;function Ls(){let e=document.createElement(`div`);return e.textContent=`-`,e.setAttribute(`aria-hidden`,`true`),e.classList.add(Is),e}function Rs(e,t){e.textContent!==t&&(e.textContent=t)}var zs=`-`,Bs=`user-variable-card`,Vs=`user-variable-card--is-trimmed`;function Hs({index:e,value:t}){let n=document.createElement(`div`);n.classList.add(Bs),qs(t)&&n.classList.add(Vs),n.dataset.varIndex=String(e);let{cardIndexElement:r,cardIndexLabelElement:i}=Us(e),a=Ws(t);return n.appendChild(r),n.appendChild(a),{cardElement:n,cardIndexElement:r,cardIndexLabelElement:i,cardValueElement:a}}function Us(e){let t=document.createElement(`div`);t.classList.add(`index`),t.textContent=String(e),typeof e==`string`&&t.setAttribute(`title`,e);let n=Ls();return t.appendChild(n),{cardIndexElement:t,cardIndexLabelElement:n}}function Ws(e){let t=document.createElement(`div`);return t.classList.add(`value`),typeof e==`string`&&t.setAttribute(`title`,Ge(e)),Ks(t,e),t}function Gs(e,t){e.dataset.labelledVarIndex=`true`,e.addEventListener(`mouseover`,()=>t.removeAttribute(`aria-hidden`)),e.addEventListener(`mouseleave`,()=>t.setAttribute(`aria-hidden`,`true`))}function Ks(e,t){let n=Ge(t);e.textContent!==n&&(e.textContent=t===void 0?zs:Ge(t))}function qs(e){return typeof e!=`object`}var Js=`user-variable-list`;function Ys({kind:e,elementStore:t}){let n=document.createElement(`ul`);return n.classList.add(Js),e===`numbered`&&Array.from({length:R.USER_VAR_NUM}).map((e,n)=>Xs({elementStore:t,index:n})).forEach(e=>n.appendChild(e)),n}function Xs({elementStore:e,index:t,value:n}){let r=document.createElement(`li`),i=Hs({index:t,value:n});return e.updateUserVarElementInfo(t,i),r.appendChild(i.cardElement),r}function Zs(e,t,{index:n,value:r}){t.appendChild(Xs({elementStore:e,index:n,value:r}))}var Qs=`information`;function $s(){let e=document.createElement(`p`);return e.classList.add(Qs),ec(e,`強調されている番号にカーソルを乗せると説明が表示されます。`),e}function ec(e,t,n=!1){e.textContent=`${n?`【エラー】`:``}${t}`}function tc({elementStore:e,heading:t,contentVisibilityToggleButton:n,information:r}){let i=document.createElement(`header`);if(i.appendChild(rc({heading:t,contentVisibilityToggleButton:n})),r){let t=$s();i.appendChild(t),e.updateNamedUserVarInformationElement(t)}return i}function nc(e,t){e.textContent=t?`▲隠す`:`▼表示`}function rc({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`),nc(i,!0),t.onClick&&i.addEventListener(`click`,t.onClick.bind(i)),n.appendChild(i),n}var ic=`user-variable-list-section`;function ac({kind:e,elementStore:t}){let n=document.createElement(`section`);n.classList.add(ic),n.dataset.kind=e;let r=Ys({kind:e,elementStore:t});t.updateUserVarListElement(e,r);let i=tc({elementStore:t,heading:{text:e===`named`?`名前つき変数一覧`:`変数一覧`},information:(e===`numbered`||void 0)&&{},contentVisibilityToggleButton:{onClick:e=>{let n=t.getNamedUserVarInformationElement();n&&(r.getAttribute(`aria-hidden`)===`true`?oc(r,n,e.target):sc(r,n,e.target))}}});return n.appendChild(i),n.appendChild(r),t.updateUserVarListElement(e,r),n}function oc(e,t,n){e.removeAttribute(`aria-hidden`),t instanceof HTMLElement&&t.removeAttribute(`aria-hidden`),n instanceof HTMLElement&&nc(n,!0)}function sc(e,t,n){e.setAttribute(`aria-hidden`,`true`),t instanceof HTMLElement&&t.setAttribute(`aria-hidden`,`true`),n instanceof HTMLElement&&nc(n,!1)}function cc(){let e=new Map,t=new Map,n=new Map,r=null;return{getAllNamedUserVarIndeciesSet:()=>new Set(t.keys()),updateUserVarElementInfo:(n,r)=>{if(typeof n==`number`)e.set(n,r);else if(typeof n==`string`)t.set(n,r);else throw TypeError(`Invalid index: ${n}`)},getUserVarElementInfo:n=>{if(typeof n==`number`)return e.get(n);if(typeof n==`string`)return t.get(n);throw TypeError(`Invalid index: ${n}`)},deleteUserVarElementInfo:n=>{if(typeof n==`number`)e.delete(n);else if(typeof n==`string`)t.delete(n);else throw TypeError(`Invalid index: ${n}`)},getUserVarListElement:e=>n.get(e),updateUserVarListElement:(e,t)=>{n.set(e,t)},deleteUserVarListElement:e=>{n.delete(e)},getNamedUserVarInformationElement:()=>r,updateNamedUserVarInformationElement:e=>{r=e},deleteNamedUserVarInformationElement:()=>{r=null},dispose:()=>{e.clear(),t.clear(),n.clear(),r=null}}}function lc(e,t){let n=e.getAllNamedUserVarIndeciesSet(),r=e.getUserVarListElement(`named`);for(let[i,a]of t){let t=e.getUserVarElementInfo(i)?.cardValueElement;n.delete(i),t?Ks(t,a):Zs(e,r,{index:i,value:a})}for(let t of n){let n=e.getUserVarElementInfo(t)?.cardElement.parentElement;n instanceof HTMLLIElement&&(e.getUserVarListElement(`named`)?.removeChild(n),e.deleteUserVarElementInfo(t))}}function uc(e,t){Array.from({length:R.USER_VAR_NUM}).map((n,r)=>{let i=e.getUserVarElementInfo(r)?.cardValueElement;i&&Ks(i,t[r])})}function dc(e,t){Array.from({length:R.USER_VAR_NUM}).map((n,r)=>{let i=t[r];if(!i)return;let a=e.getUserVarElementInfo(r);if(!a)return;let o=a.cardIndexElement,s=a.cardIndexLabelElement;Rs(s,i),Gs(o,s)})}function fc(e,t,n=!1){ec(e.getNamedUserVarInformationElement(),t,n)}var pc=`wwa-vardump-wrapper`;function mc(e){let t=Le(e),n=cc();return t instanceof HTMLElement?(t.classList.add(pc),t.appendChild(ac({kind:`named`,elementStore:n})),t.appendChild(ac({kind:`numbered`,elementStore:n})),{updateAllVariables:({namedUserVar:e,userVar:t})=>{e&&lc(n,e),t&&uc(n,t)},numberedUserVariable:{updateValues:e=>uc(n,e),updateLabels:e=>dc(n,e),updateInformation:(e,t=!1)=>fc(n,e,t)},namedUserVariable:{updateValues:e=>lc(n,e)}}):null}function hc(){return{mapdata:``,urlGateEnable:!1,titleImg:void 0,audioDir:`./audio/`,classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDump:null,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:`./script/script_file_list.json`,frameRateDisplayingPattern:`default-off`}}var gc;function _c(e,t,n){var r=new ge;return r.current=e,r.total=t,r.stage=n,r}var vc=class{constructor(e=hc()){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._frameRateDisplayingPattern=`default-off`,this.audioExtension=``,this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this._varDump=null,this.userDefinedFunctions={},this.convertWwaNodes=e=>Jo(Ps(e)),this._prevTimeStamp=-1,this._accumlatedTimeMs=0,this._samplingTimeMs=0,this._frameCountForMeasureFps=0,this.mainCaller=e=>{if(this._prevTimeStamp<0){this._prevTimeStamp=e,requestAnimationFrame(this.mainCaller.bind(this));return}let t=e-this._prevTimeStamp;this._prevTimeStamp=e,this._accumlatedTimeMs+=t,this._accumlatedTimeMs>=R.INTERVAL_MS&&(this._accumlatedTimeMs-=R.INTERVAL_MS,this._accumlatedTimeMs>R.INTERVAL_MS*2&&(this._accumlatedTimeMs=0),this._main(),this._frameCountForMeasureFps++),this._samplingTimeMs+=t,this._samplingTimeMs>=1e3&&(this._gameFrameRateWindow?.updateCurrentFps(this._frameCountForMeasureFps/(this._samplingTimeMs/1e3)),this._frameCountForMeasureFps=0,this._samplingTimeMs=0),requestAnimationFrame(this.mainCaller.bind(this))},this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(V.KEY_ESC)||this._keyStore.checkHitKey(V.KEY_SHIFT)||this._keyStore.checkHitKey(V.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new Qi(U(`wwa-wrapper`));let t;window.addEventListener(`click`,e=>{this._isActive=!1}),U(`wwa-wrapper`).addEventListener(`click`,e=>{e.stopPropagation(),this._isActive=!0}),this._isActive=!0,e.titleImg===void 0?(this._hasTitleImg=!1,this._cvsCover=U(`progress-panel`),t=this._cvsCover.getContext(`2d`),t.fillStyle=`rgb(0, 0, 0)`):this._hasTitleImg=!0;try{this._hasTitleImg?(U(`unstable-version-warning`).textContent=`この WWA Wing は [超安定版] です。`,U(`version`).textContent=`WWA Wing Ver.4.0.9-fps-measure.based-on.4.0.8`):this._setLoadingMessage(t,0)}catch{}this._varDump=e.varDump;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?T.GOTO_WWA:T.BATTLE_REPORT,this._userVarNameList=[],this.evalCalcWwaNodeGenerator=new As(this),this.userDevice=new M,location.href.match(/^file/))switch(this.userDevice.device){case re.GAME:switch(this.userDevice.os){case ne.NINTENDO:R.BATTLE_INTERVAL_FRAME_NUM=5;break}this._bottomButtonType=T.GAME_END;break;default:alert(`【警告】直接HTMLファイルを開いているようです。
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(!Cs.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 w(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])):j.OBJECT;if(!Cs.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`POW`:return this._checkArgsLength(2,e),Number(this.evalWwaNode(e.value[0]))**+Number(this.evalWwaNode(e.value[1]));case`SQRT`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0]));return Math.sqrt(t)}case`SIN`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.sin(t*Math.PI/180);return ws(n)?0:n}case`COS`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.cos(t*Math.PI/180);return ws(n)?0:n}case`TAN`:{this._checkArgsLength(1,e);let t=Number(this.evalWwaNode(e.value[0])),n=Math.tan(t*Math.PI/180);return ws(n)?0:n}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 Ns(`ABORT_BATTLE`);case`EXIT`:throw new Ns(`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?j.OBJECT:j.MAP;if(n===j.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[R.ATR_X]:r[R.ATR_X2];return Math.floor(i/R.CHIP_SIZE)}else if(n===j.MAP){let e=this.generator.wwa.getMapInfo(t)[R.ATR_X];return Math.floor(e/R.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?j.OBJECT:j.MAP;if(n===j.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[R.ATR_Y]:r[R.ATR_Y2];return Math.floor(i/R.CHIP_SIZE)}else if(n===j.MAP){let e=this.generator.wwa.getMapInfo(t)[R.ATR_Y];return Math.floor(e/R.CHIP_SIZE)}throw Error(`GET_IMG_POS_Y: 指定したIDのパーツのTypeが異常です。`)}case`LENGTH`:return this._checkArgsLength(1,e),Ts(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=this.evalWwaNode(e.value[0]),n=t===`__BLOCK`;this.generator.wwa.manualPause({functionNames:{cancelPause:t&&!n?t:``,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]):``},blockingCancelPauseByPlayer:n});return}case`CANCEL_MANUAL_PAUSE`:case`CANCEL_WAIT_ENTER`:this.generator.wwa.cancelManualPause();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 L.ENERGY:case L.STRENGTH:case L.DEFENCE:case L.GOLD:this.generator.wwa.setStatusIconCoord(t,new S(n,r));break;case L.WIDE_CELL_ROW:this.generator.wwa.setWideCellCoord(new S(n,r));break;case L.ITEM_BG:this.generator.wwa.setItemboxBackgroundPosition({x:n,y:r});break;case L.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?j.OBJECT:Number(this.evalWwaNode(e.value[2]));if(t<0)throw Error(`パーツ番号が不正です`);if(r===j.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`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.setDecisionSound(t);return}case`CHANGE_SOUND_ATTACK`:{this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]);this.generator.wwa.setAttackSound(t);return}case`SORT`:{if(this.for_id.sort_a||this.for_id.sort_b)throw Error(`SORT関数に与えた関数内でSORT関数を呼び出すことはできません。`);this._checkArgsLength(1,e);let t=this.evalWwaNode(e.value[0]),n=e.value[1]?this.evalWwaNode(e.value[1]):void 0;if(!Array.isArray(t))throw Error(`SORT関数の引数は配列である必要があります。`);if(n!==void 0&&typeof n!=`string`)throw Error(`SORT関数の比較関数名は文字列である必要があります。`);let r=this.generator.wwa.getUserScript(n);t.sort(n?(e,t)=>{this.for_id.sort_a={value:e},this.for_id.sort_b={value:t};try{this.evalWwaNode(r)}catch(e){if(e instanceof Ms)return this.for_id.sort_a=void 0,this.for_id.sort_b=void 0,e.value;throw e}}:void 0);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`?j.MAP:j.OBJECT,a=this.resolveParts(i,n,r),o=this.evalWwaNode(e.value);switch(e.operator){case`=`:case`+=`:case`-=`:case`*=`:case`/=`:{let s=ks[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 j.MAP:return r.wwaData.map[n][t];case j.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=ks[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 typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の減算をすることはできません、`),NaN):n-t;case`*=`:return typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の乗算をすることはできません、`),NaN):n*t;case`/=`:return typeof n!=`number`||typeof t!=`number`?(console.warn(`${e.kind} に数値以外の除算をすることはできません、`),NaN):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,!0),r;case`DF`:return this.generator.wwa.setPlayerStatus(ue.DEFENCE,r,!0),r;case`GD`:return this.generator.wwa.setPlayerStatus(ue.GOLD,r,!0),r;case`HP`:{let{isGameOver:e}=this.generator.wwa.setPlayerStatus(ue.ENERGY,r,!0);if(e)throw new Ns(`GAME_OVER`);return 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 Es(t.playerCoord.x,t.cameraCoord.x);case`PLAYER_PY`:return Ds(t.playerCoord.y,t.cameraCoord.y);case`MOVE_SPEED`:return de[t.gameSpeedIndex];case`MOVE_FRAME_TIME`:return R.CHIP_SIZE/de[t.gameSpeedIndex];case`LP`:return this.for_id.LP;case`undefined`:return;case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_a?.value;case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_b?.value;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);case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return Ke(this.for_id.sort_a.value,t);case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return Ke(this.for_id.sort_b.value,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];case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_a.value[t];case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return this.for_id.sort_b.value[t];default:throw console.log(e.name,e.indecies[0],t),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`?j.OBJECT:j.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 Ke(n,this.evalWwaNode(e.indecies[1]))}case`SORT_A`:{let t=e.indecies.map(e=>this.evalWwaNode(e));if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_a.value)}case`SORT_B`:{let t=e.indecies.map(e=>this.evalWwaNode(e));if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_b.value)}}}evalArrayOrObject3DPlus(e){let t=e.indecies.map(e=>this.evalWwaNode(e));switch(e.name){case`v`:{let e=this.generator.wwa.getUserNameVar(t[0]);return t.slice(1).reduce((e,t)=>Ke(e,t),e)}case`SORT_A`:if(!this.for_id.sort_a)throw Error(`SORT_AはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_a.value);case`SORT_B`:if(!this.for_id.sort_b)throw Error(`SORT_BはSORT関数の比較関数内でのみ使用可能です。`);return t.reduce((e,t)=>Ke(e,t),this.for_id.sort_b.value)}}evalLiteral(e){return e.value}},Ms=class{constructor(e){this.value=e}},Ns=class{constructor(e,t){this.reason=e,this.value=t}};function Ps(e){return Ko(e,{ecmaVersion:2020})}var Fs=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}}},Is=`user-variable-label`;function Ls(){let e=document.createElement(`div`);return e.textContent=`-`,e.setAttribute(`aria-hidden`,`true`),e.classList.add(Is),e}function Rs(e,t){e.textContent!==t&&(e.textContent=t)}var zs=`-`,Bs=`user-variable-card`,Vs=`user-variable-card--is-trimmed`;function Hs({index:e,value:t}){let n=document.createElement(`div`);n.classList.add(Bs),qs(t)&&n.classList.add(Vs),n.dataset.varIndex=String(e);let{cardIndexElement:r,cardIndexLabelElement:i}=Us(e),a=Ws(t);return n.appendChild(r),n.appendChild(a),{cardElement:n,cardIndexElement:r,cardIndexLabelElement:i,cardValueElement:a}}function Us(e){let t=document.createElement(`div`);t.classList.add(`index`),t.textContent=String(e),typeof e==`string`&&t.setAttribute(`title`,e);let n=Ls();return t.appendChild(n),{cardIndexElement:t,cardIndexLabelElement:n}}function Ws(e){let t=document.createElement(`div`);return t.classList.add(`value`),typeof e==`string`&&t.setAttribute(`title`,Ge(e)),Ks(t,e),t}function Gs(e,t){e.dataset.labelledVarIndex=`true`,e.addEventListener(`mouseover`,()=>t.removeAttribute(`aria-hidden`)),e.addEventListener(`mouseleave`,()=>t.setAttribute(`aria-hidden`,`true`))}function Ks(e,t){let n=Ge(t);e.textContent!==n&&(e.textContent=t===void 0?zs:Ge(t))}function qs(e){return typeof e!=`object`}var Js=`user-variable-list`;function Ys({kind:e,elementStore:t}){let n=document.createElement(`ul`);return n.classList.add(Js),e===`numbered`&&Array.from({length:R.USER_VAR_NUM}).map((e,n)=>Xs({elementStore:t,index:n})).forEach(e=>n.appendChild(e)),n}function Xs({elementStore:e,index:t,value:n}){let r=document.createElement(`li`),i=Hs({index:t,value:n});return e.updateUserVarElementInfo(t,i),r.appendChild(i.cardElement),r}function Zs(e,t,{index:n,value:r}){t.appendChild(Xs({elementStore:e,index:n,value:r}))}var Qs=`information`;function $s(){let e=document.createElement(`p`);return e.classList.add(Qs),ec(e,`強調されている番号にカーソルを乗せると説明が表示されます。`),e}function ec(e,t,n=!1){e.textContent=`${n?`【エラー】`:``}${t}`}function tc({elementStore:e,heading:t,contentVisibilityToggleButton:n,information:r}){let i=document.createElement(`header`);if(i.appendChild(rc({heading:t,contentVisibilityToggleButton:n})),r){let t=$s();i.appendChild(t),e.updateNamedUserVarInformationElement(t)}return i}function nc(e,t){e.textContent=t?`▲隠す`:`▼表示`}function rc({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`),nc(i,!0),t.onClick&&i.addEventListener(`click`,t.onClick.bind(i)),n.appendChild(i),n}var ic=`user-variable-list-section`;function ac({kind:e,elementStore:t}){let n=document.createElement(`section`);n.classList.add(ic),n.dataset.kind=e;let r=Ys({kind:e,elementStore:t});t.updateUserVarListElement(e,r);let i=tc({elementStore:t,heading:{text:e===`named`?`名前つき変数一覧`:`変数一覧`},information:(e===`numbered`||void 0)&&{},contentVisibilityToggleButton:{onClick:e=>{let n=t.getNamedUserVarInformationElement();n&&(r.getAttribute(`aria-hidden`)===`true`?oc(r,n,e.target):sc(r,n,e.target))}}});return n.appendChild(i),n.appendChild(r),t.updateUserVarListElement(e,r),n}function oc(e,t,n){e.removeAttribute(`aria-hidden`),t instanceof HTMLElement&&t.removeAttribute(`aria-hidden`),n instanceof HTMLElement&&nc(n,!0)}function sc(e,t,n){e.setAttribute(`aria-hidden`,`true`),t instanceof HTMLElement&&t.setAttribute(`aria-hidden`,`true`),n instanceof HTMLElement&&nc(n,!1)}function cc(){let e=new Map,t=new Map,n=new Map,r=null;return{getAllNamedUserVarIndeciesSet:()=>new Set(t.keys()),updateUserVarElementInfo:(n,r)=>{if(typeof n==`number`)e.set(n,r);else if(typeof n==`string`)t.set(n,r);else throw TypeError(`Invalid index: ${n}`)},getUserVarElementInfo:n=>{if(typeof n==`number`)return e.get(n);if(typeof n==`string`)return t.get(n);throw TypeError(`Invalid index: ${n}`)},deleteUserVarElementInfo:n=>{if(typeof n==`number`)e.delete(n);else if(typeof n==`string`)t.delete(n);else throw TypeError(`Invalid index: ${n}`)},getUserVarListElement:e=>n.get(e),updateUserVarListElement:(e,t)=>{n.set(e,t)},deleteUserVarListElement:e=>{n.delete(e)},getNamedUserVarInformationElement:()=>r,updateNamedUserVarInformationElement:e=>{r=e},deleteNamedUserVarInformationElement:()=>{r=null},dispose:()=>{e.clear(),t.clear(),n.clear(),r=null}}}function lc(e,t){let n=e.getAllNamedUserVarIndeciesSet(),r=e.getUserVarListElement(`named`);for(let[i,a]of t){let t=e.getUserVarElementInfo(i)?.cardValueElement;n.delete(i),t?Ks(t,a):Zs(e,r,{index:i,value:a})}for(let t of n){let n=e.getUserVarElementInfo(t)?.cardElement.parentElement;n instanceof HTMLLIElement&&(e.getUserVarListElement(`named`)?.removeChild(n),e.deleteUserVarElementInfo(t))}}function uc(e,t){Array.from({length:R.USER_VAR_NUM}).map((n,r)=>{let i=e.getUserVarElementInfo(r)?.cardValueElement;i&&Ks(i,t[r])})}function dc(e,t){Array.from({length:R.USER_VAR_NUM}).map((n,r)=>{let i=t[r];if(!i)return;let a=e.getUserVarElementInfo(r);if(!a)return;let o=a.cardIndexElement,s=a.cardIndexLabelElement;Rs(s,i),Gs(o,s)})}function fc(e,t,n=!1){ec(e.getNamedUserVarInformationElement(),t,n)}var pc=`wwa-vardump-wrapper`;function mc(e){let t=Le(e),n=cc();return t instanceof HTMLElement?(t.classList.add(pc),t.appendChild(ac({kind:`named`,elementStore:n})),t.appendChild(ac({kind:`numbered`,elementStore:n})),{updateAllVariables:({namedUserVar:e,userVar:t})=>{e&&lc(n,e),t&&uc(n,t)},numberedUserVariable:{updateValues:e=>uc(n,e),updateLabels:e=>dc(n,e),updateInformation:(e,t=!1)=>fc(n,e,t)},namedUserVariable:{updateValues:e=>lc(n,e)}}):null}function hc(){return{mapdata:``,urlGateEnable:!1,titleImg:void 0,audioDir:`./audio/`,classicModeEnable:!1,itemEffectEnable:!0,useGoToWwa:!1,lookingAround:!1,autoSave:!0,disallowLoadOldSave:!1,resumeSaveData:void 0,varDump:null,userVarNamesFile:void 0,displayUserVars:!1,virtualPadEnable:!1,virtualPadViewportFitEnable:!1,virtualPadControllerElm:void 0,userDefinedScriptsFile:`./script/script_file_list.json`,frameRateDisplayingPattern:`default-off`}}var gc;function _c(e,t,n){var r=new ge;return r.current=e,r.total=t,r.stage=n,r}var vc=class{constructor(e=hc()){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._frameRateDisplayingPattern=`default-off`,this.audioExtension=``,this.soundLoadedCheckTimer=void 0,this._playTimeCalculator=void 0,this._varDump=null,this.userDefinedFunctions={},this.convertWwaNodes=e=>Jo(Ps(e)),this._prevTimeStamp=-1,this._accumlatedTimeMs=0,this._samplingTimeMs=0,this._frameCountForMeasureFps=0,this.mainCaller=e=>{if(this._prevTimeStamp<0){this._prevTimeStamp=e,requestAnimationFrame(this.mainCaller.bind(this));return}let t=e-this._prevTimeStamp;this._prevTimeStamp=e,this._accumlatedTimeMs+=t,this._accumlatedTimeMs>=R.INTERVAL_MS&&(this._accumlatedTimeMs-=R.INTERVAL_MS,this._accumlatedTimeMs>R.INTERVAL_MS*2&&(this._accumlatedTimeMs=0),this._main(),this._frameCountForMeasureFps++),this._samplingTimeMs+=t,this._samplingTimeMs>=1e3&&(this._gameFrameRateWindow?.updateCurrentFps(this._frameCountForMeasureFps/(this._samplingTimeMs/1e3)),this._frameCountForMeasureFps=0,this._samplingTimeMs=0),requestAnimationFrame(this.mainCaller.bind(this))},this.soundCheckCaller=()=>this.checkAllSoundLoaded(),this._checkTurnKeyPressed=()=>this._keyStore.checkHitKey(V.KEY_ESC)||this._keyStore.checkHitKey(V.KEY_SHIFT)||this._keyStore.checkHitKey(V.KEY_N),this._saveDataList=[],this.wwaCustomEventEmitter=new Qi(U(`wwa-wrapper`));let t;window.addEventListener(`click`,e=>{this._isActive=!1}),U(`wwa-wrapper`).addEventListener(`click`,e=>{e.stopPropagation(),this._isActive=!0}),this._isActive=!0,e.titleImg===void 0?(this._hasTitleImg=!1,this._cvsCover=U(`progress-panel`),t=this._cvsCover.getContext(`2d`),t.fillStyle=`rgb(0, 0, 0)`):this._hasTitleImg=!0;try{this._hasTitleImg?(U(`unstable-version-warning`).textContent=`この WWA Wing は [不安定版] です。`,U(`version`).textContent=`WWA Wing Ver.4.0.11`):this._setLoadingMessage(t,0)}catch{}this._varDump=e.varDump;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?T.GOTO_WWA:T.BATTLE_REPORT,this._userVarNameList=[],this.evalCalcWwaNodeGenerator=new As(this),this.userDevice=new M,location.href.match(/^file/))switch(this.userDevice.device){case re.GAME:switch(this.userDevice.os){case ne.NINTENDO:R.BATTLE_INTERVAL_FRAME_NUM=5;break}this._bottomButtonType=T.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(U(`cell-save`).textContent=he.QUICK_SAVE,this._usePassword?U(`cell-load`).textContent=he.PASSWORD:U(`cell-load`).textContent=he.EMPTY_LOAD,this._bottomButtonType){case T.GOTO_WWA:U(`cell-gotowwa`).textContent=he.GOTO_WWA;break;case T.BATTLE_REPORT:U(`cell-gotowwa`).textContent=he.BATTLE_REPORT;break;case T.GAME_END:U(`cell-gotowwa`).textContent=he.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 Qi,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,16 +100,16 @@ ${t?Fe():``}
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?Bn(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 Bn(r);if(i?.kind===`data`&&Array.isArray(i.data)){console.log(`(C) これらの外部 WWA Script がロードされます:`,i.data);let e=i.data.map(e=>Fs(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?U(`version`).textContent+=` (Map data Ver. `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10+`)`:this._setLoadingMessage(t,1)}catch{}this.initCSSRule(),this._setProgressBar(_c(0,4,_e.GAME_INIT)),this._setLoadingMessage(t,2);let n=this._wwaData.mapCGName.replace(`(`,`\\(`).replace(`)`,`\\)`),r=e=>{e.style.backgroundImage=`url(`+n+`)`};Array.prototype.forEach.call(ze(`div.item-cell`),e=>{e.style.backgroundPosition=`-${this._wwaData.imgItemboxX*R.CHIP_SIZE}px -${this._wwaData.imgItemboxY*R.CHIP_SIZE}px`,e.style.backgroundImage=`url(`+n+`)`}),Array.prototype.forEach.call(ze(`div.wide-cell-row`),e=>{e.style.backgroundPosition=`-160px -120px`,e.style.backgroundImage=`url(`+n+`)`}),Array.prototype.forEach.call(ze(`.item-cell>.item-click-border`),e=>{e.style.backgroundImage=`url('`+R.ITEM_BORDER_IMG_DATA_URL+`')`,e.style.backgroundPosition=`0 0`,e.style.display=`none`,e.style.cursor=`pointer`}),Array.prototype.forEach.call(ze(`.item-cell>.item-disp`),r),Array.prototype.forEach.call(ze(`div.wide-cell-row>.status-icon`),r),this.setStatusIconCoord(L.ENERGY,new S(this._wwaData.imgStatusEnergyX,this._wwaData.imgStatusEnergyY)),this.setStatusIconCoord(L.STRENGTH,new S(this._wwaData.imgStatusStrengthX,this._wwaData.imgStatusStrengthY)),this.setStatusIconCoord(L.DEFENCE,new S(this._wwaData.imgStatusDefenceX,this._wwaData.imgStatusDefenceY)),this.setStatusIconCoord(L.GOLD,new S(this._wwaData.imgStatusGoldX,this._wwaData.imgStatusGoldY)),this._setProgressBar(_c(1,4,_e.GAME_INIT)),this._setLoadingMessage(t,3),this._mapIDTableCreate(),this._replaceAllRandomObjects(),this._cvs=U(`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 Wn(a),this._itemMenu=new jr;var o=new x(this._wwaData.statusEnergy,this._wwaData.statusStrength,this._wwaData.statusDefence,this._wwaData.statusGold);this._player=new qn(this,a,this._camera,o,this._wwaData.statusEnergyMax,this._wwaData.moves,this._wwaData.gameSpeedIndex),this._userVar={numbered:Array.from({length:R.USER_VAR_NUM}).map(()=>0),named:new Map},this._objectMovingDataManager=new Xn(this,this._player),this._camera.setPlayer(this._player),this._keyStore=new we,this._mouseStore=new Ee,e.virtualPadEnable?(this._virtualPadButtonElements={BUTTON_ENTER:U(`wwa-enter-button`),BUTTON_ESC:U(`wwa-esc-button`),BUTTON_FAST:U(`wwa-fast-button`),BUTTON_SLOW:U(`wwa-slow-button`),BUTTON_LEFT:U(`wwa-left-button`),BUTTON_UP:U(`wwa-up-button`),BUTTON_RIGHT:U(`wwa-right-button`),BUTTON_DOWN:U(`wwa-down-button`)},this._virtualPadStore=new Me(this._virtualPadButtonElements,kr(),U(`wwa-virtualpad-right`),U(`wwa-virtualpad-left`),this._setVirtualPadTouch.bind(this),this._setVirtualPadLeave.bind(this)),bc(e.virtualPadControllerElm,()=>{this._virtualPadStore.toggleVisible()})):(this._virtualPadButtonElements=null,this._virtualPadStore=new Me({})),this._debugConsoleElement=xc(U(`wwa-debug-console-area`)),this._debugConsoleElement?.querySelector(`.script-running-button`).addEventListener(`click`,()=>{this._debugEvalString()}),this._gamePadStore=new De,this._pages=[],this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.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 yr(this,50,180,340,0,this._wwaData.mapCGName,!1,!0,!1,U(`wwa-wrapper`)),this._scoreWindow=new vr(this,new S(50,50),!1,U(`wwa-wrapper`)),this._wwaSave=new Xi(gc,gc._wwaData.worldName,gc._wwaData.worldPassNumber,this._checkSaveDataCompatibility.bind(this),e=>{if(e.length>0){let t=`これまでに保存されていたセーブデータは、下記の理由により消えたものがあります。`;e.forEach(e=>{switch(e){case Yi.UNMATCHED_WORLD_NAME:t+=`
101
101
  ・制作者によるマップデータのワールド名の変更`;break;case Yi.UNMATCHED_WORLD_PASS_NUMBER:t+=`
102
102
  ・制作者によるマップデータの暗証番号の変更`;break;case Yi.DISALLOW_OLD_REVISION_WORLD_SAVE_DATA:t+=`
103
- ・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)`;break}}),alert(t)}}),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Ri.setRestartData(this._restartData,this._wwaData),this.clearFaces();let s=U(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof s==`string`&&(this._useSuspend=!0,s)){var c=Ri.getStartWWAData(s);this._restartData!==c&&(this._applyQuickLoad(c),this._wwaSave.resumeStart())}let l=U(`wwa-wrapper`).getAttribute(`data-wwa-autosave`);l!==null&&this._wwaSave.setAutoSaveInterval(Number(l)|0);let u=U(`wwa-wrapper`).getAttribute(`data-wwa-looking-around`);if(this._useLookingAround=!(u&&u.match(/false/i)),this._setProgressBar(_c(2,4,_e.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener(`keydown`,e=>{if(this._isActive){switch(this.userDevice.os){case ne.NINTENDO:e.preventDefault(),e.stopPropagation();return}if(this._keyStore.setPressInfo(e.keyCode),e.keyCode===V.KEY_F5){e.preventDefault();return}this._player.isWaitingMessageOrManualPause()?(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_SPACE)&&e.preventDefault():this._player.isWaitingPasswordWindow()||(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_1||e.keyCode===V.KEY_2||e.keyCode===V.KEY_3||e.keyCode===V.KEY_A||e.keyCode===V.KEY_C||e.keyCode===V.KEY_D||e.keyCode===V.KEY_E||e.keyCode===V.KEY_M||e.keyCode===V.KEY_N||e.keyCode===V.KEY_Q||e.keyCode===V.KEY_S||e.keyCode===V.KEY_W||e.keyCode===V.KEY_X||e.keyCode===V.KEY_Y||e.keyCode===V.KEY_Z||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_F1||e.keyCode===V.KEY_F2||e.keyCode===V.KEY_F3||e.keyCode===V.KEY_F4||e.keyCode===V.KEY_F6||e.keyCode===V.KEY_F7||e.keyCode===V.KEY_F8||e.keyCode===V.KEY_F12||e.keyCode===V.KEY_SPACE)&&e.preventDefault()}}),window.addEventListener(`keyup`,e=>{if(this._isActive){switch(this.userDevice.os){case ne.NINTENDO:e.preventDefault(),e.stopPropagation();return}this._keyStore.setReleaseInfo(e.keyCode),(e.keyCode===V.KEY_F5||(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_0||e.keyCode===V.KEY_1||e.keyCode===V.KEY_2||e.keyCode===V.KEY_3||e.keyCode===V.KEY_4||e.keyCode===V.KEY_5||e.keyCode===V.KEY_6||e.keyCode===V.KEY_7||e.keyCode===V.KEY_8||e.keyCode===V.KEY_9||e.keyCode===V.KEY_A||e.keyCode===V.KEY_C||e.keyCode===V.KEY_D||e.keyCode===V.KEY_E||e.keyCode===V.KEY_M||e.keyCode===V.KEY_N||e.keyCode===V.KEY_Q||e.keyCode===V.KEY_S||e.keyCode===V.KEY_W||e.keyCode===V.KEY_X||e.keyCode===V.KEY_Y||e.keyCode===V.KEY_Z||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_NUM0||e.keyCode===V.KEY_NUM1||e.keyCode===V.KEY_NUM2||e.keyCode===V.KEY_NUM3||e.keyCode===V.KEY_NUM4||e.keyCode===V.KEY_NUM5||e.keyCode===V.KEY_NUM6||e.keyCode===V.KEY_NUM7||e.keyCode===V.KEY_NUM8||e.keyCode===V.KEY_NUM9||e.keyCode===V.KEY_F1||e.keyCode===V.KEY_F3||e.keyCode===V.KEY_F4||e.keyCode===V.KEY_F6||e.keyCode===V.KEY_F7||e.keyCode===V.KEY_F8||e.keyCode===V.KEY_F9||e.keyCode===V.KEY_F12||e.keyCode===V.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=U(`wwa-controller`),this._mouseControllerElement.addEventListener(`mousedown`,e=>{if(this._isActive&&e.which===1){if(this._mouseStore.getMouseState()!==Te.NONE){e.preventDefault();return}let t=Be(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<R.CHIP_SIZE&&a<R.CHIP_SIZE){switch(n.x/R.CHIP_SIZE|0){case 0:s=!0,o=E.LEFT;break;case R.H_PARTS_NUM_IN_WINDOW-1:s=!0,o=E.RIGHT;break}switch(n.y/R.CHIP_SIZE|0){case 0:s=!0,o=E.UP;break;case R.V_PARTS_NUM_IN_WINDOW-1:s=!0,o=E.DOWN;break}}s||(r.y>0&&a>i?o=E.DOWN:r.y<0&&a>i?o=E.UP:r.x>0&&a<i?o=E.RIGHT:r.x<0&&a<i&&(o=E.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()!==Te.NONE){e.preventDefault();return}let t=e.changedTouches,n=t.length;for(let e=0;e<n;e++){let n=t[e],r=Be(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<R.CHIP_SIZE&&s<R.CHIP_SIZE){switch(i.x/R.CHIP_SIZE|0){case 0:l=!0,c=E.LEFT;break;case R.H_PARTS_NUM_IN_WINDOW-1:l=!0,c=E.RIGHT;break}switch(i.y/R.CHIP_SIZE|0){case 0:l=!0,c=E.UP;break;case R.V_PARTS_NUM_IN_WINDOW-1:l=!0,c=E.DOWN;break}}l||(a.y>0&&s>o?c=E.DOWN:a.y<0&&s>o?c=E.UP:a.x>0&&s<o?c=E.RIGHT:a.x<0&&s<o&&(c=E.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)}if(U(`button-load`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_LOAD)}),U(`button-save`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_SAVE)}),U(`button-restart`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.RESTART_GAME)}),U(`button-gotowwa`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.GOTO_WWA,!1,!1)}),Array.prototype.forEach.call(ze(`.wide-cell-row`),e=>{e.addEventListener(`click`,()=>{this._displayHelp()})}),this._frameCoord=new S(R.IMGPOS_DEFAULT_FRAME_X,R.IMGPOS_DEFAULT_YESNO_Y),this._battleEffectCoord=new S(R.IMGPOS_DEFAULT_BATTLE_EFFECT_X,R.IMGPOS_DEFAULT_BATTLE_EFFECT_Y),this._battleEstimateWindow=new Sr(this,this._wwaData.mapCGName,U(`wwa-wrapper`)),this._passwordWindow=new Dr(this,U(`wwa-wrapper`),e.disallowLoadOldSave),this._monsterWindow=new _r(this,new S(50,180),340,60,!1,U(`wwa-wrapper`),this._wwaData.mapCGName),this._setProgressBar(_c(3,4,_e.GAME_INIT)),this._gameFrameRateWindow=new br(U(`wwa-wrapper`),e.frameRateDisplayingPattern===`always`?void 0:()=>this._gameFrameRateWindow.hide()),e.frameRateDisplayingPattern===`default-off`||e.frameRateDisplayingPattern===`never`)this._gameFrameRateWindow.hide();else if(e.frameRateDisplayingPattern===`default-on`||e.frameRateDisplayingPattern===`always`)this._gameFrameRateWindow.updateTargetFps(R.TARGET_FPS),this._gameFrameRateWindow.show();else throw TypeError(`Invalid framerateDisplayingPattern: ${e.frameRateDisplayingPattern}`);this._frameRateDisplayingPattern=this.userDevice.device===re.GAME?`never`:e.frameRateDisplayingPattern,this._isLoadedSound=!1,this._temporaryInputDisable=!1,this._paintSkipByDoorOpen=!1,this._clearFacesInNextFrame=!1,this._useConsole=!1,this._playTimeCalculator=new Oe,this.wwaCustomEvent(`wwa_startup`),this._cgManager=new Un(i,this._wwaData.mapCGName,this._frameCoord,this,e.pictureImageNamesFile,()=>{this._isSkippedSoundMessage=!0;let n=()=>{switch(this.userDevice.device){case re.PC:this.registerSystemMessagePage(`ゲームを開始します。
103
+ ・制作者によるマップデータの内容変更 (マップデータ制作者の設定により、内容が変更されるとセーブデータが消去されます)`;break}}),alert(t)}}),this._isDisallowLoadOldSave=e.disallowLoadOldSave,this._messageWindow.setWWASave(this._wwaSave),Ri.setRestartData(this._restartData,this._wwaData),this.clearFaces();let s=U(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof s==`string`&&(this._useSuspend=!0,s)){var c=Ri.getStartWWAData(s);this._restartData!==c&&(this._applyQuickLoad(c),this._wwaSave.resumeStart())}let l=U(`wwa-wrapper`).getAttribute(`data-wwa-autosave`);l!==null&&this._wwaSave.setAutoSaveInterval(Number(l)|0);let u=U(`wwa-wrapper`).getAttribute(`data-wwa-looking-around`);if(this._useLookingAround=!(u&&u.match(/false/i)),this._setProgressBar(_c(2,4,_e.GAME_INIT)),this._setLoadingMessage(t,4),window.addEventListener(`keydown`,e=>{if(this._isActive){switch(this.userDevice.os){case ne.NINTENDO:e.preventDefault(),e.stopPropagation();return}if(this._keyStore.setPressInfo(e.keyCode),e.keyCode===V.KEY_F5){e.preventDefault();return}this._player.isWaitingMessageOrManualPause()?(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_SPACE)&&e.preventDefault():this._player.isWaitingPasswordWindow()||(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_1||e.keyCode===V.KEY_2||e.keyCode===V.KEY_3||e.keyCode===V.KEY_A||e.keyCode===V.KEY_C||e.keyCode===V.KEY_D||e.keyCode===V.KEY_E||e.keyCode===V.KEY_M||e.keyCode===V.KEY_N||e.keyCode===V.KEY_Q||e.keyCode===V.KEY_S||e.keyCode===V.KEY_W||e.keyCode===V.KEY_X||e.keyCode===V.KEY_Y||e.keyCode===V.KEY_Z||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_F1||e.keyCode===V.KEY_F2||e.keyCode===V.KEY_F3||e.keyCode===V.KEY_F4||e.keyCode===V.KEY_F6||e.keyCode===V.KEY_F7||e.keyCode===V.KEY_F8||e.keyCode===V.KEY_F12||e.keyCode===V.KEY_SPACE)&&e.preventDefault()}}),window.addEventListener(`keyup`,e=>{if(this._isActive){switch(this.userDevice.os){case ne.NINTENDO:e.preventDefault(),e.stopPropagation();return}this._keyStore.setReleaseInfo(e.keyCode),(e.keyCode===V.KEY_F5||(e.keyCode===V.KEY_DOWN||e.keyCode===V.KEY_LEFT||e.keyCode===V.KEY_RIGHT||e.keyCode===V.KEY_UP||e.keyCode===V.KEY_SHIFT||e.keyCode===V.KEY_ENTER||e.keyCode===V.KEY_0||e.keyCode===V.KEY_1||e.keyCode===V.KEY_2||e.keyCode===V.KEY_3||e.keyCode===V.KEY_4||e.keyCode===V.KEY_5||e.keyCode===V.KEY_6||e.keyCode===V.KEY_7||e.keyCode===V.KEY_8||e.keyCode===V.KEY_9||e.keyCode===V.KEY_A||e.keyCode===V.KEY_C||e.keyCode===V.KEY_D||e.keyCode===V.KEY_E||e.keyCode===V.KEY_M||e.keyCode===V.KEY_N||e.keyCode===V.KEY_Q||e.keyCode===V.KEY_S||e.keyCode===V.KEY_W||e.keyCode===V.KEY_X||e.keyCode===V.KEY_Y||e.keyCode===V.KEY_Z||e.keyCode===V.KEY_ESC||e.keyCode===V.KEY_NUM0||e.keyCode===V.KEY_NUM1||e.keyCode===V.KEY_NUM2||e.keyCode===V.KEY_NUM3||e.keyCode===V.KEY_NUM4||e.keyCode===V.KEY_NUM5||e.keyCode===V.KEY_NUM6||e.keyCode===V.KEY_NUM7||e.keyCode===V.KEY_NUM8||e.keyCode===V.KEY_NUM9||e.keyCode===V.KEY_F1||e.keyCode===V.KEY_F3||e.keyCode===V.KEY_F4||e.keyCode===V.KEY_F6||e.keyCode===V.KEY_F7||e.keyCode===V.KEY_F8||e.keyCode===V.KEY_F9||e.keyCode===V.KEY_F12||e.keyCode===V.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=U(`wwa-controller`),this._mouseControllerElement.addEventListener(`mousedown`,e=>{if(this._isActive&&e.which===1){if(this._mouseStore.getMouseState()!==Te.NONE){e.preventDefault();return}let t=Be(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<R.CHIP_SIZE&&a<R.CHIP_SIZE){switch(n.x/R.CHIP_SIZE|0){case 0:s=!0,o=E.LEFT;break;case R.H_PARTS_NUM_IN_WINDOW-1:s=!0,o=E.RIGHT;break}switch(n.y/R.CHIP_SIZE|0){case 0:s=!0,o=E.UP;break;case R.V_PARTS_NUM_IN_WINDOW-1:s=!0,o=E.DOWN;break}}s||(r.y>0&&a>i?o=E.DOWN:r.y<0&&a>i?o=E.UP:r.x>0&&a<i?o=E.RIGHT:r.x<0&&a<i&&(o=E.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()!==Te.NONE){e.preventDefault();return}let t=e.changedTouches,n=t.length;for(let e=0;e<n;e++){let n=t[e],r=Be(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<R.CHIP_SIZE&&s<R.CHIP_SIZE){switch(i.x/R.CHIP_SIZE|0){case 0:l=!0,c=E.LEFT;break;case R.H_PARTS_NUM_IN_WINDOW-1:l=!0,c=E.RIGHT;break}switch(i.y/R.CHIP_SIZE|0){case 0:l=!0,c=E.UP;break;case R.V_PARTS_NUM_IN_WINDOW-1:l=!0,c=E.DOWN;break}}l||(a.y>0&&s>o?c=E.DOWN:a.y<0&&s>o?c=E.UP:a.x>0&&s<o?c=E.RIGHT:a.x<0&&s<o&&(c=E.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)}if(U(`button-load`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_LOAD)}),U(`button-save`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.QUICK_SAVE)}),U(`button-restart`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.RESTART_GAME)}),U(`button-gotowwa`).addEventListener(`click`,()=>{(this._player.isControllable()||this._messageWindow.isItemMenuChoice())&&this.onselectbutton(P.GOTO_WWA,!1,!1)}),Array.prototype.forEach.call(ze(`.wide-cell-row`),e=>{e.addEventListener(`click`,()=>{this._displayHelp()})}),this._frameCoord=new S(R.IMGPOS_DEFAULT_FRAME_X,R.IMGPOS_DEFAULT_YESNO_Y),this._battleEffectCoord=new S(R.IMGPOS_DEFAULT_BATTLE_EFFECT_X,R.IMGPOS_DEFAULT_BATTLE_EFFECT_Y),this._battleEstimateWindow=new Sr(this,this._wwaData.mapCGName,U(`wwa-wrapper`)),this._passwordWindow=new Dr(this,U(`wwa-wrapper`),e.disallowLoadOldSave),this._monsterWindow=new _r(this,new S(50,180),340,60,!1,U(`wwa-wrapper`),this._wwaData.mapCGName),this._setProgressBar(_c(3,4,_e.GAME_INIT)),this._gameFrameRateWindow=new br(U(`wwa-wrapper`),e.classicModeEnable??!1,e.frameRateDisplayingPattern===`always`?void 0:()=>this._gameFrameRateWindow.hide()),e.frameRateDisplayingPattern===`default-off`||e.frameRateDisplayingPattern===`never`)this._gameFrameRateWindow.hide();else if(e.frameRateDisplayingPattern===`default-on`||e.frameRateDisplayingPattern===`always`)this._gameFrameRateWindow.updateTargetFps(R.TARGET_FPS),this._gameFrameRateWindow.show();else throw TypeError(`Invalid framerateDisplayingPattern: ${e.frameRateDisplayingPattern}`);this._frameRateDisplayingPattern=this.userDevice.device===re.GAME?`never`:e.frameRateDisplayingPattern,this._isLoadedSound=!1,this._temporaryInputDisable=!1,this._paintSkipByDoorOpen=!1,this._clearFacesInNextFrame=!1,this._useConsole=!1,this._playTimeCalculator=new Oe,this.wwaCustomEvent(`wwa_startup`),this._cgManager=new Un(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,_e.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,R.SCREEN_WIDTH,R.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(_c(4,4,_e.GAME_INIT));var i=setInterval(()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===k.UNSELECTED&&(this._keyStore.getKeyState(V.KEY_ENTER)===B.KEYDOWN||this._keyStore.getKeyState(V.KEY_Y)===B.KEYDOWN||this._gamePadStore.buttonTrigger(H.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudgeInNextFrame=k.YES:(this._keyStore.getKeyState(V.KEY_N)===B.KEYDOWN||this._keyStore.getKeyState(V.KEY_ESC)===B.KEYDOWN||this._gamePadStore.buttonTrigger(H.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudgeInNextFrame=k.NO)),this._yesNoJudgeInNextFrame===k.YES?(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,_e.AUDIO),this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))},R.YESNO_PRESS_DISP_FRAME_NUM*R.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===k.NO&&(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()},R.YESNO_PRESS_DISP_FRAME_NUM*R.DEFAULT_FRAME_INTERVAL))},R.DEFAULT_FRAME_INTERVAL)}else clearInterval(i),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.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{isGameOver:t,value:r}=this.evalCalcWwaNodeGenerator.evalWwaNode(n);if(t)throw Error(`戦闘予測関数でゲームオーバーが発生しました。戦闘予測関数でプレイヤー生命力を操作しないでください。`);let i=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),i?{damage:0,aborted:i}:typeof r==`number`?{damage:this.toAssignableValue(r),aborted:i}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${r})。このターンのダメージは無効になります。`),{damage:0,aborted:i})}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;if(e){let{isGameOver:t}=this.evalCalcWwaNodeGenerator.evalWwaNode(e);return{isGameOver:t}}return{}}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`){this._varDump?.numberedUserVariable.updateInformation(e.errorMessage,!1);return}if(e.kind!==`data`){this._userVarNameListRequestError=e,this._varDump?.numberedUserVariable.updateInformation(this._userVarNameListRequestError.errorMessage,!0);return}if(!e.data||typeof e.data!=`object`){this._userVarNameListRequestError={kind:`notObject`,errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},this._varDump?.numberedUserVariable.updateInformation(this._userVarNameListRequestError.errorMessage,!0);return}this._userVarNameList=this.convertUserVariableNameListToArray(e.data),this._varDump?.numberedUserVariable.updateLabels(this._userVarNameList)}}convertUserVariableNameListToArray(e){let t=Array(R.USER_VAR_NUM);for(let e=0;e<R.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>=R.USER_VAR_NUM||(t[r]=e[n])}),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=R.LOAD_STAGE_MAX_EXCEPT_AUDIO?(U(`progress-message-container`).textContent=e.stage===R.LOAD_STAGE_MAX_EXCEPT_AUDIO?`World Name: `+this._wwaData.worldName:ve[e.stage],U(`progress-bar`).style.width=(1*e.stage+e.current/e.total*1)/(R.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*R.MAP_WINDOW_WIDTH+`px`,U(`progress-disp`).textContent=((1*e.stage+e.current/e.total*1)/(R.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+`%`):(this._usePassword?U(`progress-message-container`).textContent=`効果音/BGMを読み込んでいます。(スペースキーでスキップ)`:U(`progress-message-container`).textContent=`ゲームデータを読み込んでいます。`,U(`progress-bar-audio`).style.width=e.current*R.MAP_WINDOW_WIDTH/e.total+`px`,U(`progress-disp`).textContent=(e.current/e.total*100).toFixed(2)+`%`))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=be.TITLE+`px `+R.LOADING_FONT,e.fillText(ye[0],z.TITLE_X,z.TITLE_Y),e.font=be.FOOTER+`px `+R.LOADING_FONT,e.fillText(`WWA Wing Ver.4.0.9-fps-measure.based-on.4.0.8`,z.FOOTER_X,z.COPYRIGHT_Y);else if(t<=ye.length)e.font=be.LOADING+`px `+R.LOADING_FONT,t>=2&&(e.clearRect(z.LOADING_X,z.LOADING_Y+z.LINE*(t-3),R.SCREEN_WIDTH-z.LOADING_X,z.LINE),e.fillText(ye[t-1]+` Complete!`,z.LOADING_X,z.LOADING_Y+z.LINE*(t-2))),t<ye.length&&e.fillText(ye[t],z.LOADING_X,z.LOADING_Y+z.LINE*(t-1)),t==1&&(e.font=be.FOOTER+`px `+R.LOADING_FONT,e.fillText(`World Name `+this._wwaData.worldName,z.FOOTER_X,z.WORLD_Y),e.fillText(` (Map data Ver. `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10+`)`,z.FOOTER_X,z.WORLD_Y+z.LINE));else{var n=this._isSkippedSoundMessage?z.LOADING_Y+z.LINE*(ye.length-1):z.FOOTER_Y;t<=_e.AUDIO?e.fillText(`Now Sound data Loading .....`,z.LOADING_X,n):(e.clearRect(z.LOADING_X,n-z.LINE,R.SCREEN_WIDTH-z.LOADING_X,z.LINE),e.fillText(`Now Sound data Loading ..... Complete!`,z.LOADING_X,n))}}_setErrorMessage(e,t){this._hasTitleImg?alert(e):(t.clearRect(0,0,R.SCREEN_WIDTH,R.SCREEN_HEIGHT),t.font=be.ERRROR+`px `+R.LOADING_FONT,e.split(`
111
- `).forEach(function(e,n){t.fillText(e,z.ERROR_X,z.ERROR_Y+z.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 Zi(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][R.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-3) 物体パーツ記載のサウンドのロードを開始します。`);for(let e=1;e<this._wwaData.objPartsMax;e++){if(this._wwaData.objectAttribute[e][R.ATR_TYPE]===R.OBJECT_RANDOM)continue;let t=this._wwaData.objectAttribute[e][R.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-4) $sound マクロ記載のサウンドのロードを開始します。`),this._wwaData.message.forEach(e=>e.split(`
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 Bn(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(V.KEY_SPACE)===B.KEYDOWN&&(this._soundLoadSkipFlag=!0),this._soundMap.forEach(n=>{!n||n.isError()||(t++,n.hasData()&&e++)}),e<t&&!this._soundLoadSkipFlag){this._setProgressBar(_c(e,t,_e.AUDIO)),window.requestAnimationFrame(this.soundCheckCaller);return}if(this._setProgressBar(_c(R.SOUND_MAX,R.SOUND_MAX,_e.AUDIO)),this._setLoadingMessage(n,_e.FINISH),this._soundLoadSkipFlag){let e=Array.from(this._soundMap.entries());console.warn(`(D-7) サウンドのロードがスキップされました。現時点でエラーでない以下のサウンドはバックグラウンドで引き続きロードを試みます:`,e.filter(([e,t])=>!t.hasData()&&!t.isError()).map(([e,t])=>e))}else 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>=R.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();U(`wwa-cover`).style.opacity=`0`,this.getObjectIdByPosition(e)!==0&&this._player.setPartsAppearedFlag();var t=U(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof t==`string`&&(this._useSuspend=!0,t)){var n=Ri.getStartWWAData(t);this._restartData!==n&&(this._applyQuickLoad(n),this._wwaSave.resumeStart())}setTimeout(()=>{U(`wwa-wrapper`).removeChild(U(`wwa-cover`)),requestAnimationFrame(this.mainCaller.bind(this))},R.SPLASH_SCREEN_DISP_MILLS)}onselectitem(e){if(this._player.canUseItem(e)){U(`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,R.ATR_STRING);this.registerPageByMessage(this.getMessageById(n),{showChoice:!1,isSystemMessage:!1,triggerParts:{id:t,type:j.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=U(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+`
110
+ を消してください。`),this._messageWindow.setMessage(n),this._messageWindow.show(),this._setProgressBar(_c(4,4,_e.GAME_INIT));var i=setInterval(()=>{this._keyStore.update(),this._gamePadStore.update(),this._virtualPadStore.update(),this._yesNoJudgeInNextFrame===k.UNSELECTED&&(this._keyStore.getKeyState(V.KEY_ENTER)===B.KEYDOWN||this._keyStore.getKeyState(V.KEY_Y)===B.KEYDOWN||this._gamePadStore.buttonTrigger(H.BUTTON_INDEX_A)||this._virtualPadStore.checkTouchButton(`BUTTON_ENTER`)?this._yesNoJudgeInNextFrame=k.YES:(this._keyStore.getKeyState(V.KEY_N)===B.KEYDOWN||this._keyStore.getKeyState(V.KEY_ESC)===B.KEYDOWN||this._gamePadStore.buttonTrigger(H.BUTTON_INDEX_B)||this._virtualPadStore.checkTouchButton(`BUTTON_ESC`))&&(this._yesNoJudgeInNextFrame=k.NO)),this._yesNoJudgeInNextFrame===k.YES?(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.UNSELECTED,this._isLoadedSound=!0,this._setLoadingMessage(t,_e.AUDIO),this.loadSound().then(()=>window.requestAnimationFrame(this.soundCheckCaller))},R.YESNO_PRESS_DISP_FRAME_NUM*R.DEFAULT_FRAME_INTERVAL)):this._yesNoJudgeInNextFrame===k.NO&&(clearInterval(i),this._messageWindow.update(),this._yesNoJudge=this._yesNoJudgeInNextFrame,this._messageWindow.setInputDisable(),setTimeout(()=>{this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.UNSELECTED,this._isLoadedSound=!1,this.openGameWindow()},R.YESNO_PRESS_DISP_FRAME_NUM*R.DEFAULT_FRAME_INTERVAL))},R.DEFAULT_FRAME_INTERVAL)}else clearInterval(i),this._player.setDelayFrame(),this._messageWindow.hide(),this._yesNoJudge=k.UNSELECTED,this._yesNoJudgeInNextFrame=k.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{isGameOver:t,value:r}=this.evalCalcWwaNodeGenerator.evalWwaNode(n);if(t)throw Error(`戦闘予測関数でゲームオーバーが発生しました。戦闘予測関数でプレイヤー生命力を操作しないでください。`);let i=this.evalCalcWwaNodeGenerator.state.battleDamageCalculation.aborted;return this.evalCalcWwaNodeGenerator.clearBattleDamageCalculationMode(),i?{damage:0,aborted:i}:typeof r==`number`?{damage:this.toAssignableValue(r),aborted:i}:(console.warn(`${e} のダメージ計算結果が数値になりませんでした。(結果: ${r})。このターンのダメージは無効になります。`),{damage:0,aborted:i})}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;if(e){let{isGameOver:t}=this.evalCalcWwaNodeGenerator.evalWwaNode(e);return{isGameOver:t}}return{}}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`){this._varDump?.numberedUserVariable.updateInformation(e.errorMessage,!1);return}if(e.kind!==`data`){this._userVarNameListRequestError=e,this._varDump?.numberedUserVariable.updateInformation(this._userVarNameListRequestError.errorMessage,!0);return}if(!e.data||typeof e.data!=`object`){this._userVarNameListRequestError={kind:`notObject`,errorMessage:`ユーザ変数一覧 ${t} が正しい形式で書かれていません。`},this._varDump?.numberedUserVariable.updateInformation(this._userVarNameListRequestError.errorMessage,!0);return}this._userVarNameList=this.convertUserVariableNameListToArray(e.data),this._varDump?.numberedUserVariable.updateLabels(this._userVarNameList)}}convertUserVariableNameListToArray(e){let t=Array(R.USER_VAR_NUM);for(let e=0;e<R.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>=R.USER_VAR_NUM||(t[r]=e[n])}),t}_setProgressBar(e){this._hasTitleImg&&(e.stage<=R.LOAD_STAGE_MAX_EXCEPT_AUDIO?(U(`progress-message-container`).textContent=e.stage===R.LOAD_STAGE_MAX_EXCEPT_AUDIO?`World Name: `+this._wwaData.worldName:ve[e.stage],U(`progress-bar`).style.width=(1*e.stage+e.current/e.total*1)/(R.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*R.MAP_WINDOW_WIDTH+`px`,U(`progress-disp`).textContent=((1*e.stage+e.current/e.total*1)/(R.LOAD_STAGE_MAX_EXCEPT_AUDIO+1)*100).toFixed(2)+`%`):(this._usePassword?U(`progress-message-container`).textContent=`効果音/BGMを読み込んでいます。(スペースキーでスキップ)`:U(`progress-message-container`).textContent=`ゲームデータを読み込んでいます。`,U(`progress-bar-audio`).style.width=e.current*R.MAP_WINDOW_WIDTH/e.total+`px`,U(`progress-disp`).textContent=(e.current/e.total*100).toFixed(2)+`%`))}_setLoadingMessage(e,t){if(!this._hasTitleImg)if(t<=0)e.font=be.TITLE+`px `+R.LOADING_FONT,e.fillText(ye[0],z.TITLE_X,z.TITLE_Y),e.font=be.FOOTER+`px `+R.LOADING_FONT,e.fillText(`WWA Wing Ver.4.0.11`,z.FOOTER_X,z.COPYRIGHT_Y);else if(t<=ye.length)e.font=be.LOADING+`px `+R.LOADING_FONT,t>=2&&(e.clearRect(z.LOADING_X,z.LOADING_Y+z.LINE*(t-3),R.SCREEN_WIDTH-z.LOADING_X,z.LINE),e.fillText(ye[t-1]+` Complete!`,z.LOADING_X,z.LOADING_Y+z.LINE*(t-2))),t<ye.length&&e.fillText(ye[t],z.LOADING_X,z.LOADING_Y+z.LINE*(t-1)),t==1&&(e.font=be.FOOTER+`px `+R.LOADING_FONT,e.fillText(`World Name `+this._wwaData.worldName,z.FOOTER_X,z.WORLD_Y),e.fillText(` (Map data Ver. `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10+`)`,z.FOOTER_X,z.WORLD_Y+z.LINE));else{var n=this._isSkippedSoundMessage?z.LOADING_Y+z.LINE*(ye.length-1):z.FOOTER_Y;t<=_e.AUDIO?e.fillText(`Now Sound data Loading .....`,z.LOADING_X,n):(e.clearRect(z.LOADING_X,n-z.LINE,R.SCREEN_WIDTH-z.LOADING_X,z.LINE),e.fillText(`Now Sound data Loading ..... Complete!`,z.LOADING_X,n))}}_setErrorMessage(e,t){this._hasTitleImg?alert(e):(t.clearRect(0,0,R.SCREEN_WIDTH,R.SCREEN_HEIGHT),t.font=be.ERRROR+`px `+R.LOADING_FONT,e.split(`
111
+ `).forEach(function(e,n){t.fillText(e,z.ERROR_X,z.ERROR_Y+z.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 Zi(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][R.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-3) 物体パーツ記載のサウンドのロードを開始します。`);for(let e=1;e<this._wwaData.objPartsMax;e++){if(this._wwaData.objectAttribute[e][R.ATR_TYPE]===R.OBJECT_RANDOM)continue;let t=this._wwaData.objectAttribute[e][R.ATR_SOUND];this.createSoundInstance(t)}console.log(`(D-4) $sound マクロ記載のサウンドのロードを開始します。`),this._wwaData.message.forEach(e=>e.split(`
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 Bn(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(){if(!this._soundMap)return;let e=0,t=0;if(!this._hasTitleImg)var n=this._cvsCover.getContext(`2d`);if(this._keyStore.update(),this._keyStore.getKeyState(V.KEY_SPACE)===B.KEYDOWN&&(this._soundLoadSkipFlag=!0),this._soundMap.forEach(n=>{!n||n.isError()||(t++,n.hasData()&&e++)}),e<t&&!this._soundLoadSkipFlag){this._setProgressBar(_c(e,t,_e.AUDIO)),window.requestAnimationFrame(this.soundCheckCaller);return}if(this._setProgressBar(_c(R.SOUND_MAX,R.SOUND_MAX,_e.AUDIO)),this._setLoadingMessage(n,_e.FINISH),this._soundLoadSkipFlag){let e=Array.from(this._soundMap.entries());console.warn(`(D-7) サウンドのロードがスキップされました。現時点でエラーでない以下のサウンドはバックグラウンドで引き続きロードを試みます:`,e.filter(([e,t])=>!t.hasData()&&!t.isError()).map(([e,t])=>e))}else 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}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>=R.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();U(`wwa-cover`).style.opacity=`0`,this.getObjectIdByPosition(e)!==0&&this._player.setPartsAppearedFlag();var t=U(`wwa-wrapper`).getAttribute(`data-wwa-resume-savedata`);if(typeof t==`string`&&(this._useSuspend=!0,t)){var n=Ri.getStartWWAData(t);this._restartData!==n&&(this._applyQuickLoad(n),this._wwaSave.resumeStart())}setTimeout(()=>{U(`wwa-wrapper`).removeChild(U(`wwa-cover`)),requestAnimationFrame(this.mainCaller.bind(this))},R.SPLASH_SCREEN_DISP_MILLS)}onselectitem(e){if(this._player.canUseItem(e)){U(`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,R.ATR_STRING);this.registerPageByMessage(this.getMessageById(n),{showChoice:!1,isSystemMessage:!1,triggerParts:{id:t,type:j.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=U(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+`
114
114
  →Noでデータ復帰用パスワードの
115
115
   入力選択ができます。`,!0);break;case N.NONE:this.registerSystemMessagePage(a,!0);break}break;case N.CALL_BY_PASSWORD_LOAD:this.onpasswordloadcalled();break}else if(e===P.QUICK_SAVE)this._wwaData.disableSaveFlag?this.registerSystemMessagePage(`ここではセーブ機能は
@@ -150,7 +150,7 @@ JSON PARSE FAILED`)}if(r.isCompress){delete r.isCompress;let[e,t]=Ri.decompress(
150
150
  ZR:一時保存データの読み込み
151
151
  +: 移動速度を上げる
152
152
  -: 移動速度を落とす
153
-  WWA Wing バージョン:4.0.9-fps-measure.based-on.4.0.8
153
+  WWA Wing バージョン:4.0.11
154
154
   マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;case ne.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.9-fps-measure.based-on.4.0.8
166
+ `:``)+` WWA Wing バージョン:4.0.11
167
167
   マップデータ バージョン: `+Math.floor(this._wwaData.version/10)+`.`+this._wwaData.version%10;break;case ne.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.9-fps-measure.based-on.4.0.8
179
+ `:``)+` WWA Wing バージョン:4.0.11
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:復帰用パスワード入力
@@ -194,7 +194,7 @@ WINDOW: 移動速度を落とす
194
194
  F2、P: 移動速度を上げる
195
195
    現在の移動回数:`+this._player.getMoveCount()+`
196
196
  `+(t?`  プレイ時間:`+t+`
197
- `:``)+` WWA Wing バージョン:4.0.9-fps-measure.based-on.4.0.8
197
+ `:``)+` WWA Wing バージョン:4.0.11
198
198
   マップデータ バージョン: `+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,R.ATR_STRING);return t===0?(this._messageWindow.isVisible()&&(this._player.setDelayFrame(),this._messageWindow.hide(),this._keyStore.allClear(),this._mouseStore.clear()),this._player.isManualPause()||this._player.clearWaitingMessageOrManualPause(),{newPageGenerated:!1}):(this.registerPageByMessage(this.getMessageById(t),{triggerParts:{id:e,type:j.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=j.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+R.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+R.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===j.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&Ce.BITMASK,m=l>>>Ce.BITSHIFT&Ce.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&Ce.BITMASK,m=l>>>Ce.BITSHIFT&Ce.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&Ce.BITMASK,m=l>>>Ce.BITSHIFT&Ce.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&Ce.BITMASK,m=l>>>Ce.BITSHIFT&Ce.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({isAssignment: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*R.CHIP_SIZE,r=t.y*R.CHIP_SIZE,i=e=>{let t=Re(`${e}>.status-icon`);t.style.backgroundPosition=`-${n}px -${r}px`};switch(e){case L.ENERGY:this._wwaData.imgStatusEnergyX=t.x,this._wwaData.imgStatusEnergyY=t.y,i(`#disp-energy`);break;case L.STRENGTH:this._wwaData.imgStatusStrengthX=t.x,this._wwaData.imgStatusStrengthY=t.y,i(`#disp-strength`);break;case L.DEFENCE:this._wwaData.imgStatusDefenceX=t.x,this._wwaData.imgStatusDefenceY=t.y,i(`#disp-defence`);break;case L.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*R.CHIP_SIZE,n=e.y*R.CHIP_SIZE;return Array.prototype.forEach.call(ze(`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(ze(`.item-cell>.item-click-border`),e=>{e.style.backgroundImage=`url('`+R.ITEM_BORDER_IMG_DATA_URL+`')`,e.style.backgroundPosition=`0 0`});else{var t=this._wwaData.mapCGName.replace(`(`,`\\(`).replace(`)`,`\\)`);Array.prototype.forEach.call(ze(`.item-cell>.item-click-border`),n=>{n.style.backgroundImage=`url('`+t+`')`,n.style.backgroundPosition=`-`+e.x*R.CHIP_SIZE+`px -`+e.y*R.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-assignment`;return;default:return}}setBgmDelay(e){this._wwaData.bgmDelayDurationMs=e}setPictureRegistry(e,t,n,r,i){let a=n===j.OBJECT?this._wwaData.objectAttribute[t]:n===j.MAP?this._wwaData.mapAttribute[t]:null;if(a===null)throw Error(`対応していないパーツ番号です。`);let o=this.getMessageById(a[R.ATR_STRING]);if(!o)throw n===j.OBJECT?Error(`物体パーツ ${t} 番に対応したテキストが見つかりませんでした。`):Error(`背景パーツ ${t} 番に対応したテキストが見つかりませんでした。`);let s=this._returnEvalString(`(`+o+`)`),c=this._cgManager.picture.registerPictureFromRawRegistry({layerNumber:e,imgPosX:(a[R.ATR_X]??0)/R.CHIP_SIZE,imgPosX2:(a[R.ATR_X2]??0)/R.CHIP_SIZE,imgPosY:(a[R.ATR_Y]??0)/R.CHIP_SIZE,imgPosY2:(a[R.ATR_Y2]??0)/R.CHIP_SIZE,triggerPartsX:r.x,triggerPartsY:r.y,soundNumber:a[R.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=U(R.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=`
199
199
  background-color: rgba(${this._wwaData.frameColorR}, ${this._wwaData.frameColorG}, ${this._wwaData.frameColorB}, ${n});
200
200
  border-color: rgba(${this._wwaData.frameOutColorR}, ${this._wwaData.frameOutColorG}, ${this._wwaData.frameOutColorB}, 1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wwawing/engine",
3
- "version": "4.0.9-fps-measure.based-on.4.0.8",
3
+ "version": "4.0.11",
4
4
  "description": "World Wide Adventure: an RPG Engine.",
5
5
  "main": "./lib/wwa.js",
6
6
  "files": [
@@ -49,15 +49,15 @@
49
49
  "@types/crypto-js": "^4.1.1",
50
50
  "@types/jest": "^30.0.0",
51
51
  "@types/pug": "^2.0.6",
52
- "@wwawing/assets": "^4.0.9-fps-measure.based-on.4.0.8",
53
- "@wwawing/common-interface": "^4.0.9-fps-measure.based-on.4.0.8",
54
- "@wwawing/debug-server": "^4.0.9-fps-measure.based-on.4.0.8",
55
- "@wwawing/event-emitter": "^4.0.9-fps-measure.based-on.4.0.8",
56
- "@wwawing/loader": "^4.0.9-fps-measure.based-on.4.0.8",
57
- "@wwawing/page-generator": "^4.0.9-fps-measure.based-on.4.0.8",
58
- "@wwawing/styles": "^4.0.9-fps-measure.based-on.4.0.8",
59
- "@wwawing/util": "^4.0.9-fps-measure.based-on.4.0.8",
60
- "@wwawing/virtual-pad": "^4.0.9-fps-measure.based-on.4.0.8",
52
+ "@wwawing/assets": "^4.0.11",
53
+ "@wwawing/common-interface": "^4.0.11",
54
+ "@wwawing/debug-server": "^4.0.11",
55
+ "@wwawing/event-emitter": "^4.0.11",
56
+ "@wwawing/loader": "^4.0.11",
57
+ "@wwawing/page-generator": "^4.0.11",
58
+ "@wwawing/styles": "^4.0.11",
59
+ "@wwawing/util": "^4.0.11",
60
+ "@wwawing/virtual-pad": "^4.0.11",
61
61
  "crypto-js": "^4.1.1",
62
62
  "flatted": "^3.3.3",
63
63
  "jest": "^30.4.2",
@@ -79,5 +79,5 @@
79
79
  "node": ">=24",
80
80
  "npm": ">=11"
81
81
  },
82
- "gitHead": "2640d423f7850d6cadaf5ce79f1b5874846829cd"
82
+ "gitHead": "8458c2fc1255e8fc8ea9f593e4fe25d1cfc94f15"
83
83
  }