Added sandbox mode and new fortress enemy

This commit is contained in:
Anuken
2017-11-26 22:40:43 -05:00
parent 07ac552495
commit d9a66278ff
25 changed files with 510 additions and 286 deletions

View File

@@ -3,15 +3,16 @@ package io.anuke.mindustry.ui;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.GameMode;
import io.anuke.mindustry.world.Map;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.StringSupplier;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Elements;
public class LevelDialog extends FloatingDialog{
private Map selectedMap = Map.delta;
@@ -31,6 +32,21 @@ public class LevelDialog extends FloatingDialog{
int maxwidth = 4;
Table selmode = new Table();
ButtonGroup<TextButton> group = new ButtonGroup<>();
selmode.add("Gamemode: ").padRight(10f).units(Unit.dp);
for(GameMode mode : GameMode.values()){
TextButton b = Elements.newButton(mode.toString(), "toggle", ()->{
Vars.control.setMode(mode);
});
group.add(b);
selmode.add(b).size(130f, 54f).units(Unit.dp);
}
content().add(selmode);
content().row();
for(int i = 0; i < Map.values().length; i ++){
Map map = Map.values()[i];
@@ -61,7 +77,7 @@ public class LevelDialog extends FloatingDialog{
maps.add(image).width(170).pad(4f).units(Unit.dp);
}
content().add(pane);
content().add(pane).uniformX();
shown(()->{
//this is necessary for some reason?

View File

@@ -46,8 +46,8 @@ public class LoadDialog extends FloatingDialog{
button.row();
Label info = new Label("[gray]" + (!SaveIO.isSaveValid(i) ? "<empty>" : "Wave " +
SaveIO.getWave(slot)+"\nLast Saved: " + SaveIO.getTimeString(i)));
Label info = new Label("[gray]" + (!SaveIO.isSaveValid(i) ? "<empty>" : SaveIO.getMode(slot) + ", Wave " +
SaveIO.getWave(slot) + "\nLast Saved: " + SaveIO.getTimeString(i)));
info.setAlignment(Align.center, Align.center);
button.add(info).padBottom(2).padTop(6);

View File

@@ -100,7 +100,7 @@ public class BlocksFragment implements Fragment{
image.update(()->{
boolean canPlace = !control.tutorial.active() || control.tutorial.canPlace();
boolean canPlace = !control.getTutorial().active() || control.getTutorial().canPlace();
boolean has = control.hasItems(r.requirements) && canPlace;
//image.setDisabled(!has);
image.setChecked(player.recipe == r);

View File

@@ -12,6 +12,7 @@ import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.GameMode;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Settings;
@@ -73,9 +74,9 @@ public class HudFragment implements Fragment{
//ui table
new table(){{
control.tutorial.buildUI(this);
control.getTutorial().buildUI(this);
visible(()->control.tutorial.active());
visible(()->control.getTutorial().active());
}}.end();
//paused table
@@ -92,6 +93,13 @@ public class HudFragment implements Fragment{
new table(){{
atop();
aright();
float uheight = 72f;
new imagebutton("icon-play", Unit.dp.inPixels(30f), ()->{
Vars.control.runWave();
}).size(uheight).uniformY().units(Unit.dp)
.visible(()-> Vars.control.getMode() == GameMode.sandbox && Vars.control.getEnemiesRemaining() <= 0);
new table("button"){{
@@ -101,11 +109,11 @@ public class HudFragment implements Fragment{
new label(()-> control.getEnemiesRemaining() > 0 ?
control.getEnemiesRemaining() + " Enemies remaining" :
control.tutorial.active() ? "waiting..." : "New wave in " + (int) (control.getWaveCountdown() / 60f))
(control.getTutorial().active() || Vars.control.getMode() == GameMode.sandbox) ? "waiting..." : "New wave in " + (int) (control.getWaveCountdown() / 60f))
.minWidth(150);
get().pad(Unit.dp.inPixels(12));
}};
}}.height(uheight).units(Unit.dp);
visible(()->!GameState.is(State.menu));
}}.end();