diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 11145fcd73..dc88c1917d 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -37,7 +37,7 @@ public class Mechs implements ContentList{ alpha = new Mech("alpha-mech", false){ int maxDrones = 3; - float buildTime = 100f; + float buildTime = 200f; { drillPower = 1; diff --git a/core/src/io/anuke/mindustry/maps/SectorPresets.java b/core/src/io/anuke/mindustry/maps/SectorPresets.java index 868153b847..ed2f150616 100644 --- a/core/src/io/anuke/mindustry/maps/SectorPresets.java +++ b/core/src/io/anuke/mindustry/maps/SectorPresets.java @@ -3,8 +3,7 @@ package io.anuke.mindustry.maps; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.Items; import io.anuke.mindustry.content.Mechs; -import io.anuke.mindustry.content.blocks.UnitBlocks; -import io.anuke.mindustry.content.blocks.UpgradeBlocks; +import io.anuke.mindustry.content.blocks.*; import io.anuke.mindustry.entities.units.UnitCommand; import io.anuke.mindustry.maps.missions.*; import io.anuke.mindustry.type.Item; @@ -14,29 +13,61 @@ import io.anuke.ucore.util.Structs; import static io.anuke.mindustry.Vars.mobile; public class SectorPresets{ - private final GridMap presets = new GridMap(){{ + private final GridMap presets = new GridMap<>(); + private final GridMap> orePresets = new GridMap<>(); + + public SectorPresets(){ + //base tutorial mission - put(0, 0, new SectorPreset(TutorialSector.getMissions(), 1)); + add(new SectorPreset(0, 0, + TutorialSector.getMissions(), + Array.with(), + 1)); //water mission - put(-2, 0, new SectorPreset(Array.with(), 1)); - //command center mission - //TODO generate enemy base - //TODO make 2x2 - //TODO more gen info - put(0, 1, new SectorPreset(Structs.array(new BlockMission(UnitBlocks.daggerFactory), Missions.blockRecipe(UnitBlocks.commandCenter), - new CommandMission(UnitCommand.retreat), new CommandMission(UnitCommand.attack), new BattleMission()), 2)); - //reconstructor mission - put(0, -1, new SectorPreset(Structs.array(Missions.blockRecipe(mobile ? UpgradeBlocks.tridentPad : UpgradeBlocks.deltaPad), - new MechMission(Mechs.delta)), 1)); - //oil mission - put(1, 0, new SectorPreset(Array.with(), 1)); - }}; + add(new SectorPreset(-2, 0, + Structs.array( + Missions.blockRecipe(LiquidBlocks.mechanicalPump), + Missions.blockRecipe(ProductionBlocks.cultivator) + ), + Array.with(Items.copper, Items.lead, Items.copper), + 2)); - private final GridMap> orePresets = new GridMap>(){{ - put(0, 0, Array.with(Items.copper)); - put(1, 0, Array.with(Items.copper, Items.lead, Items.coal)); - }}; + //command center mission + add(new SectorPreset(2, 0, + Structs.array( + new BlockMission(UnitBlocks.daggerFactory), + Missions.blockRecipe(UnitBlocks.commandCenter), + new CommandMission(UnitCommand.retreat), + new CommandMission(UnitCommand.attack), + new BattleMission() + ), + Array.with(Items.copper, Items.lead, Items.copper), + 2)); + + //reconstructor mission + add(new SectorPreset(0, -2, + Structs.array( + Missions.blockRecipe(mobile ? UpgradeBlocks.tridentPad : UpgradeBlocks.deltaPad), + new MechMission(Mechs.delta), + new WaveMission(15) + ), + Array.with(Items.copper, Items.lead, Items.copper, Items.titanium), + 2)); + + //oil mission + add(new SectorPreset(0, 1, + Structs.array( + Missions.blockRecipe(ProductionBlocks.cultivator), + Missions.blockRecipe(CraftingBlocks.biomatterCompressor) + ), + Array.with(Items.copper, Items.lead, Items.copper, Items.titanium), + 2)); + + //tutorial ore presets + orePresets.put(0, 0, Array.with(Items.copper)); + orePresets.put(1, 0, Array.with(Items.copper, Items.lead, Items.coal)); + } public Array getOres(int x, int y){ return orePresets.get(x, y); @@ -46,13 +77,26 @@ public class SectorPresets{ return presets.get(x, y); } + private void add(SectorPreset preset){ + for(int x = 0; x < preset.size; x++){ + for(int y = 0; y < preset.size; y++){ + presets.put(x + preset.x, y + preset.y, preset); + orePresets.put(x + preset.x, y + preset.y, preset.ores); + } + } + } + public static class SectorPreset{ public final Array missions; - public final int size; + public final Array ores; + public final int size, x, y; - public SectorPreset(Array missions, int size){ + public SectorPreset(int x, int y, Array missions, Array ores, int size){ this.missions = missions; this.size = size; + this.x = x; + this.y = y; + this.ores = ores; } void generate(Sector sector){ diff --git a/core/src/io/anuke/mindustry/maps/Sectors.java b/core/src/io/anuke/mindustry/maps/Sectors.java index aad906476d..5513b46b2a 100644 --- a/core/src/io/anuke/mindustry/maps/Sectors.java +++ b/core/src/io/anuke/mindustry/maps/Sectors.java @@ -293,6 +293,8 @@ public class Sectors{ SectorPreset p = presets.get(sector.x, sector.y); sector.missions.addAll(p.missions); sector.width = sector.height = p.size; + sector.x = (short)p.x; + sector.y = (short)p.y; }else{ genMissions(sector); } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index 1dad214006..93d8620be6 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -151,7 +151,7 @@ public class SettingsMenuDialog extends SettingsDialog{ dialog.addCloseButton(); dialog.content().addButton("$text.settings.clearsectors", "clear", () -> { ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> { - Settings.putString("sectors", "{}"); + Settings.clearBytes("sectors"); Settings.save(); world.sectors().load(); dialog.hide(); @@ -160,7 +160,7 @@ public class SettingsMenuDialog extends SettingsDialog{ dialog.content().row(); dialog.content().addButton("$text.settings.clearunlocks", "clear", () -> { ui.showConfirm("$text.confirm", "$text.settings.clear.confirm", () -> { - Settings.putString("unlocks", "{}"); + Settings.clearBytes("unlocks"); Settings.save(); dialog.hide(); });