added so player can winn

This commit is contained in:
Ziver Koc 2007-05-07 11:33:49 +00:00
parent 92e08382a8
commit 556e2f4866
13 changed files with 126 additions and 9 deletions

BIN
src/data/defeat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
src/data/victory.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View file

@ -182,7 +182,7 @@ public class LWJGLGameWindow {
GameStateManager.getInstance().update();
mainUpdate();
mainRender();
//Display.sync(fps);
Display.sync(fps);
//Display.sync2(fps);
//Display.sync3(fps);
}

View file

@ -0,0 +1,61 @@
package ei.game.gamestate;
import ei.engine.LWJGLGameWindow;
import ei.engine.effects.Fade;
import ei.engine.scene.Sprite;
import ei.engine.state.GameState;
import ei.engine.state.GameStateManager;
public class EndGameState extends GameState{
public static final int VICTORY = 0;
public static final int DEFEAT = 1;
private Fade fade;
private int status;
private int timer;
public EndGameState(String name, int status){
super(name);
this.status = status;
}
@Override
public void init() {
fade = new Fade("EGameStateFade");
fade.fadeOut(false);
switch(status){
case VICTORY:
Sprite v = new Sprite("Victory","data/victory.png");
fade.setEntity(v);
break;
case DEFEAT:
Sprite d = new Sprite("Defeat","data/defeat.png");
fade.setEntity(d);
break;
}
}
@Override
public void render() {
fade.render();
}
@Override
public void update() {
fade.update();
if(fade.isDone() && timer <= 120){
timer++;
}
else if(fade.isDone() && timer > 120){
GameStateManager.getInstance().removeState(this);
if(GameStateManager.getInstance().getState("MenuState") != null){
GameStateManager.getInstance().removeStateByName("InGameState");
GameStateManager.getInstance().setActive("MenuState");
}
else{
LWJGLGameWindow.exit();
}
}
}
}

View file

@ -40,9 +40,19 @@ public class AiPlayer extends Player{
getUnit(i).move(false, getUnit(i).getPos().getX()-2, getUnit(i).getPos().getY()-2);
}
}
}
}
}
@Override
public boolean defeated() {
if(cc.getLife() <= 0){
return true;
}
return false;
}
@Override
public void endGame(int s) {
}
}

View file

@ -14,5 +14,15 @@ public class GaiaPlayer extends Player{
public Building getCC() {
return null;
}
@Override
public boolean defeated() {
return false;
}
@Override
public void endGame(int s) {
}
}

View file

@ -1,5 +1,7 @@
package ei.game.player;
import ei.engine.state.GameStateManager;
import ei.game.gamestate.EndGameState;
import ei.game.scene.buildings.Building;
import ei.game.scene.buildings.CommandCenter;
@ -16,4 +18,18 @@ public class HumanPlayer extends Player{
return cc;
}
@Override
public boolean defeated() {
if(cc.getLife() <= 0){
return true;
}
return false;
}
@Override
public void endGame(int s) {
GameStateManager.getInstance().addState(new EndGameState("EndGameState",s));
GameStateManager.getInstance().setActive("EndGameState");
}
}

View file

@ -57,5 +57,16 @@ public abstract class Player {
}
}
public void kilAll(){
for(int i=0; i<units.size() ;i++){
units.get(i).destroyed();
units.get(i).remove();
}
}
public abstract Building getCC();
public abstract boolean defeated();
public abstract void endGame(int status);
}

View file

@ -64,6 +64,7 @@ public class PlayerHandler {
}
public void update(){
//****** ECONOMY **************
// sends the funds to the players
fundsTimmer++;
if(fundsTimmer >= fundsDelay){
@ -79,9 +80,15 @@ public class PlayerHandler {
}
fundsTimmer = 0;
}
//*******************************
// updates the players
for(int i=0; i<players.size() ;i++){
players.get(i).update();
if(players.get(i).defeated()){
players.get(i).kilAll();
}
else{
players.get(i).update();
}
}
}

View file

@ -22,6 +22,7 @@ public abstract class GameEntity{
public int getLife(){
return life;
}
public abstract boolean isTerrain();
public abstract Vector2i getPos();
@ -93,6 +94,7 @@ public abstract class GameEntity{
public void move(boolean play, int x, int y) {
}
public abstract void remove();
public abstract void update();

View file

@ -150,7 +150,7 @@ public abstract class Building extends GameEntity{
* Removes this building from the game.
*
*/
public void removeBuilding(){
public void remove(){
unitNode.remove(getSprite());
getPlayer().removeUnit(this);
InGameState.getMap().removeBuildPos(oldPos.getX(), oldPos.getY(), this.size);
@ -162,7 +162,7 @@ public abstract class Building extends GameEntity{
public void update() {
if(getLife() <= 0) {
destroyed();
removeBuilding();
remove();
}
if(!buildQueue.isEmpty() && getPlayer().getKredits() >= buildQueue.peek().getPrice()){

View file

@ -16,7 +16,7 @@ public abstract class MapEntity extends Unit{
public void update() {
if(getLife()<=0) {
removeUnit();
remove();
}
}
public void move(boolean play, int x, int y){

View file

@ -222,7 +222,7 @@ public abstract class Unit extends GameEntity{
public abstract void init();
public void removeUnit(){
public void remove(){
unitNode.remove(getSprite());
getPlayer().removeUnit(this);
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
@ -235,7 +235,7 @@ public abstract class Unit extends GameEntity{
weponTimer++;
if(getLife()<=0) {
destroyed();
removeUnit();
remove();
}
else if(moveTo != null) {
Vector2i moveVect = new Vector2i((int)moveTo.getX(),(int)moveTo.getY());