Fixed unit pads, rule selection, gameover state

This commit is contained in:
Anuken
2019-05-18 10:02:36 -04:00
parent 3b2b79d539
commit 3464f40da3
5 changed files with 15 additions and 4 deletions

View File

@@ -86,7 +86,7 @@ public class Logic implements ApplicationListener{
} }
private void checkGameOver(){ private void checkGameOver(){
if(state.rules.waves && state.teams.get(defaultTeam).cores.size == 0 && !state.gameOver){ if(!state.rules.attackMode && state.teams.get(defaultTeam).cores.size == 0 && !state.gameOver){
state.gameOver = true; state.gameOver = true;
Events.fire(new GameOverEvent(waveTeam)); Events.fire(new GameOverEvent(waveTeam));
}else if(state.rules.attackMode){ }else if(state.rules.attackMode){

View File

@@ -819,6 +819,7 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
this.lastSpawner = spawner; this.lastSpawner = spawner;
this.dead = true; this.dead = true;
setNet(spawner.getX(), spawner.getY()); setNet(spawner.getX(), spawner.getY());
spawner.updateSpawning(this);
} }
//endregion //endregion

View File

@@ -195,6 +195,13 @@ public abstract class InputHandler implements InputProcessor{
} }
} }
//clear when the player taps on something else
if(!consumed && !mobile && player.isBuilding() && block == null){
player.clearBuilding();
block = null;
return true;
}
if(!showedInventory){ if(!showedInventory){
frag.inv.hide(); frag.inv.hide();
} }

View File

@@ -44,7 +44,7 @@ public class MapPlayDialog extends FloatingDialog{
modes.addButton(mode.toString(), "toggle", () -> { modes.addButton(mode.toString(), "toggle", () -> {
selectedGamemode = selectedGamemode == mode ? null : mode; selectedGamemode = selectedGamemode == mode ? null : mode;
rules = mode.apply(map.rules()); rules = selectedGamemode == null ? map.rules() : mode.apply(map.rules());
}).update(b -> b.setChecked(selectedGamemode == mode)).size(140f, 54f); }).update(b -> b.setChecked(selectedGamemode == mode)).size(140f, 54f);
if(i++ % 2 == 1) modes.row(); if(i++ % 2 == 1) modes.row();
} }

View File

@@ -59,6 +59,7 @@ public class MechPad extends Block{
if(!entity.cons.valid()) return; if(!entity.cons.valid()) return;
player.beginRespawning(entity); player.beginRespawning(entity);
entity.sameMech = false;
} }
@Remote(called = Loc.server) @Remote(called = Loc.server)
@@ -71,7 +72,7 @@ public class MechPad extends Block{
if(entity.player == null) return; if(entity.player == null) return;
Mech mech = ((MechPad)tile.block()).mech; Mech mech = ((MechPad)tile.block()).mech;
entity.player.mech = entity.player.mech == mech ? Mechs.starter : mech; entity.player.mech = !entity.sameMech && entity.player.mech == mech ? Mechs.starter : mech;
entity.progress = 0; entity.progress = 0;
entity.player.onRespawn(tile); entity.player.onRespawn(tile);
@@ -113,7 +114,7 @@ public class MechPad extends Block{
Draw.rect(Core.atlas.find(name), tile.drawx(), tile.drawy()); Draw.rect(Core.atlas.find(name), tile.drawx(), tile.drawy());
if(entity.player != null){ if(entity.player != null){
TextureRegion region = (entity.player.mech == mech ? Mechs.starter.iconRegion : mech.iconRegion); TextureRegion region = (!entity.sameMech && entity.player.mech == mech ? Mechs.starter.iconRegion : mech.iconRegion);
Shaders.build.region = region; Shaders.build.region = region;
Shaders.build.progress = entity.progress; Shaders.build.progress = entity.progress;
@@ -162,6 +163,7 @@ public class MechPad extends Block{
public class MechFactoryEntity extends TileEntity implements SpawnerTrait{ public class MechFactoryEntity extends TileEntity implements SpawnerTrait{
Player player; Player player;
boolean sameMech;
float progress; float progress;
float time; float time;
float heat; float heat;
@@ -171,6 +173,7 @@ public class MechPad extends Block{
if(player == null){ if(player == null){
progress = 0f; progress = 0f;
player = unit; player = unit;
sameMech = true;
player.beginRespawning(this); player.beginRespawning(this);
} }