diff --git a/README.md b/README.md new file mode 100644 index 0000000..23d1a0c --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +TowerDefense +============ + +Play the most exiting thing since sliced bread! Introducing the best Tower Defense gamed you've ever played. Does your tower defense game have characteres such as Sonic, the Depsicable Me minion, and a Speedy Gonzalez? I didn't think so. Does it have some of the best tower models rendered from industry-level computer graphics, that is java.awt.swing? Nope. Well try your hand today and use some of the best tower-power available. See if you can overcome the hordes of minions itching to knock down your Nexus! + +From the creative talents of CSE 2102 students +Mock Tower Defense Game (R) All Rights Reserved. +Unauthorized Duplication Is A Violation Of Applicable Laws and punishable with at least 1 hour of playing this game. + diff --git a/src/MockGui.java b/src/MockGui.java index 5844a3c..5739418 100644 --- a/src/MockGui.java +++ b/src/MockGui.java @@ -15,7 +15,9 @@ import java.io.File; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; + import javax.imageio.ImageIO; + import java.util.Random; @@ -79,7 +81,11 @@ public class MockGui extends JPanel{ drawAllTowers(map.getTF(), g); drawAllMinions(map.getMF(), g); drawPlayerHealth(g); + drawAllBasicAttacks(map.getTF(),g); + drawAllAOEAttacks(map.getTF(),g); + } + public void drawGrid(int x, int y, int gridSize, Graphics g) { g.setColor(new Color(99, 209, 62)); g.fillRect(0, 0, 32*20, 32*20); @@ -203,8 +209,47 @@ public class MockGui extends JPanel{ //g.fillRect(x, y, 32, 32); g.drawImage(tm.getSprite(),x , y, null); - //tm.getTowerXlocation() - //tm.getTowerYlocation() + } + + public void drawBasicAttack(int x, int y, Graphics g){ + g.setColor(Color.yellow); + g.fillRoundRect(x, y, 7, 7, 7, 7); + } + + //if Basic tower is attacking, draw dots to where minion is + public void drawAllBasicAttacks(TowerFactory TF, Graphics g){ + for(int i = 0; i < TF.getNum(); i++){ + if(TF.getTowerArray()[i].basicDealDamage() && TF.getTowerArray()[i].type == TowerTypes.BASIC){ + int towerDotX = (TF.getTowerArray()[i]._xlocation * 32) + 15; + int towerDotY = (TF.getTowerArray()[i]._ylocation *32) + 15; + int halfDotX = (((TF.getTowerArray()[i]._xlocation * 32) + 15)+ (TF.getTowerArray()[i].currentTarget.getX() + 15))/2; + 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); + } + } + + } + + public void drawAOEAttack(int x, int y, 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 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); + + } + } } diff --git a/src/TowerTypes.java b/src/TowerTypes.java index 4b0a98f..c2985d0 100644 --- a/src/TowerTypes.java +++ b/src/TowerTypes.java @@ -37,6 +37,10 @@ public enum TowerTypes { return this.toString(); } + public TowerTypes getTowerType(){ + return this; + } + public BufferedImage getSprite() { return sprite;