package com.jpii.navalbattle.game.turn; import java.awt.Font; import com.jpii.navalbattle.NavalBattle; import com.jpii.navalbattle.data.RoketGamerData; import com.jpii.navalbattle.game.NavalManager; import com.jpii.navalbattle.game.entity.MoveableEntity; import com.jpii.navalbattle.pavo.gui.NewWindowManager; import com.jpii.navalbattle.pavo.gui.controls.PButton; import com.jpii.navalbattle.pavo.gui.controls.PText; import com.jpii.navalbattle.pavo.gui.controls.PWindow; import com.jpii.navalbattle.pavo.gui.events.PMouseEvent; import com.jpii.navalbattle.util.RoketUtils; public class ShipShop extends PWindow { MoveableEntity move; Player current; PButton missile = null; PText score; public ShipShop(NewWindowManager parent,MoveableEntity e){ super(parent); parent.add(this); setSize(500, 250); setLoc(390, 275); setText("Ship Shop"); move = e; initItems(); current = null; missile.setVisible(true); if(move == null) setVisible(false); else{ setVisible(true); current = ((NavalManager)e.getManager()).getGame().getTurnManager().findPlayer(e); if(move.getHandle()==21) missile.setVisible(false); } } private void initItems(){ PText shop = new PText(this); score = new PText(this); PButton hull = new PButton(this); missile = new PButton(this); PButton range = new PButton(this); PButton antimissile = new PButton(this); PButton repair = new PButton(this); PText stock = new PText(this); PText price = new PText(this); PText hprice = new PText(this); PText mprice = new PText(this); PText rprice = new PText(this); PText amprice = new PText(this); PText reprice = new PText(this); shop.setFont(new Font("Verdana Bold", 1, 18)); score.setFont(new Font("Verdana Bold", 1, 12)); stock.setFont(new Font("Verdana Bold", 1, 12)); price.setFont(new Font("Verdana Bold", 1, 12)); shop.setText("Ship Shop"); score.setText("Your Current Score is "+((NavalManager)move.getManager()).getGame().getTurnManager().getTurn().getPlayer().getScore()); hull.setText("Hull Upgrade"); missile.setText("Missile X5"); range.setText("Increase Range"); antimissile.setText("Anti-Missile"); repair.setText("Repair Ship"); stock.setText("Stock"); price.setText("Price"); hprice.setText("200"); mprice.setText("250"); rprice.setText("700"); amprice.setText("350"); reprice.setText("300"); shop.setLoc(200, 35); score.setLoc(5, 230); hull.setLoc(20, 85); missile.setLoc(20, 115); range.setLoc(20, 145); antimissile.setLoc(20, 175); repair.setLoc(20, 205); stock.setLoc(60, 60); price.setLoc(390, 60); hprice.setLoc(390, 85); mprice.setLoc(390, 115); rprice.setLoc(390, 145); amprice.setLoc(390, 175); reprice.setLoc(390, 205); addControl(shop); addControl(score); addControl(hull); addControl(missile); addControl(range); addControl(antimissile); addControl(repair); addControl(price); addControl(stock); addControl(hprice); addControl(mprice); addControl(rprice); addControl(amprice); addControl(reprice); hull.addMouseListener(new PMouseEvent(){ public void mouseDown(int x, int y, int buttonid) { hardenHullAction(); RoketUtils.submitAchievement(RoketGamerData.ACHIEVEMENT_THRIFT_SHOP); } }); missile.addMouseListener(new PMouseEvent(){ public void mouseDown(int x, int y, int buttonid) { increaseMissileAction(); RoketUtils.submitAchievement(RoketGamerData.ACHIEVEMENT_THRIFT_SHOP); } }); range.addMouseListener(new PMouseEvent(){ public void mouseDown(int x, int y, int buttonid) { increaseRangeAction(); RoketUtils.submitAchievement(RoketGamerData.ACHIEVEMENT_THRIFT_SHOP); } }); antimissile.addMouseListener(new PMouseEvent(){ public void mouseDown(int x, int y, int buttonid) { deflectMisileAction(); RoketUtils.submitAchievement(RoketGamerData.ACHIEVEMENT_THRIFT_SHOP); } }); repair.addMouseListener(new PMouseEvent(){ public void mouseDown(int x, int y, int buttonid) { repairAction(); RoketUtils.submitAchievement(RoketGamerData.ACHIEVEMENT_THRIFT_SHOP); } }); } public void update(){ score.setText("Your Current Score is "+((NavalManager)move.getManager()).getGame().getTurnManager().getTurn().getPlayer().getScore()); } private void hardenHullAction(){ if(current!=null && move!=null){ if(current.getScore()>=200){ current.subtractscore(200); NavalBattle.getGameState().addPointsSpent(200); move.hardenHull(); } update(); } } private void increaseMissileAction(){ if(current!=null && move!=null){ if(current.getScore()>=250){ current.subtractscore(250); NavalBattle.getGameState().addPointsSpent(250); move.increaseMissile(); } update(); } } private void deflectMisileAction(){ if(current!=null && move!=null){ if(current.getScore()>=350){ current.subtractscore(350); NavalBattle.getGameState().addPointsSpent(350); move.deflectMissile(); } update(); } } private void increaseRangeAction(){ if(current!=null && move!=null){ if(current.getScore()>=700 && move.rangeLimit>0){ current.subtractscore(700); NavalBattle.getGameState().addPointsSpent(700); move.increaseRange(); } update(); } } private void repairAction(){ if(current!=null && move!=null){ if(current.getScore()>=300){ current.subtractscore(300); NavalBattle.getGameState().addPointsSpent(300); move.repair(); } update(); } } }