diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/saltFlats.msav index 556b33700f..d0f1a672c4 100644 Binary files a/core/assets/maps/saltFlats.msav and b/core/assets/maps/saltFlats.msav differ diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav index af3abb26c2..082f96ad7b 100644 Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index 7e2586eb9d..dbfddbc142 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -24,6 +24,7 @@ public class SectorPresets implements ContentList{ saltFlats = new SectorPreset("saltFlats", serpulo, 101){{ difficulty = 5; + useAI = false; }}; frozenForest = new SectorPreset("frozenForest", serpulo, 86){{ diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index bf0f73c730..e68688b0b1 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -421,7 +421,7 @@ public class TechTree implements ContentList{ }); node(additiveReconstructor, Seq.with(new SectorComplete(biomassFacility)), () -> { - node(multiplicativeReconstructor, Seq.with(new SectorComplete(overgrowth)), () -> { + node(multiplicativeReconstructor, () -> { node(exponentialReconstructor, () -> { node(tetrativeReconstructor, () -> { @@ -508,6 +508,7 @@ public class TechTree implements ContentList{ node(saltFlats, Seq.with( new SectorComplete(windsweptIslands), + new Research(commandCenter), new Research(groundFactory), new Research(airFactory), new Research(door), @@ -646,7 +647,7 @@ public class TechTree implements ContentList{ static TechNode node(UnlockableContent content, ItemStack[] requirements, Seq objectives, Runnable children){ TechNode node = new TechNode(context, content, requirements); if(objectives != null){ - node.objectives = objectives; + node.objectives.addAll(objectives); } TechNode prev = context; diff --git a/core/src/mindustry/maps/SectorDamage.java b/core/src/mindustry/maps/SectorDamage.java index 22f19c3e4d..78802f46bb 100644 --- a/core/src/mindustry/maps/SectorDamage.java +++ b/core/src/mindustry/maps/SectorDamage.java @@ -21,7 +21,7 @@ import mindustry.world.blocks.storage.*; import static mindustry.Vars.*; public class SectorDamage{ - public static final int maxRetWave = 30, maxWavesSimulated = 50; + public static final int maxRetWave = 40, maxWavesSimulated = 50; //direct damage is for testing only private static final boolean direct = false, rubble = true; diff --git a/core/src/mindustry/world/blocks/defense/MendProjector.java b/core/src/mindustry/world/blocks/defense/MendProjector.java index cf71928f26..1c171edfdc 100644 --- a/core/src/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/mindustry/world/blocks/defense/MendProjector.java @@ -60,6 +60,7 @@ public class MendProjector extends Block{ float heat; float charge = Mathf.random(reload); float phaseHeat; + float smoothEfficiency; @Override public float range(){ @@ -68,6 +69,7 @@ public class MendProjector extends Block{ @Override public void updateTile(){ + smoothEfficiency = Mathf.lerpDelta(smoothEfficiency, efficiency(), 0.08f); heat = Mathf.lerpDelta(heat, consValid() || cheating() ? 1f : 0f, 0.08f); charge += heat * delta(); @@ -115,7 +117,7 @@ public class MendProjector extends Block{ @Override public void drawLight(){ - Drawf.light(team, x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); + Drawf.light(team, x, y, 50f * smoothEfficiency, baseColor, 0.7f * smoothEfficiency); } @Override diff --git a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java index 7cadaede81..7e645e5a2e 100644 --- a/core/src/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/mindustry/world/blocks/defense/OverdriveProjector.java @@ -65,6 +65,7 @@ public class OverdriveProjector extends Block{ float heat; float charge = Mathf.random(reload); float phaseHeat; + float smoothEfficiency; @Override public float range(){ @@ -73,11 +74,12 @@ public class OverdriveProjector extends Block{ @Override public void drawLight(){ - Drawf.light(team, x, y, 50f * efficiency(), baseColor, 0.7f * efficiency()); + Drawf.light(team, x, y, 50f * smoothEfficiency, baseColor, 0.7f * smoothEfficiency); } @Override public void updateTile(){ + smoothEfficiency = Mathf.lerpDelta(smoothEfficiency, efficiency(), 0.08f); heat = Mathf.lerpDelta(heat, consValid() ? 1f : 0f, 0.08f); charge += heat * Time.delta;