From a771dc878719b2ab335f2bed0b95418b09d87972 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 4 Oct 2018 20:59:58 -0400 Subject: [PATCH] Sector tint / Sector preset system --- core/src/io/anuke/mindustry/maps/Sectors.java | 25 ++++++++++++++++--- .../mindustry/maps/missions/BlockMission.java | 3 +-- .../mindustry/ui/dialogs/SectorsDialog.java | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/core/src/io/anuke/mindustry/maps/Sectors.java b/core/src/io/anuke/mindustry/maps/Sectors.java index 7f6c9c835f..ed2b104a05 100644 --- a/core/src/io/anuke/mindustry/maps/Sectors.java +++ b/core/src/io/anuke/mindustry/maps/Sectors.java @@ -32,7 +32,20 @@ public class Sectors{ private static final int sectorImageSize = 32; private static final boolean checkExpansion = false; - private GridMap grid = new GridMap<>(); + private final GridMap grid = new GridMap<>(); + + private final GridMap> presets = new GridMap>(){{ + put(0, 0, TutorialSector.getMissions()); + + //water mission + put(-2, 0, Array.with()); + //command center mission + put(0, 1, Array.with()); + //reconstructor mission + put(0, -1, Array.with()); + //oil mission + put(1, 0, Array.with()); + }}; public void playSector(Sector sector){ if(sector.hasSave() && SaveIO.breakingVersions.contains(sector.getSave().getBuild())){ @@ -292,10 +305,10 @@ public class Sectors{ private void initSector(Sector sector){ sector.difficulty = (int)(Mathf.dst(sector.x, sector.y)); - if(sector.difficulty == 0){ - sector.missions.addAll(TutorialSector.getMissions()); + if(presets.containsKey(sector.x, sector.y)){ + sector.missions.addAll(presets.get(sector.x, sector.y)); }else{ - sector.missions.add(new WaveMission(Math.min(sector.difficulty*5 + Mathf.randomSeed(sector.getSeed(), 0, 3)*5, 100))); + genMissions(sector); } sector.spawns = new Array<>(); @@ -320,6 +333,10 @@ public class Sectors{ } } + private void genMissions(Sector sector){ + sector.missions.add(new WaveMission(sector.difficulty*5 + Mathf.randomSeed(sector.getSeed(), 0, 3)*5)); + } + private void createTexture(Sector sector){ if(headless) return; //obviously not created or needed on server diff --git a/core/src/io/anuke/mindustry/maps/missions/BlockMission.java b/core/src/io/anuke/mindustry/maps/missions/BlockMission.java index beff68c6d4..6e79b12b9f 100644 --- a/core/src/io/anuke/mindustry/maps/missions/BlockMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/BlockMission.java @@ -9,8 +9,7 @@ import io.anuke.ucore.util.Bundles; import static io.anuke.mindustry.Vars.defaultTeam; import static io.anuke.mindustry.Vars.world; -/**A mission in which the player must place a block.*/ -@Deprecated +/**A mission in which the player must place a block somewhere.*/ public class BlockMission extends Mission{ private final Block block; private boolean complete; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java index 6781a630e7..7055c00f6e 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SectorsDialog.java @@ -146,7 +146,7 @@ public class SectorsDialog extends FloatingDialog{ drawY += (height-1)/2f*padSectorSize; if(sector != null && sector.texture != null){ - Draw.color(Color.WHITE); + Draw.colorl(!sector.complete ? 0.3f : 1f); Draw.rect(sector.texture, drawX, drawY, sectorSize * width + paddingx, sectorSize * height + paddingy); }