Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
selling and upgrading functionality in progress
  • Loading branch information
ssl10003 committed Apr 26, 2015
1 parent f99bf87 commit 3b17dc2
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 59 deletions.
12 changes: 3 additions & 9 deletions src/Main.java
Expand Up @@ -12,17 +12,12 @@ public class Main extends JFrame{
setupDefaultNodes();

JPanel container = new JPanel();
//container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS));
container.setLayout(new BorderLayout(10,10));
MockGui mg = new MockGui(640,640,32, NUM, nodes);
StatGui sg= new StatGui(0,0);
//sg.setPreferredSize(new Dimension(1, 0)); //this keeps statgui from overlapping mockgui

//container.add(mg);
//container.add(sg);
container.add(mg, BorderLayout.CENTER);
container.add(sg, BorderLayout.SOUTH);

container.add(sg, BorderLayout.LINE_END);
sg.setPreferredSize(new Dimension(200,600));

MapTowerDefense map = new MapTowerDefense(100, NUM, nodes, mg, sg);
mg.setMap(map);
Expand All @@ -31,12 +26,11 @@ public class Main extends JFrame{

frame.add(container);
frame.pack();
frame.setSize(650,720);
frame.setSize(860,670);
frame.setVisible(true);

map.createMinion(MinionTypes.BASIC);
mg.step();

}

private static void setupDefaultNodes()
Expand Down
17 changes: 15 additions & 2 deletions src/MockGui.java
Expand Up @@ -236,7 +236,7 @@ public class MockGui extends JPanel{

}

public void drawAOEAttack(int x, int y, Graphics g){
public void drawAOEAttack(int x, int y, int range, Graphics g){
g.setColor(Color.MAGENTA);
g.drawOval(x-70, y-70, 140, 140);
g.drawOval(x-65, y-65, 130, 130);
Expand All @@ -246,7 +246,7 @@ public class MockGui extends JPanel{
public void drawAllAOEAttacks(TowerFactory TF, Graphics g){
for(int i = 0; i < TF.getNum(); i++){
if( TF.getTowerArray()[i].basicDealDamage() && TF.getTowerArray()[i].type == TowerTypes.AOE){
drawAOEAttack((TF.getTowerArray()[i]._xlocation * 32) + 15, (TF.getTowerArray()[i]._ylocation *32) + 15, g);
drawAOEAttack((TF.getTowerArray()[i]._xlocation * 32) + 15, (TF.getTowerArray()[i]._ylocation *32) + 15,TF.getTowerArray()[i].getRange(), g);

}
}
Expand All @@ -268,6 +268,19 @@ public class MockGui extends JPanel{
else if(map.getStatGui().gettowerPlacerVar() == 1){
map.getTF().createBasicTower(local[0], local[1], TowerTypes.BASIC);
}
//sell tower
if(map.getStatGui().gettowerPlacerVar() == 3){

for(int i=1; i<map.getTF().getTowerArray().length; i++){

if( (map.getTF().getTowerArray()[i].getTowerXlocation() == local[0]) && (map.getTF().getTowerArray()[i].getTowerYlocation() == local[1])){
//map.getTF().getTowerArray()[i]
map.getStatGui().payDay(map.getTF().getTowerArray()[i]._sellCost);
}

}
}

}

}
Expand Down
64 changes: 45 additions & 19 deletions src/StatGui.java
Expand Up @@ -17,8 +17,8 @@ public class StatGui extends JPanel implements ActionListener{
private int maxHealth = 20;
private int playermoney = 1000;
JLabel hpLabel, moneyLabel, towersnumLabel;
JButton AOETowerbutton, BasicTowerbutton;
public int towerPlacerVar = 1; //1: Basic, 2:AOE
JButton buttonAOETower, buttonBasicTower, buttonSellTower, buttonUpgradeTower;
public int towerPlacerVar = 1; //1:Basic, 2:AOE, 3:Sell, 4:Upgrade

public StatGui (int x, int y) {
X = x;
Expand Down Expand Up @@ -56,47 +56,73 @@ public class StatGui extends JPanel implements ActionListener{

public void setup(){
hpLabel = new JLabel();
hpLabel.setFont(new Font("Serif", Font.BOLD, 15));
hpLabel.setFont(new Font("Serif", Font.BOLD, 20));
hpLabel.setForeground(Color.BLUE);
this.add(hpLabel);

moneyLabel = new JLabel();
moneyLabel.setFont(new Font("Serif", Font.BOLD, 15));
moneyLabel.setFont(new Font("Serif", Font.BOLD, 20));
moneyLabel.setForeground(Color.BLUE);
this.add(moneyLabel);

towersnumLabel = new JLabel();
towersnumLabel.setFont(new Font("Serif", Font.BOLD, 15));
towersnumLabel.setFont(new Font("Serif", Font.BOLD, 20));
towersnumLabel.setForeground(Color.BLUE);
this.add(towersnumLabel);

ImageIcon AOEicon = new ImageIcon("src/resources/images/AOE Tower.png", "AOE tower sprite");
AOETowerbutton = new JButton("AOE Tower", AOEicon);
AOETowerbutton.setActionCommand("select aoe tower");
AOETowerbutton.setEnabled(true);
AOETowerbutton.addActionListener(this);
this.add(AOETowerbutton);
ImageIcon iconAOE = new ImageIcon("src/resources/images/AOE Tower.png", "AOE tower sprite");
buttonAOETower = new JButton("AOE Tower ($" + TowerTypes.AOE.getBuycost() + ")", iconAOE);
buttonAOETower.setActionCommand("select aoe tower");
buttonAOETower.setEnabled(true);
buttonAOETower.addActionListener(this);
this.add(buttonAOETower);

ImageIcon iconBasicTower = new ImageIcon("src/resources/images/Basic Tower.png", "Basic tower sprite");
buttonBasicTower = new JButton("Basic Tower ($" + TowerTypes.BASIC.getBuycost() + ")", iconBasicTower);
buttonBasicTower.setActionCommand("select basic tower");
buttonBasicTower.setEnabled(true);
buttonBasicTower.addActionListener(this);
this.add(buttonBasicTower);

ImageIcon iconSellTower = new ImageIcon("src/resources/images/Sell Button.png", "Sell tower sprite");
buttonSellTower = new JButton("Sell Tower" , iconSellTower);
buttonSellTower.setActionCommand("select sell");
buttonSellTower.setEnabled(true);
buttonSellTower.addActionListener(this);
this.add(buttonSellTower);

ImageIcon iconUpgradeTower = new ImageIcon("src/resources/images/Upgrade Button.png", "Sell tower sprite");
buttonUpgradeTower = new JButton("Upgrade Tower" , iconUpgradeTower);
buttonUpgradeTower.setActionCommand("select upgrade");
buttonUpgradeTower.setEnabled(true);
buttonUpgradeTower.addActionListener(this);
this.add(buttonUpgradeTower);

ImageIcon BasicTowericon = new ImageIcon("src/resources/images/Basic Tower.png", "Basic tower sprite");
BasicTowerbutton = new JButton("Basic Tower", BasicTowericon);
BasicTowerbutton.setActionCommand("select basic tower");
BasicTowerbutton.setEnabled(true);
BasicTowerbutton.addActionListener(this);
this.add(BasicTowerbutton);

}

public void actionPerformed(ActionEvent e){
if("select aoe tower".equals(e.getActionCommand())){
AOETowerbutton.setEnabled(true);
buttonAOETower.setEnabled(true);
towerPlacerVar = 2;
System.out.println("AOE tower selected!");
}
else if("select basic tower".equals(e.getActionCommand())){
BasicTowerbutton.setEnabled(true);
buttonBasicTower.setEnabled(true);
towerPlacerVar = 1;
System.out.println("Basic tower selected!");
}
else if("select sell".equals(e.getActionCommand())){
buttonSellTower.setEnabled(true);
towerPlacerVar = 3;
System.out.println("Sell selected!");
}
else if("select upgrade".equals(e.getActionCommand())){
buttonUpgradeTower.setEnabled(true);
towerPlacerVar = 4;
System.out.println("Upgrade selected!");
}

}

public int gettowerPlacerVar(){
Expand Down
38 changes: 14 additions & 24 deletions src/TowerMock.java
@@ -1,11 +1,8 @@
import java.awt.image.BufferedImage;

public class TowerMock{
public int _xlocation, _ylocation, _sellCost, _buyCost, _upgradecost, _towerid;
public int _xlocation, _ylocation, _sellCost, _buyCost, _range, _power, _upgradecost, _towerid;
public int _level = 1;
public int _range = 96;
public int _power = 1;
public double _firerate = 1.0;
private BufferedImage _sprite;
public TowerTypes type;
public int health; // (FOR NEXUS ONLY)
Expand Down Expand Up @@ -40,6 +37,8 @@ public class TowerMock{
this.type=type;
this._buyCost=type.getBuycost();
this._sellCost= type.getSellcost();
this._power = type.getPower();
this._range = type.getRange();
this._sprite=type.getSprite();

}
Expand All @@ -59,7 +58,7 @@ public class TowerMock{

public boolean basicDealDamage() {
if (findMinion()) {
currentTarget.minionTakeHit(1);
currentTarget.minionTakeHit(_power);
return true;
} else {
return false;
Expand Down Expand Up @@ -132,41 +131,32 @@ public class TowerMock{
return _ylocation;
}

public int getRange() {
return _range;
}

public double getFireRate() {
return _firerate;
}

public int getPower() {
return _power;
}

//get overall resale value of towers, at half of purchase cost
public int getSellValue() {
return (int) (_range + (_power * 10)+ (_firerate * 10))/2;
return _sellCost;
}

//get cost this tower was purchased for
public int getCost() {
_buyCost = (int) (_range + ( _power * 10) + (_firerate * 10));
public int getBuyCost() {
return _buyCost;
}

public int getRange(){
return _range;
}

//get upgrade cost to upgrade tower, double the price of last cost
public int getupgradeCost() {
public int getUpgradeCost() {
_upgradecost = _buyCost * 2;
return _upgradecost;
}

public void upgrade(){
_buyCost = _upgradecost;
_level = _level + 1;
this._range = this._range + 1;
this._firerate= this._firerate + 0.3;
this._power = this._power + 1;
this._power++;
this._range += 30;
_level++;
}

public int getLevel() {
Expand Down
20 changes: 15 additions & 5 deletions src/TowerTypes.java
Expand Up @@ -6,17 +6,19 @@ import javax.imageio.ImageIO;

public enum TowerTypes {
//NAME (Cost to buy, Cost to sell, "sprite dir")
NEXUS (1, 1, "Nexus Tower.png"),
BASIC (50, 25, "Basic Tower.png"),
AOE (100, 50, "AOE Tower.png");
NEXUS (1, 1, 0, 0, "Nexus Tower.png"),
BASIC (50, 25, 1, 96, "Basic Tower.png"),
AOE (100, 50, 1, 96, "AOE Tower.png");

private int _buycost, _sellcost;
private int _buycost, _sellcost, _power, _range;
private BufferedImage sprite;
private static final String SPRITE_FILE_DIR = "src/resources/images/";

TowerTypes(int buycost, int sellcost, String spriteFileName) {
TowerTypes(int buycost, int sellcost, int power, int range, String spriteFileName) {
this._buycost = buycost;
this._sellcost = sellcost;
this._power = power;
this._range = range;

try {
this.sprite = ImageIO.read(new File(SPRITE_FILE_DIR.concat(spriteFileName)));
Expand All @@ -33,6 +35,14 @@ public enum TowerTypes {
return _sellcost;
}

public int getPower(){
return _power;
}

public int getRange(){
return _range;
}

public String getName() {
return this.toString();
}
Expand Down
Binary file added src/resources/images/Sell Button.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/resources/images/Upgrade Button.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3b17dc2

Please sign in to comment.