package com.jpii.navalbattle.game.entity; import com.jpii.navalbattle.pavo.Game; import com.jpii.navalbattle.pavo.grid.EntityManager; import com.jpii.navalbattle.pavo.grid.GridedEntityTileOrientation; import com.jpii.navalbattle.pavo.grid.Location; public class Submarine extends MoveableEntity { private static final long serialVersionUID = 1L; public static GridedEntityTileOrientation SUBMARINE_ID; public static GridedEntityTileOrientation SUBMARINEU_ID; private boolean submerged=false; private boolean canSubmerge=true; public Submarine(EntityManager em, Location loc,byte orientation) { super(em, loc, SUBMARINE_ID,orientation); imgLocation="drawable-game/submarine/submarine.png"; Game g = em.getWorld().getGame(); if (!g.isAClient()) { g.getSelfServer().send("submarine:"+loc.getCol()+","+loc.getRow()); } handle = 11; maxHealth = 600; currentHealth = maxHealth; moved = 0; maxMovement=7; primaryRange = 5; secondaryRange = 7; gunsAttackOption = true; missileAttackOption = true; } public void init() { setWidth(2); } public boolean moveTo(Location loc, boolean override) { return super.moveTo(loc, override); } public void onUpdate(long timePassed) { } public void onMouseMove(int x, int y) { } public void onMouseDown(int x, int y, boolean leftbutton) { super.onMouseDown(x, y, leftbutton); } public void toggleElevation(){ if(submerged) setId(SUBMARINE_ID); else setId(SUBMARINEU_ID); submerged = !submerged; } public boolean isSumberged(){ return submerged; } public boolean canSubmerge(){ return canSubmerge; } public void resetMovement(){ super.resetMovement(); canSubmerge=true; if(isSumberged()){ toggleElevation(); } } public void usePrimary(){ usedGuns=true; canSubmerge=false; } public void useSecondary(){ missileCount--; usedMissiles=true; canSubmerge=false; } }