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();
|
GameStateManager.getInstance().update();
|
||||||
mainUpdate();
|
mainUpdate();
|
||||||
mainRender();
|
mainRender();
|
||||||
//Display.sync(fps);
|
Display.sync(fps);
|
||||||
//Display.sync2(fps);
|
//Display.sync2(fps);
|
||||||
//Display.sync3(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);
|
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() {
|
public Building getCC() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean defeated() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void endGame(int s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package ei.game.player;
|
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.Building;
|
||||||
import ei.game.scene.buildings.CommandCenter;
|
import ei.game.scene.buildings.CommandCenter;
|
||||||
|
|
||||||
|
|
@ -16,4 +18,18 @@ public class HumanPlayer extends Player{
|
||||||
return cc;
|
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 Building getCC();
|
||||||
|
|
||||||
|
public abstract boolean defeated();
|
||||||
|
|
||||||
|
public abstract void endGame(int status);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ public class PlayerHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
|
//****** ECONOMY **************
|
||||||
// sends the funds to the players
|
// sends the funds to the players
|
||||||
fundsTimmer++;
|
fundsTimmer++;
|
||||||
if(fundsTimmer >= fundsDelay){
|
if(fundsTimmer >= fundsDelay){
|
||||||
|
|
@ -79,9 +80,15 @@ public class PlayerHandler {
|
||||||
}
|
}
|
||||||
fundsTimmer = 0;
|
fundsTimmer = 0;
|
||||||
}
|
}
|
||||||
|
//*******************************
|
||||||
// updates the players
|
// updates the players
|
||||||
for(int i=0; i<players.size() ;i++){
|
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(){
|
public int getLife(){
|
||||||
return life;
|
return life;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract boolean isTerrain();
|
public abstract boolean isTerrain();
|
||||||
|
|
||||||
public abstract Vector2i getPos();
|
public abstract Vector2i getPos();
|
||||||
|
|
@ -93,6 +94,7 @@ public abstract class GameEntity{
|
||||||
public void move(boolean play, int x, int y) {
|
public void move(boolean play, int x, int y) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public abstract void remove();
|
||||||
|
|
||||||
public abstract void update();
|
public abstract void update();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@ public abstract class Building extends GameEntity{
|
||||||
* Removes this building from the game.
|
* Removes this building from the game.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public void removeBuilding(){
|
public void remove(){
|
||||||
unitNode.remove(getSprite());
|
unitNode.remove(getSprite());
|
||||||
getPlayer().removeUnit(this);
|
getPlayer().removeUnit(this);
|
||||||
InGameState.getMap().removeBuildPos(oldPos.getX(), oldPos.getY(), this.size);
|
InGameState.getMap().removeBuildPos(oldPos.getX(), oldPos.getY(), this.size);
|
||||||
|
|
@ -162,7 +162,7 @@ public abstract class Building extends GameEntity{
|
||||||
public void update() {
|
public void update() {
|
||||||
if(getLife() <= 0) {
|
if(getLife() <= 0) {
|
||||||
destroyed();
|
destroyed();
|
||||||
removeBuilding();
|
remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!buildQueue.isEmpty() && getPlayer().getKredits() >= buildQueue.peek().getPrice()){
|
if(!buildQueue.isEmpty() && getPlayer().getKredits() >= buildQueue.peek().getPrice()){
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ public abstract class MapEntity extends Unit{
|
||||||
|
|
||||||
public void update() {
|
public void update() {
|
||||||
if(getLife()<=0) {
|
if(getLife()<=0) {
|
||||||
removeUnit();
|
remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public void move(boolean play, int x, int y){
|
public void move(boolean play, int x, int y){
|
||||||
|
|
|
||||||
|
|
@ -222,7 +222,7 @@ public abstract class Unit extends GameEntity{
|
||||||
public abstract void init();
|
public abstract void init();
|
||||||
|
|
||||||
|
|
||||||
public void removeUnit(){
|
public void remove(){
|
||||||
unitNode.remove(getSprite());
|
unitNode.remove(getSprite());
|
||||||
getPlayer().removeUnit(this);
|
getPlayer().removeUnit(this);
|
||||||
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
|
InGameState.getMap().removePos(oldPos.getX(), oldPos.getY());
|
||||||
|
|
@ -235,7 +235,7 @@ public abstract class Unit extends GameEntity{
|
||||||
weponTimer++;
|
weponTimer++;
|
||||||
if(getLife()<=0) {
|
if(getLife()<=0) {
|
||||||
destroyed();
|
destroyed();
|
||||||
removeUnit();
|
remove();
|
||||||
}
|
}
|
||||||
else if(moveTo != null) {
|
else if(moveTo != null) {
|
||||||
Vector2i moveVect = new Vector2i((int)moveTo.getX(),(int)moveTo.getY());
|
Vector2i moveVect = new Vector2i((int)moveTo.getX(),(int)moveTo.getY());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue