diff --git a/mar/GameObject.ts b/mar/GameObject.ts index 2aa82be..e5b9e40 100644 --- a/mar/GameObject.ts +++ b/mar/GameObject.ts @@ -110,6 +110,8 @@ class Cubot extends GameObject { heldItem: ItemType; energy: number; + inventory: Phaser.Group; + private hologram: Phaser.Text; /** @@ -202,6 +204,9 @@ class Cubot extends GameObject { this.energy = json.energy; this.direction = json.direction; + //Update Inventory + this.createInventory([json.heldItem]); + this.heldItem = json.heldItem; //Update color this.tint = this.getTint(); @@ -379,6 +384,40 @@ class Cubot extends GameObject { } this.addChild(username); } + + public createInventory(items: number[]): void { + + //Remove old inventory + if(this.inventory != undefined) { + this.inventory.destroy(); + } + + let inventory = mar.game.make.group(); + switch (items.length) { + case 0: + this.inventory = inventory; + this.addChild(inventory); + break; + case 1: + if (items[0] !== 0) { + let shadow = mar.game.make.sprite(0, 0, "sheet", "inventory/inv1x1"); + shadow.anchor.set(0.5, 0.1); + shadow.alpha = 0.5; + let item = mar.game.make.sprite(0, 0, "sheet", "inventory/item"); + item.anchor.set(0.5, 0.1); + item.tint = Util.itemColor(items[0]); + + + inventory.addChild(shadow); + inventory.addChild(item); + + } + this.inventory = inventory; + this.addChild(inventory); + break; + } + + } } class HarvesterNPC extends Cubot { diff --git a/mar/app.js b/mar/app.js index a5b0955..4344d3d 100644 --- a/mar/app.js +++ b/mar/app.js @@ -348,6 +348,16 @@ var Util = /** @class */ (function () { return 1; } }; + Util.itemColor = function (item) { + switch (item) { + case 1: + return config.biomassTint; + case 3: + return config.itemIron; + case 4: + return config.itemCopper; + } + }; return Util; }()); var mar = new MarGame(); @@ -875,6 +885,9 @@ var Cubot = /** @class */ (function (_super) { this.action = json.action; this.energy = json.energy; this.direction = json.direction; + //Update Inventory + this.createInventory([json.heldItem]); + this.heldItem = json.heldItem; //Update color this.tint = this.getTint(); //Update Location @@ -1025,6 +1038,33 @@ var Cubot = /** @class */ (function (_super) { } this.addChild(username); }; + Cubot.prototype.createInventory = function (items) { + //Remove old inventory + if (this.inventory != undefined) { + this.inventory.destroy(); + } + var inventory = mar.game.make.group(); + switch (items.length) { + case 0: + this.inventory = inventory; + this.addChild(inventory); + break; + case 1: + if (items[0] !== 0) { + var shadow = mar.game.make.sprite(0, 0, "sheet", "inventory/inv1x1"); + shadow.anchor.set(0.5, 0.1); + shadow.alpha = 0.5; + var item = mar.game.make.sprite(0, 0, "sheet", "inventory/item"); + item.anchor.set(0.5, 0.1); + item.tint = Util.itemColor(items[0]); + inventory.addChild(shadow); + inventory.addChild(item); + } + this.inventory = inventory; + this.addChild(inventory); + break; + } + }; return Cubot; }(GameObject)); var HarvesterNPC = /** @class */ (function (_super) { diff --git a/mar/app.min.js b/mar/app.min.js index 14823c4..94e57fb 100644 --- a/mar/app.min.js +++ b/mar/app.min.js @@ -19,42 +19,44 @@ new TileIndicator(10,40);this.addDebugMessage(this.tileIndicator)};return b}(),D function(){return void 0!=mar.world?"World: ("+Number(mar.client.worldX).toString(16).toUpperCase()+", "+Number(mar.client.worldY).toString(16).toUpperCase()+")":"Loading..."};return a}(DebugMessage),RENDERER_WIDTH=document.getElementById("game").clientWidth*window.devicePixelRatio,RENDERER_HEIGHT=window.innerHeight/1.4*window.devicePixelRatio,DEBUG=!0,config={tileTint:16777215,wallTint:14540253,oreTint:15987699,cubotHoverTint:65280,cubotTint:16777215,textFill:"#FFFFFF",textStroke:"#9298a8",biomassTint:6535263, biomassHoverTint:65280,tileHoverTint:65280,itemIron:4408129,textIron:"#434341",itemCopper:13139256,textCopper:"#C87D38",hologramFill:"#0aced6",hologramStroke:"#12FFB0",copperFill:"#C87D38",plainSprite:"tiles/tile",wallSprite:"tiles/bigTile",walkDuration:800,holoStyle:function(b){return{fontSize:32,fill:b?b:config.hologramFill,stroke:config.hologramStroke,strokeThickness:1,font:"fixedsys"}},kbBufferX:225,kbBufferY:20,arrowTextStyle:{fontSize:32,fill:"#ffffff",stroke:"#9298a8",strokeThickness:1,font:"fixedsys"}, lowEnergy:100,lowEnergyTint:13369344,bigMessageFill:"#ff803d",arrowTint:16777215,arrowHoverTint:65280,selfUsernameColor:16469258,otherCubotAlpha:.6,defaultWorldSize:16},Util=function(){function b(){}b.getIsoY=function(a){return b.getIsoX(a)};b.getIsoX=function(a){return 71.5*a};b.getDeltaX=function(a){switch(a){case Direction.NORTH:case Direction.SOUTH:return 0;case Direction.EAST:return 1;case Direction.WEST:return-1}};b.getDeltaY=function(a){switch(a){case Direction.EAST:case Direction.WEST:return 0; -case Direction.NORTH:return-1;case Direction.SOUTH:return 1}};return b}(),mar=new MarGame,myVarX=.46,myVarY=.46,KeyboardBuffer=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.keys=[];return a}__extends(a,b);a.prototype.getMessage=function(){for(var a="KB: ",b=0;16>b;b++)a=void 0!==this.keys[b]?a+(this.keys[b].toString(16).toUpperCase()+" "):a+"__ ";return a};return a}(DebugMessage),ObjectsListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"object"}; -b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received "+a.objects.length+" objects");void 0!=mar.world&&mar.world.handleObjectsUpdate(a.objects)};return b}(),TickListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"tick"};b.prototype.handle=function(a){mar.client.requestObjects();void 0!==a.keys&&(mar.client.keyboardBuffer.keys=a.keys);void 0!=a.c&&(mar.client.consoleScreen.handleConsoleBufferUpdate(a.c,a.cm),DEBUG&&console.log("[MAR] Received "+a.c.length+ -" console message(s)"))};return b}(),UserInfoListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"userInfo"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received user info message");mar.client.worldX=a.worldX;mar.client.worldY=a.worldY;mar.client.maxWidth=a.maxWidth;mar.client.requestTerrain()};return b}(),AuthListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"auth"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received auth response"); -"ok"===a.m?(DEBUG&&console.log("[MAR] Auth successful"),mar.client.requestUserInfo()):alert("Authentication failed. Please make sure you are logged in and reload the page.")};return b}(),TerrainListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"terrain"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received terrain");mar.world&&mar.world.removeBigMessage();if(a.ok){var c=a.size;void 0==c&&(c=config.defaultWorldSize);DEBUG&&console.log("[MAR] World is available"); -null!=mar.world?(DEBUG&&console.log("[MAR] Updating World terrain"),mar.world.updateTerrain(a.terrain,c)):(DEBUG&&console.log("[MAR] Creating new World"),mar.world=new World(a.terrain,c))}else DEBUG&&console.log("[MAR] World is not available"),null!=mar.world?(DEBUG&&console.log("[MAR] Updating World terrain"),mar.world.updateTerrain([],config.defaultWorldSize)):(DEBUG&&console.log("[MAR] Creating new World"),mar.world=new World([],config.defaultWorldSize)),mar.world&&mar.world.setBigMessage("[Uncharted World]")}; -return b}(),CodeListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"code"};b.prototype.handle=function(a){ace.edit("editor").setValue(a.code)};return b}(),CodeResponseListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"codeResponse"};b.prototype.handle=function(a){alert("Uploaded and assembled "+a.bytes+" bytes ("+a.exceptions+" errors)")};return b}(),GameClient=function(){function b(){this.listeners=[];this.getServerInfo();this.consoleScreen= -new PlainTextConsole(defaultText,"consoleText","colorButton","scrollButton","resetButton","widthDial")}b.prototype.requestUserInfo=function(){DEBUG&&console.log("[MAR] Requesting user info");this.socket.send(JSON.stringify({t:"userInfo"}))};b.prototype.requestTerrain=function(){DEBUG&&console.log("[MAR] Requesting terrain for world ("+this.worldX+", "+this.worldY+")");this.socket.send(JSON.stringify({t:"terrain",x:this.worldX,y:this.worldY}));this.requestObjects()};b.prototype.uploadCode=function(a){DEBUG&& -console.log("[MAR] Uploaded code");this.socket.send(JSON.stringify({t:"uploadCode",code:a}))};b.prototype.reloadCode=function(){DEBUG&&console.log("[MAR] Reloading code");this.socket.send(JSON.stringify({t:"codeRequest"}))};b.prototype.sendKeyPress=function(a){DEBUG&&console.log("[MAR] Sent KeyPress: "+a);0!==a&&this.socket.send(JSON.stringify({t:"k",k:a}))};b.prototype.requestFloppy=function(){document.getElementById("floppyDown").innerHTML='';DEBUG&&console.log("[MAR] Requesting floppy"); -this.socket.send(JSON.stringify({t:"floppyDown"}))};b.prototype.notifyFloppyUp=function(){DEBUG&&console.log("[MAR] Notifying the game server of floppy upload");this.socket.send(JSON.stringify({t:"floppyUp"}))};b.prototype.requestObjects=function(){DEBUG&&console.log("[MAR] Requesting game objects");this.socket.send(JSON.stringify({t:"object",x:this.worldX,y:this.worldY}))};b.prototype.getServerInfo=function(){var a=this;DEBUG&&console.log("[MAR] Getting server info... ");var c=new XMLHttpRequest; -c.open("GET","./getServerInfo.php",!0);c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(DEBUG&&console.log("[MAR] Received server info "+c.responseText),setTimeout(a.connectToGameServer(JSON.parse(c.responseText)),100))};c.send(null)};b.prototype.connectToGameServer=function(a){var c=this;DEBUG&&console.log("[MAR] Connecting to "+a.address);this.socket=new WebSocket(a.address);this.username=a.username;this.tickLength=a.tickLength;this.serverName=a.serverName;this.socket.binaryType= -"arraybuffer";this.socket.onopen=function(){DEBUG&&console.log("[MAR] Connected. Sent auth request");c.socket.send(a.token);c.listeners.push(new UserInfoListener);c.listeners.push(new AuthListener);c.listeners.push(new TickListener);c.listeners.push(new TerrainListener);c.listeners.push(new ObjectsListener);c.listeners.push(new CodeResponseListener);c.listeners.push(new CodeListener);c.socket.onmessage=function(a){try{var b=JSON.parse(a.data);DEBUG&&console.log("[MAR] Received: "+a.data);for(var d= -0;d=c.keyCode||116===c.keyCode||32===c.keyCode)&& -c.preventDefault(),"guest"!==a.username&&16>=a.keyboardBuffer.keys.length&&(a.sendKeyPress(c.keyCode),a.keyboardBuffer.keys.push(c.keyCode)))}}};b.prototype.findMyRobot=function(){"guest"==this.username?alert("You are not logged in!"):this.requestUserInfo()};return b}(),ObjectType;(function(b){b[b.CUBOT=1]="CUBOT";b[b.BIOMASS=2]="BIOMASS";b[b.HARVESTER_NPC=10]="HARVESTER_NPC";b[b.FACTORY=3]="FACTORY";b[b.RADIO_TOWER=4]="RADIO_TOWER";b[b.VAULT_DOOR=5]="VAULT_DOOR"})(ObjectType||(ObjectType={}));var ItemType; -(function(b){b[b.BIOMASS=1]="BIOMASS";b[b.IRON=3]="IRON";b[b.COPPER=4]="COPPER"})(ItemType||(ItemType={}));var Action;(function(b){b[b.IDLE=0]="IDLE";b[b.DIGGING=1]="DIGGING";b[b.WALKING=2]="WALKING";b[b.WITHDRAWING=3]="WITHDRAWING";b[b.DEPOSITING=4]="DEPOSITING";b[b.LISTENING=5]="LISTENING";b[b.JUMPING=6]="JUMPING"})(Action||(Action={})); +case Direction.NORTH:return-1;case Direction.SOUTH:return 1}};b.itemColor=function(a){switch(a){case 1:return config.biomassTint;case 3:return config.itemIron;case 4:return config.itemCopper}};return b}(),mar=new MarGame,myVarX=.46,myVarY=.46,KeyboardBuffer=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.keys=[];return a}__extends(a,b);a.prototype.getMessage=function(){for(var a="KB: ",b=0;16>b;b++)a=void 0!==this.keys[b]?a+(this.keys[b].toString(16).toUpperCase()+" "):a+ +"__ ";return a};return a}(DebugMessage),ObjectsListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"object"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received "+a.objects.length+" objects");void 0!=mar.world&&mar.world.handleObjectsUpdate(a.objects)};return b}(),TickListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"tick"};b.prototype.handle=function(a){mar.client.requestObjects();void 0!==a.keys&&(mar.client.keyboardBuffer.keys= +a.keys);void 0!=a.c&&(mar.client.consoleScreen.handleConsoleBufferUpdate(a.c,a.cm),DEBUG&&console.log("[MAR] Received "+a.c.length+" console message(s)"))};return b}(),UserInfoListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"userInfo"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received user info message");mar.client.worldX=a.worldX;mar.client.worldY=a.worldY;mar.client.maxWidth=a.maxWidth;mar.client.requestTerrain()};return b}(),AuthListener=function(){function b(){} +b.prototype.getListenedMessageType=function(){return"auth"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received auth response");"ok"===a.m?(DEBUG&&console.log("[MAR] Auth successful"),mar.client.requestUserInfo()):alert("Authentication failed. Please make sure you are logged in and reload the page.")};return b}(),TerrainListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"terrain"};b.prototype.handle=function(a){DEBUG&&console.log("[MAR] Received terrain"); +mar.world&&mar.world.removeBigMessage();if(a.ok){var c=a.size;void 0==c&&(c=config.defaultWorldSize);DEBUG&&console.log("[MAR] World is available");null!=mar.world?(DEBUG&&console.log("[MAR] Updating World terrain"),mar.world.updateTerrain(a.terrain,c)):(DEBUG&&console.log("[MAR] Creating new World"),mar.world=new World(a.terrain,c))}else DEBUG&&console.log("[MAR] World is not available"),null!=mar.world?(DEBUG&&console.log("[MAR] Updating World terrain"),mar.world.updateTerrain([],config.defaultWorldSize)): +(DEBUG&&console.log("[MAR] Creating new World"),mar.world=new World([],config.defaultWorldSize)),mar.world&&mar.world.setBigMessage("[Uncharted World]")};return b}(),CodeListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"code"};b.prototype.handle=function(a){ace.edit("editor").setValue(a.code)};return b}(),CodeResponseListener=function(){function b(){}b.prototype.getListenedMessageType=function(){return"codeResponse"};b.prototype.handle=function(a){alert("Uploaded and assembled "+ +a.bytes+" bytes ("+a.exceptions+" errors)")};return b}(),GameClient=function(){function b(){this.listeners=[];this.getServerInfo();this.consoleScreen=new PlainTextConsole(defaultText,"consoleText","colorButton","scrollButton","resetButton","widthDial")}b.prototype.requestUserInfo=function(){DEBUG&&console.log("[MAR] Requesting user info");this.socket.send(JSON.stringify({t:"userInfo"}))};b.prototype.requestTerrain=function(){DEBUG&&console.log("[MAR] Requesting terrain for world ("+this.worldX+", "+ +this.worldY+")");this.socket.send(JSON.stringify({t:"terrain",x:this.worldX,y:this.worldY}));this.requestObjects()};b.prototype.uploadCode=function(a){DEBUG&&console.log("[MAR] Uploaded code");this.socket.send(JSON.stringify({t:"uploadCode",code:a}))};b.prototype.reloadCode=function(){DEBUG&&console.log("[MAR] Reloading code");this.socket.send(JSON.stringify({t:"codeRequest"}))};b.prototype.sendKeyPress=function(a){DEBUG&&console.log("[MAR] Sent KeyPress: "+a);0!==a&&this.socket.send(JSON.stringify({t:"k", +k:a}))};b.prototype.requestFloppy=function(){document.getElementById("floppyDown").innerHTML='';DEBUG&&console.log("[MAR] Requesting floppy");this.socket.send(JSON.stringify({t:"floppyDown"}))};b.prototype.notifyFloppyUp=function(){DEBUG&&console.log("[MAR] Notifying the game server of floppy upload");this.socket.send(JSON.stringify({t:"floppyUp"}))};b.prototype.requestObjects=function(){DEBUG&&console.log("[MAR] Requesting game objects");this.socket.send(JSON.stringify({t:"object", +x:this.worldX,y:this.worldY}))};b.prototype.getServerInfo=function(){var a=this;DEBUG&&console.log("[MAR] Getting server info... ");var c=new XMLHttpRequest;c.open("GET","./getServerInfo.php",!0);c.onreadystatechange=function(){4===c.readyState&&200===c.status&&(DEBUG&&console.log("[MAR] Received server info "+c.responseText),setTimeout(a.connectToGameServer(JSON.parse(c.responseText)),100))};c.send(null)};b.prototype.connectToGameServer=function(a){var c=this;DEBUG&&console.log("[MAR] Connecting to "+ +a.address);this.socket=new WebSocket(a.address);this.username=a.username;this.tickLength=a.tickLength;this.serverName=a.serverName;this.socket.binaryType="arraybuffer";this.socket.onopen=function(){DEBUG&&console.log("[MAR] Connected. Sent auth request");c.socket.send(a.token);c.listeners.push(new UserInfoListener);c.listeners.push(new AuthListener);c.listeners.push(new TickListener);c.listeners.push(new TerrainListener);c.listeners.push(new ObjectsListener);c.listeners.push(new CodeResponseListener); +c.listeners.push(new CodeListener);c.socket.onmessage=function(a){try{var b=JSON.parse(a.data);DEBUG&&console.log("[MAR] Received: "+a.data);for(var d=0;d=c.keyCode||116===c.keyCode||32===c.keyCode)&&c.preventDefault(),"guest"!==a.username&&16>=a.keyboardBuffer.keys.length&&(a.sendKeyPress(c.keyCode),a.keyboardBuffer.keys.push(c.keyCode)))}}};b.prototype.findMyRobot=function(){"guest"==this.username?alert("You are not logged in!"):this.requestUserInfo()};return b}(),ObjectType; +(function(b){b[b.CUBOT=1]="CUBOT";b[b.BIOMASS=2]="BIOMASS";b[b.HARVESTER_NPC=10]="HARVESTER_NPC";b[b.FACTORY=3]="FACTORY";b[b.RADIO_TOWER=4]="RADIO_TOWER";b[b.VAULT_DOOR=5]="VAULT_DOOR"})(ObjectType||(ObjectType={}));var ItemType;(function(b){b[b.BIOMASS=1]="BIOMASS";b[b.IRON=3]="IRON";b[b.COPPER=4]="COPPER"})(ItemType||(ItemType={}));var Action; +(function(b){b[b.IDLE=0]="IDLE";b[b.DIGGING=1]="DIGGING";b[b.WALKING=2]="WALKING";b[b.WITHDRAWING=3]="WITHDRAWING";b[b.DEPOSITING=4]="DEPOSITING";b[b.LISTENING=5]="LISTENING";b[b.JUMPING=6]="JUMPING"})(Action||(Action={})); var GameObject=function(b){function a(a,d,e,f,h){return b.call(this,mar.game,a,d,e,f,h)||this}__extends(a,b);a.createObject=function(a){switch(a.t){case ObjectType.CUBOT:return new Cubot(a);case ObjectType.BIOMASS:return new BiomassBlob(a);case ObjectType.HARVESTER_NPC:return new HarvesterNPC(a);case ObjectType.FACTORY:return new Factory(a);case ObjectType.RADIO_TOWER:return new RadioTower(a);case ObjectType.VAULT_DOOR:return new VaultDoor(a);default:return null}};a.prototype.setText=function(a){this.text= mar.game.make.text(0,0,a,{fontSize:22,fill:config.textFill,stroke:config.textStroke,strokeThickness:2,font:"fixedsys"});this.text.anchor.set(.5,0);this.addChild(this.text)};a.prototype.isAt=function(a,b){return a==this.tileX&&b==this.tileY};return a}(Phaser.Plugin.Isometric.IsoSprite),HologramMode;(function(b){b[b.CLEARED=0]="CLEARED";b[b.HEX=1]="HEX";b[b.STRING=2]="STRING";b[b.DEC=3]="DEC"})(HologramMode||(HologramMode={})); var Cubot=function(b){function a(a){var c=b.call(this,Util.getIsoX(a.x),Util.getIsoY(a.y),15,"sheet",null)||this;c.queuedAnimations=[];c.hovered=!1;DEBUG&&console.log("Creating Cubot object");c.anchor.set(.5,0);c.id=a.i;c.tileX=a.x;c.tileY=a.y;c.username=a.parent;c.heldItem=a.heldItem;c.direction=a.direction;c.action=a.action;c.energy=a.energy;c.animations.add("walk_w",mar.animationFrames.walk_w);c.animations.add("walk_s",mar.animationFrames.walk_s);c.animations.add("walk_e",mar.animationFrames.walk_e); c.animations.add("walk_n",mar.animationFrames.walk_n);c.animations.add("dig_w",mar.animationFrames.dig_w);c.animations.add("dig_s",mar.animationFrames.dig_s);c.animations.add("dig_e",mar.animationFrames.dig_e);c.animations.add("dig_n",mar.animationFrames.dig_n);c.createUsername();c.updateDirection();c.tint=c.getTint();return c}__extends(a,b);a.prototype.onTileHover=function(){mar.game.add.tween(this).to({isoZ:45},200,Phaser.Easing.Quadratic.InOut,!0);mar.game.add.tween(this.scale).to({x:1.2,y:1.2}, 200,Phaser.Easing.Linear.None,!0);this.tint=config.cubotHoverTint;void 0!==this.text&&(this.text.visible=!0);this.hovered=!0};a.prototype.onTileExit=function(){mar.game.add.tween(this).to({isoZ:15},400,Phaser.Easing.Bounce.Out,!0);mar.game.add.tween(this.scale).to({x:1,y:1},200,Phaser.Easing.Linear.None,!0);void 0!==this.text&&(this.text.visible=!1);this.hovered=!1;this.tint=this.getTint()};a.prototype.getTint=function(){return this.hovered?config.cubotHoverTint:this.energy<=config.lowEnergy?config.lowEnergyTint: -config.cubotTint};a.prototype.updateObject=function(a){DEBUG&&console.log("Updating Cubot object");this.action=a.action;this.energy=a.energy;this.direction=a.direction;this.tint=this.getTint();this.isAt(a.x,a.y)||this.action!=Action.WALKING||(this.tileX=a.x,this.tileY=a.y,this.walk());if(this.action==Action.DIGGING)switch(this.direction){case Direction.NORTH:this.animations.play("dig_n",60);break;case Direction.SOUTH:this.animations.play("dig_s",60);break;case Direction.EAST:this.animations.play("dig_e", -60);break;case Direction.WEST:this.animations.play("dig_w",60)}this.updateDirection();this.updateHologram(a.holoMode,a.holoC,a.holo,a.holoStr)};a.prototype.updateHologram=function(a,b,e,f){void 0==this.hologram&&(this.hologram=mar.game.make.text(0,32,""),this.hologram.anchor.set(.5,0),this.addChild(this.hologram));this.hologram.setStyle(config.holoStyle(b));switch(a){case HologramMode.CLEARED:this.hologram.text="";break;case HologramMode.DEC:this.hologram.text=Number(e).toString();break;case HologramMode.HEX:this.hologram.text= -"0x"+("0000"+Number(e).toString(16).toUpperCase()).slice(-4);break;case HologramMode.STRING:this.hologram.text=f.replace(/[\n|\t]/g,"")}};a.prototype.updateDirection=function(){switch(this.direction){case Direction.NORTH:this.animations.frameName="cubot/walk_n/0001";break;case Direction.EAST:this.animations.frameName="cubot/walk_e/0001";break;case Direction.SOUTH:this.animations.frameName="cubot/walk_s/0001";break;case Direction.WEST:this.animations.frameName="cubot/walk_w/0001"}};a.prototype.walk= -function(){var a=this,b=function(b){b=mar.game.add.tween(a).to({isoX:Util.getIsoX(a.tileX),isoY:Util.getIsoY(a.tileY)},b,Phaser.Easing.Linear.None,!0);switch(a.direction){case Direction.NORTH:a.animations.play("walk_n",60,!0);break;case Direction.SOUTH:a.animations.play("walk_s",60,!0);break;case Direction.EAST:a.animations.play("walk_e",60,!0);break;case Direction.WEST:a.animations.play("walk_w",60,!0)}b.onComplete.add(function(){a.animations.stop();a.updateDirection();a.isoX=Util.getIsoX(a.tileX); -a.isoY=Util.getIsoY(a.tileY);a.onTileExit();for(var b=0;b