diff --git a/core/assets/maps/four.msav b/core/assets/maps/four.msav new file mode 100644 index 0000000000..e33f7e2c33 Binary files /dev/null and b/core/assets/maps/four.msav differ diff --git a/core/src/mindustry/content/ErekirTechTree.java b/core/src/mindustry/content/ErekirTechTree.java index 36980357ae..7de78f2c9a 100644 --- a/core/src/mindustry/content/ErekirTechTree.java +++ b/core/src/mindustry/content/ErekirTechTree.java @@ -19,7 +19,7 @@ public class ErekirTechTree{ costMultipliers.put(Items.surgeAlloy, 4); costMultipliers.put(Items.phaseFabric, 4); costMultipliers.put(Items.thorium, 9); - costMultipliers.put(Items.graphite, 10); + costMultipliers.put(Items.graphite, 9); //TODO gate behind capture @@ -54,7 +54,9 @@ public class ErekirTechTree{ }); //TODO should only be unlocked in unit sector - node(constructor, Seq.with(new Research(siliconArcFurnace), erekirSector.first()), () -> { + node(constructor, Seq.with(new Research(siliconArcFurnace), new OnSector(four)), () -> { + + //TODO further limitations node(payloadLoader, () -> { node(payloadUnloader, () -> { node(payloadPropulsionTower, () -> { @@ -78,7 +80,7 @@ public class ErekirTechTree{ //TODO move into turbine condenser? node(plasmaBore, () -> { node(impactDrill, Seq.with(new OnSector(aware)), () -> { - node(largePlasmaBore, () -> { + node(largePlasmaBore, Seq.with(new OnSector(four)), () -> { node(eruptionDrill, () -> { }); @@ -96,14 +98,14 @@ public class ErekirTechTree{ }); }); - node(beamTower, () -> { + node(beamTower, Seq.with(new OnSector(four)), () -> { }); node(regenProjector, () -> { //TODO more tiers of build tower or "support" structures like overdrive projectors - node(buildTower, () -> { + node(buildTower, Seq.with(new OnSector(four)), () -> { }); }); @@ -134,7 +136,7 @@ public class ErekirTechTree{ node(cliffCrusher, () -> { node(electrolyzer, Seq.with(new OnSector(three)), () -> { node(oxidationChamber, () -> { - node(electricHeater, () -> { + node(electricHeater, Seq.with(new OnSector(four)), () -> { node(heatRedirector, () -> { }); @@ -157,7 +159,7 @@ public class ErekirTechTree{ }); }); - node(slagIncinerator, () -> { + node(slagIncinerator, Seq.with(new OnSector(four)), () -> { node(slagCentrifuge, () -> { @@ -194,7 +196,7 @@ public class ErekirTechTree{ }); }); - node(coreCitadel, () -> { + node(coreCitadel, Seq.with(new SectorComplete(four)), () -> { node(coreAcropolis, () -> { }); @@ -204,7 +206,9 @@ public class ErekirTechTree{ node(onset, () -> { node(aware, Seq.with(new SectorComplete(onset), new Research(ductRouter)), () -> { node(three, Seq.with(new SectorComplete(aware), new Research(reinforcedContainer), new Research(ductUnloader), new Research(ventCondenser)), () -> { + node(four, Seq.with(new SectorComplete(three), new Research(electrolyzer), new Research(oxidationChamber), new Research(chemicalCombustionChamber)), () -> { + }); }); }); }); diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index eb82e01bf8..44f6514f44 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1046,7 +1046,7 @@ public class Fx{ }), ventSteam = new Effect(140f, e -> { - color(Pal.vent, e.fslope() * 0.85f); + color(e.color, e.fslope() * 0.85f); float length = 3f + e.finpow() * 10f; rand.setSeed(e.id); diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 359af7de91..d0483036ad 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -12,7 +12,7 @@ public class SectorPresets{ impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, - onset, aware, three + onset, aware, three, four ; public static void load(){ @@ -128,6 +128,10 @@ public class SectorPresets{ difficulty = 5; }}; + four = new SectorPreset("four", erekir, 29){{ + difficulty = 6; + }}; + //endregion } } diff --git a/core/src/mindustry/entities/comp/FireComp.java b/core/src/mindustry/entities/comp/FireComp.java index 4ff123d1bb..33f6e3c4ae 100644 --- a/core/src/mindustry/entities/comp/FireComp.java +++ b/core/src/mindustry/entities/comp/FireComp.java @@ -28,7 +28,6 @@ abstract class FireComp implements Timedc, Posc, Syncc, Drawc{ public static final TextureRegion[] regions = new TextureRegion[frames]; @Import float time, lifetime, x, y; - @Import int id; Tile tile; private transient Block block; diff --git a/core/src/mindustry/world/blocks/environment/SteamVent.java b/core/src/mindustry/world/blocks/environment/SteamVent.java index 9daf441842..6ab3eccc75 100644 --- a/core/src/mindustry/world/blocks/environment/SteamVent.java +++ b/core/src/mindustry/world/blocks/environment/SteamVent.java @@ -1,5 +1,6 @@ package mindustry.world.blocks.environment; +import arc.graphics.*; import arc.graphics.g2d.*; import arc.math.*; import arc.math.geom.*; @@ -7,6 +8,7 @@ import arc.util.*; import mindustry.*; import mindustry.content.*; import mindustry.entities.*; +import mindustry.graphics.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -27,6 +29,7 @@ public class SteamVent extends Floor{ public Block parent = Blocks.air; public Effect effect = Fx.ventSteam; + public Color effectColor = Pal.vent; public float effectSpacing = 15f; static{ @@ -58,7 +61,7 @@ public class SteamVent extends Floor{ @Override public void renderUpdate(UpdateRenderState state){ if(state.tile.block() == Blocks.air && (state.data += Time.delta) >= effectSpacing){ - effect.at(state.tile.x * tilesize - tilesize, state.tile.y * tilesize - tilesize); + effect.at(state.tile.x * tilesize - tilesize, state.tile.y * tilesize - tilesize, effectColor); state.data = 0f; } }