added so player can winn
This commit is contained in:
parent
92e08382a8
commit
556e2f4866
13 changed files with 126 additions and 9 deletions
BIN
src/data/defeat.png
Normal file
BIN
src/data/defeat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
BIN
src/data/victory.png
Normal file
BIN
src/data/victory.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
|
|
@ -182,7 +182,7 @@ public class LWJGLGameWindow {
|
|||
GameStateManager.getInstance().update();
|
||||
mainUpdate();
|
||||
mainRender();
|
||||
//Display.sync(fps);
|
||||
Display.sync(fps);
|
||||
//Display.sync2(fps);
|
||||
//Display.sync3(fps);
|
||||
}
|
||||
|
|
|
|||
61
src/ei/game/gamestate/EndGameState.java
Normal file
61
src/ei/game/gamestate/EndGameState.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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()){
|
||||
|
|
|
|||
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue