Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge remote-tracking branch 'origin/Stat-Gui'
  • Loading branch information
ssl10003 committed Apr 27, 2015
2 parents 217a652 + 456e9cf commit e9dddeb
Show file tree
Hide file tree
Showing 11 changed files with 183 additions and 75 deletions.
14 changes: 4 additions & 10 deletions src/Main.java
@@ -1,5 +1,4 @@
import java.awt.*;

import javax.swing.*;

public class Main extends JFrame{
Expand All @@ -16,9 +15,10 @@ public class Main extends JFrame{
container.setLayout(new BorderLayout(10,10));
MockGui mg = new MockGui(640,640,32, NUM, nodes);
StatGui sg= new StatGui(0,0);

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

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

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

map.createMinion(MinionTypes.BASIC);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
map.createMinion(MinionTypes.BASIC);
mg.step();

}

private static void setupDefaultNodes()
Expand Down
76 changes: 53 additions & 23 deletions src/MockGui.java
Expand Up @@ -60,6 +60,10 @@ public class MockGui extends JPanel{
map.getStatGui().updateHealth();
map.getStatGui().updateMoney();
map.getStatGui().updateNumTowers();
map.getStatGui().updateBasicSellLabel();
map.getStatGui().updateAOESellLabel();
map.getStatGui().updateAOEUpgradeLabel();
map.getStatGui().updateBasicUpgradeLabel();
map.getMF().assignAllDamage();

if (i > 63) {
Expand Down Expand Up @@ -199,20 +203,29 @@ public class MockGui extends JPanel{
int i = 0;
while (i < TF.getNum()) {
int[] local = hash(TF.getTowerArray()[i].getTowerXlocation(), TF.getTowerArray()[i].getTowerYlocation());
drawBasicTower(TF.getTowerArray()[i], local[0], local[1], g);
drawBasicTower(TF.getTowerArray()[i], local[0], local[1], g);
i++;
}
}

public void drawBasicTower(TowerMock tm, int x, int y, Graphics g){
//g.setColor(new Color(24,24,24));
//g.fillRect(x, y, 32, 32);
public void drawBasicTower(TowerMock tm, int x, int y, Graphics g) {

g.drawImage(tm.getSprite(),x , y, null);


}

public void drawBasicAttack(int x, int y, Graphics g){
g.setColor(Color.yellow);
public void drawBasicAttack(int x, int y, int level, Graphics g){
if(level == 1){
g.setColor(Color.YELLOW);
}
else if(level == 2){
g.setColor(Color.ORANGE);
}
else if(level ==3){
g.setColor(Color.RED);
}

g.fillRoundRect(x, y, 7, 7, 7, 7);
}

Expand All @@ -226,27 +239,35 @@ public class MockGui extends JPanel{
int halfDotY = (((TF.getTowerArray()[i]._ylocation * 32) + 15)+ (TF.getTowerArray()[i].currentTarget.getY() + 15))/2;
int minionDotX = TF.getTowerArray()[i].currentTarget.getX() + 15;
int minionDotY = TF.getTowerArray()[i].currentTarget.getY()+15;
drawBasicAttack(towerDotX,towerDotY, g);
drawBasicAttack((towerDotX + halfDotX)/2, (towerDotY + halfDotY)/2, g);
drawBasicAttack(halfDotX, halfDotY, g);
drawBasicAttack((halfDotX + minionDotX)/2, (halfDotY + minionDotY)/2, g);
drawBasicAttack(minionDotX, minionDotY, g);
drawBasicAttack(towerDotX,towerDotY, TF.getTowerArray()[i].getLevel(), g);
drawBasicAttack((towerDotX + halfDotX)/2, (towerDotY + halfDotY)/2, TF.getTowerArray()[i].getLevel(), g);
drawBasicAttack(halfDotX, halfDotY, TF.getTowerArray()[i].getLevel(), g);
drawBasicAttack((halfDotX + minionDotX)/2, (halfDotY + minionDotY)/2, TF.getTowerArray()[i].getLevel(), g);
drawBasicAttack(minionDotX, minionDotY, TF.getTowerArray()[i].getLevel(), 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);
g.drawOval(x-60, y-60, 120, 120);
public void drawAOEAttack(int x, int y, int range, int level, Graphics g){
if(level == 1){
g.setColor(Color.BLUE);
}
else if(level == 2){
g.setColor(Color.MAGENTA);
}
else if(level ==3){
g.setColor(Color.CYAN);
}
g.drawOval((int)(x - ( range*1.8)/2),(int)( y - ( range*1.8)/2),(int)( range*1.8), (int)( range*1.8));
g.drawOval((int)(x - ( range*1.6)/2),(int)( y - ( range*1.6)/2),(int)( range*1.6), (int)( range*1.6));
g.drawOval((int)(x - ( range*1.4)/2),(int)( y - ( range*1.4)/2),(int)( range*1.4), (int)( range*1.4));
}

public void drawAllAOEAttacks(TowerFactory TF, Graphics g){
for(int i = 1; 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,TF.getTowerArray()[i].getRange(), g);
drawAOEAttack((TF.getTowerArray()[i]._xlocation * 32) + 15, (TF.getTowerArray()[i]._ylocation *32) + 15,TF.getTowerArray()[i].getRange(), TF.getTowerArray()[i].getLevel(), g);

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

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

for(int i=1; i<map.getTF().quantity; i++){
if( (map.getTF().getTowerArray()[i].getTowerXlocation() == local[0]) && (map.getTF().getTowerArray()[i].getTowerYlocation() == local[1])){
//map.getTF().getTowerArray()[i]
//TODO //how to destroy tower?
map.getStatGui().payDay(map.getTF().getTowerArray()[i]._sellCost);
}
}
}
//upgrade tower click check
if(map.getStatGui().gettowerPlacerVar() == 4){

for(int i=1; i<map.getTF().quantity; i++){
if(map.getStatGui().canAfford(map.getTF().getTowerArray()[i]._upgradecost)){
if( (map.getTF().getTowerArray()[i].getTowerXlocation() == local[0]) && (map.getTF().getTowerArray()[i].getTowerYlocation() == local[1])){
map.getTF().getTowerArray()[i].upgrade();
map.getStatGui().spendMoney(map.getTF().getTowerArray()[i].getUpgradeCost());
}
}
}
}

}


}

Expand Down
79 changes: 58 additions & 21 deletions src/StatGui.java
Expand Up @@ -16,7 +16,7 @@ public class StatGui extends JPanel implements ActionListener{
private MapTowerDefense map;
private int maxHealth = 20;
private int playermoney = 1000;
JLabel hpLabel, moneyLabel, towersnumLabel;
JLabel hpLabel, moneyLabel, towersnumLabel, sellLabelBasic, sellLabelAOE, upgradeLabelBasic, upgradeLabelAOE;
JButton buttonAOETower, buttonBasicTower, buttonSellTower, buttonUpgradeTower;
public int towerPlacerVar = 1; //1:Basic, 2:AOE, 3:Sell, 4:Upgrade

Expand Down Expand Up @@ -55,34 +55,30 @@ public class StatGui extends JPanel implements ActionListener{
}

public void setup(){
hpLabel = new JLabel();
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, 20));
moneyLabel.setForeground(Color.BLUE);
this.add(moneyLabel);

towersnumLabel = new JLabel();
towersnumLabel.setFont(new Font("Serif", Font.BOLD, 20));
towersnumLabel.setForeground(Color.BLUE);
this.add(towersnumLabel);
ImageIcon iconBasicTower = new ImageIcon("src/resources/images/Basic Tower LVL1.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 iconAOE = new ImageIcon("src/resources/images/AOE Tower.png", "AOE tower sprite");
ImageIcon iconAOE = new ImageIcon("src/resources/images/AOE Tower LVL1.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);
sellLabelBasic = new JLabel();
sellLabelBasic.setFont(new Font("Serif", Font.BOLD, 12));
sellLabelBasic.setForeground(Color.BLACK);
this.add(sellLabelBasic);

sellLabelAOE = new JLabel();
sellLabelAOE.setFont(new Font("Serif", Font.BOLD, 12));
sellLabelAOE.setForeground(Color.BLACK);
this.add(sellLabelAOE);

ImageIcon iconSellTower = new ImageIcon("src/resources/images/Sell Button.png", "Sell tower sprite");
buttonSellTower = new JButton("Sell Tower" , iconSellTower);
Expand All @@ -91,13 +87,38 @@ public class StatGui extends JPanel implements ActionListener{
buttonSellTower.addActionListener(this);
this.add(buttonSellTower);

upgradeLabelBasic = new JLabel();
upgradeLabelBasic.setFont(new Font("Serif", Font.BOLD, 12));
upgradeLabelBasic.setForeground(Color.BLACK);
this.add(upgradeLabelBasic);

upgradeLabelAOE = new JLabel();
upgradeLabelAOE.setFont(new Font("Serif", Font.BOLD, 12));
upgradeLabelAOE.setForeground(Color.BLACK);
this.add(upgradeLabelAOE);

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);

hpLabel = new JLabel();
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, 20));
moneyLabel.setForeground(Color.BLUE);
this.add(moneyLabel);

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


}

Expand Down Expand Up @@ -141,5 +162,21 @@ public class StatGui extends JPanel implements ActionListener{
towersnumLabel.setText("[# of Towers]: " + map.TF.quantity);
}

public void updateBasicSellLabel(){
sellLabelBasic.setText("Basic Tower Sell Value: $" + TowerTypes.BASIC.getSellcost() + " x LVL");
}

public void updateAOESellLabel(){
sellLabelAOE.setText("AOE Tower Sell Value: $" + TowerTypes.AOE.getSellcost() + " x LVL");
}

public void updateBasicUpgradeLabel(){
upgradeLabelBasic.setText("Upgrade Basic Tower Cost: $" + TowerTypes.BASIC.getBuycost() + " x LVL");
}

public void updateAOEUpgradeLabel(){
upgradeLabelAOE.setText("Upgrade AOE Tower Cost: $" + TowerTypes.AOE.getBuycost() + " x LVL");
}


}

0 comments on commit e9dddeb

Please sign in to comment.