Trade-Winds/minified/prefabs/shipPrefab.js

1 line
5.9 KiB
JavaScript
Raw Permalink Normal View History

2016-05-18 23:50:46 +02:00
function shipPrefab(){}var ani_ship_r=OS.A.Add("Ship Right",64,64,{columns:2,speed:1/60,yOffset:256}),ani_ship_ur=OS.A.Add("Ship Up-Right",64,64,{columns:2,speed:1/60,yOffset:448}),ani_ship_u=OS.A.Add("Ship Up",64,64,{columns:2,speed:1/60,yOffset:320}),ani_ship_ul=OS.A.Add("Ship Up-Left",64,64,{columns:2,speed:1/60,yOffset:384}),ani_ship_l=OS.A.Add("Ship Left",64,64,{columns:2,speed:1/60,yOffset:192}),ani_ship_dl=OS.A.Add("Ship Down-Left",64,64,{columns:2,speed:1/60,yOffset:64}),ani_ship_d=OS.A.Add("Ship Down",64,64,{columns:2,speed:1/60,yOffset:0}),ani_ship_dr=OS.A.Add("Ship Down-Right",64,64,{columns:2,speed:1/60,yOffset:128}),pr_ship=OS.P.Add("Ship",{solid:!0,imageSrc:"images/ship_sheet.png",maskImageSrc:"images/ship_mask.png",animations:[ani_ship_r,ani_ship_ur,ani_ship_u,ani_ship_ul,ani_ship_l,ani_ship_dl,ani_ship_d,ani_ship_dr],direction:0,currentSpeed:0,pointInFront:{x:0,y:0},moveStepSize:3,moveStepAmount:5*OS.R[OS.R.currentRoom].stepSpeed,moveStepProgress:0,doTakeStep:!1,energyRefillTimer:0,drawSickIndicator:0,drawSickIndicatorTime:secondsWorthOfFrames(1.5)});pr_ship.BeforeDo=function(){G.gameStarted&&this.GetMapPosition()},pr_ship.Do=function(){G.gameStarted&&(guiControl&&guiControl.inventory&&guiControl.map&&guiControl.trade&&(guiControl.inventory.show||guiControl.map.show||guiControl.trade.show||(ct_left().down?this.direction+=45:ct_right().down&&(this.direction-=45),this.direction=Math.clampAngle(this.direction),ct_up().down?this.currentSpeed++:ct_down().down&&this.currentSpeed--,this.AdjustSpeedBasedOnEnergy(),this.CheckInteraction())),this.currentSpeed=Math.clamp(this.currentSpeed,0,4),this.moveStepProgress+=this.currentSpeed*this.moveStepAmount,this.moveStepProgress>=this.moveStepSize?(this.moveStepProgress-=this.moveStepSize,this.doTakeStep=!0):this.doTakeStep=!1,this.SeamlessScroll())},pr_ship.AfterDo=function(){G.gameStarted&&(this.CheckMovement(),this.UpdateEnergy())},pr_ship.DrawAbove=function(){if(G.gameStarted&&(this.drawSickIndicator--,this.drawSickIndicator<0&&(this.drawSickIndicator=0),this.drawSickIndicator>0)){var t=Math.round((this.drawSickIndicatorTime-this.drawSickIndicator)/2)/OS.S.pixelScale,i=this.y-t-Oversimplified.camera.y-guiControl.iconScaled/2;guiControl.drawIcon(4,1,this.x-Oversimplified.camera.x-guiControl.iconScaled/2,i)}},pr_ship.GetMapPosition=function(){this.mapX=pixel(Math.round(this.x/pixel(64))),this.mapY=pixel(Math.round(this.y/pixel(64)))},pr_ship.CheckInteraction=function(){if(ct_confirm().down){var t=OS.GameObjectsAtPoint(this.pointInFront.x,this.pointInFront.y);if(t.length>0)for(var i=0;i<t.length;i++)t[i].canTrade&&t[i].TradeWith()}},pr_ship.CheckMovement=function(){var t=pixel(G.stats.speed+this.currentSpeed),i=!1;switch(this.direction){case 0:"Ship Right"!=this.image.currentAnimation&&this.SetAnimation("Ship Right"),this.doTakeStep&&(i=this.SimpleMove(t,0,!0,pixel(4))),this.pointInFront.x=this.x+this.xBound+pixel(2)+t,this.pointInFront.y=this.y;break;case 45:"Ship Up-Right"!=this.image.currentAnimation&&this.SetAnimation("Ship Up-Right"),this.doTakeStep&&(i=this.SimpleMove(t,-t,!0,pixel(4))),this.pointInFront.x=this.x+this.xBound+pixel(2)+t,this.pointInFront.y=this.y-this.yBound-pixel(2)-t;break;case 90:"Ship Up"!=this.image.currentAnimation&&this.SetAnimation("Ship Up"),this.doTakeStep&&(i=this.SimpleMove(0,-t,!0,pixel(4))),this.pointInFront.x=this.x,this.pointInFront.y=this.y-this.yBound-pixel(2)-t;break;case 135:"Ship Up-Left"!=this.image.currentAnimation&&this.SetAnimation("Ship Up-Left"),this.doTakeStep&&(i=this.SimpleMove(-t,-t,!0,pixel(4))),this.pointInFront.x=this.x-this.xBound-pixel(2)-t,this.pointInFront.y=this.y-this.yBound-pixel(2)-t;break;case 180:"Ship Left"!=this.image.currentAnimation&&this.SetAnimation("Ship Left"),this.doTakeStep&&(i=this.SimpleMove(-t,0,!0,pixel(4))),this.pointInFront.x=this.x-this.xBound-pixel(2)-t,this.pointInFront.y=this.y;break;case 225:"Ship Down-Left"!=this.image.currentAnimation&&this.SetAnimation("Ship Down-Left"),this.doTakeStep&&(i=this.SimpleMove(-t,t,!0,pixel(4))),this.pointInFront.x=this.x-this.xBound-pixel(2)-t,this.p