/* * Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license * Author: Jim Palmer (based on chunking idea from Dave Koelle) */ /*jshint unused:false */ function naturalSort (a, b) { "use strict"; var re = /(^([+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?)?$|^0x[0-9a-f]+$|\d+)/gi, sre = /(^[ ]*|[ ]*$)/g, dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/, hre = /^0x[0-9a-f]+$/i, ore = /^0/, i = function(s) { return naturalSort.insensitive && ('' + s).toLowerCase() || '' + s; }, // convert all to strings strip whitespace x = i(a).replace(sre, '') || '', y = i(b).replace(sre, '') || '', // chunk/tokenize xN = x.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'), yN = y.replace(re, '\0$1\0').replace(/\0$/,'').replace(/^\0/,'').split('\0'), // numeric, hex or date detection xD = parseInt(x.match(hre), 16) || (xN.length !== 1 && x.match(dre) && Date.parse(x)), yD = parseInt(y.match(hre), 16) || xD && y.match(dre) && Date.parse(y) || null, oFxNcL, oFyNcL; // first try and sort Hex codes or Dates if (yD) { if ( xD < yD ) { return -1; } else if ( xD > yD ) { return 1; } } // natural sorting through split numeric strings and default strings for(var cLoc=0, numS=Math.max(xN.length, yN.length); cLoc < numS; cLoc++) { // find floats not starting with '0', string or 0 if not defined (Clint Priest) oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0; oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0; // handle numeric vs string comparison - number < string - (Kyle Adams) if (isNaN(oFxNcL) !== isNaN(oFyNcL)) { return (isNaN(oFxNcL)) ? 1 : -1; } // rely on string comparison if different types - i.e. '02' < 2 != '02' < '2' else if (typeof oFxNcL !== typeof oFyNcL) { oFxNcL += ''; oFyNcL += ''; } if (oFxNcL < oFyNcL) { return -1; } if (oFxNcL > oFyNcL) { return 1; } } return 0; }; !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()}(this,function(){"use strict";function v(t){return(v="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})(t)}function p(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var i=0;it.length)&&(e=t.length);for(var i=0,n=new Array(e);i=t.left&&e<=t.right&&i>=t.top&&i<=t.bottom&&(t.x-e)*(t.x-e)+(t.y-i)*(t.y-i)<=t.radius*t.radius}function A(t,e,i){if(t.width<=0||t.height<=0)return!1;var n=(e-t.x)/t.width,s=(i-t.y)/t.height;return(n*=n)+(s*=s)<.25}function B(t,e,i){for(var n=!1,s=-1,r=t.points.length-1;++s=e&&t.y<=i&&t.y+t.height>=i)},tt=function(t){return 2*(t.width+t.height)},et=new $({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}}),it=function(t,e,i){if(void 0===i&&(i=new et),e<=0||1<=e)return i.x=t.x,i.y=t.y,i;var n=tt(t)*e;return.5this.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}}}),mt=function(t,e){return void 0===e&&(e=new et),e.x=t.x+Math.random()*t.width,e.y=t.y+Math.random()*t.height,e},Tt=new $({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 Q(this,t,e)},getPoint:function(t,e){return it(this,t,e)},getPoints:function(t,e,i){return nt(this,t,e,i)},getRandomPoint:function(t){return mt(this,t)},setTo:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},setEmpty:function(){return this.setTo(0,0,0,0)},setPosition:function(t,e){return void 0===e&&(e=t),this.x=t,this.y=e,this},setSize:function(t,e){return void 0===e&&(e=t),this.width=t,this.height=e,this},isEmpty:function(){return this.width<=0||this.height<=0},getLineA:function(t){return void 0===t&&(t=new bt),t.setTo(this.x,this.y,this.right,this.y),t},getLineB:function(t){return void 0===t&&(t=new bt),t.setTo(this.right,this.y,this.right,this.bottom),t},getLineC:function(t){return void 0===t&&(t=new bt),t.setTo(this.right,this.bottom,this.x,this.bottom),t},getLineD:function(t){return void 0===t&&(t=new bt),t.setTo(this.x,this.bottom,this.x,this.y),t},left:{get:function(){return this.x},set:function(t){t>=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}}}),xt=function(t,e){void 0===e&&(e=new Tt);for(var i,n=1/0,s=1/0,r=-n,o=-s,h=0;h=this.width)&&(t=null),this.wrapMode?e=Yt(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;rt&&(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}(),Ft={},Zt={},zt=function(){function e(t){p(this,e),this.resetFromJSON(t)}return u(e,[{key:"resetFromJSON",value:function(t){this.setType(T(t,"type",0)),this.setDirectionMode(T(t,"dir",4)),this.setOriginPosition(T(t,"x",0),T(t,"y",0)),this.setCellSize(T(t,"cellWidth",0),T(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=$t[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}}]),e}(),Ut={getWorldXY:function(t,e,i){var n,s;switch(void 0===i?i={}:!0===i&&(i=Ft),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=Zt),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(s-n)}return 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(zt.prototype,Ut);function Wt(){return this._savedOriginX=this.x,this._savedOriginY=this.y,this}function Vt(){return this.x=this._savedOriginX,this.y=this._savedOriginY,this}function Gt(t,e,i,n,s){var r,o;switch(void 0===s?s={}:!0===s&&(s=ee),this.mode){case 0:r=Qt[i][0],o=Qt[i][1];break;case 1:r=te[i][0],o=te[i][1]}return 1===n?(s.x=t+r,s.y=e+o):(s.x=t+n*r,s.y=e+n*o),s}function Jt(t,e,i,n){void 0===n?n={}:!0===n&&(n=re);var s=t.x+e,r=t.y+i;return n.x=s,n.y=r,n}function Ht(t){return Yt(t,0,this.directions)}function Kt(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=W(I(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=0this.tapOffset&&(this.state=tn,this.state=Qi);break;case tn:this.state=Qi}}},{key:"onDragEnd",value:function(){this.state===Qi&&(this.tapsCount++,this.emit("tapping",this,this.gameObject,this.lastPointer),void 0!==this.maxTaps&&this.tapsCount===this.maxTaps&&(this.state=tn))}},{key:"onDrag",value:function(){this.state!==$i&&this.pointer.getDistance()>this.dragThreshold&&(this.state=$i)}},{key:"preUpdate",value:function(t){if(this.state===Qi){var e=this.lastPointer;if(e.isDown)t-e.downTime>this.holdTime&&(this.state=$i);else t-e.upTime>this.tapInterval&&(void 0===this.minTaps||this.tapsCount>=this.minTaps?this.state=tn:this.state=$i)}}},{key:"postUpdate",value:function(){this.state===tn&&(this.state=$i)}},{key:"isTapped",get:function(){return this.state===tn}},{key:"setMaxHoldTime",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}}]),o}(),$i="IDLE",Qi="BEGIN",tn="RECOGNIZED",en=function(e){var i=this.board,t=i.worldXYToTileXY(e.worldX,e.worldY),n=t.x,s=t.y;if(i.contains(n,s)){i.emit("tiletap",e,t),i.emit("tile".concat(e.tapsCount,"tap"),e,t);Di(function(t){i.emit("gameobjecttap",e,t),i.emit("gameobject".concat(e.tapsCount,"tap"),e,t)},function(t){t.emit("board.tap",e),t.emit("board.".concat(e.tapsCount,"tap"),e)},i,n,s,e)}},nn=Phaser.Utils.Objects.GetValue,sn=function(){l(o,Ui);var r=d(o);function o(t,e){var i;p(this,o);var n=g(i=r.call(this,t,e)),s={states:{IDLE:{enter:function(){n.x=0,n.y=0,n.worldX=0,n.worldY=0},exit:function(){var t=n.lastPointer;n.x=t.x,n.y=t.y,n.worldX=t.worldX,n.worldY=t.worldY}},BEGIN:{enter:function(){n.start()},exit:function(){n.stop()}},RECOGNIZED:{enter:function(){n.emit("pressstart",n,n.gameObject,n.lastPointer)},exit:function(){n.emit("pressend",n,n.gameObject,n.lastPointer)}}},init:function(){this.state=rn},eventEmitter:!1};return i.setRecongizedStateObject(new Ji(s)),i}return u(o,[{key:"resetFromJSON",value:function(t){return f(c(o.prototype),"resetFromJSON",this).call(this,t),this.setDragThreshold(nn(t,"threshold",9)),this.setMinHoldTime(nn(t,"time",251)),this}},{key:"onDragStart",value:function(){this.state=on,0===this.holdTime&&(this.state=hn)}},{key:"onDragEnd",value:function(){this.state=rn}},{key:"onDrag",value:function(){this.state!==rn&&this.pointer.getDistance()>this.dragThreshold&&(this.state=rn)}},{key:"preUpdate",value:function(t){this.state===on&&t-this.pointer.downTime>=this.holdTime&&(this.state=hn)}},{key:"isPressed",get:function(){return this.state===hn}},{key:"setDragThreshold",value:function(t){return this.dragThreshold=t,this}},{key:"setMinHoldTime",value:function(t){return this.holdTime=t,this}}]),o}(),rn="IDLE",on="BEGIN",hn="RECOGNIZED",an=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),Di("gameobjectpressstart","board.pressstart",e,n,s,t))},un=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),Di("gameobjectpressend","board.pressend",e,n,s,t))},ln=Phaser.Math.Distance.Between,cn=Phaser.Math.Angle.Between,dn={getDt:function(){return this.scene.sys.game.loop.delta},getVelocity:function(){var t=this.pointer.position,e=this.pointer.prevPosition;return ln(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 cn(e.x,e.y,t.x,t.y)}},fn={"up&down":0,"left&right":1,"4dir":2,"8dir":3},vn={},yn=Phaser.Utils.Objects.GetValue,pn=Phaser.Math.RadToDeg,gn=function(){l(o,Ui);var r=d(o);function o(t,e){var i;p(this,o);var n=g(i=r.call(this,t,e)),s={states:{IDLE:{enter:function(){n.x=0,n.y=0,n.worldX=0,n.worldY=0},exit:function(){var t=n.lastPointer;n.x=t.x,n.y=t.y,n.worldX=t.worldX,n.worldY=t.worldY}},BEGIN:{enter:function(){n.validDrag=!1}},RECOGNIZED:{enter:function(){n.start(),n.updateDirectionStates(),n.emit("swipe",n,n.gameObject,n.lastPointer)},exit:function(){n.stop(),n.clearDirectionStates()}}},init:function(){this.state=bn},eventEmitter:!1};return i.setRecongizedStateObject(new Ji(s)),i.clearDirectionStates(),i}return u(o,[{key:"resetFromJSON",value:function(t){return f(c(o.prototype),"resetFromJSON",this).call(this,t),this.setDragThreshold(yn(t,"threshold",10)),this.setMinDragVelocity(yn(t,"velocityThreshold",1e3)),this.setDirectionMode(yn(t,"dir","8dir")),this}},{key:"onDragStart",value:function(){this.state=mn}},{key:"onDragEnd",value:function(){this.state=bn}},{key:"onDrag",value:function(){this.state===mn&&(this.validDrag||(this.validDrag=0===this.dragThreshold||this.pointer.getDistance()>=this.dragThreshold),this.validDrag&&this.dragVelocity>this.minDragVelocity&&(this.state=Tn))}},{key:"postUpdate",value:function(){this.state===Tn&&(this.state=bn)}},{key:"isSwiped",get:function(){return this.state===Tn}},{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:"setMinDragVelocity",value:function(t){return this.minDragVelocity=t,this}},{key:"setDirectionMode",value:function(t){return"string"==typeof t&&(t=fn[t]),this.dirMode=t,this}},{key:"updateDirectionStates",value:function(){return function(t,e,i){switch(void 0===i?i={}:!0===i&&(i=vn),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:90e.distance?i?-1:1:t.distance>1)-1,n=this.content[i];if(!(this.scoreFunction(e)s&&(s=i.x),i.yo&&(o=i.y);return e.minX=n,e.minY=r,e.maxX=s,e.maxY=o,e}.call(this,void 0,!0),n=-Math.floor(J(i.minX,i.maxX,t)),s=-Math.floor(J(i.minY,i.maxY,e));if(0!=n||0!=s){var r=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}.call(this,n,s);Br.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}},Jr=function(){function e(t){p(this,e),this.miniBoard=t,this.set(null)}return u(e,[{key:"set",value:function(t,e,i){t||(i=e=t=null),this.mainBoard=t,this.tileX=e,this.tileY=i}}]),e}(),Hr=function(){l(h,Sr);var o=d(h);function h(t,e,i,n){var s;p(this,h);var r={isBoard:!((s=o.call(this,t,e,i,0,0)).type="rexMiniBoard"),grid:T(n,"grid",void 0),inifinity:!0,wrap:!1};return s.board=new Oi(t,r),s.mainBoardRef=new Jr,s.lastMainBoardRef=new Jr,s.putTestCallback=void 0,s.putTestCallbackScpe=void 0,s.resetFromJSON(n),s.boot(),s}return u(h,[{key:"resetFromJSON",value:function(t){this.setFace(T(t,"face",0));var e=T(t,"draggable",void 0);return void 0!==e&&this.setDraggable(e),this.lastTransferResult=T(t,"lastTransferResult",void 0),this}},{key:"boot",value:function(){this.scene.events.once("shutdown",this.destroy,this)}},{key:"shutdown",value:function(){return this.clear(!0),this.board.shutdown(),f(c(h.prototype),"shutdown",this).call(this),this.scene=void 0,this.board=void 0,this.setPutTestCallback(void 0,void 0),this}},{key:"destroy",value:function(){return this.emit("destroy"),this.shutdown(),this}},{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}}]),h}();Object.assign(Hr.prototype,Gr),y.register("miniBoard",function(t,e,i){var n=new Hr(this.scene,t,e,i);return this.scene.add.existing(n),n}),Xn(window,"RexPlugins.Board.MiniBoard",Hr);function Kr(t,e,i){switch(v(t)){case"number":return"#".concat(Qr(Math.floor(t).toString(16),6,"0",1));case"function":return t(e,i);default:return t}}function qr(t,e,i,n,s,r){void 0===r&&(r="miter"),function(t,e,i,n,s,r,o){void 0===n&&void 0===s&&(n=16777215),void 0===s?r=0:void 0===r&&(r=2);for(var h=1/0,a=1/0,u=-1/0,l=-1/0,c=0,d=i.length;clistener!==listenerToRemove;this._events[opcode]=this._events[opcode].filter(filterListeners);}} removeListenerByOpcode(opcode){if(this._events[opcode]){delete this._events[opcode];}} removeListeners(opcodeArray){if(opcodeArray===undefined||opcodeArray.length<=0) return;for(let i=0;i{if(typeof callback==="function") callback(this,data);};this._events[opcode].forEach(fireCallbacks);} else{if(this.debug) console.log("Packet with no listener: "+opcode,data);}} message(e){var ul,i;var data=JSON.parse(e.data);if(_net.debug) console.log('RECV',data);switch(data.opcode){case 0:_net.hash=data.hash;break;case 1:_net.hash='newSession';break;} _net.emit(data.opcode,data);};}const SCENE_LOGIN=2;const SCENE_CHARSELECT=3;const SCENE_GAME=4;class DataStore{constructor(){this.debug=false;this.initData();this.initNetworking();} initData(){this.data={waiting:false,current_scene:SCENE_LOGIN,account:{login:'',character_list:[],slots:0,total_chars:0,},character:{objid:0,level:1,exp:0.0000,mr:0,sp:0,ac:0,align:0,weight:0,bhp:0,loc_x:33071,loc_y:33411,heading:5,status:ACTION_Idle,},inventory:{count:"0",current_tab:0,items:[],},world:{game_time:'00:22',map_id:0,},map_info:{id:0,zone_type:0,is_underwater:0,location_name:'',start_x:0,start_y:0,end_x:0,end_y:0,},timer:'0',ticker:new AdjustingInterval(function(){},1000),knownObjects:{},knownMapObjects:{},};} initNetworking(){let _this=this;_net.on(S_LOGOUT,(net,data)=>{window.location.reload(true);});_net.on(S_LOGIN,(net,data)=>{_this.alertifyResponse(data,'0');});_net.on(S_CHARACTER_LOGIN_AMOUNT,(net,data)=>{_this.setValue('account.total_chars',data.msg_0);_this.setValue('account.slots',data.msg_0);});_net.on(S_CHARACTER_LOGIN_INFO,(net,data)=>{_this.getValue('account.character_list').push({'objid':data.msg_0,'char_name':data.msg_1,'Clanname':data.msg_2,'type':data.msg_3,'sex':data.msg_4,'lawful':data.msg_5,'hp':data.msg_6,'mp':data.msg_7,'ac':data.msg_8,'level':data.msg_9,'str':data.msg_10,'dex':data.msg_11,'con':data.msg_12,'wis':data.msg_13,'cha':data.msg_14,'intel':data.msg_15,'birthday':data.msg_17,'code':data.msg_18,});_this.getScene(SCENE_LOGIN).triggerCharacterAdded();});_net.on(S_ENTER_WORLD,(net,data)=>{_this.getScene(_this.current()).scene.switch('GameScene');_store.setValue('current_scene',SCENE_GAME);});_net.on(S_INVENTORY_ITEM,(net,data)=>{let count=_this.getValue('inventory.items').push({"item_objid":data.msg_0,"item_id":data.msg_1,"slot":_this.current_slot,"qty":data.msg_2,"name":data.msg_3,"invgfx":data.msg_4,"is_equipped":data.msg_5,"item_type_id":data.msg_6,"item_type2_id":data.msg_7,"enchant_level":data.msg_8,"level":data.msg_9,"desc_id":data.msg_10,"use_type":data.msg_11,"charge_count":data.msg_12,"bless":data.msg_13,"item_status_bless":data.msg_14,"tradeable_type":data.msg_15,"item_tab":getItemTab(data.msg_7),"stackable":data.msg_16,"expire_time":data.msg_17,});_this.setValue('inventory.count',count);_this.getScene(SCENE_GAME).triggerAddItem(_this.getValue('inventory.items')[count-1]);_this.getScene(SCENE_GAME).triggerUpdateCurrency();});_net.on(S_INVENTORY_DELETE,(net,data)=>{let items=_this.getValue('inventory.items');let itemId=0;for(let i=0;i{let items=_this.getValue('inventory.items');let item=null;for(let i=0;i{let items=_this.getValue('inventory.items');for(let i=0;i{});_net.on(S_SYSTEM_MESSAGE,(net,data)=>{_this.getScene(SCENE_GAME).triggerSystemMessage(data.msg_0);});_net.on(S_TIMER,(net,data)=>{_this.setValue('timer',parseInt(data.msg_1));_this.getScene(SCENE_GAME).triggerGameTimer(data.msg_0,data.msg_1);});_net.on(S_CHAT,(net,data)=>{if(data.msg_2=="1") _this.getScene(SCENE_GAME).triggerWhisper(data.msg_1,data.msg_5,data.msg_3);else _this.getScene(SCENE_GAME).triggerChat(data.msg_1,data.msg_2,data.msg_3);});_net.on(S_OWN_CHAR_STATUS,(net,data)=>{let character={objid:data.msg_0,name:data.msg_1,level:data.msg_2,exp:0,next_level:0,exp_percent:0,strength:data.msg_6,intelligence:data.msg_7,wisdom:data.msg_8,dexterity:data.msg_9,constitution:data.msg_10,charisma:data.msg_11,current_hp:data.msg_12,max_hp:data.msg_13,current_mp:data.msg_14,max_mp:data.msg_15,current_cp:data.msg_16,max_cp:data.msg_17,ac:data.msg_18,alignment:data.msg_19,weight:data.msg_20,mr:data.msg_21,sp:data.msg_22,fire:data.msg_23,water:data.msg_24,wind:data.msg_25,earth:data.msg_26,loc_x:parseInt(data.msg_29),loc_y:parseInt(data.msg_30),heading:data.msg_31,class_id:data.msg_32,poly_id:data.msg_33,};let world={heading:data.msg_31,game_time:data.msg_27,map_id:data.msg_28,};character.exp=data.msg_3-data.msg_4;character.next_level=data.msg_5-data.msg_4;character.exp_percent=(parseInt(character.exp)*100 / parseInt(character.next_level)).toFixed(4);_this.mergeValues('character',character);_this.mergeValues('world',world);_this.getScene(SCENE_GAME).triggerUpdateStats();_this.getScene(SCENE_GAME).triggerHpBarUpdate();_this.getScene(SCENE_GAME).triggerUpdateGameTime();_this.getScene(SCENE_GAME).triggerCoordUpdate(data.msg_29,data.msg_30);_this.getScene(SCENE_GAME).triggerWorldCharacter(character);});_net.on(S_MAP_ID,(net,data)=>{let map_info={id:data.msg_0,zone_type:data.msg_4,is_underwater:data.msg_1,location_name:data.msg_5,start_x:data.msg_6,start_y:data.msg_7,end_x:data.msg_8,end_y:data.msg_9,player_x:data.msg_2,player_y:data.msg_3,};let world={zone_type:data.msg_4,map_id:data.msg_0,is_underwater:data.msg_1,};_this.setValue('character.loc_x',parseInt(data.msg_2));_this.setValue('character.loc_y',parseInt(data.msg_3));_this.mergeValues('world',world);_this.mergeValues('map_info',map_info);_this.getScene(SCENE_GAME).triggerMapID(map_info);_this.getScene(SCENE_GAME).triggerCoordUpdate(data.msg_2,data.msg_3);});_net.on(S_VISUAL_OBJECT_ADD,(net,data)=>{_this.getValue('knownObjects')[data.msg_2]={objid:data.msg_2,sprid:data.msg_3,name:data.msg_4,x:data.msg_0,y:data.msg_1,objType:data.msg_5,count:data.msg_6,};_this.setValue('knownMapObjects.'+data.msg_0+','+data.msg_1,data.msg_2);_this.getScene(SCENE_GAME).updateDebugPanel();});_net.on(S_VISUAL_OBJECT_REMOVE,(net,data)=>{let object=_this.getValue('knownObjects');let mapobjects=_this.getValue('knownMapObjects');if(object[data.msg_0]!==undefined){delete mapobjects[object[data.msg_0].x+','+object[data.msg_0].y];delete object[data.msg_0];} _this.getScene(SCENE_GAME).world.config.map_data.updateMapTiles();_this.getScene(SCENE_GAME).updateDebugPanel();});_net.on(S_TELEPORT,(net,data)=>{_this.setValue('knownObjects',{});_this.setValue('knownMapObjects',{});_this.getScene(SCENE_GAME).filterDebugMenu();});_net.on(S_HPBAR,(net,data)=>{_this.setValue('character.current_hp',data.msg_0);_this.setValue('character.max_hp',data.msg_1);_this.getScene(SCENE_GAME).triggerHpBarUpdate();});_net.on(S_MPBAR,(net,data)=>{_this.setValue('character.current_mp',data.msg_0);_this.setValue('character.max_mp',data.msg_1);_this.getScene(SCENE_GAME).triggerHpBarUpdate();});_net.on(S_GAME_TIME,(net,data)=>{_this.setValue('world.game_time',data.msg_0);_this.getScene(SCENE_GAME).triggerUpdateGameTime();});_net.on(S_DO_ACTION_GFX,(net,data)=>{if(data.msg_0==_this.getValue('character.objid')){switch(data.msg_1){case ACTION_Die:_this.triggerSystemMessage("YOU HAVE DIED (oh no!)");break;} _this.setValue('character.status',data.msg_1);} else{let object=_this.getValue('knownObjects')[data.msg_0];if(object!==undefined&&object!=null){object.status=data.msg_1;} else{if(_this.debug) console.log("Cannot Set Status for Unknown Object: "+data.msg_0);}}});_net.on(S_NPC_TALK_RETURN,(net,data)=>{_this.getScene(SCENE_GAME).triggerNpcLink(data);});_net.on(S_SHOP_SELL_LIST,(net,data)=>{_this.getScene(SCENE_GAME).shopSellListResponse(data);});_net.on(S_MINIGAME,(net,data)=>{if(data.msg_1==1) _this.getScene(SCENE_GAME).initMiniGamePrizeList(data);else if(data.msg_1==2) setTimeout(function(){_this.getScene(SCENE_GAME).miniGameResult(data)},1000);else if(data.msg_1==3) _this.getScene(SCENE_GAME).miniGameError(data.msg_2)});_net.on(S_MOVECHAR,(net,data)=>{if(data.msg_0==_this.getValue('character.objid')){_this.setValue('character.loc_x',parseInt(data.msg_1));_this.setValue('character.loc_y',parseInt(data.msg_2));_this.setValue('character.heading',parseInt(data.msg_3));_this.getScene(SCENE_GAME).triggerCoordUpdate(data.msg_1,data.msg_2);_this.getScene(SCENE_GAME).world.config.map_data.parseMapData();} else{let object=_this.getValue('knownObjects')[data.msg_0];let mapobjects=_this.getValue('knownMapObjects');if(object==undefined) return;let old_x=object.x;let old_y=object.y;delete mapobjects[old_x+','+old_y];_this.setValue('knownObjects.'+data.msg_0+'.x',parseInt(data.msg_1));_this.setValue('knownObjects.'+data.msg_0+'.y',parseInt(data.msg_2));_this.setValue('knownObjects.'+data.msg_0+'.heading',parseInt(data.msg_3));_this.setValue('knownMapObjects.'+data.msg_1+','+data.msg_2,data.msg_0);if(_this.getScene(SCENE_GAME).world!=undefined) _this.getScene(SCENE_GAME).world.config.map_data.moveObject(old_x,old_y,parseInt(data.msg_1),parseInt(data.msg_2));}});} alertifyResponse(data,msg_num){var split=data['msg_'+msg_num].split(",");if(split[0]=='OK'){alertify.success(split[1]);} else{alertify.error(split[1]);this.data.waiting=false;}} setValue(path,value){setValue(this.data,path,value);} mergeValues(path,values){let data=this.getValue(path);this.setValue(path,Object.assign(data,values));} getValue(path){return getValue(this.data,path);} checkStatus(){if(this.debug) console.log("Status of DataStore.data",this.data);} isWaiting(){if(this.data.waiting) return true;else return false;} setWaiting(value){this.data.waiting=value;} current(){return this.data.current_scene;} getScene(sceneId){return game.scene.scenes[sceneId];}} function setValue(obj,path,value){var a=path.split('.');var o=obj;while(a.length-1){var n=a.shift();if(!(n in o)) o[n]={};o=o[n];} o[a[0]]=value;} function getValue(obj,path){path=path.replace(/\[(\w+)\]/g,'.$1');path=path.replace(/^\./,'');var a=path.split('.');var o=obj;while(a.length){var n=a.shift();if(!(n in o)) return;o=o[n];} return o;} const eventsCenter=new Phaser.Events.EventEmitter() function preloadSprite(scene,sprite_id){if(scene.textures.exists('sprite_'+sprite_id)) return;scene.load.path=base_url+'/sprites/';scene.load.multiatlas('sprite_'+sprite_id,sprite_id+'.json');scene.load.start();} function loadSprite(scene,sprite_id,sprite,action=3,heading=5){if(scene.textures.exists('sprite_'+sprite_id)) return;scene.load.path=base_url+'/sprites/';scene.load.multiatlas('sprite_'+sprite_id,sprite_id+'.json');scene.load.once(Phaser.Loader.Events.COMPLETE,()=>{sprite.setTexture('sprite_'+sprite_id,action+'/'+heading+'/0.png');scene.anims.create({key:'punch_4',frames:generateSpriteFrames(scene,'sprite_'+sprite_id,action+'/'+heading+'/'),frameRate:10,repeat:-1});scene.world.sprites.player.anims.play('punch_4');});scene.load.start();} function generateSpriteFrames(scene,atlas_key,prefix=''){var texture=scene.anims.textureManager.get(atlas_key);var frames=texture.getFrameNames();var out=[];frames.sort();if(prefix==''){for(i=0;i{_this.updateSprite();});this.scene.load.start();} updateSprite(_this=this){_this.setTexture('sprite_'+_this.sprite_id,_this.action+'/'+_this.heading+'/0.png');_this.generateActionAnimations();_this.playAction(ACTION_IDLE);} generateActionAnimations(){var texture=this.scene.anims.textureManager.get('sprite_'+this.sprite_id);var frames=texture.getFrameNames();frames.sort(naturalSort);let action_id=-1;let heading_id=-1;let frameset=[];let pushed=false;let repeat=0;for(let i=0;i<=frames.length;i++){let f_key='ani_'+action_id+'_'+heading_id;if(i>=frames.length){this.generateAnimation(f_key,frameset,repeat);break;} let frame_info=frames[i].split('/');if(action_id==3) repeat=-1;else repeat=0;if(frame_info[0]!=action_id){if(action_id>=0){this.generateAnimation(f_key,frameset,repeat);pushed=true;} action_id=frame_info[0];heading_id=frame_info[1];frameset=[];} if(!pushed&&heading_id!=frame_info[1]){if(heading_id>=0){this.generateAnimation(f_key,frameset,repeat);pushed=true;} action_id=frame_info[0];heading_id=frame_info[1];frameset=[];} frameset.push({key:'sprite_'+this.sprite_id,frame:frames[i]});pushed=false;}} generateAnimation(key,frameset,repeat){let frameset_r=[];this.anims.create({key:key,frames:[...frameset,...frameset_r],frameRate:10,repeat:repeat});} playAction(action_id){this.anims.play('ani_'+action_id+'_'+this.heading);} setHeading(heading_id){this.heading=heading_id;this.playAction(ACTION_IDLE);} animComplete(animation){if(animation.key!==('ani_'+ACTION_IDLE+'_'+this.heading)){this.playAction(ACTION_IDLE);}}} class L1Player extends L1GameObject{constructor(scene){super(scene);}} const TILE_WIDTH=96;const TILE_HEIGHT=46;const TILE_WALL_HEIGHT=98;const TILE_FLOOR_WIDTH=103;const TILE_FLOOR_HEIGHT=53;const SCREEN_TILES_WIDTH=50;const SCREEN_TILES_HEIGHT=50;const GRID_X=975;const GRID_Y=-560;const TILE_WALL=0;const TILE_GROUND=1;const TILE_PLAYER=2;const TILE_MONSTER=3;const TILE_OTHERPLAYER=4;const TILE_ITEM=5;const TILE_NPC=6;const TILE_COLORS=["0x000000","0xa7896e","0x007ac1","0xf32617","0x22be35","0xf1d51a","0x00ff3c",];const TILE_BORDERS=["0x000000","0x000000","0x000000","0x000000","0x000000","0x000000","0x000000",];const TILE_WALLS=[0,1,4,5,8,9,12,13,16,17,20,21,24,25,32,33,36,37,40,41,44,45,48,49,52,53,56,57,60,61,64,65,68,69,72,73];class GameMap extends RexPlugins.Board.Board{constructor(scene){super(scene,{grid:scene.rexBoard.add.quadGrid({x:GRID_X,y:GRID_Y,cellWidth:TILE_WIDTH,cellHeight:TILE_HEIGHT,type:1,dir:8}),width:SCREEN_TILES_WIDTH,height:SCREEN_TILES_HEIGHT,});this.scene=scene;this.map_id=-1;this.map_data=[];this.tile_objects=[];this.start_x=1;this.start_y=1;var gridGraphics=scene.add.graphics({lineStyle:{width:1,color:0x007ac1,alpha:1}});this.forEachTileXY(function(tileXY,board){var points=board.getGridPoints(tileXY.x,tileXY.y,true);gridGraphics.strokePoints(points,true);});scene.add.renderTexture(0,0,1920,1080).draw(gridGraphics).setDepth(-1);gridGraphics.destroy();this.pathGraphics=scene.add.graphics({lineStyle:{width:1,color:0x67daff,alpha:1}});this.pathTexture=scene.add.renderTexture(0,0,1920,1080).setDepth(2);this.pathFinder=scene.rexBoard.add.pathFinder({occupiedTest:true,pathMode:'A*',});this.setInteractive();this.on('gameobjectover',function(pointer,gameObject){if(gameObject==undefined) return;if(this.scene.isInPanel()) return;gameObject.hoverIn();});this.on('gameobjectout',function(pointer,gameObject){if(gameObject==undefined) return;gameObject.hoverOut();});this.on('tileover',function(pointer,tileXY){});this.on('tileout',function(pointer,tileXY){});this.on('gameobjectdown',function(pointer,gameObject){if(gameObject==undefined) return;if(this.scene.isInPanel()) return;gameObject.clickDown();});this.on('tilemove',function(pointer,tileXY){});this.mdata=new MapData(this.scene,9,32760,32768);} clearPath(){this.pathTexture.clear();return this;} drawPath(tileXYArray){this.pathGraphics.strokePoints(this.tileXYArrayToWorldXYArray(tileXYArray));this.pathTexture.clear().draw(this.pathGraphics);this.pathGraphics.clear();return this;} getPath(chess,endTileXY,out){return this.pathFinder.setChess(chess).findPath(endTileXY,undefined,false,out);} setMapId(map_id){if(map_id==this.map_id) return;this.map_id=map_id;this.loadMapData();return this;} setStartCoords(x,y){console.log("Set Start Coors: "+x+","+y);this.start_x=parseInt(x);this.start_y=parseInt(y);return this;} clearBoard(){this.removeAllChess(true);} loadMapData(){let _this=this;console.log("loadMapData: "+this.map_id);if(this.map_id<0) return;if(this.scene.cache.text.exists('map_'+this.map_id)){this.parseMapData();return;} this.scene.load.path=base_url+'/maps/';this.scene.load.text('map_'+this.map_id,this.map_id+'.txt');this.scene.load.once(Phaser.Loader.Events.COMPLETE,()=>{console.log('Loaded MapData for mapid: '+this.map_id);_this.parseMapData();});this.scene.load.start();} parseMapData(){console.log("parseMapData");let data=this.scene.cache.text.get('map_'+this.map_id);if(data==undefined||data=='') return;this.map_data=[];let char=_store.getValue('character');let charX=char.loc_x-this.start_x;let charY=char.loc_y-this.start_y;this.screenX=charX-(SCREEN_TILES_WIDTH*0.5);this.screenY=charY-(SCREEN_TILES_HEIGHT*0.5);this.screenEndX=charX+(SCREEN_TILES_WIDTH*0.5);this.screenEndY=charY+(SCREEN_TILES_HEIGHT*0.5);let rows=data.split('\r\n');for(let i=this.screenY;i{_this.updateTileImage();console.log("Tile Finished: ",tileId);});this.scene.load.start();}}class MapData{constructor(scene,mapId,startX,startY){this.scene=scene;this.mapId=mapId;this.startX=startX;this.startY=startY;this.key="mapdata_"+this.mapId+"_"+this.startX+"_"+this.startY;this.mapdata={};this.loadJsonData();} loadJsonData(){if(this.scene.cache.json.exists(this.key)){if(this.error)return;console.log("MapData Already Loaded...",this.key);this.mapDataLoaded();return;} this.scene.load.path=base_url+'/mapdata/';this.scene.load.json(this.key,this.mapId+"/"+this.startX+"_"+this.startY+".json");this.scene.load.once(Phaser.Loader.Events.FILE_LOAD_ERROR,(file)=>{console.log("Error loading file",this.key,file);});this.scene.load.once(Phaser.Loader.Events.COMPLETE,()=>{console.log("Loaded MapData:",this.key);this.mapDataLoaded();});this.scene.load.start();} mapDataLoaded(){console.log("MapData Loaded...",this.key);this.mapdata=this.scene.cache.json.get(this.key);} getMapData(){return this.mapdata;} getTileForCoords(layer,x,y){if(layer==0){let index=y*64+x;return this.mapdata.tiles[0];}}} class MapLayer{constructor(scene,map,layerId){}} var active_editor=null;const home_url='https://www.l15server.com';const base_url='https://my.l15.org';const script_path='../js/';const image_path='/images/';const sprite_path='/sprites/';const api_url='https://my.l15.org/api.php';const icon_url='https://my.l15.org/images/invhd/';const socket_url='wss://my.l15.org:2011';const LOGIN_SLOT_MAX=8;const COLOR_ZONE_SAFETY='#64e5fe';const COLOR_ZONE_NORMAL='#ffffff';const COLOR_ZONE_COMBAT='#ff0000';const VERSION='v2.1.3';function createItems(count){var data=[];for(var i=0;ithat.interval){if(errorFunc)errorFunc();} if(typeof that.workFunc()==='function'){that.workFunc();} expected+=that.interval;timeout=setTimeout(step,Math.max(0,that.interval-drift));}} var bootState={key:'boot',preload:function(){console.log("Boot Started");this.load.setBaseURL(base_url);this.load.setPath(image_path);this.load.image('logo','logo.png');},create:function(){this.scene.switch('preload');}};var race_btns=[{id:0,id_m:0,id_f:1,varname:"prince",imgname:"Prince",spinename:"Prince"},{id:1,id_m:61,id_f:48,varname:"knight",imgname:"Knight",spinename:"Knight"},{id:2,id_m:138,id_f:37,varname:"elf",imgname:"Elf",spinename:"Elf"},{id:3,id_m:734,id_f:1186,varname:"wizard",imgname:"Wizard",spinename:"Wizard"},{id:4,id_m:2786,id_f:2796,varname:"darkelf",imgname:"Darkelf",spinename:"DarkElf"},{id:5,id_m:6658,id_f:6661,varname:"dknight",imgname:"DKnight",spinename:"Dknight"},{id:6,id_m:6671,id_f:6650,varname:"illusionist",imgname:"Illusionist",spinename:"Illusionist"},{id:7,id_m:12490,id_f:12494,varname:"warrior",imgname:"Warrior",spinename:"Warrior"},{id:8,id_m:18520,id_f:18499,varname:"fencer",imgname:"Fencer",spinename:"Fencer"},];var preloadState={key:'preload',preload:function(){var _this=this;var logo=this.add.image(0,0,'logo');centerMiddleObject(logo,Phaser,this);this.load.on('progress',function(value){logo.setRotation(Phaser.Math.DEG_TO_RAD*(value*360));});var url;url=script_path+'lib/rexinputtextplugin.min.js';this.load.plugin('rexinputtextplugin',url,true);this.load.setBaseURL(base_url);this.load.setPath(image_path);this.load.image("blank","blank.png");this.load.image("btn1_default","/ui/btn1_default.png");this.load.image("btn1_hover","/ui/btn1_hover.png");this.load.image("btn1_disabled","/ui/btn1_disabled.png");this.load.image("btn1_click","/ui/btn1_click.png");this.load.image("login_background","login_background.jpg");this.load.image('on','toggle-on.png');this.load.image('off','toggle-off.png');this.load.setPath(image_path+'/char_select/');this.load.image("cs_bg_base","bg_base.jpg");this.load.image("cs_bg_foreground","bg_foreground.png");this.load.image("cs_charactericon","Login_Ico_Character.png");this.load.setPath(image_path+'/ui/buttons/');this.load.image("ui_bigbtn_default","Login_Bt_Big_00_N.png");this.load.image("ui_bigbtn_disabled","Login_Bt_Big_00_D.png");this.load.image("ui_bigbtn_clicked","Login_Bt_Big_00_C.png");this.load.image("ui_bigbtn_hover","Login_Bt_Big_00_O.png");this.load.setPath(image_path+'/temp/');this.load.image("icon","Item_Detail_Sample_00.png");this.load.setPath(image_path+'/char_select/slots/');for(let i=0;i=_store.getValue('account.total_chars')){_store.setWaiting(false);this.login.input.username.text='';this.login.input.password.text='';this.scene.switch('CharSelectScene');_store.setValue('current_scene',SCENE_CHARSELECT);} _store.checkStatus();}}var char_animations=[];var selected_slot=-1;var selected_char=null;var selected_cinfo=null;class CharSelectScene extends Phaser.Scene{constructor(){super({key:'CharSelectScene',pack:{files:[{type:'scenePlugin',key:'SpinePlugin',url:script_path+'lib/SpinePlugin.min.js',sceneKey:'spine'}]}});} create(){var _this=this;_this.opcodes=[];console.log("CharSelect Window Started");this.character_select={static:{background:this.add.image(0,0,'cs_bg_base'),foreground:this.add.image(0,0,'cs_bg_foreground'),title_icon:this.add.image(50,50,'cs_charactericon'),title_text:this.add.text(75,37,"Character Select",{font:'18px Arial',fill:'#e2420f'}),title_subtext:this.add.text(75,55,"Choose which character to login with.",{font:'14px Arial',fill:'#ffffff'}),},containers:{spine:this.add.spineContainer(),buttons:this.add.container(480,830),},spines:{characters:[],},buttons:{characters:[],enter:new NNButton(this,960,1020,"Enter World","ui_bigbtn_default").setTextures("ui_bigbtn_default","ui_bigbtn_hover","ui_bigbtn_hover","ui_bigbtn_disabled").setCallback('click',function(){_this.enterWorld();}),back:new NNButton(this,1680,1030,"Back","ui_bigbtn_default").setTextures("ui_bigbtn_default","ui_bigbtn_hover","ui_bigbtn_hover","ui_bigbtn_disabled").setScale(0.75).setCallback('click',function(){_net.send({'action':'logout','opcode':C_LOGOUT,});}),},};centerObject(this.character_select.static.background,Phaser,this);centerObject(this.character_select.static.foreground,Phaser,this);this.character_select.containers.spine.x=0;this.character_select.containers.spine.y=0;var char_list=_store.getValue('account.character_list');for(var i=0;i0||deltaX>0){if(table.t<1.0) table.t+=0.01;} else{if(table.t>0) table.t-=0.01;}} if(_this.checkBounds(htmlPanel,pointer)){if(deltaY>0||deltaX>0){if(htmlPanel.t<1.0) htmlPanel.t+=0.05;} else{if(htmlPanel.t>0) htmlPanel.t-=0.05;}} if(_this.checkBounds(shopPanel,pointer)){if(deltaY>0||deltaX>0){if(shopPanel.t<1.0) shopPanel.t+=0.05;} else{if(shopPanel.t>0) shopPanel.t-=0.05;}} if(_this.checkBounds(debugPanel,pointer)){if(deltaY>0||deltaX>0){if(debugPanel.t<1.0) debugPanel.t+=0.05;} else{if(debugPanel.t>0) debugPanel.t-=0.05;}} if(_this.checkBounds(chatArea,pointer)){if(deltaY>0||deltaX>0){if(chatArea.t<1.0) chatArea.t+=0.05;} else{if(chatArea.t>0) chatArea.t-=0.05;}} if(active_editor!=null) active_editor.close();});this.input.keyboard.on('keyup',function(event){switch(event.keyCode){case 17:_this.ctrlDown=false;break;}});this.input.keyboard.on('keydown',function(event){switch(event.keyCode){case 9:_this.toggleInventoryPanel();event.preventDefault();break;case 13:if(_this.mainui.chat.input.getData("focused")===true){_net.send({'opcode':C_CHAT,'chatType':0,'chatText':_this.mainui.chat.input.text,});_this.mainui.chat.input.text='';} else{_this.mainui.chat.input.setFocus();} break;case 27:if(_this.mainui.chat.input.getData("focused")===true) _this.mainui.chat.input.setBlur();break;case 36:if(_this.scale.isFullscreen){_this.scale.stopFullscreen();}else{_this.scale.startFullscreen();} break;case 35:_this.toggleMiniGamePanel();break;case 49:_this.world.sprites.player.playAction(ACTION_EMOTE_IDLE);break;case 50:_this.world.sprites.player.playAction(ACTION_EMOTE_CHALLENGE);break;case 51:_this.world.sprites.player.playAction(ACTION_EMOTE_WAVE);break;case 52:_this.world.sprites.player.playAction(ACTION_EMOTE_CHEER);break;case 38:_this.world.sprites.player.setHeading(HEADING_NORTH);break;case 40:_this.world.sprites.player.setHeading(HEADING_SOUTH);break;case 37:_this.world.sprites.player.setHeading(HEADING_WEST);break;case 39:_this.world.sprites.player.setHeading(HEADING_EAST);break;case 17:_this.ctrlDown=true;break;case 83:if(_this.ctrlDown){console.log("Ctrl + S Pressed");_this.toggleSoulForgePanel();} break;default:console.log("Keyboard KeyCode: "+event.keyCode);}});this.input.on('pointermove',function(event){if(_this.itemLabel!==undefined&&_this.itemLabel.visible&&_this.itemLabel.triggered==false){setTimeout(()=>{_this.hideInventoryLabel(_this);},3000);}});} checkBounds(table,pointer){if((pointer.x>(table.x-(table.width*0.5)+table.space.left))&&(pointer.x<(table.x+(table.width*0.5)-table.space.right))){if((pointer.y>(table.y-(table.height*0.5)+table.space.top))&&(pointer.y<(table.y+(table.height*0.5)-table.space.bottom))){return true;}} return false;} preloadInventory(){this.load.setPath(image_path+'/game/inventory/');this.load.image("inv_bg","Inventory_Bg_00_Classic.png");this.load.image("item_slot","Common_ItemSlot.png");this.load.image("weight_bg","Common_ProgressBg_Weight.png");this.load.image("weight_bar","Common_ProgressBar_Weight.png");this.load.image("inv_icon","Common_Ico_Inventory.png");this.load.image("inv_event","Inventory_Ico_Event.png");this.load.image("inv_quest","Inventory_Ico_Quest.png");this.load.image("inv_lock","Inventory_Ico_Lock.png");this.load.image("item_equip","Common_ItemEquip.png");this.load.image("item_normal","Common_ItemNormal.png");this.load.image("item_select","Common_ItemSelects.png");this.load.image("inv_trash_default","Inventory_IcoBt_Trash_N.png");this.load.image("inv_trash_hover","Inventory_IcoBt_Trash_O.png");this.load.image("inv_trash_selected","Inventory_IcoBt_Trash_F.png");this.load.image("inv_trash_clicked","Inventory_IcoBt_Trash_C.png");this.load.image("inv_trash_disabled","Inventory_IcoBt_Trash_D.png");this.load.image("inv_lock_default","Inventory_IcoBt_Lock_N.png");this.load.image("inv_lock_hover","Inventory_IcoBt_Lock_O.png");this.load.image("inv_lock_clicked","Inventory_IcoBt_Lock_C.png");this.load.image("inv_lock_disabled","Inventory_IcoBt_Lock_D.png");this.load.image("inv_doll_default","Inventory_IcoBt_Doll_N.png");this.load.image("inv_doll_hover","Inventory_IcoBt_Doll_O.png");this.load.image("inv_doll_clicked","Inventory_IcoBt_Doll_C.png");this.load.image("inv_doll_disabled","Inventory_IcoBt_Doll_D.png");this.load.image("inv_codex_default","Inventory_IcoBt_Cash_N.png");this.load.image("inv_codex_hover","Inventory_IcoBt_Cash_O.png");this.load.image("inv_codex_clicked","Inventory_IcoBt_Cash_C.png");this.load.image("inv_codex_disabled","Inventory_IcoBt_Cash_D.png");this.load.image("inv_drop_default","Inventory_IcoBt_Drop_N.png");this.load.image("inv_drop_hover","Inventory_IcoBt_Drop_O.png");this.load.image("inv_drop_selected","Inventory_IcoBt_Drop_F.png");this.load.image("inv_drop_clicked","Inventory_IcoBt_Drop_C.png");this.load.image("tooltip_bg","Common_Bg_Tooltip.png");} initInventory(){this.items_current=createItems(180);this.items_selected={};this.inventory_window='';this.updateOnItemId=[];this.createInventoryWindow();} createInventoryWindow(){var _this=this;var invBackground=_this.add.image(0,0,'inv_bg');var scroll_bg=_this.add.image(0,0,'scroll_bg');var scroll_handle=_this.add.image(0,0,'scroll_handle_normal').setScale(1,3);_this.itemLabel=_this.rexUI.add.label({background:_this.rexUI.add.ninePatch({x:0,y:0,key:'tooltip_bg',columns:[10,undefined,10],rows:[10,undefined,10],stretchMode:{edge:'repeat',internal:'scale',}}),text:_this.add.text(0,0,'Test',{font:'12px Arial',fill:'#ffffff'}),align:'center',space:{left:5,right:5,top:5,bottom:5,}}).setOrigin(0,0.5);_this.itemLabel.setVisible(false);var scrollMode=0;this.inventory_window=_this.rexUI.add.gridTable({x:1500,y:500,width:invBackground.width,height:invBackground.height,scrollMode:0,background:invBackground,table:{cellWidth:50,cellHeight:50,columns:5,mask:{padding:0,},reuseCellContainer:true,},slider:{track:scroll_bg,thumb:scroll_handle,},space:{left:50,right:40,top:157,bottom:105,table:0,header:0,footer:0,},createCellContainerCallback:function(cell,cellContainer){var scene=cell.scene,width=cell.width,height=cell.height,item=cell.item,index=cell.index;if(cellContainer===null){cellContainer=scene.rexUI.add.label({width:width,height:height,orientation:0,background:scene.add.image(0,0,'item_slot'),icon:scene.rexUI.add.overlapSizer(0,0,50,50).add(scene.add.image(0,0,'item_normal').setScale(0.35),{key:'base',align:'center',expand:false,}).add(scene.add.image(0,0,'item_normal'),{key:'overlay',align:'center',expand:false,}).add(scene.add.text(0,0,'',{font:'10px Arial',fill:'#ffffff'}).setStroke('#000',2),{key:'qty',align:'right-bottom',padding:{left:0,right:2,top:0,bottom:2},expand:false,}).layout(),align:'center',});cellContainer.getElement('icon').setInteractive({enabled:true,draggable:true}).on("pointerover",function(pointer,obj){var itemInstance=_this.items_current[this.index];_this.hoverInventoryItem(this,this.index);}).on("drag",function(pointer,obj){this.setDepth(99);this.x=pointer.x;this.y=pointer.y;this.stopClick=true;}).on("dragstart",function(pointer,obj){this.start={x:this.x,y:this.y,z:this.depth,scale:this.scale,alpha:this.alpha};this.alpha=0.5;}).on("dragend",function(pointer,obj){this.setDepth(this.start.z);this.x=this.start.x;this.y=this.start.y;this.scale=this.start.scale;this.alpha=this.start.alpha;}).on("drop",function(pointer,target){if(target==_this.trash_btn){console.log("Dropped on Trash");var itemInstance=_this.items_current[this.index];var objid=itemInstance.item_objid;var count=itemInstance.qty;if(itemInstance==undefined) return;_net.send({'opcode':C_DELETE_INVENTORY_ITEM,'numberOfItems':1,'objid':objid,'count':count,});} else if(target==_this.drop_btn){var itemInstance=_this.items_current[this.index];var objid=itemInstance.item_objid;var count=itemInstance.qty;if(itemInstance==undefined) return;let char=_store.getValue('character');_net.send({'opcode':C_DROP_ITEM,'numberOfItems':1,'x':parseInt(char.loc_x)+1,'y':parseInt(char.loc_y)+1,'objid':objid,'qty':count,});} else{console.log("Dropped on something else?");}}).on("pointerdown",function(pointer,obj){if(this.lastclick===undefined){this.lastclick=0;} let elapsed=_this.getTime()-this.lastclick;if(elapsed<350){this.lastclick=0;this.stopClick=true;_this.doubleClickItem(this,this.index);} else{this.lastclick=_this.getTime();var _obj=this;setTimeout(()=>{if(_obj.stopClick!==undefined&&_obj.stopClick==true){_obj.stopClick=false;} else{_this.singleClickItem(_obj,_obj.index);}},350);}}).setData('init',true);} if(_store.getValue('inventory.current_tab')>0&&item.item_tab!=_store.getValue('inventory.current_tab')){_this.loadIcon(cellContainer.getElement('icon').getElement('items').base,'blank');cellContainer.getElement('icon').index=index;cellContainer.getElement('icon').getElement('items').overlay.setTexture('item_normal');cellContainer.getElement('icon').getElement('items').qty.text='';} else{_this.loadIcon(cellContainer.getElement('icon').getElement('items').base,item.invgfx);cellContainer.getElement('icon').index=index;if(item.is_equipped==1) cellContainer.getElement('icon').getElement('items').overlay.setTexture('item_equip');else cellContainer.getElement('icon').getElement('items').overlay.setTexture('item_normal');if(item.qty>1){var qty=item.qty;if(item.qty>9999) qty=9999;cellContainer.getElement('icon').getElement('items').qty.text=qty;} else{cellContainer.getElement('icon').getElement('items').qty.text='';}} return cellContainer;},items:this.items_current,}).layout().setDraggable('background');var inv_x=this.inventory_window.x;var inv_y=this.inventory_window.y;var lock_btn=new NNButton(this,inv_x-127,inv_y+263,"","inv_lock_default").setTextures("inv_lock_default","inv_lock_hover","inv_lock_clicked","inv_lock_disabled").setCallback('click',function(){console.log("Lock Btn Clicked");});var doll_btn=new NNButton(this,inv_x-92,inv_y+263,"","inv_doll_default").setTextures("inv_doll_default","inv_doll_hover","inv_doll_clicked","inv_doll_disabled").setCallback('click',function(){console.log("Doll Btn Clicked");});var codex_btn=new NNButton(this,inv_x-57,inv_y+263,"","inv_codex_default").setTextures("inv_codex_default","inv_codex_hover","inv_codex_clicked","inv_codex_clicked").setCallback('click',function(){_this.loadHtmlFile('usecodex');});this.trash_btn=new NNButton(this,inv_x+127,inv_y+263,"","inv_trash_default").setTextures("inv_trash_default","inv_trash_hover","inv_trash_clicked","inv_trash_disabled").setCallback('click',function(){console.log("Delete Btn Clicked");}).setInteractive({dropZone:true});this.drop_btn=new NNButton(this,inv_x+80,inv_y+263,"","inv_drop_default").setTextures("inv_drop_default","inv_drop_hover","inv_drop_clicked","inv_drop_disabled").setCallback('click',function(){console.log("Drop Items Btn Clicked");}).setInteractive({dropZone:true});var close_btn=new NNButton(this,inv_x+127,inv_y-300,"","btn_close_default").setTextures("btn_close_default","btn_close_hover","btn_close_clicked","btn_close_disabled").setCallback('click',function(){_this.hideInventoryPanel();});this.inventory_tabs=[];this.inventory_tabs[0]=new NNButton(this,inv_x-106,inv_y-199,"All","btn_tab_active").setFontSize(12).setClickDepth(0).setCallback('click',function(){console.log("All Tab Clicked");_this.filterInventory(0);});this.inventory_tabs[1]=new NNButton(this,inv_x-31,inv_y-199,"Gear","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){console.log("Gear Tab Clicked");_this.filterInventory(1);});this.inventory_tabs[2]=new NNButton(this,inv_x+36,inv_y-199,"Quest","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){console.log("Quest Tab Clicked");_this.filterInventory(2);});this.inventory_tabs[3]=new NNButton(this,inv_x+107,inv_y-199,"Etc","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){console.log("Etc Tab Clicked");_this.filterInventory(3);});var weight_bg=this.add.image(inv_x-95,inv_y-271,'weight_bg');var weight_bar=this.add.image(inv_x-95,inv_y-271,'weight_bar');var inv_icon=this.add.image(inv_x-95,inv_y-271,'inv_icon');this.inventory_count=this.add.text(inv_x-60,inv_y-296,_store.getValue('inventory.count'),{font:'28px Arial',fill:'#ffffff'});var item_max=this.add.text(inv_x-10,inv_y-289," / 180",{font:'16px Arial',fill:'#735c4e'});var inventory_label=this.add.text(inv_x-56,inv_y-268,"Inventory",{font:'14px Arial',fill:'#f76401'});this.inventory_window.pin(lock_btn);this.inventory_window.pin(doll_btn);this.inventory_window.pin(codex_btn);this.inventory_window.pin(this.trash_btn);this.inventory_window.pin(this.drop_btn);this.inventory_window.pin(close_btn);for(let i=0;i{icon.setTexture(name);});this.load.start();}} addQtyUpdateOnItemId(itemId,funcName){this.updateOnItemId.push({'itemId':itemId,'funcName':funcName});} doubleClickItem(obj,index){var item=this.items_current[index];console.log("Double Clicked on "+item.name);_net.send({'opcode':C_ITEM_USE,'objid':item.item_objid,'targetObjid':0});} getCurrency(itemId){let items=_store.getValue('inventory.items');for(let i=0;i{_this.triggerAddItem(item);},1000);return;} this.preloadIcon(item.invgfx);if(this.inventory_count!==undefined) this.inventory_count.text=_store.getValue('inventory.count');for(let i=0;i{_this.triggerRemoveItem(itemId);},1000);return;} if(this.inventory_count!==undefined) this.inventory_count.text=_store.getValue('inventory.count');for(let i=0;i{_this.triggerUpdateItem(item);},1000);return;} this.filterInventory(_store.getValue('inventory.current_tab'));if(item==null) return;for(let i=0;i{_this.triggerUpdateEquipState(data);},1000);return;} this.filterInventory(_store.getValue('inventory.current_tab'));} preloadMainUI(){this.load.setPath(image_path+'/game/mainui/');this.load.image("main_dragon","ClassicHud_Bg_Dragon.png");this.load.image("main_hud","ClassicHud_Bg_Main.png");this.load.image("main_map","ClassicHud_Bg_Map.png");this.load.image("adena_btn","Talk_AdenaIcon.png");this.load.image("gc_btn","Talk_Berry.png");this.load.image("chat_expand_btn_normal","HudClassic_Btn_ChatHeight_N.png");this.load.image("chat_expand_btn_hover","HudClassic_Btn_ChatHeight_O.png");this.load.image("chat_expand_btn_click","HudClassic_Btn_ChatHeight_C.png");this.load.image("chat_view_bg","HudClassic_Img_ChatBg.png");this.load.image("alignment_lawful","HudClassic_Img_Lawful.png");this.load.image("alignment_chaotic","HudClassic_Img_Caotic.png");this.load.image("time_night","Hud_Ico_Moon.png");this.load.image("time_day","Hud_Ico_Sun.png");this.load.image("location_coords","Hud_Ico_Loc.png");this.load.image("btn_exp_click","HudClassic_Bt_ExpChange_C.png");this.load.image("btn_exp_normal","HudClassic_Bt_ExpChange_N.png");this.load.image("btn_exp_hover","HudClassic_Bt_ExpChange_O.png");this.load.image("btn_lvl_click","HudClassic_Bt_LevelChange_C.png");this.load.image("btn_lvl_normal","HudClassic_Bt_LevelChange_N.png");this.load.image("btn_lvl_hover","HudClassic_Bt_LevelChange_O.png");this.load.image("btn_chattype_click","HudClassic_Pdn_Bt_01_C.png");this.load.image("btn_chattype_disabled","HudClassic_Pdn_Bt_01_D.png");this.load.image("btn_chattype_normal","HudClassic_Pdn_Bt_01_N.png");this.load.image("btn_chattype_hover","HudClassic_Pdn_Bt_01_O.png");this.load.image("btn_minimenu_next_click","HudClassic_Bt_Next_00_C.png");this.load.image("btn_minimenu_next_disabled","HudClassic_Bt_Next_00_D.png");this.load.image("btn_minimenu_next_normal","HudClassic_Bt_Next_00_N.png");this.load.image("btn_minimenu_next_hover","HudClassic_Bt_Next_00_O.png");this.load.image("btn_minimenu_back_click","HudClassic_Bt_Previous_00_C.png");this.load.image("btn_minimenu_back_disabled","HudClassic_Bt_Previous_00_D.png");this.load.image("btn_minimenu_back_normal","HudClassic_Bt_Previous_00_N.png");this.load.image("btn_minimenu_back_hover","HudClassic_Bt_Previous_00_O.png");this.load.image("btn_minimenu_bg_click","HudClassic_Btn_MenuBg_C.png");this.load.image("btn_minimenu_bg_normal","HudClassic_Btn_MenuBg_N.png");this.load.image("btn_minimenu_bg_hover","HudClassic_Btn_MenuBg_O.png");this.load.image("btn_minimenu_icon_map","HudClassic_Img_Map.png");this.load.image("btn_minimenu_icon_character","HudClassic_Img_Character.png");this.load.image("btn_minimenu_icon_magic","HudClassic_Img_Magic.png");this.load.image("btn_minimenu_icon_inventory","HudClassic_Img_Inventory.png");this.load.image("btn_minimenu_icon_doll","HudClassic_Img_Doll.png");this.load.image("btn_minimenu_icon_clan","HudClassic_Img_Clan.png");this.load.image("btn_minimenu_icon_pss","HudClassic_Img_Pss.png");this.load.image("btn_minimenu_icon_crafting","HudClassic_Img_Create.png");this.load.image("btn_minimenu_icon_dungeon","HudClassic_Img_Dungeon.png");this.load.image("btn_minimenu_icon_actions","HudClassic_Img_Acton.png");this.load.image("btn_minimenu_icon_collection","HudClassic_Img_Collection.png");this.load.image("btn_minimenu_icon_ranking","HudClassic_Img_Rank.png");this.load.image("btn_minimenu_icon_appcenter","HudClassic_Img_Appcenter.png");this.load.image("btn_minimenu_icon_revenge","HudClassic_Img_PvP.png");this.load.image("btn_minimenu_icon_voice","HudClassic_Img_Voice.png");this.load.image("btn_minimenu_icon_options","HudClassic_Img_Option.png");this.load.image("btn_minimenu_icon_mail","HudClassic_Img_Mail.png");this.load.image("btn_minimenu_icon_quit","HudClassic_Img_Quit.png");this.load.image("btn_minimenu_icon_uichange","HudClassic_Img_UIChange.png");this.load.image("btn_minimenu_icon_nvidia","HudClassic_Img_Nvidia.png");this.load.image("hud_itemslot_bg","Hud_SlotBg_00.png");this.load.image("hud_hotkey_label_0","Hud_Tx_Function.png");this.load.image("hud_hotkey_label_1","Hud_Tx_Function_2.png");this.load.setPath(image_path+'/game/maps/mini/');this.load.image("minimap_mainlands","10101.png");this.load.setPath(image_path+'/game/maps/');this.load.image("minimap_mask","minimap_mask.png");this.load.setPath(image_path+'/game/common/');this.load.image("btn_plus_default","Common_Bt_Plus_00_N.png");this.load.image("btn_plus_hover","Common_Bt_Plus_00_O.png");this.load.image("btn_plus_click","Common_Bt_Plus_00_C.png");this.load.image("btn_plus_disabled","Common_Bt_Plus_00_D.png");this.load.image("btn_minus_default","Common_Bt_Minus_00_N.png");this.load.image("btn_minus_hover","Common_Bt_Minus_00_O.png");this.load.image("btn_minus_click","Common_Bt_Minus_00_C.png");this.load.image("btn_minus_disabled","Common_Bt_Minus_00_D.png");this.load.image("amount_bg","Common_Bg_Amount_00.png");this.load.image("dropmenu_default","Common_Pdn_Bg_00_N.png");this.load.image("dropmenu_click","Common_Pdn_Bg_00_C.png");this.load.image("dropmenu_disabled","Common_Pdn_Bg_00_D.png");this.load.image("btn_dropmenu_default","Common_Pdn_Bt_00_N.png");this.load.image("btn_dropmenu_hover","Common_Pdn_Bt_00_O.png");this.load.image("btn_dropmenu_click","Common_Pdn_Bt_00_C.png");this.load.image("btn_dropmenu_disabled","Common_Pdn_Bt_00_D.png");this.load.setPath(image_path+'/game/hpbar/');this.load.image("hpbar_orb_2line_off","HudClassic_Img_BarCenter_2Line.png");this.load.image("hpbar_orb_2line_on","HudClassic_Img_BarCenterPvp_2Line.png");this.load.image("hpbar_frame_2line","HudClassic_Img_BarFrame_2Line.png");this.load.image("hpbar_bg_2line","HudClassic_Img_Bar_Bg_2Line.png");this.load.image("hpbar_orb_1line_off","HudClassic_Img_BarCenter.png");this.load.image("hpbar_orb_1line_on","HudClassic_Img_BarCenterPvp.png");this.load.image("hpbar_frame_1line","HudClassic_Img_BarFrame.png");this.load.image("hpbar_bg_1line","HudClassic_Img_Bar_Bg.png");this.load.image("mp_guage","HudClassic_Img_MpBar.png");this.load.image("mp_guage_stop","HudClassic_Img_MpBar_Stop.png");this.load.image("hp_guage","HudClassic_Img_HpBar.png");this.load.image("hp_guage_stop","HudClassic_Img_HpBar_Stop.png");this.load.image("hp_guage_button_click","HudClassic_Btn_BarChange_C.png");this.load.image("hp_guage_button_normal","HudClassic_Btn_BarChange_N.png");this.load.image("hp_guage_button_hover","HudClassic_Btn_BarChange_O.png");} initMainUI(){var _this=this;this.add.image(50,50,'cs_charactericon');this.add.text(75,37,"Lineage 1.5",{font:'18px Arial',fill:'#e2420f'});var locIcon=this.add.image(302,916,'location_coords').setOrigin(0).setScale(0.8);let char=_store.getValue('character');let world=_store.getValue('world');this.mainui={images:{left_dragon:this.add.image(0,882,'main_dragon').setOrigin(0),hud_main:this.add.image(164,882,'main_hud').setOrigin(0),hud_minimap:this.add.image(1444,882,'main_map').setOrigin(0),right_dragon:this.add.image(1764,882,'main_dragon').setOrigin(0).setFlip(true,false),},config:{minimenu_start:0,minimenu_end:7,},values:{subtitle:_this.add.text(75,55,"Character: "+char.char_name,{font:'14px Arial',fill:'#ffffff'}),timeIcon:_this.add.image(190,913,'time_night').setOrigin(0).setScale(0.4),game_time:_this.add.text(217,918,world.game_time,{font:'12px Arial',fill:'#ffffff',align:'left',}).setOrigin(0),coords:_this.add.text(322,918,char.loc_x+","+char.loc_y,{font:'12px Arial',fill:'#f2e273',align:'left',}).setOrigin(0),level:_this.add.text(213,947,char.level,{font:'14px Arial',fill:'#ffffff',align:'left',}).setOrigin(0,0.5),exp:_this.add.text(392,947,+"9999%",{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),adena:_this.add.text(392,973,0,{font:'14px Arial',fill:'#ffc024',align:'right',}).setOrigin(1,0.5),giftcoins:_this.add.text(392,973,0,{font:'14px Arial',fill:'#ffc024',align:'right',}).setOrigin(1,0.5).setVisible(false),mr:_this.add.text(392,1001,char.mr+"%",{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),sp:_this.add.text(392,1028,char.sp,{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),bhp:_this.add.text(392,1055,char.bhp+"%",{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),ac:_this.add.text(282,1001,char.ac,{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),align:_this.add.text(282,1028,char.align,{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),weight:_this.add.text(282,1055,char.weight+"%",{font:'14px Arial',fill:'#ffffff',align:'right',}).setOrigin(1,0.5),game_timer:_this.add.text(1440,890,'12:34:56',{font:'18px Arial',fill:'#ffffff',align:'left',}).setOrigin(0,0.5),map_name:_this.add.text(1760,860,'[Map Loading]',{font:'14px Arial',fill:'#64e5fe',align:'right',}).setOrigin(1,0.5),zone_type:_this.add.text(1760,880,'[Normal Zone]',{font:'14px Arial',fill:'#64e5fe',align:'right',}).setOrigin(1,0.5),alignment:_this.add.image(196,1028,'alignment_lawful'),chatTypeName:_this.add.text(420,1053,'Normal',{font:'12px Arial',fill:'#ffffff',align:'left',}).setOrigin(0),},toggles:{currencies:new NNButton(_this,197,975,"","adena_btn").setCallback('click',function(){if(_this.mainui.toggles.currencies.btnstate===undefined||_this.mainui.toggles.currencies.btnstate==0){_this.mainui.toggles.currencies.setTextures("gc_btn","gc_btn","gc_btn","gc_btn");_this.mainui.toggles.currencies.btnstate=1;_this.mainui.values.giftcoins.setVisible(true);_this.mainui.values.adena.setVisible(false);} else{_this.mainui.toggles.currencies.setTextures("adena_btn","adena_btn","adena_btn","adena_btn");_this.mainui.toggles.currencies.btnstate=0;_this.mainui.values.giftcoins.setVisible(false);_this.mainui.values.adena.setVisible(true);}}),level_exp:new NNButton(_this,197,948,"","btn_lvl_normal").setTextures("btn_lvl_normal","btn_lvl_hover","btn_lvl_click","btn_lvl_normal").setClickDepth(0).setCallback('click',function(){if(_this.mainui.toggles.level_exp.btnstate===undefined||_this.mainui.toggles.level_exp.btnstate==0){_this.mainui.toggles.level_exp.setTextures("btn_exp_normal","btn_exp_hover","btn_exp_click","btn_exp_normal");_this.mainui.toggles.level_exp.btnstate=1;} else{_this.mainui.toggles.level_exp.setTextures("btn_lvl_normal","btn_lvl_hover","btn_lvl_click","btn_lvl_normal");_this.mainui.toggles.level_exp.btnstate=0;}}),chat_expand:new NNButton(_this,949,1059,"","chat_expand_btn_normal").setTextures("chat_expand_btn_normal","chat_expand_btn_hover","chat_expand_btn_click","chat_expand_btn_normal").setOrigin(0,0.5).setCallback('click',function(){console.log("Chat Expand Btn Toggled");}),chat_type_menu:new NNButton(_this,495,1050,"","btn_chattype_normal").setTextures("btn_chattype_normal","btn_chattype_hover","btn_chattype_click","btn_chattype_disabled").setOrigin(0).setScale(0.8).setClickDepth(0).setCallback('click',function(){console.log("Open Chat Type Menu");}),},buttons:{logout:new NNButton(this,1900,20,"Logout","btn1_default").setTextures("btn1_default","btn1_hover","btn1_hover","btn1_disabled").setOrigin(1,0).setCallback('click',function(){_net.send({'action':'logout','opcode':C_LOGOUT,});}),minimenu:{back:new NNButton(this,1222,1039,"","btn_minimenu_back_normal").setTextures("btn_minimenu_back_normal","btn_minimenu_back_hover","btn_minimenu_back_click","btn_minimenu_back_disabled").setOrigin(1,0).setCallback('click',function(){let list=_this.mainui.buttons.minimenu.menu;let start=_this.mainui.config.minimenu_start;let end=_this.mainui.config.minimenu_end;if(start<=0) return;for(let i=0;i=list.length) return;for(let i=0;i{_this.triggerHpBarUpdate();},1000);return;} let character=_store.getValue('character');this.mainui.hpbar.getElement('items').level_label.text=character.level;this.mainui.hpbar.getElement('items').hp_label.text=character.current_hp+'/'+character.max_hp;this.mainui.hpbar.getElement('items').mp_label.text=character.current_mp+'/'+character.max_mp;let scaleHp=character.current_hp*17.4 / character.max_hp;if(scaleHp>17.4) scaleHp=17.4;if(scaleHp<0) scaleHp==0;let scaleMp=character.current_mp*17.4 / character.max_mp;if(scaleMp>17.4) scaleMp=17.4;if(scaleMp<0) scaleMp==0;this.mainui.hpbar.getElement('items').hp_guage.setScale(scaleHp,1);this.mainui.hpbar.getElement('items').mp_guage.setScale(scaleMp,1);} triggerUpdateCurrency(){this.setUIValue("adena",this.getAdena());this.setUIValue("giftcoins",this.getGiftCoins());} addChatMessageByUser(user,message,color='#ffffff'){let _this=this;if(this.mainui===undefined||this.mainui.chat===undefined){setTimeout(()=>{_this.addChatMessageByUser(user,message,color);},1000);return;} this.mainui.chat.view.appendText('[color='+color+']'+user+' '+message+"[/color]\n").scrollToBottom();} addChatMessage(message){let _this=this;if(this.mainui===undefined||this.mainui.chat===undefined){setTimeout(()=>{_this.addChatMessage(message);},1000);return;} this.mainui.chat.view.appendText(message+"\n").scrollToBottom();} setUIValue(object,value){let _this=this;if(this.mainui===undefined||this.mainui.values===undefined){setTimeout(()=>{_this.setUIValue(object,value);},1000);return;} if(this.mainui.values[object]instanceof Phaser.GameObjects.Text){if(isNumeric(value)) value=numberWithCommas(value);this.mainui.values[object].text=value;} else if(this.mainui.values[object]instanceof Phaser.GameObjects.Image){this.mainui.values[object].setTexture(value);} else{console.log("Not Text");}} getUIValue(object){if(this.mainui.values[object]instanceof Phaser.GameObjects.Text){return this.mainui.values[object].text;} else if(this.mainui.values[object]instanceof Phaser.GameObjects.Image){return this.mainui.values[object].texture.key;}} triggerServerMessage(message){this.addChatMessage(message);} triggerSystemMessage(message){this.addChatMessage('[color=#fff1b5]'+message+'[/color]');} triggerGameTimer(type,time){var _this=this;let showTimer=true;if(this.mainui===undefined||this.mainui.values===undefined){setTimeout(()=>{_this.triggerGameTimer(type,time);},1000);return;} _this.setUIValue('game_timer',new Date(time*1000).toISOString().substr(11,8));let ticker=_store.getValue('ticker');switch(type){case 69:case 70:showTimer=false;ticker.stop();break;default:showTimer=true;var tickTimer=function(){let timer=_store.getValue('timer');if(timer<=0){_store.setValue('timer',0);ticker.stop();} _this.setUIValue('game_timer',new Date(timer*1000).toISOString().substr(11,8));_store.setValue('timer',timer-1);};ticker.workFunc=tickTimer;ticker.start();} if(showTimer) this.mainui.values.game_timer.setVisible(true);else this.mainui.values.game_timer.setVisible(false);} triggerWhisper(sender,reciever,message){let color='#fccace';if(sender==_store.getValue('character.name')){charName='-> ('+reciever+')' color='#fff1b5';} else charName='('+sender+')';this.addChatMessageByUser(charName,message,color);} triggerChat(sender,chatType,message){let color='#ffffff';switch(chatType){case"1":color='#fccace';break;case"2":color='#ffcc9b';break;case"3":color='#afebeb';break;case"4":color='#c0ebb4';break;case"11":color='#ced6ff';break;case"12":color='#a4976a';break;case"13":color='#ff80ff';break;case"14":color='#937BD7';break;case"15":color='#A774AC';break;case"17":color='#FF0000';break;case"99":color='#fff1b5';break;} this.addChatMessageByUser("["+sender+"]",message,color);} triggerUpdateStats(){let char=_store.getValue('character');this.setUIValue("subtitle","Character: "+char.name);this.setUIValue("level",char.level);this.setUIValue("exp",char.exp_percent+"%");this.setUIValue("ac",char.ac);this.setUIValue("align",char.alignment);this.setUIValue("weight",char.weight+"%");this.setUIValue("mr",char.mr+"%");this.setUIValue("sp",char.sp);this.setUIValue("bhp",char.current_cp);this.setUIValue("coords",char.loc_x+','+char.loc_y);} triggerUpdateGameTime(){var date=new Date(_store.getValue('world.game_time')*1000);var hours=date.getHours();var minutes="0"+date.getMinutes();if(hours>=7&&hours<=20) this.setUIValue("timeIcon","time_day");else this.setUIValue("timeIcon","time_night");this.setUIValue("game_time",hours+':'+minutes.substr(-2));} triggerCoordUpdate(x,y){this.setUIValue('coords',x+","+y);} updateMapInfo(_this,r){_this.setUIValue('map_name','['+r.name+']');_this.world.config.map.name=r.name;_this.world.config.map_data.setStartCoords(r.map_x_start,r.map_y_start);} sendUIApiCall(command,attributes,callback){var _this=this;var data={action:'myl15',subaction:'ui',command:command,...attributes};$.ajax({url:api_url,data:data,dataType:"json",type:'POST',success:function(r){if(r.status=="OK"){callback(_this,r);} else if(r.status=="FAIL"){console.log("ERROR: "+r.message);} else{console.log("Problem Parsing data..."+r);}},error:function(request,status,error){console.log("Error Loading MainUI From API call.") console.log(error);if(request.status==503) console.log("Please slow down, operation can't handle so many clicks!");else if(request.status==500) console.log("Having issues processing this request. Try again Later.");}});} preloadWorld(){this.load.setPath(image_path+'/game/world/');this.load.image("bg_debugpanel","Bg_DebugPanel_00_Classic.png");this.load.setPath(image_path+'/game/');this.load.image("tempbg","sktbg.jpg");this.load.setPath(image_path+'/tiles/');this.load.image('greenTile','green_tile.png');this.load.image('redTile','red_tile.png');this.load.image('heroTile','hero_tile.png');this.load.image('floor','floor.png');this.load.image('wall','block.png');} initWorld(){var _this=this;var background=this.add.image(0,0,'tempbg');background.setDepth(-2);centerObject(background,Phaser,this);this.world={config:{map:{id:0,is_underwater:0,player_x:0,player_y:0,zone_type:0,name:'',},current_tab:0,},values:{icon:null,title:null,},toggles:{},buttons:{close:null,},view:{panel:_this.rexUI.add.scrollablePanel({x:700,y:500,width:353,height:661,scrollMode:0,background:_this.add.image(0,0,"bg_debugpanel"),panel:{child:_this.rexUI.add.fixWidthSizer({height:594,}),mask:{padding:1},},slider:{track:_this.add.image(0,0,'scroll_bg'),thumb:_this.add.image(0,0,'scroll_handle_normal').setScale(1,3),},space:{left:30,right:28,top:88,bottom:60,},}).layout().setDraggable('background',true),},sprites:{}};this.world.config.map_data=new GameMap(this);var panel=this.world.view.panel;this.world.values.icon=_this.add.image(panel.x-123,panel.y-302,'talk_icon_race');panel.pin(this.world.values.icon);this.world.values.title=_this.add.text(panel.x-100,panel.y-312,'Visible Objects',{font:'18px Arial',fill:'#c25c17',align:'left',});panel.pin(this.world.values.title);this.world.close=new NNButton(this,panel.x+130,panel.y-300,"","btn_close_default").setTextures("btn_close_default","btn_close_hover","btn_close_clicked","btn_close_disabled").setCallback('click',function(){_this.hideDebugPanel();});panel.pin(this.world.close);this.world.buttons.tabs=[];this.world.buttons.tabs[0]=new NNButton(this,panel.x-110,panel.y-258,"All","btn_tab_active").setFontSize(12).setClickDepth(0).setCallback('click',function(){_this.filterDebugMenu(0);});this.world.buttons.tabs[1]=new NNButton(this,panel.x-43,panel.y-258,"Items","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){_this.filterDebugMenu(1);});this.world.buttons.tabs[2]=new NNButton(this,panel.x+24,panel.y-258,"Players","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){_this.filterDebugMenu(2);});this.world.buttons.tabs[3]=new NNButton(this,panel.x+91,panel.y-258,"NPCs","btn_tab_default").setTextures("btn_tab_default","btn_tab_hover","btn_tab_hover","btn_tab_disabled").setFontSize(12).setClickDepth(1).setCallback('click',function(){_this.filterDebugMenu(3);});for(let i=0;i{_this.triggerWorldCharacter(char);},1000);return;} let spriteId=138;if(char.class_id!==undefined&&char.class_id>=0) spriteId=char.class_id;if(char.poly_id!==undefined&&char.poly_id>=0) spriteId=char.poly_id;console.log("TriggerWorldCharacter "+spriteId);if(this.world.sprites.player===undefined||this.world.sprites.player==null) this.world.sprites.player=new L1GameObject(this).setSpriteId(spriteId);else this.world.sprites.player.setSpriteId(spriteId);} setWorldValue(object,value){let _this=this;if(this.world===undefined||this.world.values===undefined){setTimeout(()=>{_this.setWorldValue(object,value);},1000);return;} if(isNumeric(value)) value=numberWithCommas(value);this.world.values[object].text=value;} getWorldValue(object){if(this.world.values[object]instanceof Phaser.GameObjects.Text){return this.world.values[object].text;} else if(this.world.values[object]instanceof Phaser.GameObjects.Image){return this.world.values[object].texture.key;}} updateDebugPanel(){let _this=this;if(this.world===undefined||this.world.view===undefined){setTimeout(()=>{_this.updateDebugPanel();},1000);return;} var sizer=this.world.view.panel.getElement('panel');var scene=this;this.world.view.panel.getElement('panel').removeAll(true);let content='';let knownObjects=_store.getValue('knownObjects');for(const key in knownObjects){var tempType=knownObjects[key].objType;var tempColor='#fff1b5';if(_this.world.config.current_tab==0||_this.world.config.current_tab==tempType){switch(knownObjects[key].objType){case"1":tempColor='#fff1b5';break;case"2":tempColor='#00FF00';break;case"3":tempColor='#017fff';break;case"4":tempColor='#FF0000';break;} content+='[area=C_'+knownObjects[key].objid+'][color='+tempColor+']'+knownObjects[key].name+'[/color][/area]\n\n';}} sizer.add(_this.rexUI.add.BBCodeText(0,0,content,{fontSize:'12px',fontFamily:'Arial',align:'left',wrap:{mode:1,width:sizer.width,},padding:{left:15,right:15,top:15,bottom:15,},underline:{color:'#ffffff',thickness:1,offset:3,}}).setInteractive().on('areaup',function(key){if(key.startsWith('C_')){let newKey=key.substring(2);let object=knownObjects[newKey];_this.interactObject(object);}}));this.world.view.panel.layout();} interactObject(object){console.log("Interacting with Object",object);switch(object.objType){case"1":_net.send({'opcode':C_PICKUP_ITEM,'x':object.x,'y':object.y,'objid':object.objid,'count':object.count});break;}} filterDebugMenu(selected_tab=0){this.world.config.current_tab=selected_tab;this.updateDebugPanel();if(this.world===undefined) return;for(let i=0;i{_this.triggerMapID(map_info);},1000);return;} switch(map_info.zone_type){case'1':this.setUIValue('zone_type','[Safety Zone]');this.mainui.values.map_name.setFill(COLOR_ZONE_SAFETY);this.mainui.values.zone_type.setFill(COLOR_ZONE_SAFETY);break;case'2':this.setUIValue('zone_type','[Combat Zone]');this.mainui.values.map_name.setFill(COLOR_ZONE_COMBAT);this.mainui.values.zone_type.setFill(COLOR_ZONE_COMBAT);break;case'0':default:this.setUIValue('zone_type','[Normal Zone]');this.mainui.values.map_name.setFill(COLOR_ZONE_NORMAL);this.mainui.values.zone_type.setFill(COLOR_ZONE_NORMAL);} _store.setValue('knownObjects',{});this.filterDebugMenu();_this.setUIValue('map_name','['+map_info.location_name+']');_this.world.config.map.name=map_info.location_name;_this.world.config.map_data.setStartCoords(map_info.start_x,map_info.start_y).setMapId(map_info.id);} sendWorldApiCall(command,attributes,callback){var _this=this;var data={action:'myl15',subaction:'world',command:command,...attributes};$.ajax({url:api_url,data:data,dataType:"json",type:'POST',success:function(r){if(r.status=="OK"){callback(_this,r);} else if(r.status=="FAIL"){console.log("ERROR: "+r.message);} else{console.log("Problem Parsing data..."+r);}},error:function(request,status,error){console.log("Error Loading Inventory From API call.") console.log(error);if(request.status==503) console.log("Please slow down, operation can't handle so many clicks!");else if(request.status==500) console.log("Having issues processing this request. Try again Later.");}});} preloadHtmlPanel(){this.load.setPath(image_path+'/game/htmlpanel/');this.load.image("talk_wide_bg","Bg_Talk_Popup_00_Classic.png");this.load.image("talk_back_bg","Talk_BG_Black.png");this.load.image("talk_icon_dialog","Talk_TitleIcon.png");this.load.image("talk_icon_items","Talk_TitleIcon_Bag.png");this.load.image("talk_icon_sign","Talk_TitleIcon_Sign.png");this.load.image("talk_icon_warehouse","Talk_TitleIcon_Warehouse.png");this.load.image("talk_icon_home","Common_Ico_AppCenter.png");this.load.image("talk_icon_mail","Common_Ico_Talk_Message_Anim.png");this.load.image("talk_icon_auction","Common_Ico_Title_Auction.png");this.load.image("talk_icon_calendar","Common_Ico_Title_Check.png");this.load.image("talk_icon_race","Common_Ico_Title_DollRace.png");this.load.image("talk_icon_crafting","Common_Ico_Title_Making.png");this.load.image("talk_icon_bookmark","Common_Ico_Title_Memory.png");this.load.image("talk_icon_pvp","Common_Ico_Title_PVPRevenge.png");this.load.image("talk_icon_ranking","Common_Ico_Title_Ranking.png");this.load.image("talk_icon_talk","Common_Ico_Title_Talk.png");this.load.image("talk_icon_poly","Common_Ico_Title_Transform.png");this.load.image("talk_icon_skull","Common_Ico_Win.png");this.load.image("talk_icon_next","Common_Ico_Talk_Next.png");this.load.image("talk_icon_next2","Common_Ico_Talk_Next_Anim.png");this.load.setPath(image_path+'/game/texts/');for(let i=5974;i<6014;i++){if(i>5980&&i<5987) continue;if(i==6003) continue;this.load.image(i,i+".png");} this.load.setPath(image_path+'/game/npcs/');for(let i=1;i<=32;i++){var poNo=("00"+i).slice(-3);this.load.image("PO_"+poNo,"PO_"+poNo+".png");} this.load.image("PO_3512","PO_3512.png")} initHtmlPanel(){var _this=this;this.htmlpanel={config:{history:[],objid:0,link:'',},buttons:{close:null,},values:{icon:null,title:null,portrait:null,name:null,job:null,text:null,},view:{panel:_this.rexUI.add.scrollablePanel({x:700,y:500,width:654,height:661,scrollMode:0,background:_this.add.image(0,0,"talk_wide_bg"),panel:{child:_this.rexUI.add.fixWidthSizer({height:594,}),mask:{padding:1},},slider:{track:_this.add.image(0,0,'scroll_bg'),thumb:_this.add.image(0,0,'scroll_handle_normal').setScale(1,3),},space:{left:320,right:28,top:58,bottom:98,},}).layout().setDraggable('background',true),},effects:{perspective:null,}} var panel=this.htmlpanel.view.panel;panel.getElement('panel').addBackground(_this.add.image(0,0,'talk_back_bg'));this.htmlpanel.values.icon=_this.add.image(panel.x-278,panel.y-302,'talk_icon_items');panel.pin(this.htmlpanel.values.icon);this.htmlpanel.values.title=_this.add.text(panel.x-255,panel.y-312,'Panel Title',{font:'18px Arial',fill:'#c25c17',align:'left',});panel.pin(this.htmlpanel.values.title);this.htmlpanel.values.portrait=_this.add.image(panel.x-300,panel.y+235,'PO_002').setOrigin(0,1);panel.pin(this.htmlpanel.values.portrait);this.htmlpanel.values.name=_this.add.text(panel.x-140,panel.y+120,'Npc Name',{font:'18px Arial',fill:'#67d7e8',align:'center',}).setOrigin(0.5);panel.pin(this.htmlpanel.values.name);this.htmlpanel.values.job=_this.add.text(panel.x-140,panel.y+140,'[ Job Title ]',{font:'14px Arial',fill:'#c25c17',align:'center',}).setOrigin(0.5);panel.pin(this.htmlpanel.values.job);this.htmlpanel.close=new NNButton(this,panel.x+280,panel.y-300,"","btn_close_default").setTextures("btn_close_default","btn_close_hover","btn_close_clicked","btn_close_disabled").setCallback('click',function(){_this.hideHtmlPanel();});panel.pin(this.htmlpanel.close);panel.setVisible(false);panel.x-=200;} setHtmlPanelValue(object,value){if(this.htmlpanel.values[object]instanceof Phaser.GameObjects.Text){this.htmlpanel.values[object].text=value;} else if(this.htmlpanel.values[object]instanceof Phaser.GameObjects.Image){this.htmlpanel.values[object].setTexture(value);} else{console.log("Not Text");}} getHtmlPanelValue(object){if(this.htmlpanel.values[object]instanceof Phaser.GameObjects.Text){return this.htmlpanel.values[object].text;} else if(this.htmlpanel.values[object]instanceof Phaser.GameObjects.Image){return this.htmlpanel.values[object].texture.key;}} loadHtmlFile(text_file,link_type='action',objid='0'){this.htmlpanel.config.history.push(text_file);if(link_type=='action'){_net.send({'opcode':C_NPC_ACTION,'objid':objid,'actionName':text_file,'secondActionName':'',});} else{this.sendHtmlPanelApiCall('text_action',{action_name:text_file,link_type:'link',},this.htmlPanelLoaded);}} clearHtmlPanel(){this.htmlpanel.view.panel.getElement('panel').removeAll(true);} htmlPanelLoaded(_this,r){_this.clearHtmlPanel();if(r.text_data.npc.name=='char_name') r.text_data.npc.name=_store.getValue('character.char_name');_this.updateHtmlPanel(r.text_data.bbcode);_this.setHtmlPanelValue('title',r.text_data.title);_this.setHtmlPanelValue('icon','talk_icon_'+r.text_data.icon);_this.setHtmlPanelValue('name',r.text_data.npc.name);_this.setHtmlPanelValue('portrait',r.text_data.npc.portrait);_this.setHtmlPanelValue('job',r.text_data.npc.job);_this.showHtmlPanel();} updateHtmlPanel(content){var _this=this;var sizer=this.htmlpanel.view.panel.getElement('panel');var scene=this;sizer.add(_this.rexUI.add.BBCodeText(0,0,content,{fontSize:'12px',fontFamily:'Arial',align:'left',wrap:{mode:1,width:sizer.width,},padding:{left:10,right:10,top:5,bottom:5,},underline:{color:'#ffffff',thickness:1,offset:3,}}).setInteractive().on('areaup',function(key){console.log('Click up:'+key+'\n');if(key.startsWith('A_')) _this.loadHtmlFile(key.substring(2),'action');else if(key.startsWith('L_')) _this.loadHtmlFile(key.substring(2),'link');else _this.loadHtmlFile(key,'action');}));this.htmlpanel.view.panel.layout();} showHtmlPanel(){this.hideShopPanel();this.htmlpanel.view.panel.setVisible(true);this.htmlpanel.view.panel.t=0;} hideHtmlPanel(){this.htmlpanel.view.panel.setVisible(false);} triggerNpcLink(data){var _this=this;if(_this.htmlpanel===undefined){setTimeout(()=>{_this.triggerNpcLink(data);},1000);return;} _this.htmlpanel.config.objid=data.msg_0;var html_data=[];for(let i=0;i5000) newValue=5000;overlapSizer.qty.text=newValue;item.qty=newValue;_this.updateTotal();}})(_this,overlapSizer,items[i]));j++;}} this.shop.view.panel.layout();} updateTotal(){var _this=this;var totalPrice=0;console.log("\nListing All Items in Cart:");for(let i=0;i<_this.shop.config.items.length;i++){let item=_this.shop.config.items[i];if(item.qty>0){console.log(item.name+' has qty of '+item.qty);totalPrice+=item.sell_price*item.qty;}} _this.shop.config.total_price=totalPrice;} purchaseItems(){var _this=this;var buying={};var j=0;for(let i=0;i<_this.shop.config.items.length;i++){let item=_this.shop.config.items[i];if(item.qty>0){console.log(item.name+' has qty of '+item.qty);buying['slot_'+j]=item.item_id;buying['qty_'+j]=item.qty;j++;}} _net.send({'opcode':C_BUY_ITEM,'objid':_this.shop.config.objid,'buyCount':Object.keys(buying).length / 2,...buying});_this.clearShopPanel();_this.hideShopPanel();} purchaseComplete(_this,r){console.log("Purchase Complete");if(r.close_panel==1){_this.hideShopPanel();}} showShopPanel(){var _this=this;_this.shop.view.panel.setVisible(true);_this.shop.view.panel.t=0;} hideShopPanel(){var _this=this;_this.shop.view.panel.setVisible(false);} shopSellListResponse(data){var _this=this;_this.shop.config.objid=data.msg_0;_this.shop.config.npcid=data.msg_1;_this.shop.config.currency=data.msg_2;_this.shop.config.items=[];var j=4;for(let i=0;i=0&&i<5){let icon=_this.minigame.values['slot_'+i];if(icon!=undefined){if(this.textures.exists('icon_'+prize.icon)){icon.setTexture('icon_'+prize.icon);continue;} this.load.image('icon_'+prize.icon,icon_url+prize.icon+'.png');_this.load.once(Phaser.Loader.Events.COMPLETE,()=>{icon.setTexture('icon_'+prize.icon);});}} else{if(this.textures.exists('icon_'+prize.icon)){continue;} this.load.image('icon_'+prize.icon,icon_url+prize.icon+'.png');} this.load.start();}} setMiniGameValue(object,value){let _this=this;if(this.minigame===undefined||this.minigame.values===undefined){setTimeout(()=>{_this.setMiniGameValue(object,value);},1000);return;} if(isNumeric(value)) value=numberWithCommas(value);this.minigame.values[object].text=value;} getMiniGameValue(object){if(this.minigame.values[object]instanceof Phaser.GameObjects.Text){return this.minigame.values[object].text;} else if(this.minigame.values[object]instanceof Phaser.GameObjects.Image){return this.minigame.values[object].texture.key;}} playMiniGame(){if(parseInt(this.getMiniGameValue('ownedCurrency2'))<=0&&parseInt(this.getMiniGameValue('ownedCurrency'))<=0){alertify.error("Not enough Heart Coins or Gift Coins to play this game.");return;} if(!this.minigame.config.spinning){this.minigame.config.spinning=true;this.spinWheel(this);_net.send({'opcode':C_MINIGAME,'game_code':1,'sub_code':1,});}} initMiniGamePrizeList(data){var _this=this;if(_this.minigame===undefined||_this.minigame.config===undefined){setTimeout(()=>{_this.initMiniGamePrizeList(data);},1000);return;} _this.minigame.config.game_code=data.msg_0;_this.minigame.config.sub_code=data.msg_1;_this.minigame.config.total_prizes=data.msg_2;_this.minigame.config.prizes=[];var j=3;for(let i=0;i<_this.minigame.config.total_prizes;i++){_this.minigame.config.prizes[i]={item_id:data['msg_'+j++],name:data['msg_'+j++],icon:data['msg_'+j++]};} _this.preloadMiniGameImages();_this.minigame.buttons.openMiniGame.setVisible(true);} miniGameResult(data){this.minigame.config.winId=data.msg_2;this.triggerSystemMessage(data.msg_3);} miniGameError(message){_this.minigame.config.spinning=false;alertify.error(message);} cycleHeartFrame(){let _this=this;if(_this.minigame.config.tick>=5){_this.minigame.config.tick=0;switch(_this.minigame.config.cycle_type){case 1:_this.minigame.config.current_frame+=1;if(_this.minigame.config.current_frame>_this.minigame.config.max_frame){_this.minigame.config.current_frame=0;} break;case 2:_this.minigame.config.current_frame-=1;if(_this.minigame.config.current_frame<0){_this.minigame.config.current_frame=_this.minigame.config.max_frame;} break;case 0:default:_this.minigame.config.current_frame=Math.floor((Math.random()*_this.minigame.config.max_frame)) break;}} else{_this.minigame.config.tick=_this.minigame.config.tick+1;} for(let i=0;i<_this.minigame.config.total_prizes;i++){let prize=_this.minigame.config.prizes[i];prize.slot-=1;if(prize.slot>_this.minigame.config.total_prizes-1) prize.slot=0;else if(prize.slot<0) prize.slot=_this.minigame.config.total_prizes-1;if(prize.slot>=0&&prize.slot<5){let icon=_this.minigame.values['slot_'+prize.slot];icon.setTexture('icon_'+prize.icon);}}} spinWheel(_this){_this.minigame.config.tick=0;if(_this.minigame.config.spinning){if(_this.minigame.config.winId>0){for(let i=0;i<_this.minigame.config.total_prizes;i++){let prize=_this.minigame.config.prizes[i];if(prize.slot==2&&prize.item_id==_this.minigame.config.winId){_this.minigame.config.spinning=false;_this.minigame.config.winId=0;setTimeout(function(){if(_this.minigame.config.autoPlay) _this.playMiniGame();},50);return;}}} _this.cycleHeartFrame();setTimeout(function(){_this.spinWheel(_this)},50);}} showMiniGamePanel(){this.hideShopPanel();this.minigame.view.panel.setVisible(true);this.minigame.view.panel.t=0;} hideMiniGamePanel(){this.minigame.view.panel.setVisible(false);this.minigame.config.autoPlay=false;} toggleMiniGamePanel(){if(this.minigame.view.panel.visible) this.hideMiniGamePanel();else this.showMiniGamePanel();} updateMiniGameGc(_this,value){_this.minigame.values.ownedCurrency.text=value;} updateMiniGameHeartCoins(_this,value){_this.minigame.values.ownedCurrency2.text=value;} preloadSoulForge(){} initSoulForge(){var _this=this;this.soulForge={config:{history:[],objid:0,link:'',},buttons:{close:null,},values:{icon:null,title:null,portrait:null,name:null,job:null,text:null,},view:{panel:_this.rexUI.add.scrollablePanel({x:700,y:500,width:654,height:661,scrollMode:0,background:_this.add.image(0,0,"talk_wide_bg"),panel:{child:_this.rexUI.add.fixWidthSizer({height:594,}),mask:{padding:1},},slider:{track:_this.add.image(0,0,'scroll_bg'),thumb:_this.add.image(0,0,'scroll_handle_normal').setScale(1,3),},space:{left:320,right:28,top:58,bottom:98,},}).layout().setDraggable('background',true),},effects:{perspective:null,}} var panel=this.soulForge.view.panel;panel.getElement('panel').addBackground(_this.add.image(0,0,'talk_back_bg'));this.soulForge.close=new NNButton(this,panel.x+280,panel.y-300,"","btn_close_default").setTextures("btn_close_default","btn_close_hover","btn_close_clicked","btn_close_disabled").setCallback('click',function(){_this.hideSoulForgePanel();});panel.pin(this.soulForge.close);panel.setVisible(false);panel.x-=200;} createSoulForgeWindow(){} showSoulForgePanel(){this.soulForge.view.panel.setVisible(true);} hideSoulForgePanel(){this.soulForge.view.panel.setVisible(false);this.itemLabel.setVisible(false);} toggleSoulForgePanel(){if(this.soulForge.view.panel.visible) this.hideSoulForgePanel();else this.showSoulForgePanel();}} var config={type:Phaser.AUTO,parent:'game_main',scale:{mode:Phaser.Scale.FIT,parent:'game_main',autoCenter:Phaser.Scale.CENTER_VERTICALLY,width:1920,height:1080,},dom:{createContainer:true},url:base_url+"/v2.1.3/",version:"0.0.1",transparent:true,scene:[bootState,preloadState,LoginScene,CharSelectScene,GameScene,],plugins:{scene:[{key:'rexBoard',plugin:rexboardplugin,mapping:'rexBoard'}]}};var _net=new Networking(socket_url);if(VERSION=='testserver') _net.debug=true;else _net.debug=false;_net.connect();var game=new Phaser.Game(config);var _store=new DataStore();_store.debug=false;