From 92e08382a8ee66a4bcf33eda34b89f0bf10eef56 Mon Sep 17 00:00:00 2001 From: Jesper Lundin Date: Mon, 7 May 2007 09:52:08 +0000 Subject: [PATCH] yo --- src/ei/engine/LWJGLGameWindow.java | 2 +- src/ei/game/player/AiPlayer.java | 28 +++++++++++++ src/ei/game/scene/GameEntity.java | 5 +++ src/ei/game/scene/buildings/Building.java | 10 +++++ .../game/scene/buildings/CommandCenter.java | 1 + src/ei/game/scene/map/MapEntity.java | 3 ++ src/ei/game/scene/units/Bomber.java | 1 + src/ei/game/scene/units/Unit.java | 42 ++++++++++++++++++- src/ei/game/scene/weapons/BomberWeapon.java | 4 +- src/ei/game/scene/weapons/Weapon.java | 3 ++ 10 files changed, 95 insertions(+), 4 deletions(-) diff --git a/src/ei/engine/LWJGLGameWindow.java b/src/ei/engine/LWJGLGameWindow.java index bba4422..f5742ca 100644 --- a/src/ei/engine/LWJGLGameWindow.java +++ b/src/ei/engine/LWJGLGameWindow.java @@ -182,7 +182,7 @@ public class LWJGLGameWindow { GameStateManager.getInstance().update(); mainUpdate(); mainRender(); - Display.sync(fps); + //Display.sync(fps); //Display.sync2(fps); //Display.sync3(fps); } diff --git a/src/ei/game/player/AiPlayer.java b/src/ei/game/player/AiPlayer.java index 227f979..12b4785 100644 --- a/src/ei/game/player/AiPlayer.java +++ b/src/ei/game/player/AiPlayer.java @@ -2,6 +2,9 @@ package ei.game.player; import ei.game.scene.buildings.Building; import ei.game.scene.buildings.CommandCenter; +import ei.game.scene.units.APU; +import ei.game.scene.units.Bomber; +import ei.game.scene.units.Tank; public class AiPlayer extends Player{ private CommandCenter cc; @@ -16,5 +19,30 @@ public class AiPlayer extends Player{ public Building getCC() { return cc; } + public void update() { + super.update(); + if(getKredits() >= 800 && cc.getBuildQueueSize()==0) { + int unitToBuild = (int)(Math.random()*2); + if(unitToBuild==0) { + cc.buildUnit(new APU(this)); + } + else if(unitToBuild==1) { + cc.buildUnit(new Tank(this)); + } + else if(unitToBuild==2) { + cc.buildUnit(new Bomber(this)); + } + } + if(unitCount()>=10) { + for(int i=0; i < unitCount(); i++) { + if(!getUnit(i).isAttacking()){ + + getUnit(i).move(false, getUnit(i).getPos().getX()-2, getUnit(i).getPos().getY()-2); + } + } + } + + } + } diff --git a/src/ei/game/scene/GameEntity.java b/src/ei/game/scene/GameEntity.java index ea736bc..50a843d 100644 --- a/src/ei/game/scene/GameEntity.java +++ b/src/ei/game/scene/GameEntity.java @@ -22,6 +22,11 @@ public abstract class GameEntity{ public int getLife(){ return life; } + public abstract boolean isTerrain(); + + public abstract Vector2i getPos(); + + public abstract boolean isAttacking(); /** diff --git a/src/ei/game/scene/buildings/Building.java b/src/ei/game/scene/buildings/Building.java index 99987c9..ccbb425 100644 --- a/src/ei/game/scene/buildings/Building.java +++ b/src/ei/game/scene/buildings/Building.java @@ -87,6 +87,9 @@ public abstract class Building extends GameEntity{ public Node getNode(){ return unitNode; } + public boolean isTerrain() { + return false; + } /** * Changes the pos of the unit in the map @@ -205,5 +208,12 @@ public abstract class Building extends GameEntity{ } public abstract Entity getGroundSprite(); + + public Vector2i getPos() { + return oldPos; + } + public boolean isAttacking() { + return false; + } } diff --git a/src/ei/game/scene/buildings/CommandCenter.java b/src/ei/game/scene/buildings/CommandCenter.java index e58131f..1343b83 100644 --- a/src/ei/game/scene/buildings/CommandCenter.java +++ b/src/ei/game/scene/buildings/CommandCenter.java @@ -81,4 +81,5 @@ public class CommandCenter extends Building{ public Entity getGroundSprite() { return ground; } + } diff --git a/src/ei/game/scene/map/MapEntity.java b/src/ei/game/scene/map/MapEntity.java index 73aa17f..1b2492b 100644 --- a/src/ei/game/scene/map/MapEntity.java +++ b/src/ei/game/scene/map/MapEntity.java @@ -23,6 +23,9 @@ public abstract class MapEntity extends Unit{ } public void attack(Vector2i target, boolean play) { } + public boolean isTerrain(){ + return true; + } protected void move(int x, int y, boolean b) {} diff --git a/src/ei/game/scene/units/Bomber.java b/src/ei/game/scene/units/Bomber.java index 00f6f86..d73b410 100644 --- a/src/ei/game/scene/units/Bomber.java +++ b/src/ei/game/scene/units/Bomber.java @@ -48,6 +48,7 @@ public class Bomber extends Unit{ getNode().add(sprite); setBuildTime(400); setPrice(800); + autoAttack(false); gunSound = new Sound("gunSound", "data/sounds/bomberweapon.wav"); moveSound = new Sound[2]; diff --git a/src/ei/game/scene/units/Unit.java b/src/ei/game/scene/units/Unit.java index 92f83f6..3120e49 100644 --- a/src/ei/game/scene/units/Unit.java +++ b/src/ei/game/scene/units/Unit.java @@ -36,9 +36,11 @@ public abstract class Unit extends GameEntity{ private int price; // The wepon reload timer private int weponTimer; + private int autoAttackTimer; // The path to travel private LinkedList path; private Vector2i target; + private boolean autoAttack; /** * Creates a empty unit @@ -50,6 +52,7 @@ public abstract class Unit extends GameEntity{ unitNode = new Node("UnitNode"); unitNode.setLocation(Map.getPixelByPos(pos.getX(), pos.getY())); setPos(pos.getX(), pos.getY()); + autoAttack = true; init(); } @@ -61,6 +64,7 @@ public abstract class Unit extends GameEntity{ public Unit(int l, Player p) { super(l, p); unitNode = new Node("UnitNode"); + autoAttack = true; init(); } @@ -107,7 +111,12 @@ public abstract class Unit extends GameEntity{ public Node getNode(){ return unitNode; } - + /** + * Returns the current pos of the unit + */ + public Vector2i getPos() { + return oldPos; + } /** * Changes the pos of the unit in the map * @@ -157,6 +166,12 @@ public abstract class Unit extends GameEntity{ public void setPrice(int price) { this.price = price; } + public boolean isAttacking() { + if(attack==null) { + return false; + } + return true; + } /** * Moving a unit to the given pos * @@ -188,6 +203,9 @@ public abstract class Unit extends GameEntity{ this.target = target; attack = InGameState.getMap().getPos(target.getX(),target.getY()); } + public void autoAttack(boolean auto) { + autoAttack = auto; + } public abstract Weapon getWeapon(Vector2f startPos); @@ -333,8 +351,30 @@ public abstract class Unit extends GameEntity{ else{ move(enamyPos.getX(),enamyPos.getY(), false); } + } + } + else if(autoAttack && (autoAttackTimer%50==0)) { + Weapon wep = getWeapon(Map.getPixelByPos(oldPos.getX(), oldPos.getY())); + for(int i=oldPos.getX()-(wep.getRange()/50); i<=oldPos.getX()+(wep.getRange()/50); i++ ) { + for(int j=oldPos.getY()-(wep.getRange()/50); j<=oldPos.getY()+(wep.getRange()/50); j++) { + //System.out.println("i :"+i+" j: "+j); + + if(InGameState.getMap().posExist(i, j)&& !InGameState.getMap().isPosEmpty(i, j) + && getPlayer()!=InGameState.getMap().getPos(i, j).getPlayer() && wep.onRange(Map.getPixelByPos(i, j)) + && InGameState.getMap().getPos(i, j).isTerrain()==false) { + //System.out.println("ziver is shit"); + attack(new Vector2i(i, j), false); + i = oldPos.getX()+(wep.getRange()/50)+1; + break; + } + } } } + autoAttackTimer++; + + } + public boolean isTerrain() { + return false; } public int getBuildTime(){ diff --git a/src/ei/game/scene/weapons/BomberWeapon.java b/src/ei/game/scene/weapons/BomberWeapon.java index d10fc6b..faa3ce6 100644 --- a/src/ei/game/scene/weapons/BomberWeapon.java +++ b/src/ei/game/scene/weapons/BomberWeapon.java @@ -38,7 +38,7 @@ public class BomberWeapon extends Weapon{ part.size=10; float colors[][][]= // Rainbow Of Colors { - {{0.0f,0.5f,1.0f},{0.0f,0.5f,1.0f}} + {{0.5f,0.5f,1.0f},{0.5f,0.5f,1.0f}} }; part.colors = colors; @@ -49,7 +49,7 @@ public class BomberWeapon extends Weapon{ if(!hit) { for(int i=position.getX()-1; i<=position.getX()+1; i++ ) { - for(int j=position.getY(); j<=position.getY()+2; j++) { + for(int j=position.getY()-1; j<=position.getY()+1; j++) { System.out.println("i :"+i+" j: "+j); if(InGameState.getMap().posExist(i, j)&& !InGameState.getMap().isPosEmpty(i, j)) { System.out.println("Damaged"); diff --git a/src/ei/game/scene/weapons/Weapon.java b/src/ei/game/scene/weapons/Weapon.java index 4a1d20f..5a7c0f1 100644 --- a/src/ei/game/scene/weapons/Weapon.java +++ b/src/ei/game/scene/weapons/Weapon.java @@ -62,6 +62,9 @@ public abstract class Weapon { public int getReload(){ return reload; } + public int getRange(){ + return range; + } /** * Launches the weapon type.