WIP campaign completion text
This commit is contained in:
@@ -2951,7 +2951,7 @@ public class Blocks{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
coreAcropolis = new CoreBlock("core-acropolis"){{
|
coreAcropolis = new CoreBlock("core-acropolis"){{
|
||||||
requirements(Category.effect, with(Items.beryllium, 8000, Items.silicon, 7000, Items.tungsten, 6000, Items.carbide, 5000, Items.oxide, 4000));
|
requirements(Category.effect, with(Items.beryllium, 6000, Items.silicon, 5000, Items.tungsten, 5000, Items.carbide, 3000, Items.oxide, 3000));
|
||||||
|
|
||||||
unitType = UnitTypes.emanate;
|
unitType = UnitTypes.emanate;
|
||||||
health = 30000;
|
health = 30000;
|
||||||
|
|||||||
@@ -56,8 +56,10 @@ public class ErekirTechTree{
|
|||||||
var costMultipliers = new ObjectFloatMap<Item>();
|
var costMultipliers = new ObjectFloatMap<Item>();
|
||||||
//these are hard to make
|
//these are hard to make
|
||||||
costMultipliers.put(Items.oxide, 0.5f);
|
costMultipliers.put(Items.oxide, 0.5f);
|
||||||
costMultipliers.put(Items.surgeAlloy, 0.8f);
|
costMultipliers.put(Items.surgeAlloy, 0.7f);
|
||||||
costMultipliers.put(Items.carbide, 0.35f);
|
costMultipliers.put(Items.carbide, 0.3f);
|
||||||
|
|
||||||
|
for(var item : content.items()) costMultipliers.put(item, 0.9f);
|
||||||
|
|
||||||
Planets.erekir.techTree = nodeRoot("erekir", coreBastion, true, () -> {
|
Planets.erekir.techTree = nodeRoot("erekir", coreBastion, true, () -> {
|
||||||
context().researchCostMultipliers = costMultipliers;
|
context().researchCostMultipliers = costMultipliers;
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ public class SectorPresets{
|
|||||||
|
|
||||||
planetaryTerminal = new SectorPreset("planetaryTerminal", serpulo, 93){{
|
planetaryTerminal = new SectorPreset("planetaryTerminal", serpulo, 93){{
|
||||||
difficulty = 10;
|
difficulty = 10;
|
||||||
|
isLastSector = true;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
@@ -183,6 +184,7 @@ public class SectorPresets{
|
|||||||
|
|
||||||
origin = new SectorPreset("origin", erekir, 12){{
|
origin = new SectorPreset("origin", erekir, 12){{
|
||||||
difficulty = 10;
|
difficulty = 10;
|
||||||
|
isLastSector = true;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|||||||
@@ -161,6 +161,10 @@ public class Control implements ApplicationListener, Loadable{
|
|||||||
|
|
||||||
Events.on(SectorCaptureEvent.class, e -> {
|
Events.on(SectorCaptureEvent.class, e -> {
|
||||||
app.post(this::checkAutoUnlocks);
|
app.post(this::checkAutoUnlocks);
|
||||||
|
|
||||||
|
if(e.sector.preset != null && e.sector.preset.isLastSector && e.initialCapture){
|
||||||
|
ui.campaignComplete.show(e.sector.planet);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//delete save on campaign game over
|
//delete save on campaign game over
|
||||||
|
|||||||
@@ -339,10 +339,12 @@ public class Logic implements ApplicationListener{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean initial = !state.rules.sector.info.wasCaptured;
|
||||||
|
|
||||||
state.rules.sector.info.wasCaptured = true;
|
state.rules.sector.info.wasCaptured = true;
|
||||||
|
|
||||||
//fire capture event
|
//fire capture event
|
||||||
Events.fire(new SectorCaptureEvent(state.rules.sector));
|
Events.fire(new SectorCaptureEvent(state.rules.sector, initial));
|
||||||
|
|
||||||
//disable attack mode
|
//disable attack mode
|
||||||
state.rules.attackMode = false;
|
state.rules.attackMode = false;
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
public ColorPicker picker;
|
public ColorPicker picker;
|
||||||
public LogicDialog logic;
|
public LogicDialog logic;
|
||||||
public FullTextDialog fullText;
|
public FullTextDialog fullText;
|
||||||
|
public CampaignCompleteDialog campaignComplete;
|
||||||
|
|
||||||
public Cursor drillCursor, unloadCursor, targetCursor;
|
public Cursor drillCursor, unloadCursor, targetCursor;
|
||||||
|
|
||||||
@@ -199,6 +200,7 @@ public class UI implements ApplicationListener, Loadable{
|
|||||||
schematics = new SchematicsDialog();
|
schematics = new SchematicsDialog();
|
||||||
logic = new LogicDialog();
|
logic = new LogicDialog();
|
||||||
fullText = new FullTextDialog();
|
fullText = new FullTextDialog();
|
||||||
|
campaignComplete = new CampaignCompleteDialog();
|
||||||
|
|
||||||
Group group = Core.scene.root;
|
Group group = Core.scene.root;
|
||||||
|
|
||||||
|
|||||||
@@ -195,9 +195,11 @@ public class EventType{
|
|||||||
/** Called when a sector is conquered, e.g. a boss or base is defeated. */
|
/** Called when a sector is conquered, e.g. a boss or base is defeated. */
|
||||||
public static class SectorCaptureEvent{
|
public static class SectorCaptureEvent{
|
||||||
public final Sector sector;
|
public final Sector sector;
|
||||||
|
public final boolean initialCapture;
|
||||||
|
|
||||||
public SectorCaptureEvent(Sector sector){
|
public SectorCaptureEvent(Sector sector, boolean initialCapture){
|
||||||
this.sector = sector;
|
this.sector = sector;
|
||||||
|
this.initialCapture = initialCapture;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public class SectorPreset extends UnlockableContent{
|
|||||||
public float startWaveTimeMultiplier = 2f;
|
public float startWaveTimeMultiplier = 2f;
|
||||||
public boolean addStartingItems = false;
|
public boolean addStartingItems = false;
|
||||||
public boolean noLighting = false;
|
public boolean noLighting = false;
|
||||||
|
/** If true, this is the last sector in its planetary campaign. */
|
||||||
|
public boolean isLastSector;
|
||||||
public boolean showSectorLandInfo = true;
|
public boolean showSectorLandInfo = true;
|
||||||
/** If true, uses this sector's launch fields instead */
|
/** If true, uses this sector's launch fields instead */
|
||||||
public boolean overrideLaunchDefaults = false;
|
public boolean overrideLaunchDefaults = false;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import static mindustry.Vars.*;
|
|||||||
|
|
||||||
public class BaseDialog extends Dialog{
|
public class BaseDialog extends Dialog{
|
||||||
protected boolean wasPaused;
|
protected boolean wasPaused;
|
||||||
|
/** If true, this dialog will pause the game while open. */
|
||||||
protected boolean shouldPause;
|
protected boolean shouldPause;
|
||||||
|
|
||||||
public BaseDialog(String title, DialogStyle style){
|
public BaseDialog(String title, DialogStyle style){
|
||||||
|
|||||||
29
core/src/mindustry/ui/dialogs/CampaignCompleteDialog.java
Normal file
29
core/src/mindustry/ui/dialogs/CampaignCompleteDialog.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package mindustry.ui.dialogs;
|
||||||
|
|
||||||
|
import mindustry.*;
|
||||||
|
import mindustry.gen.*;
|
||||||
|
import mindustry.type.*;
|
||||||
|
|
||||||
|
public class CampaignCompleteDialog extends BaseDialog{
|
||||||
|
|
||||||
|
public CampaignCompleteDialog(){
|
||||||
|
super("");
|
||||||
|
|
||||||
|
addCloseListener();
|
||||||
|
shouldPause = true;
|
||||||
|
|
||||||
|
buttons.defaults().size(210f, 64f);
|
||||||
|
buttons.button("@menu", Icon.left, () -> Vars.ui.paused.runExitSave());
|
||||||
|
|
||||||
|
buttons.button("@continue", Icon.left, this::hide);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show(Planet planet){
|
||||||
|
//TODO obviously needs different text.
|
||||||
|
cont.clear();
|
||||||
|
|
||||||
|
cont.add("[accent]Congrations. You done it.[]\n\nThe enemy on " + planet.localizedName + " has been defeated.");
|
||||||
|
|
||||||
|
show();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -100,8 +100,6 @@ public class PausedDialog extends BaseDialog{
|
|||||||
|
|
||||||
void showQuitConfirm(){
|
void showQuitConfirm(){
|
||||||
Runnable quit = () -> {
|
Runnable quit = () -> {
|
||||||
wasClient = net.client();
|
|
||||||
if(net.client()) netClient.disconnectQuietly();
|
|
||||||
runExitSave();
|
runExitSave();
|
||||||
hide();
|
hide();
|
||||||
};
|
};
|
||||||
@@ -125,6 +123,9 @@ public class PausedDialog extends BaseDialog{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void runExitSave(){
|
public void runExitSave(){
|
||||||
|
wasClient = net.client();
|
||||||
|
if(net.client()) netClient.disconnectQuietly();
|
||||||
|
|
||||||
if(state.isEditor() && !wasClient){
|
if(state.isEditor() && !wasClient){
|
||||||
ui.editor.resumeEditing();
|
ui.editor.resumeEditing();
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user