diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index b9c26ebea9..53fba95c82 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -534,6 +534,7 @@ mode.custom = Custom Rules rules.infiniteresources = Infinite Resources rules.wavetimer = Wave Timer rules.waves = Waves +rules.attack = Attack Mode rules.enemyCheat = Infinite AI (Red Team) Resources rules.unitdrops = Unit Drops rules.unitbuildspeedmultiplier = Unit Production Speed Multiplier diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav index 91066fd661..b3e555a7d2 100644 Binary files a/core/assets/maps/craters.msav and b/core/assets/maps/craters.msav differ diff --git a/core/assets/maps/desolateRift.msav b/core/assets/maps/desolateRift.msav index 67a0528236..e1f7fe3394 100644 Binary files a/core/assets/maps/desolateRift.msav and b/core/assets/maps/desolateRift.msav differ diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav index 3984aeebc8..392dea3ee1 100644 Binary files a/core/assets/maps/frozenForest.msav and b/core/assets/maps/frozenForest.msav differ diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/groundZero.msav index cafa3e5e86..04841aa794 100644 Binary files a/core/assets/maps/groundZero.msav and b/core/assets/maps/groundZero.msav differ diff --git a/core/assets/maps/nuclearProductionComplex.msav b/core/assets/maps/nuclearProductionComplex.msav index 02a86783c1..5a48206817 100644 Binary files a/core/assets/maps/nuclearProductionComplex.msav and b/core/assets/maps/nuclearProductionComplex.msav differ diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav index 58135743ed..f45ab6436b 100644 Binary files a/core/assets/maps/overgrowth.msav and b/core/assets/maps/overgrowth.msav differ diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 1f3a1628bd..36ec4cc868 100644 Binary files a/core/assets/maps/ruinousShores.msav and b/core/assets/maps/ruinousShores.msav differ diff --git a/core/assets/maps/saltFlats.msav b/core/assets/maps/saltFlats.msav index d3adf86160..77056c63f3 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 6312b102cb..5cd9828d85 100644 Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index b3910d34ce..8976acc148 100644 Binary files a/core/assets/maps/tarFields.msav and b/core/assets/maps/tarFields.msav differ diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index 45d7107242..53ea960324 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -26,11 +26,6 @@ public class Zones implements ContentList{ conditionWave = 5; launchPeriod = 5; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 2; - }; }}; desertWastes = new Zone("desertWastes", new DesertWastesGenerator(260, 260)){{ @@ -89,15 +84,6 @@ public class Zones implements ContentList{ launchPeriod = 5; zoneRequirements = ZoneRequirement.with(desertWastes, 60); resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.attackMode = true; - r.waveSpacing = 60 * 60; - r.buildCostMultiplier = 0.5f; - r.unitBuildSpeedMultiplier = 0.5f; - r.enemyCheat = true; - }; }}; craters = new Zone("craters", new MapGenerator("craters", 1).dist(0).decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.01))){{ @@ -106,11 +92,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(groundZero, 10); blockRequirements = new Block[]{Blocks.router}; resources = new Item[]{Items.copper, Items.lead, Items.coal}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 1.5f; - }; }}; frozenForest = new Zone("frozenForest", new MapGenerator("frozenForest", 1) @@ -121,11 +102,6 @@ public class Zones implements ContentList{ conditionWave = 10; zoneRequirements = ZoneRequirement.with(craters, 10); resources = new Item[]{Items.copper, Items.lead, Items.coal}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 1.5f; - }; }}; overgrowth = new Zone("overgrowth", new MapGenerator("overgrowth")){{ @@ -136,11 +112,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(frozenForest, 40); blockRequirements = new Block[]{Blocks.router}; resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.titanium, Items.sand, Items.thorium, Items.scrap}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 100f; - }; }}; ruinousShores = new Zone("ruinousShores", new MapGenerator("ruinousShores", 1).dist(3f, true)){{ @@ -152,11 +123,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(desertWastes, 20, craters, 15); blockRequirements = new Block[]{Blocks.graphitePress, Blocks.combustionGenerator}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 80; - }; }}; stainedMountains = new Zone("stainedMountains", new MapGenerator("stainedMountains", 2) @@ -169,11 +135,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(frozenForest, 15); blockRequirements = new Block[]{Blocks.pneumaticDrill}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 2; - }; }}; tarFields = new Zone("tarFields", new MapGenerator("tarFields") @@ -186,11 +147,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(ruinousShores, 20); blockRequirements = new Block[]{Blocks.coalCentrifuge}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 2; - }; }}; desolateRift = new Zone("desolateRift", new MapGenerator("desolateRift").dist(2f)){{ @@ -202,11 +158,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(tarFields, 20); blockRequirements = new Block[]{Blocks.thermalGenerator}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand, Items.thorium}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 2.5f; - }; }}; nuclearComplex = new Zone("nuclearComplex", new MapGenerator("nuclearProductionComplex", 1) @@ -219,11 +170,6 @@ public class Zones implements ContentList{ zoneRequirements = ZoneRequirement.with(stainedMountains, 20); blockRequirements = new Block[]{Blocks.thermalGenerator}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.thorium, Items.sand}; - rules = r -> { - r.waves = true; - r.waveTimer = true; - r.waveSpacing = 60 * 60 * 2; - }; }}; } } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java index 91637f5d3c..9d7cb84325 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java @@ -68,6 +68,7 @@ public class CustomRulesDialog extends FloatingDialog{ number("$rules.unitdamagemultiplier", f -> rules.unitDamageMultiplier = f, () -> rules.unitDamageMultiplier); title("$rules.title.enemy"); + check("$rules.attack", b -> rules.attackMode = b, () -> rules.attackMode); number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f * tilesize, () -> Math.min(rules.enemyCoreBuildRadius / tilesize, 200)); }