!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexboardplugin=e();}(undefined,(function(){function t(t,i,n){return i=u(i),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return c(t)}(t,e()?Reflect.construct(i,n||[],u(t).constructor):i.apply(t,n))}function e(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})));}catch(t){}return (e=function(){return !!t})()}function i(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var i=t[Symbol.toPrimitive];if(void 0!==i){var n=i.call(t,e||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===e?String:Number)(t)}(t,"string");return "symbol"==typeof e?e:String(e)}function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var n=0;nt.length)&&(e=t.length);for(var i=0,n=new Array(e);i=0?t:t+2*Math.PI},J=2*Math.PI,H={x:0,y:0},K=180/Math.PI,q=function(t){return t*K},$=function(t,e,i){if(t&&"number"!=typeof t){i=e;var n=this.chessToTileXYZ(t);t=n.x,e=n.y;}return this.grid.getGridPoints(t,e,i)};function Q(t,e,i){var s=i?t[e]:Object.getOwnPropertyDescriptor(t,e);return !i&&s.value&&"object"===n(s.value)&&(s=s.value),!(!s||! /** * @author Richard Davey * @copyright 2019 Photon Storm Ltd. * @license {@link https://opensource.org/licenses/MIT|MIT License} */ function(t){return !!t.get&&"function"==typeof t.get||!!t.set&&"function"==typeof t.set}(s))&&(void 0===s.enumerable&&(s.enumerable=!0),void 0===s.configurable&&(s.configurable=!0),s)}function tt(t,e){var i=Object.getOwnPropertyDescriptor(t,e);return !!i&&(i.value&&"object"===n(i.value)&&(i=i.value),!1===i.configurable)}function et(t,e,i,n){for(var s in e)if(e.hasOwnProperty(s)){var r=Q(e,s,i);if(!1!==r){if(tt((n||t).prototype,s)){if(nt.ignoreFinals)continue;throw new Error("cannot override final property '"+s+"', set Class.ignoreFinals = true to skip")}Object.defineProperty(t.prototype,s,r);}else t.prototype[s]=e[s];}}function it(t,e){if(e){Array.isArray(e)||(e=[e]);for(var i=0;i * @copyright 2019 Photon Storm Ltd. * @license {@link https://opensource.org/licenses/MIT|MIT License} */ var st=function(t){return 2*(t.width+t.height)},rt=new nt({initialize:function(t,e){void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e;},setTo:function(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.x=t,this.y=e,this}}),ot=function(t,e,i){if(void 0===i&&(i=new rt),e<=0||e>=1)return i.x=t.x,i.y=t.y,i;var n=st(t)*e;return e>.5?(n-=t.width+t.height)<=t.width?(i.x=t.right-n,i.y=t.bottom):(i.x=t.x,i.y=t.bottom-(n-t.width)):n<=t.width?(i.x=t.x+n,i.y=t.y):(i.x=t.right,i.y=t.y+(n-t.width)),i},ht=function(t,e,i,n){void 0===n&&(n=[]),e||(e=function(t){return Math.sqrt((t.x2-t.x1)*(t.x2-t.x1)+(t.y2-t.y1)*(t.y2-t.y1))}(t)/i);for(var s=t.x1,r=t.y1,o=t.x2,h=t.y2,a=0;a0&&(i=1/Math.sqrt(i),this.x=t*i,this.y=e*i),this},normalizeRightHand:function(){var t=this.x;return this.x=-1*this.y,this.y=t,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lerp:function(t,e){void 0===e&&(e=0);var i=this.x,n=this.y;return this.x=i+e*(t.x-i),this.y=n+e*(t.y-n),this},transformMat3:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this},transformMat4:function(t){var e=this.x,i=this.y,n=t.val;return this.x=n[0]*e+n[4]*i+n[12],this.y=n[1]*e+n[5]*i+n[13],this},reset:function(){return this.x=0,this.y=0,this}}); /** * @author Richard Davey * @copyright 2019 Photon Storm Ltd. * @license {@link https://opensource.org/licenses/MIT|MIT License} */at.ZERO=new at,at.RIGHT=new at(1,0),at.LEFT=new at(-1,0),at.UP=new at(0,-1),at.DOWN=new at(0,1),at.ONE=new at(1,1); /** * @author Richard Davey * @copyright 2019 Photon Storm Ltd. * @license {@link https://opensource.org/licenses/MIT|MIT License} */ var ut,lt,ct,dt=new nt({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x1=t,this.y1=e,this.x2=i,this.y2=n;},getPoint:function(t,e){return function(t,e,i){return void 0===i&&(i=new rt),i.x=t.x1+(t.x2-t.x1)*e,i.y=t.y1+(t.y2-t.y1)*e,i}(this,t,e)},getPoints:function(t,e,i){return ht(this,t,e,i)},getRandomPoint:function(t){return function(t,e){void 0===e&&(e=new rt);var i=Math.random();return e.x=t.x1+i*(t.x2-t.x1),e.y=t.y1+i*(t.y2-t.y1),e}(this,t)},setTo:function(t,e,i,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x1=t,this.y1=e,this.x2=i,this.y2=n,this},getPointA:function(t){return void 0===t&&(t=new at),t.set(this.x1,this.y1),t},getPointB:function(t){return void 0===t&&(t=new at),t.set(this.x2,this.y2),t},left:{get:function(){return Math.min(this.x1,this.x2)},set:function(t){this.x1<=this.x2?this.x1=t:this.x2=t;}},right:{get:function(){return Math.max(this.x1,this.x2)},set:function(t){this.x1>this.x2?this.x1=t:this.x2=t;}},top:{get:function(){return Math.min(this.y1,this.y2)},set:function(t){this.y1<=this.y2?this.y1=t:this.y2=t;}},bottom:{get:function(){return Math.max(this.y1,this.y2)},set:function(t){this.y1>this.y2?this.y1=t:this.y2=t;}}}),ft=new nt({initialize:function(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),this.x=t,this.y=e,this.width=i,this.height=n;},contains:function(t,e){return function(t,e,i){return !(t.width<=0||t.height<=0)&&t.x<=e&&t.x+t.width>=e&&t.y<=i&&t.y+t.height>=i}(this,t,e)},getPoint:function(t,e){return ot(this,t,e)},getPoints:function(t,e,i){return function(t,e,i,n){void 0===n&&(n=[]),e||(e=st(t)/i);for(var s=0;s=this.right?this.width=0:this.width=this.right-t,this.x=t;}},right:{get:function(){return this.x+this.width},set:function(t){t<=this.x?this.width=0:this.width=t-this.x;}},top:{get:function(){return this.y},set:function(t){t>=this.bottom?this.height=0:this.height=this.bottom-t,this.y=t;}},bottom:{get:function(){return this.y+this.height},set:function(t){t<=this.y?this.height=0:this.height=t-this.y;}},centerX:{get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2;}},centerY:{get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2;}}}),vt=new ft,yt=function(t,e,i){return (e-t)*i+t},pt=function(t,e){return t&&e&&t.x===e.x&&t.y===e.y},gt=function(t,e,i,n,s){var r=t.tileXYToWorldXY(i,n,!0);if(e.contains(r.x,r.y))return !0;switch(s){case 1:var o=t.getGridBounds(i,n,!0);return mt(e,o);case 2:var h=t.getGridPoints(i,n,!0);return bt(e,h);default:return !1}},mt=function(t,e){var i=e.top,n=e.bottom,s=e.left,r=e.right;return !!t.contains(s,i)||(!!t.contains(s,n)||(!!t.contains(r,i)||!!t.contains(r,n)))},bt=function(t,e){for(var i=0,n=e.length;i0;e--){var i=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[i],t[i]=n;}return t},At=[],Rt={},Bt=[],Lt=[],Nt=[],Ft=[],Zt=function(t){return "[object Array]"===Object.prototype.toString.call(t)},It=[],jt=function(t,e){return !1===t||!0===t?t:!0===t[e]},zt=[],Ut=function(t){return t?t.rexChess?t.rexChess.board:t.mainBoard?t.mainBoard:void 0:void 0},Gt=h(h({getChessData:Z,getChessUID:j,setBoardWidth:function(t){if(this.infinityMode)return this;if(void 0===this.width||this.width<=t)return this.width=t,this;var e,i,n;for(e=t;e=0&&t=0&&e=o&&(kt.x=c,kt.y=l,!(e?t.call(e,kt,this):t(kt,this)));c--);break;case 2:for(c=o;c<=h;c++)for(l=a;l<=u&&(kt.x=c,kt.y=l,!(e?t.call(e,kt,this):t(kt,this)));l++);break;case 3:for(c=o;c<=h;c++)for(l=u;l>=a&&(kt.x=c,kt.y=l,!(e?t.call(e,kt,this):t(kt,this)));l--);}return this},getWrapTileXY:function(t,e,i){return void 0===i?i={}:!0===i&&(i=Ct),this.wrapMode?t=wt(t,0,this.width):!this.infinityMode&&(t<0||t>=this.width)&&(t=null),this.wrapMode?e=wt(e,0,this.height):!this.infinityMode&&(e<0||e>=this.height)&&(e=null),i.x=t,i.y=e,i},tileXYZToChess:function(t,e,i){var n=this.boardData.getUID(t,e,i);return this.uidToChess(n)},tileXYToChessArray:function(t,e,i){void 0===i&&(i=[]);var n=this.boardData.getUID(t,e);if(null==n)return i;for(var s in n)i.push(this.uidToChess(n[s]));return i},tileZToChessArray:function(t,e){void 0===e&&(e=[]);var i=this.boardData.UIDToXYZ;for(var n in i)i[n].z===t&&e.push(this.uidToChess(n));return e},tileXYArrayToChessArray:function(t,e,i){Array.isArray(e)&&(i=e,e=void 0),void 0===i&&(i=[]);for(var n,s=null!=e,r=0,o=t.length;r0;)i=Pt(0,this.width-1),n=Pt(0,this.height-1),s=null!==this.tileXYZToChess(i,n,t),r--;if(s){if(0===(Dt=this.getEmptyTileXYArray(t,Dt)).length)return null;var o=St(Dt);return e.x=o.x,e.y=o.y,Dt.length=0,e}return e.x=i,e.y=n,e},getEmptyTileXYArrayInRange:function(t,e,i,n){var s;void 0===e&&(e=1),void 0===i&&(i=0),void 0===n&&(n=[]),t=this.chessToTileXYZ(t),this.grid.ringToTileXYArray(t,e,Et);for(var r=0,o=Et.length;r0?1:-1),l=k(i,"step",a>=u?1:-1);if(u===a)null!==(r=this.getTileXYAtDirection(s,e,a))&&n.push(r);else if(u=a;c+=l)null!==(r=this.getTileXYAtDirection(s,e,c))&&n.push(r);}else {c=0;for(var d=i.length;ct&&(this._xMin=t);}return this._xMin}},{key:"yMax",get:function(){if(void 0===this._yMax){this._yMax=-1/0;var t,e=this.UIDToXYZ;for(var i in e)t=e[i].y,this._yMaxt&&(this._yMin=t);}return this._yMin}}]),t}(),Ht={},Kt={},qt=function(){function t(e){s(this,t),this.resetFromJSON(e);}return o(t,[{key:"resetFromJSON",value:function(t){this.setType(k(t,"type",0)),this.setDirectionMode(k(t,"dir",4)),this.setOriginPosition(k(t,"x",0),k(t,"y",0)),this.setCellSize(k(t,"cellWidth",0),k(t,"cellHeight",0));}},{key:"setType",value:function(t){return "string"==typeof t&&(t=Qt[t]),this.mode=t,this}},{key:"setDirectionMode",value:function(t){return "string"==typeof t&&(t=te[t]),this.directions=t,this}},{key:"setOriginPosition",value:function(t,e){return this.x=t,this.y=e,this}},{key:"width",get:function(){return this._width},set:function(t){this._width=t,this._halfWidth=t/2;}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._halfHeight=t/2;}},{key:"setCellSize",value:function(t,e){return this.width=t,this.height=e,this}},{key:"cellWidth",get:function(){return this.width},set:function(t){this.width=t;}},{key:"cellHeight",get:function(){return this.height},set:function(t){this.height=t;}}]),t}(),$t={getWorldXY:function(t,e,i){var n,s;switch(void 0===i?i={}:!0===i&&(i=Ht),this.mode){case 0:n=t*this.width,s=e*this.height;break;case 1:n=(t-e)*this._halfWidth,s=(t+e)*this._halfHeight;}return n+=this.x,s+=this.y,i.x=n,i.y=s,i},getWorldX:function(t,e){return this.getWorldXY(t,e,!0).x},getWorldY:function(t,e){return this.getWorldXY(t,e,!0).y},getTileXY:function(t,e,i){void 0===i?i={}:!0===i&&(i=Kt),t-=this.x,e-=this.y;var n=t/this.width,s=e/this.height;switch(this.mode){case 0:i.x=Math.round(n),i.y=Math.round(s);break;case 1:i.x=Math.round(+n+s),i.y=Math.round(-n+s);}return i},getTileX:function(t,e){return this.getTileXY(t,e,!0).x},getTileY:function(t,e){return this.getTileXY(t,e,!0).y}}; /** * @author Richard Davey * @copyright 2019 Photon Storm Ltd. * @license {@link https://opensource.org/licenses/MIT|MIT License} */Object.assign(qt.prototype,$t);var Qt={orthogonal:0,isometric:1,staggered:2},te={"4dir":4,"8dir":8},ee=function(){return this._savedOriginX=this.x,this._savedOriginY=this.y,this},ie=function(){return this.x=this._savedOriginX,this.y=this._savedOriginY,this},ne=[[1,0],[0,1],[-1,0],[0,-1],[1,1],[-1,1],[-1,-1],[1,-1]],se=ne,re=function(t,e,i,n,s){var r,o;switch(void 0===s?s={}:!0===s&&(s=oe),this.mode){case 0:r=ne[i][0],o=ne[i][1];break;case 1:r=se[i][0],o=se[i][1];}return s.x=t+n*r,s.y=e+n*o,s},oe={},he=function(t){var e,i,n,s={};for(var r in t)i=(e=t[r])[0],n=e[1],s.hasOwnProperty(i)||(s[i]={}),s[i][n]=parseInt(r);return s}(ne),ae=he,ue={0:2,1:3,2:0,3:1,4:6,5:7,6:4,7:5},le=function(t,e,i,n){void 0===n?n={}:!0===n&&(n=ce);var s=t.x+e,r=t.y+i;return n.x=s,n.y=r,n},ce={},de={},fe={},ve=function(t){return wt(t,0,this.directions)},ye=function(t){for(var e=[],i=0;i=t.x?0:2;else if(t.x===e.x)n=e.y>=t.y?1:3;else if(4===this.directions){(o=q(W(t.x,t.y,e.x,e.y)))<0&&(o+=360),n=o/90,i&&(n=Math.round(n));}else {var s=e.x-t.x,r=e.y-t.y;if(s===r)n=s>0?4:6;else if(s===-r)n=s>0?7:5;else {var o;(o=q(Math.atan2(r,s)))<0&&(o+=360);var h=o/45;i&&(h=Math.round(h)),n=h>=0&&h<1?h:h>=1&&h<2?h+3:h>=2&&h<3?h-1:h>=3&&h<4?h+2:h>=4&&h<5?h-2:h>=5&&h<6?h+1:h>=6&&h<7?h-3:h;}}}return n===this.directions&&(n=0),n},directionNormalize:ve,getGridPoints:function(t,e,i){void 0===i?i=ye(4):!0===i&&(i=ge),void 0===t?(pe.x=0,pe.y=0):this.getWorldXY(t,e,pe);var n=0===this.mode?0:1;return function(t,e,i,n,s,r){void 0===r&&(r=ye(4));var o=i/2,h=n/2;0===s?(r[0].x=t+o,r[0].y=e-h,r[1].x=t+o,r[1].y=e+h,r[2].x=t-o,r[2].y=e+h,r[3].x=t-o,r[3].y=e-h):(r[0].x=t+o,r[0].y=e,r[1].x=t,r[1].y=e+h,r[2].x=t-o,r[2].y=e,r[3].x=t,r[3].y=e-h);}(pe.x,pe.y,this.width,this.height,n,i),i},getBounds:function(t,e,i){void 0===i?i=new ft:!0===i&&(i=me);var n=this.getWorldXY(t,e,!0);return i.x=n.x-.5*this.width,i.y=n.y-.5*this.height,i.width=this.width,i.height=this.height,i},ringToTileXYArray:function(t,e,i){var n,s;for(void 0===i&&(i=[]),n=e,s=-e;s<=e;s++)i.push(le(t,n,s));for(s=e,n=e-1;n>=-e;n--)i.push(le(t,n,s));for(n=-e,s=e-1;s>=-e;s--)i.push(le(t,n,s));for(s=-e,n=1-e;n<=e-1;n++)i.push(le(t,n,s));return i}};Object.assign(be.prototype,Ce);var Ye=Math.sqrt(3),Xe=Math.sqrt(3),Me=0,Pe=1,Se=2,De=3,Oe=Me,Ee=Pe,_e=Se,Ae=De,Re={},Be=Me,Le=Pe,Ne=Se,Fe=De,Ze=function(t,e,i,n){switch(void 0===n?n={}:!0===n&&(n=je),t){case Be:n.x=e-(i-(1&i))/2,n.z=i;break;case Le:n.x=e-(i+(1&i))/2,n.z=i;break;case Ne:n.x=e,n.z=i-(e-(1&e))/2;break;case Fe:n.x=e,n.z=i-(e+(1&e))/2;}return n.y=-n.x-n.z,n},Ie=function(t,e,i,n,s){switch(void 0===s?s={}:!0===s&&(s=ze),t){case Be:s.x=e+(n-(1&n))/2,s.y=n;break;case Le:s.x=e+(n+(1&n))/2,s.y=n;break;case Ne:s.x=e,s.y=n+(e-(1&e))/2;break;case Fe:s.x=e,s.y=n+(e+(1&e))/2;}return s},je={},ze={},Ue=Me,Ge=Pe,We=Se,Ve=De,Je=4/3,He=2/3,Ke={},qe={},$e=Me,Qe=Pe,ti=Se,ei=De,ii=function(){function t(e){s(this,t),this.resetFromJSON(e);}return o(t,[{key:"resetFromJSON",value:function(t){this.setType(k(t,"staggeraxis",1),k(t,"staggerindex",1)),this.setDirectionMode(),this.setOriginPosition(k(t,"x",0),k(t,"y",0));var e=k(t,"size",void 0);void 0!==e?this.setCellRadius(e):this.setCellSize(k(t,"cellWidth",0),k(t,"cellHeight",0));}},{key:"setType",value:function(t,e){return "string"==typeof t&&(t=si[t]),"string"==typeof e&&(e=ri[e]),this.staggeraxis=t,this.staggerindex=e,this.mode=0===t?0===e?ei:ti:0===e?Qe:$e,this}},{key:"setDirectionMode",value:function(){return this.directions=6,this}},{key:"setOriginPosition",value:function(t,e){return this.x=t,this.y=e,this}},{key:"width",get:function(){return this._width},set:function(t){this._width=t,this._halfWidth=t/2;}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._halfHeight=t/2;}},{key:"setCellSize",value:function(t,e){return this.width=t,this.height=e,this}},{key:"setCellRadius",value:function(t){this.size=t;var e={size:this.size,type:this.staggeraxis},i=function(t){return 0===t.type?2*t.size:Ye*t.size}(e),n=function(t){return 0===t.type?Xe*t.size:2*t.size}(e);return this.setCellSize(i,n),this}},{key:"cellWidth",get:function(){return this.width},set:function(t){this.width=t;}},{key:"cellHeight",get:function(){return this.height},set:function(t){this.height=t;}}]),t}(),ni={getWorldXY:function(t,e,i){void 0===i?i={}:!0===i&&(i=Re);var n=t*this.width,s=e*this.height;switch(this.mode){case Oe:1&e&&(n+=this._halfWidth),s*=.75;break;case Ee:1&e&&(n-=this._halfWidth),s*=.75;break;case _e:n*=.75,1&t&&(s+=this._halfHeight);break;case Ae:n*=.75,1&t&&(s-=this._halfHeight);}return n+=this.x,s+=this.y,i.x=n,i.y=s,i},getWorldX:function(t,e){return this.getWorldXY(t,e,!0).x},getWorldY:function(t,e){return this.getWorldXY(t,e,!0).y},getTileXY:function(t,e,i){var n,s;switch(void 0===i?i={}:!0===i&&(i=qe),t-=this.x,e-=this.y,this.mode){case Ue:case Ge:s=e*Je/this.height,n=t/this.width-He*(e/this.height);break;case We:case Ve:s=e/this.height-He*(t/this.width),n=t*Je/this.width;}var r=function(t,e,i){return void 0===i?i={}:!0===i&&(i=je),i.x=t,i.y=-t-e,i.z=e,i}(n,s,Ke);return function(t,e,i,n){"number"!=typeof t&&(t=(n=t).x,e=n.y,i=n.z),void 0===n?n={}:!0===n&&(n=je);var s=Math.round(t),r=Math.round(e),o=Math.round(i),h=Math.abs(s-t),a=Math.abs(r-e),u=Math.abs(o-i);h>a&&h>u?s=-r-o:a>u?r=-s-o:o=-s-r,n.x=s,n.y=r,n.z=o;}(r),Ie(this.mode,r.x,r.y,r.z,i),i},getTileX:function(t,e){return this.getTileXY(t,e,!0).x},getTileY:function(t,e){return this.getTileXY(t,e,!0).y}};Object.assign(ii.prototype,ni);var si={y:0,x:1},ri={even:0,odd:1},oi=[[[[1,0],[0,1],[-1,1],[-1,0],[-1,-1],[0,-1]],[[1,0],[1,1],[0,1],[-1,0],[0,-1],[1,-1]]],[[[1,0],[1,1],[0,1],[-1,0],[0,-1],[1,-1]],[[1,0],[0,1],[-1,1],[-1,0],[-1,-1],[0,-1]]],[[[1,0],[0,1],[-1,0],[-1,-1],[0,-1],[1,-1]],[[1,1],[0,1],[-1,1],[-1,0],[0,-1],[1,0]]],[[[1,1],[0,1],[-1,1],[-1,0],[0,-1],[1,0]],[[1,0],[0,1],[-1,0],[-1,-1],[0,-1],[1,-1]]]],hi=Me,ai=Pe,ui=Se,li=De,ci=function(t,e,i){var n;switch(t){case hi:case ai:n=1&i;break;case ui:case li:n=1&e;}return n},di=function(t,e,i,n,s){if(void 0===s?s={}:!0===s&&(s=fi),1===n){var r=ci(this.mode,t,e);s.x=t+oi[this.mode][r][i][0],s.y=e+oi[this.mode][r][i][1];}else if(0===n)s.x=t,s.y=e;else {var o,h,a=Ze(this.mode,t,e,!0);switch(i){case 1:o=a.x,a.y-n,h=a.z+n;break;case 2:o=a.x-n,a.y,h=a.z+n;break;case 3:o=a.x-n,a.y+n,h=a.z;break;case 4:o=a.x,a.y+n,h=a.z-n;break;case 5:o=a.x+n,a.y,h=a.z-n;break;default:o=a.x+n,a.y-n,h=a.z;}Ie(this.mode,o,0,h,s);}return s},fi={},vi=function(t){var e,i,n,s={};for(var r in t)i=(e=t[r])[0],n=e[1],s.hasOwnProperty(i)||(s[i]={}),s[i][n]=parseInt(r);return s},yi=[[vi(oi[0][0]),vi(oi[0][1])],[vi(oi[1][0]),vi(oi[1][1])],[vi(oi[2][0]),vi(oi[2][1])],[vi(oi[3][0]),vi(oi[3][1])]],pi=Me,gi=Pe,mi=Se,bi=De,Ti={},xi=Me,ki=Pe,wi={},Ci={},Yi={},Xi={},Mi={},Pi={},Si=Math.PI/180,Di=function(t){return t*Si},Oi=ye(6),Ei={},_i={},Ai=new ft,Ri=function(e){function i(e){var n;return s(this,i),(n=t(this,i,[e])).sides=6,n}return a(i,e),o(i,[{key:"allDirections",get:function(){return Bi}},{key:"halfDirections",get:function(){return Li}}]),i}(ii),Bi=[0,1,2,3,4,5],Li=[0,1,2],Ni={saveOrigin:ee,restoreOrigin:ie,getTileXYAtDirection:di,getNeighborTileXY:function(t,e,i,n){return di.call(this,t,e,i,1,n)},getNeighborTileDirection:function(t,e){var i=ci(this.mode,t.x,t.y),n=yi[this.mode][i],s=e.x-t.x,r=e.y-t.y;if(n.hasOwnProperty(s)){var o=n[s];if(o.hasOwnProperty(r))return o[r]}return null},getOppositeDirection:function(t,e,i){return (i+3)%6},offset:function(t,e,i,n){void 0===n?n={}:!0===n&&(n=Ti);var s=t.x+e,r=t.y+i;switch(this.mode){case pi:0!=(1&i)&&0==(1&r)&&(s+=1);break;case gi:0!=(1&i)&&0==(1&r)&&(s-=1);break;case mi:0!=(1&e)&&0==(1&s)&&(r+=1);break;case bi:0!=(1&e)&&0==(1&s)&&(r-=1);}return n.x=s,n.y=r,n},mirror:function(t,e,i){void 0===i?i={}:!0===i&&(i=wi);var n,s,r,o=Ze(this.mode,t.x,t.y,!0),h=this.mode===xi||this.mode===ki;return 1&e&&(h?(n=o.y,s=o.x,r=o.z):(n=-o.x,s=-o.z,r=-o.y),o.x=n,o.y=s,o.z=r),2&e&&(h?(n=-o.y,s=-o.x,r=-o.z):(n=o.x,s=o.z,r=o.y)),Ie(this.mode,n,0,r,i),i},rotate:function(t,e,i){void 0===i?i={}:!0===i&&(i=Ci),e=wt(e,0,5);var n,s,r=Ze(this.mode,t.x,t.y,!0);switch(e){case 1:n=-r.z,-r.x,s=-r.y;break;case 2:n=r.y,r.z,s=r.x;break;case 3:n=-r.x,-r.y,s=-r.z;break;case 4:n=r.z,r.x,s=r.y;break;case 5:n=-r.y,-r.z,s=-r.x;break;default:n=r.x,r.y,s=r.z;}return Ie(this.mode,n,0,s,i),i},getDistance:function(t,e,i){Ze(this.mode,t.x,t.y,Yi),Ze(this.mode,e.x,e.y,Xi);var n=Xi.x-Yi.x,s=Xi.y-Yi.y,r=Xi.z-Yi.z;return (Math.abs(n)+Math.abs(s)+Math.abs(r))/2},directionBetween:function(t,e,i){var n;void 0===i&&(i=!0),Ze(this.mode,t.x,t.y,Mi),Ze(this.mode,e.x,e.y,Pi);var s=Pi.x-Mi.x,r=Pi.y-Mi.y,o=Pi.z-Mi.z;return n=0===o?s>0?0:3:0===s?o>0?1:4:0===r?o>0?2:5:s>0&&r<0&&o>0?0+o/-r:s<0&&r<0&&o>0?1+-r/o:s<0&&r>0&&o>0?2+r/-s:s<0&&r>0&&o<0?3+-o/r:s>0&&r>0&&o<0?4+s/-o:5+-r/s,i&&(n=Math.round(n)),n},directionNormalize:ve,getGridPoints:function(t,e,i){var n;return void 0===i?i=ye(6):!0===i&&(i=Oi),void 0===t?(Ei.x=0,Ei.y=0):this.getWorldXY(t,e,Ei),void 0!==this.size?n=this.size:((n=_i).width=this.width,n.height=this.height),function(t,e,i,n,s){if(void 0===s&&(s=ye(6)),void 0===i);else if("number"==typeof i)for(var r,o=0===n?0:-30,h=0;h<6;h++)r=Di(60*h+o),s[h].x=t+i*Math.cos(r),s[h].y=e+i*Math.sin(r);else {var a=i,u=a.width,l=a.height,c=u/2,d=u/4,f=l/2,v=l/4;0===n?(s[0].x=t+c,s[0].y=e,s[1].x=t+d,s[1].y=e+f,s[2].x=t-d,s[2].y=e+f,s[3].x=t-c,s[3].y=e,s[4].x=t-d,s[4].y=e-f,s[5].x=t+d,s[5].y=e-f):(s[0].x=t+c,s[0].y=e-v,s[1].x=t+c,s[1].y=e+v,s[2].x=t,s[2].y=e+f,s[3].x=t-c,s[3].y=e+v,s[4].x=t-c,s[4].y=e-v,s[5].x=t,s[5].y=e-f);}}(Ei.x,Ei.y,n,this.staggeraxis,i),i},getBounds:function(t,e,i){void 0===i?i=new ft:!0===i&&(i=Ai);var n=this.getWorldXY(t,e,!0);return i.x=n.x-.5*this.width,i.y=n.y-.5*this.height,i.width=this.width,i.height=this.height,i},ringToTileXYArray:function(t,e,i){void 0===i&&(i=[]);var n,s,r,o=Ze(this.mode,t.x,t.y,!0),h=o.x,a=(o.y,o.z);for(r=e,n=0;n>=-e;n--)s=-n-r,i.push(Ie(this.mode,h+n,0,a+r));for(n=-e,s=1;s<=e;s++)r=-n-s,i.push(Ie(this.mode,h+n,0,a+r));for(s=e,r=-1;r>=-e;r--)n=-s-r,i.push(Ie(this.mode,h+n,0,a+r));for(r=-e,n=1;n<=e;n++)s=-n-r,i.push(Ie(this.mode,h+n,0,a+r));for(n=e,s=-1;s>=-e;s--)r=-n-s,i.push(Ie(this.mode,h+n,0,a+r));for(s=-e,r=1;r<=e-1;r++)n=-s-r,i.push(Ie(this.mode,h+n,0,a+r));return i}};Object.assign(Ri.prototype,Ni);var Fi={quadGrid:be,hexagonGrid:Ri},Zi=function(e){function i(e,n){var r;return s(this,i),(r=t(this,i)).isShutdown=!1,r.scene=e,r.boardData=new Jt,r.resetFromJSON(n),r.boot(),r}return a(i,e),o(i,[{key:"resetFromJSON",value:function(t){return this.isBoard=k(t,"isBoard",!0),this.setGrid(k(t,"grid",void 0)),this.setWrapMode(k(t,"wrap",!1)),this.setInfinityMode(k(t,"infinity",!1)),this.setBoardWidth(k(t,"width",0)),this.setBoardHeight(k(t,"height",0)),this}},{key:"boot",value:function(){this.scene&&this.isBoard&&this.scene.sys.events.once("shutdown",this.destroy,this);}},{key:"shutdown",value:function(t){if(!this.isShutdown)return this.scene&&this.isBoard&&this.scene.sys.events.off("shutdown",this.destroy,this),this.isBoard&&this.removeAllChess(!t,!0),f(u(i.prototype),"shutdown",this).call(this),this.boardData.shutdown(t),this.scene=void 0,this.boardData=void 0,this.isShutdown=!0,this}},{key:"destroy",value:function(t){this.isShutdown||(this.emit("destroy",this,t),this.shutdown(t));}},{key:"setGrid",value:function(t){if(R(t)){var e=t,i=k(e,"gridType","quadGrid");t=new Fi[i](e);}return this.grid=t,this}},{key:"setWrapMode",value:function(t){return void 0===t&&(t=!0),this.wrapMode=t,this}},{key:"setInfinityMode",value:function(t){return void 0===t&&(t=!0),this.infinityMode=t,this}},{key:"setBoardSize",value:function(t,e){return this.setBoardWidth(t),this.setBoardHeight(e),this}},{key:"exists",value:function(t){return this.boardData.exists(this.getChessUID(t))}},{key:"chessCount",get:function(){return this.boardData.chessCount}},{key:"clear",value:function(t){return void 0===t&&(t=!0),this.removeAllChess(t,!0),this.boardData.clear(),this}}],[{key:"GetBoard",value:function(t){return Ut(t)}}]),i}(x);Object.assign(Zi.prototype,Gt);var Ii=function(e){function i(e){var n;return s(this,i),n=t(this,i,[e,0,0,1,1]),e.add.existing(c(n)),n.setScrollFactor(0),n.setInteractive({hitArea:{},hitAreaCallback:function(){return !0}}),n}return a(i,e),o(i)}(Phaser.GameObjects.Zone),ji=Phaser.GameObjects.GameObject.RENDER_MASK,zi=function(t){if(t.renderFlags!==ji)return !1;var e=!0,i=t.parentContainer;if(i)do{if(i.renderFlags!==ji){e=!1;break}i=i.parentContainer;}while(i);return e},Ui=function(t,e,i,n,s,r){if(null!=n&&null!=s){for(var o,h="string"!=typeof t?t:void 0,a="string"!=typeof e?e:void 0,u=i.tileXYToChessArray(n,s,Gi),l=0,c=u.length;l0),this.onDragStart()));}},{key:"onPointerUp",value:function(t){this.enable&&((!this.bounds||this.bounds.contains(t.x,t.y))&&this.pointer===t&&(this.pointer=void 0,this.movedState=!1,this.tracerState=gn,this.onDragEnd()));}},{key:"onPointerMove",value:function(t){if(this.enable&&t.isDown){var e=!this.bounds||this.bounds.contains(t.x,t.y),i=this.pointer===t;!i&&e||(i&&!e?this.onPointerUp(t):(this.movedState||(this.movedState=t.x!==t.downX||t.y!==t.downY),this.movedState&&this.onDrag()));}}},{key:"dragCancel",value:function(){return this.tracerState===mn&&this.onDragEnd(),this.pointer=void 0,this.tracerState=gn,this}},{key:"onDragStart",value:function(){this.emit("dragstart",this);}},{key:"onDragEnd",value:function(){this.emit("dragend",this);}},{key:"onDrag",value:function(){this.emit("drag",this);}},{key:"preUpdate",value:function(t,e){}},{key:"postUpdate",value:function(t,e){}},{key:"startTicking",value:function(){f(u(i.prototype),"startTicking",this).call(this),this.scene.sys.events.on("preupdate",this.preUpdate,this),this.scene.sys.events.on("postupdate",this.postUpdate,this);}},{key:"stopTicking",value:function(){f(u(i.prototype),"stopTicking",this).call(this),this.scene&&(this.scene.sys.events.off("preupdate",this.preUpdate,this),this.scene.sys.events.off("postupdate",this.postUpdate,this));}},{key:"setRecongizedStateObject",value:function(t){return this.recongizedState=t,this}},{key:"state",get:function(){return this.recongizedState.state},set:function(t){this.recongizedState.state=t;}},{key:"cancel",value:function(){return this.state=bn,this}},{key:"isPointerInGameObject",value:function(t,e,i){var n=this.pointer;return !!n&&function(t,e,i,n){var s,r=t.scene.sys.cameras.main,o=0===t.scrollFactorX&&0===t.scrollFactorY;if(e)return o?dn(t,e.x,e.y,i,n):!!(s=fn(e,r,!0))&&dn(t,s.x,s.y,i,n);for(var h=t.scene.input.manager,a=h.pointersTotal,u=h.pointers,l=0;lthis.tapOffset&&(this.state=On,this.state=Dn);break;case On:this.state=Dn;}}},{key:"onDragEnd",value:function(){this.state===Dn&&(this.tapsCount++,this.emit("tapping",this,this.gameObject,this.lastPointer),void 0!==this.maxTaps&&this.tapsCount===this.maxTaps&&(this.state=On));}},{key:"onDrag",value:function(){this.state!==Sn&&this.pointer.getDistance()>this.dragThreshold&&(this.state=Sn);}},{key:"preUpdate",value:function(t,e){if(this.isRunning&&this.enable&&this.state===Dn){var i=this.lastPointer;if(i.isDown)t-i.downTime>this.holdTime&&(this.state=Sn);else t-i.upTime>this.tapInterval&&(void 0===this.minTaps||this.tapsCount>=this.minTaps?this.state=On:this.state=Sn);}}},{key:"postUpdate",value:function(t,e){this.isRunning&&this.enable&&this.state===On&&(this.state=Sn);}},{key:"isTapped",get:function(){return this.state===On}},{key:"setHoldTime",value:function(t){return this.holdTime=t,this}},{key:"setTapInterval",value:function(t){return this.tapInterval=t,this}},{key:"setDragThreshold",value:function(t){return this.dragThreshold=t,this}},{key:"setTapOffset",value:function(t){return this.tapOffset=t,this}},{key:"setMaxTaps",value:function(t){return this.maxTaps=t,this}},{key:"setMinTaps",value:function(t){return this.minTaps=t,this}},{key:"setTaps",value:function(t,e){return void 0===e&&(e=t),this.setMinTaps(t).setMaxTaps(e),this}}]),i}(pn),Sn="IDLE",Dn="BEGIN",On="RECOGNIZED",En=function(){var t=this.touchZone?this.touchZone:this.board.scene,e=new Pn(t);return e.on("tap",_n,this),e},_n=function(t){var e=this.board,i=e.worldXYToTileXY(t.worldX,t.worldY),n=i.x,s=i.y;if(e.contains(n,s)){e.emit("tiletap",t,i),e.emit("tile".concat(t.tapsCount,"tap"),t,i);Ui((function(i){e.emit("gameobjecttap",t,i),e.emit("gameobject".concat(t.tapsCount,"tap"),t,i);}),(function(e){e.emit("board.tap",t),e.emit("board.".concat(t.tapsCount,"tap"),t);}),e,n,s,t);}},An=Phaser.Utils.Objects.GetValue,Rn=function(e){function i(e,n){var r;s(this,i);var o=c(r=t(this,i,[e,n])),h={states:{IDLE:{enter:function(){o.x=0,o.y=0,o.worldX=0,o.worldY=0;},exit:function(){var t=o.lastPointer;o.x=t.x,o.y=t.y,o.worldX=t.worldX,o.worldY=t.worldY;}},BEGIN:{enter:function(){o.start();},exit:function(){o.stop();}},RECOGNIZED:{enter:function(){o.emit("pressstart",o,o.gameObject,o.lastPointer);},exit:function(){o.emit("pressend",o,o.gameObject,o.lastPointer);}}},init:function(){this.state=Bn;},eventEmitter:!1};return r.setRecongizedStateObject(new Yn(h)),r}return a(i,e),o(i,[{key:"resetFromJSON",value:function(t){return f(u(i.prototype),"resetFromJSON",this).call(this,t),this.setDragThreshold(An(t,"threshold",9)),this.setHoldTime(An(t,"time",251)),this}},{key:"onDragStart",value:function(){this.state=Ln,0===this.holdTime&&(this.state=Nn);}},{key:"onDragEnd",value:function(){this.state=Bn;}},{key:"onDrag",value:function(){this.state!==Bn&&this.pointer.getDistance()>this.dragThreshold&&(this.state=Bn);}},{key:"preUpdate",value:function(t,e){this.isRunning&&this.enable&&(this.state===Ln&&t-this.pointer.downTime>=this.holdTime&&(this.state=Nn));}},{key:"isPressed",get:function(){return this.state===Nn}},{key:"setHoldTime",value:function(t){return this.holdTime=t,this}},{key:"setDragThreshold",value:function(t){return this.dragThreshold=t,this}}]),i}(pn),Bn="IDLE",Ln="BEGIN",Nn="RECOGNIZED",Fn=function(){var t=this.touchZone?this.touchZone:this.board.scene,e=new Rn(t);return e.on("pressstart",Zn,this).on("pressend",In,this),e},Zn=function(t){var e=this.board,i=e.worldXYToTileXY(t.worldX,t.worldY),n=i.x,s=i.y;e.contains(n,s)&&(e.emit("tilepressstart",t,i),Ui("gameobjectpressstart","board.pressstart",e,n,s,t));},In=function(t){var e=this.board,i=e.worldXYToTileXY(t.worldX,t.worldY),n=i.x,s=i.y;e.contains(n,s)&&(e.emit("tilepressend",t,i),Ui("gameobjectpressend","board.pressend",e,n,s,t));},jn=Phaser.Math.Distance.Between,zn=Phaser.Math.Angle.Between,Un={getDt:function(){var t;return t=this.scene,O(t).loop.delta},getVelocity:function(){var t=this.pointer.position,e=this.pointer.prevPosition;return jn(e.x,e.y,t.x,t.y)/(.001*this.getDt())},getVelocityX:function(){var t=this.pointer.position,e=this.pointer.prevPosition;return Math.abs(t.x-e.x)/(.001*this.getDt())},getVelocityY:function(){var t=this.pointer.position,e=this.pointer.prevPosition;return Math.abs(t.y-e.y)/(.001*this.getDt())},getVelocityAngle:function(){var t=this.pointer.position,e=this.pointer.prevPosition;return zn(e.x,e.y,t.x,t.y)}},Gn={"up&down":0,"left&right":1,"4dir":2,"8dir":3},Wn={},Vn=Phaser.Utils.Objects.GetValue,Jn=Phaser.Math.RadToDeg,Hn=function(e){function i(e,n){var r;s(this,i);var o=c(r=t(this,i,[e,n])),h={states:{IDLE:{enter:function(){o.x=0,o.y=0,o.worldX=0,o.worldY=0;},exit:function(){var t=o.lastPointer;o.x=t.x,o.y=t.y,o.worldX=t.worldX,o.worldY=t.worldY;}},BEGIN:{enter:function(){o.validDrag=!1;}},RECOGNIZED:{enter:function(){o.start(),o.updateDirectionStates(),o.emit("swipe",o,o.gameObject,o.lastPointer);},exit:function(){o.stop(),o.clearDirectionStates();}}},init:function(){this.state=qn;},eventEmitter:!1};return r.setRecongizedStateObject(new Yn(h)),r.clearDirectionStates(),r}return a(i,e),o(i,[{key:"resetFromJSON",value:function(t){return f(u(i.prototype),"resetFromJSON",this).call(this,t),this.setDragThreshold(Vn(t,"threshold",10)),this.setVelocityThreshold(Vn(t,"velocityThreshold",1e3)),this.setDirectionMode(Vn(t,"dir","8dir")),this}},{key:"onDragStart",value:function(){this.state=$n;}},{key:"onDragEnd",value:function(){this.state=qn;}},{key:"onDrag",value:function(){this.state===$n&&(this.validDrag||(this.validDrag=0===this.dragThreshold||this.pointer.getDistance()>=this.dragThreshold),this.validDrag&&this.dragVelocity>this.velocityThreshold&&(this.state=Qn));}},{key:"postUpdate",value:function(t,e){this.isRunning&&this.enable&&this.state===Qn&&(this.state=qn);}},{key:"isSwiped",get:function(){return this.state===Qn}},{key:"dragVelocity",get:function(){var t;switch(this.dirMode){case 0:t=this.getVelocityY();break;case 1:t=this.getVelocityX();break;default:t=this.getVelocity();}return t}},{key:"setDragThreshold",value:function(t){return this.dragThreshold=t,this}},{key:"setVelocityThreshold",value:function(t){return this.velocityThreshold=t,this}},{key:"setDirectionMode",value:function(t){return "string"==typeof t&&(t=Gn[t]),this.dirMode=t,this}},{key:"updateDirectionStates",value:function(){return function(t,e,i){switch(void 0===i?i={}:!0===i&&(i=Wn),i.left=!1,i.right=!1,i.up=!1,i.down=!1,t=(t+360)%360,e){case 0:t<180?i.down=!0:i.up=!0;break;case 1:t>90&&t<=270?i.left=!0:i.right=!0;break;case 2:t>45&&t<=135?i.down=!0:t>135&&t<=225?i.left=!0:t>225&&t<=315?i.up=!0:i.right=!0;break;case 3:t>22.5&&t<=67.5?(i.down=!0,i.right=!0):t>67.5&&t<=112.5?i.down=!0:t>112.5&&t<=157.5?(i.down=!0,i.left=!0):t>157.5&&t<=202.5?i.left=!0:t>202.5&&t<=247.5?(i.left=!0,i.up=!0):t>247.5&&t<=292.5?i.up=!0:t>292.5&&t<=337.5?(i.up=!0,i.right=!0):i.right=!0;}}(Jn(this.getVelocityAngle()),this.dirMode,this),this}},{key:"clearDirectionStates",value:function(){return this.left=!1,this.right=!1,this.up=!1,this.down=!1,this}}]),i}(pn);Object.assign(Hn.prototype,Un);var Kn,qn="IDLE",$n="BEGIN",Qn="RECOGNIZED",ts=function(){var t=this.touchZone?this.touchZone:this.board.scene,e=new Hn(t);return e.on("swipe",es,this),e},es=function(t){var e=this.board,i=e.worldXYToTileXY(t.worldX,t.worldY),n=i.x,s=i.y;e.contains(n,s)&&(t.direction=e.angleSnapToDirection(i,t.getVelocityAngle()),e.emit("tileswipe",t,i),Ui("gameobjectswipe","board.swipe",e,n,s,t));},is=function(){function t(e,i){s(this,t);var n=k(i,"enable",!0),r=k(i,"useTouchZone",!0),o=e.scene;if(this.board=e,this.touchZone=void 0,this._enable=!0,this.pointer=null,this.tilePosition={x:void 0,y:void 0},this.prevTilePosition={x:void 0,y:void 0},r){var h=new Ii(o);h.on("pointerdown",Wi,this),h.on("pointerup",Vi,this),h.on("pointermove",Ji,this),this.touchZone=h;}else o.input.on("pointerdown",Wi,this),o.input.on("pointerup",Vi,this),o.input.on("pointermove",Ji,this);this.tap=En.call(this),this.press=Fn.call(this),this.swipe=ts.call(this),e.once("destroy",this.onBoardDestroy,this),this.setEnable(n);}return o(t,[{key:"destroy",value:function(t){if(this.tap.destroy(t),this.press.destroy(t),this.swipe.destroy(t),this.touchZone)this.touchZone.destroy(t),this.touchZone=void 0;else {var e=this.board.scene;e&&(e.input.off("pointerdown",Wi,this),e.input.off("pointerup",Vi,this),e.input.off("pointermove",Ji,this));}this.board=void 0;}},{key:"onBoardDestroy",value:function(t,e){this.destroy(e);}},{key:"enable",get:function(){return this._enable},set:function(t){this._enable!==t&&(t||(this.pointer=null),this._enable=t,this.touchZone&&(t?this.touchZone.setInteractive():this.touchZone.disableInteractive()),this.tap.setEnable(t),this.press.setEnable(t),this.swipe.setEnable(t));}},{key:"setEnable",value:function(t){return void 0===t&&(t=!0),this.enable=t,this}}]),t}(),ns=function(e){function i(){return s(this,i),t(this,i,arguments)}return a(i,e),o(i,[{key:"touchZone",get:function(){return this.input?this.input.touchZone:null}},{key:"getTouchZone",value:function(){return this.touchZone}}]),i}(Zi),ss={setInteractive:function(t){if(this.input){var e=!1!==t;this.input.setEnable(e);}else this.input=new is(this,t);return this},forEachCullTileXY:function(t,e,i){"number"==typeof i&&(i={order:i}),void 0===i&&(i={});var n=k(i,"order",0),s=k(i,"camera",this.scene.cameras.main),r=k(i,"paddingX",1),o=k(i,"paddingY",1);return void 0===Kn&&(Kn=new ft),Kn.width=(s.width+2*r)/s.zoomX,Kn.height=(s.height+2*o)/s.zoomY,Kn.centerX=s.centerX+s.scrollX,Kn.centerY=s.centerY+s.scrollY,this.forEachTileXYInShape(Kn,t,e,{order:n,testMode:1}),this}};Object.assign(ns.prototype,ss);var rs=function(t){return null==t||""===t||0===t.length},os=function(t,e,i,s){if(void 0===s&&(s="."),"object"===n(t)){if(rs(e)){if(null==i)return;"object"===n(i)&&(t=i);}else {"string"==typeof e&&(e=e.split(s));var r=e.pop(),o=function(t,e,i){var s=t;if(rs(e));else {var r;"string"==typeof e&&(e=e.split("."));for(var o=0,h=e.length;os)return i?-1:1;if(n0?this.items.pop():null}},{key:"push",value:function(t){return this.items.push(t),this}},{key:"pushMultiple",value:function(t){return this.items.push.apply(this.items,t),t.length=0,this}},{key:"clear",value:function(){return this.items.length=0,this}}]),t}(),js=function(){function t(){s(this,t),this.preNodes=[],this.manager=void 0;}return o(t,[{key:"reset",value:function(t){this.manager=t,this.sn=void 0,this.key=void 0,this.x=void 0,this.y=void 0,this.isTileXYZ=!0,this._px=void 0,this._py=void 0,this.cost=void 0,this.f=0,this.g=0,this.h=0,this.closerH=0,this.visited=!1,this.closed=!1,this.preNodes.length=0;}},{key:"destroy",value:function(){this.preNodes.length=0,this.manager=void 0;}},{key:"heuristic",value:function(t,e,i){if(null===e)return 0;var n,s=this.board.getDistance(t,this,!0)*this.pathFinder.weight;if(1===e&&void 0!==i){var r=t.angleTo(i)-this.angleTo(i);n=s+Math.abs(r);}else n=2===e?s+Math.random():s;return n}},{key:"getNeighborNodes",value:function(){var t=this.board.getNeighborTileXY(this);this.pathFinder.shuffleNeighbors&&_t(t);for(var e,i=[],n=0,s=t.length;n0&&(this.content[0]=e,this.bubbleUp(0)),t}},{key:"remove",value:function(t){var e=this.content.indexOf(t),i=this.content.pop();e!==this.content.length-1&&(this.content[e]=i,this.scoreFunction(i)0;){var i=(t+1>>1)-1,n=this.content[i];if(!(this.scoreFunction(e)0;){var d=Qs.pop();if(o&&d===l){r=l;break}d.closed=!0;for(var f,v,y=d.getNeighborNodes(),p=0,g=y.length;pi||(!b||mn?1:i0;)switch(l.push(u),h=u.preNodes.length,i){case hr:case ar:case ur:u=o=u.preNodes[0];break;case nr:u=o=1===h?u.preNodes[0]:u.preNodes[Pt(0,h-1)];break;case sr:for(var c=0;c0&&null!==(i=this.getNextTile(r,this.preTileXY));)(n=i.cost)===Er&&(n=t),t>=n&&e.push(i),t-=n,this.preTileXY=r,r=i;for(var o=e.length-1;o>=0&&0===e[o].cost;o--)e.length=o;return e},getNextTile:function(t,e){for(var i,n,s,r=this.board,o=r.grid.allDirections,h=null,a=null,u=[],l=null,c=0,d=o.length;c=0;n--)(e=this.children[n]).parentContainer||e.displayList||e.destroy(t);this.clear(!t),f(u(i.prototype),"destroy",this).call(this,t);}}},{key:"contains",value:function(t){return -1!==this.children.indexOf(t)}},{key:"add",value:function(t){var e=this;return Ir(this.children,t,0,(function(t){t.once("destroy",e.onChildDestroy,e);}),this),this}},{key:"remove",value:function(t,e){var i=this;return jr(this.children,t,(function(t){t.off("destroy",i.onChildDestroy,i),e&&t.destroy();})),this}},{key:"onChildDestroy",value:function(t,e){this.remove(t,!1);}},{key:"clear",value:function(t){for(var e,i=0,n=this.children.length;i=0;s--){var r=e[s];n!==r&&n.displayList===r.displayList&&(n.displayList.moveBelow(r,n),n=r);}return this}},Yo=function t(e,i){if(!i(e)&&e.isRexContainerLite)for(var n=e.children,s=0,r=n.length;s0;){var n=i.shift();!e(n)&&n.isRexContainerLite&&i.push.apply(i,p(n.children));}},Mo=Phaser.Utils.Array,Po={getChildren:function(t){if(t)for(var e=0,i=this.children.length;e0;if(o){for(var h,a=0,u=r.length;a0;if(o){for(var h,a=0,u=r.length;a0;if(o){for(var h,a=0,u=r.length;as&&(s=i.x),i.yo&&(o=i.y);return e.minX=n,e.minY=r,e.maxX=s,e.maxY=o,e},mh={},bh=function(t,e,i,n){var s,r;for(var o in void 0===i&&(i=this.tileXYZMap),void 0===n&&(n={}),i)s=i[o],(r=this.board.offset(s,t,e)).z=s.z,n[o]=r;return n},Th={addChess:function(t,e,i,n){var s=this.grid;return s.saveOrigin(),s.setOriginPosition(this.x,this.y),this.board.addChess(t,e,i,n,!0),F(t)&&(t=this.board.uidToChess(t)),this.add(t),s.restoreOrigin(),this},removeChess:function(t,e,i,n,s){return this.board.removeChess(t,e,i,n,s),this},removeAllChess:function(t){return this.board.removeAllChess(t),this},pullOutFromMainBoard:function(){var t=this.mainBoard;if(null===t)return this;var e=this.tileXYZMap;for(var i in e)t.removeChess(parseInt(i));return this.setMainBoard(null),this},canPutOnMainBoard:function(t,e,i,n){if(!t)return !1;var s,r,o;for(var h in void 0===n&&(n=this.tileXYZMap),n){if(s=n[h],r=t.offset(s,e,i,!0),!t.contains(r.x,r.y))return !1;if(this.putTestCallback){th.x=r.x,th.y=r.x,th.z=s.z;var a=this.board.uidToChess(h);o=this.putTestCallbackScpe?this.putTestCallback.call(this.putTestCallbackScpe,th,t,a):this.putTestCallback(th,t,a);}else o=t.contains(r.x,r.y,s.z);if(o)return !1}return !0},putOnMainBoard:function(t,e,i,n){if(!t)return this;if(void 0===e){var s=t.worldXYToTileXY(this.x,this.y,!0);e=s.x,i=s.y;}if(void 0===n&&(n=!0),this.pullOutFromMainBoard(),!this.canPutOnMainBoard(t,e,i))return this;this.setMainBoard(t,e,i);var r,o,h=this.tileXYZMap;for(var a in h)r=h[a],a=parseInt(a),o=t.offset(r,e,i,!0),t.addChess(a,o.x,o.y,r.z,!1);return n&&this.alignToMainBoard(t,e,i),this},putBack:function(){var t=this.lastMainBoardRef.mainBoard,e=this.lastMainBoardRef.tileX,i=this.lastMainBoardRef.tileY;return this.putOnMainBoard(t,e,i,!1),this},isOverlapping:function(t,e){if(!t)return !1;var i;for(var n in this.tileXYZMap)if(i=this.board.uidToChess(n),t.isOverlappingPoint(i.x,i.y,e))return !0;return !1},alignToMainBoard:function(t,e,i){if(!t)return this;if(void 0===e){var n=t.worldXYToTileXY(this.x,this.y,!0);e=n.x,i=n.y;}return t.gridAlign(this,e,i),this},setInteractive:function(t){return void 0===t&&(t=!0),this.input||(this.input={enable:!0,tilePosition:{x:void 0,y:void 0},pointer:void 0,drag:{enable:!1,state:0,position:{x:void 0,y:void 0}}},this.scene.input.on("pointerdown",eh,this),this.scene.input.on("pointerup",oh,this),this.scene.input.on("pointermove",uh,this),this.once("destroy",(function(){this.scene&&(this.scene.input.off("pointerdown",eh,this),this.scene.input.off("pointerup",oh,this),this.scene.input.off("pointermove",uh,this));}),this)),this.input.enable=t,t||(this.input.pointer=null),this},setDraggable:function(t){return void 0===t&&(t=!0),this.setInteractive(),this.input.drag.enable=t,t||(this.input.drag.state=0),this},dragEnd:rh,setMainBoard:function(t,e,i){return this.mainBoardRef.set(t,e,i),t&&this.lastMainBoardRef.set(t,e,i),this},canMirror:function(t){if(null===this.mainBoard)return !0;var e=fh.call(this,t);return this.canPutOnMainBoard(this.mainBoard,tileX,tileY,e)},mirror:function(t){var e=null!=this.mainBoard;e&&this.pullOutFromMainBoard();var i=fh.call(this,t);if(e){var n=this.lastMainBoardRef.mainBoard,s=this.lastMainBoardRef.tileX,r=this.lastMainBoardRef.tileY;this.lastTransferResult=this.canPutOnMainBoard(n,s,r,i),this.lastTransferResult&&yh.call(this,i),this.putBack();}else this.lastTransferResult=!0,yh.call(this,i);return this},canRotate:function(t){if(null===this.mainBoard)return !0;var e=ph.call(this,t);return this.canPutOnMainBoard(this.mainBoard,tileX,tileY,e)},rotate:function(t){if(0===t)return this;var e=null!=this.mainBoard;e&&this.pullOutFromMainBoard();var i=ph.call(this,t);if(e){var n=this.lastMainBoardRef.mainBoard,s=this.lastMainBoardRef.tileX,r=this.lastMainBoardRef.tileY;this.lastTransferResult=this.canPutOnMainBoard(n,s,r,i),this.lastTransferResult&&yh.call(this,i),this.putBack();}else this.lastTransferResult=!0,yh.call(this,i);return this.lastTransferResult&&this.setFace(this.face+t),this},canRotateTo:function(t){return t-=this.face,this.canRotate(t)},rotateTo:function(t){return t-=this.face,this.rotate(t),this},setOrigin:function(t,e){switch(t){case"center":t=.5,e=.5;break;case"top-left":case"left-top":t=0,e=0;}void 0===t&&(t=.5),void 0===e&&(e=t);var i=gh.call(this,void 0,!0),n=-Math.floor(yt(i.minX,i.maxX,t)),s=-Math.floor(yt(i.minY,i.maxY,e));if(0!==n||0!==s){var r=bh.call(this,n,s);yh.call(this,r);var o=this.board.tileXYToWorldXY(n,s),h=this.board.tileXYToWorldXY(0,0);this.setPosition(this.x+(h.x-o.x),this.y+(h.y-o.y));}return this}},xh=function(){function t(e){s(this,t),this.miniBoard=e,this.set(null);}return o(t,[{key:"set",value:function(t,e,i){t||(t=null,e=null,i=null),this.mainBoard=t,this.tileX=e,this.tileY=i;}}]),t}(),kh=function(e){function i(e,n,r,o){var h;s(this,i),(h=t(this,i,[e,n,r,0,0])).type="rexMiniBoard";var a={isBoard:!1,grid:k(o,"grid",void 0),infinity:!0,wrap:!1};return h.board=new Zi(e,a),h.mainBoardRef=new xh,h.lastMainBoardRef=new xh,h.resetFromJSON(o),h}return a(i,e),o(i,[{key:"resetFromJSON",value:function(t){this.setFace(k(t,"face",0));var e=k(t,"draggable",void 0);return void 0!==e&&this.setDraggable(e),this.setPutTestCallback(k(t,"putTestCallback",void 0),k(t,"putTestCallbackScpe",void 0)),this.lastTransferResult=k(t,"lastTransferResult",void 0),this}},{key:"destroy",value:function(t){this.scene&&(this.clear(!t),this.board.shutdown(t),this.board=void 0,this.setPutTestCallback(void 0,void 0),f(u(i.prototype),"destroy",this).call(this,t));}},{key:"setFace",value:function(t){return this.face=this.board.grid.directionNormalize(t),this}},{key:"mainBoard",get:function(){return this.mainBoardRef.mainBoard}},{key:"tileX",get:function(){return this.mainBoardRef.tileX}},{key:"tileY",get:function(){return this.mainBoardRef.tileY}},{key:"grid",get:function(){return this.board.grid}},{key:"tileXYZMap",get:function(){return this.board.boardData.UIDToXYZ}},{key:"setPutTestCallback",value:function(t,e){return this.putTestCallback=t,this.putTestCallbackScpe=e,this}}]),i}(Qo);Object.assign(kh.prototype,Th),m.register("miniBoard",(function(t,e,i){var n=new kh(this.scene,t,e,i);return this.scene.add.existing(n),n})),os(window,"RexPlugins.Board.MiniBoard",kh);var wh,Ch={hexagon:function(t,e,i){void 0===i&&(i=[]);for(var n,s,r=t.grid.mode,o=-e;o<=e;o++){n=Math.max(-e,-o-e),s=Math.min(e,-o+e);for(var h=n;h<=s;h++)i.push(Ie(r,o,0,-o-h));}return i},triangle:function(t,e,i,n){void 0===n&&(n=[]);for(var s,r,o=t.grid.mode,h=0;h<=i;h++){1===e?(s=i-h,r=i):(s=0,r=i-h);for(var a=s;a<=r;a++)n.push(Ie(o,h,0,-h-a));}return n},parallelogram:function(t,e,i,n,s){void 0===s&&(s=[]);var r=t.grid.mode;switch(e){case 1:for(var o=0;o<=i;o++)for(var h=0;h<=n;h++)s.push(Ie(r,h,0,o));break;case 2:for(var a=0;a<=i;a++)for(o=0;o<=n;o++)s.push(Ie(r,-a-o,0,o));break;default:for(h=0;h<=i;h++)for(a=0;a<=n;a++)s.push(Ie(r,h,0,-h-a));}return s}},Yh=Phaser.Utils.String.Pad,Xh=function(t,e,i){if(null==t)return t;switch(n(t)){case"string":default:return t;case"number":return "#".concat(Yh(Math.floor(t).toString(16),6,"0",1));case"function":return t(e,i);case"object":return t.hasOwnProperty("r")?t.hasOwnProperty("a")?"rgba(".concat(t.r,",").concat(t.g,",").concat(t.b,",").concat(t.a,")"):"rgb(".concat(t.r,",").concat(t.g,",").concat(t.b,")"):t.hasOwnProperty("h")?t.hasOwnProperty("a")?"hsla(".concat(t.h,",").concat(t.s,",").concat(t.l,",").concat(t.a,")"):"hsl(".concat(t.h,",").concat(t.s,",").concat(t.l,")"):t}},Mh=function(t,e){void 0===e&&(e={});for(var i=1/0,n=1/0,s=-1/0,r=-1/0,o=0,h=t.length;oe?t-i:t},Dh=function(t,e,i){if(void 0===i&&(i=e),0===e&&0===i)return t;for(var n=0,s=t.length;n