From bf051fa7bcad66c894249e664e3a0fe2da57c29c Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 19 Sep 2025 12:37:22 -0400 Subject: [PATCH] Sunken Pier map submission --- .../sprites/ui/sectors/sector-sunkenPier.png | Bin 0 -> 723 bytes core/assets/bundles/bundle.properties | 2 ++ core/assets/maps/sunkenPier.msav | Bin 0 -> 28114 bytes core/assets/planets/serpulo.json | 2 +- core/src/mindustry/content/Planets.java | 4 ---- core/src/mindustry/content/SectorPresets.java | 7 ++++++- core/src/mindustry/content/SerpuloTechTree.java | 8 ++++++++ core/src/mindustry/type/SectorPreset.java | 8 ++++++-- core/src/mindustry/ui/dialogs/PlanetDialog.java | 4 ++-- .../ui/dialogs/SectorSelectDialog.java | 2 +- 10 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 core/assets-raw/sprites/ui/sectors/sector-sunkenPier.png create mode 100644 core/assets/maps/sunkenPier.msav diff --git a/core/assets-raw/sprites/ui/sectors/sector-sunkenPier.png b/core/assets-raw/sprites/ui/sectors/sector-sunkenPier.png new file mode 100644 index 0000000000000000000000000000000000000000..a930ae211712271bbfac40c21839e1489f1a4b0e GIT binary patch literal 723 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE+KjF~bX}5DXik}cHYGC;wcxPwP)Z!&Y49v*}TQvTi*(12L z)L)9ow%f3Lyy$8H!2<5SSVbf3a{87}O)5x#x*l#GkUbyIWgT=>P4{kAU z3BQ+pZQDCeaYpaP=@DKMTR!Zc&+mBBy!~?QR{;*=JNA4hZ$J1y;q&i*Ys3P6e@GHt zUFBQVu$|@fuQP28(^+0uU74Kl$6(3Kh5!HDVp;m}^YM#5O$mDhv-UbAe~?>vhc!#} z3@iUL>w`g@#fO}=70m6n3X4_$aaL~lTXvmUZY|R_rhYNT>?ZfM3~YbO%Kv;a7tOA? z!jTaFGe+WrhUkW{iYXis#x_MvH$LnvWs?5)$w}qw=!cb0lh_WAl3-<(f1kDI;mVVyDOws*&3lx%{^8>2YATaRDK-4JqU(!+_- z>`zp-@QJUVku$}|@zlpzwL9l&=7wL~?4YBl_g!t_GTWp6%}jG&3GVe+kUL$Ux44EP=Lre{AM4Vqjok@O1TaS?83{1OT7kL&5+6 literal 0 HcmV?d00001 diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 54b3c0afe1..ab7bafc07e 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -880,6 +880,7 @@ sector.seaPort.name = Sea Port sector.weatheredChannels.name = Weathered Channels sector.mycelialBastion.name = Mycelial Bastion sector.frontier.name = Frontier +sector.sunkenPier.name = Sunken Pier sector.cruxscape.name = Cruxscape sector.geothermalStronghold.name = Geothermal Stronghold @@ -905,6 +906,7 @@ sector.navalFortress.description = The enemy has established a base on a remote, #do not translate sector.facility32m.description = WIP, map submission by Stormride_R sector.taintedWoods.description = WIP, map submission by Stormride_R +sector.sunkenPier.description = WIP, map submission by Stormride_R sector.atolls.description = WIP, map submission by Stormride_R sector.frontier.description = WIP, map submission by Stormride_R sector.infestedCanyons.description = WIP, map submission by Skeledragon diff --git a/core/assets/maps/sunkenPier.msav b/core/assets/maps/sunkenPier.msav new file mode 100644 index 0000000000000000000000000000000000000000..7f7322526f8f556b1bf0bf7abc479a79bc941d9e GIT binary patch literal 28114 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 literal 0 HcmV?d00001 diff --git a/core/assets/planets/serpulo.json b/core/assets/planets/serpulo.json index e2dfd3f818..d4c2f578a8 100644 --- a/core/assets/planets/serpulo.json +++ b/core/assets/planets/serpulo.json @@ -1 +1 @@ -{presets:{windsweptIslands:97,stainedMountains:223,weatheredChannels:166,craters:219,extractionOutpost:213,coastline:164,navalFortress:165,frontier:86,groundZero:170,mycelialBastion:143,facility32m:65,atolls:75,overgrowth:142,testingGrounds:169,frozenForest:64,saltFlats:98,taintedWoods:145,infestedCanyons:85,desolateRift:271,nuclearComplex:228,ruinousShores:41,planetaryTerminal:217,impact0078:266,seaPort:214,geothermalStronghold:264,cruxscape:54,fungalPass:221,tarFields:99,biomassFacility:23},attackSectors:[0,6,13,16,19,20,24,27,30,47,55,66,67,69,76,92,94,103,111,116,127,133,138,150,157,161,162,176,180,185,191,192,197,200,204,207,225,230,237,242,243,244,245,246,247,248,251,254,259,263,265]} \ No newline at end of file +{presets:{windsweptIslands:97,stainedMountains:223,weatheredChannels:166,craters:219,extractionOutpost:213,coastline:164,navalFortress:165,frontier:86,sunkenPier:173,groundZero:170,mycelialBastion:143,facility32m:65,atolls:75,overgrowth:142,testingGrounds:169,frozenForest:64,saltFlats:98,taintedWoods:145,infestedCanyons:85,desolateRift:271,nuclearComplex:228,ruinousShores:41,planetaryTerminal:217,impact0078:266,seaPort:214,geothermalStronghold:264,cruxscape:54,fungalPass:221,tarFields:99,biomassFacility:23},attackSectors:[0,6,13,16,19,20,24,27,30,47,55,66,67,69,76,92,94,103,111,116,127,133,138,150,157,161,162,176,180,185,191,192,197,200,204,207,225,230,237,242,243,244,245,246,247,248,251,254,259,263,265]} \ No newline at end of file diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 955f9f03a5..b81f2decb3 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -66,11 +66,7 @@ public class Planets{ defaultCore = Blocks.coreBastion; iconColor = Color.valueOf("ff9266"); enemyBuildSpeedMultiplier = 0.4f; - - //TODO disallowed for now allowLaunchToNumbered = false; - - //TODO SHOULD there be lighting? updateLighting = false; defaultAttributes.set(Attribute.heat, 0.8f); diff --git a/core/src/mindustry/content/SectorPresets.java b/core/src/mindustry/content/SectorPresets.java index dcbf1ca438..78274ae1e2 100644 --- a/core/src/mindustry/content/SectorPresets.java +++ b/core/src/mindustry/content/SectorPresets.java @@ -9,7 +9,7 @@ public class SectorPresets{ public static SectorPreset groundZero, craters, biomassFacility, taintedWoods, frozenForest, ruinousShores, facility32m, windsweptIslands, stainedMountains, tarFields, - frontier, fungalPass, infestedCanyons, atolls, mycelialBastion, extractionOutpost, saltFlats, testingGrounds, overgrowth, //polarAerodrome, + frontier, fungalPass, infestedCanyons, atolls, sunkenPier, mycelialBastion, extractionOutpost, saltFlats, testingGrounds, overgrowth, //polarAerodrome, impact0078, desolateRift, nuclearComplex, planetaryTerminal, coastline, navalFortress, weatheredChannels, seaPort, @@ -123,6 +123,11 @@ public class SectorPresets{ difficulty = 7; }}; + sunkenPier = new SectorPreset("sunkenPier", serpulo, -1){{ + captureWave = 50; + difficulty = 8; + }}; + mycelialBastion = new SectorPreset("mycelialBastion", serpulo, 260){{ difficulty = 8; }}; diff --git a/core/src/mindustry/content/SerpuloTechTree.java b/core/src/mindustry/content/SerpuloTechTree.java index 8ef67e329e..9517c5ebdf 100644 --- a/core/src/mindustry/content/SerpuloTechTree.java +++ b/core/src/mindustry/content/SerpuloTechTree.java @@ -580,6 +580,14 @@ public class SerpuloTechTree{ new Research(cyclone), new Research(ripple) ), () -> { + node(sunkenPier, Seq.with( + new SectorComplete(navalFortress), + new SectorComplete(coastline), + new Research(multiplicativeReconstructor) + ), () -> { + + }); + node(weatheredChannels, Seq.with( new SectorComplete(impact0078), new SectorComplete(navalFortress), diff --git a/core/src/mindustry/type/SectorPreset.java b/core/src/mindustry/type/SectorPreset.java index 220ffc2ec2..fa283b1e78 100644 --- a/core/src/mindustry/type/SectorPreset.java +++ b/core/src/mindustry/type/SectorPreset.java @@ -70,9 +70,13 @@ public class SectorPreset extends UnlockableContent{ sector = data.presets.get(name, sector); } sector %= planet.sectors.size; - this.sector = planet.sectors.get(sector); + this.sector = planet.sectors.get(sector == -1 ? 0 : sector); - planet.preset(sector, this); + if(sector != -1){ + planet.preset(sector, this); + }else{ + Log.warn("Preset '@' doesn't have a sector assigned.", name); + } } @Override diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index eecc8e606c..a6c99837b9 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -269,7 +269,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //announce new presets for(SectorPreset preset : content.sectors()){ - if(preset.unlocked() && !preset.alwaysUnlocked && !preset.sector.info.shown && preset.requireUnlock && !preset.sector.hasBase() && preset.planet == state.planet){ + if(preset.unlocked() && preset.sector.preset == preset && !preset.alwaysUnlocked && !preset.sector.info.shown && preset.requireUnlock && !preset.sector.hasBase() && preset.planet == state.planet){ newPresets.add(preset.sector); preset.sector.info.shown = true; preset.sector.saveInfo(); @@ -662,7 +662,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ PlanetData data = new PlanetData(); IntSeq attack = new IntSeq(); for(var sector : state.planet.sectors){ - if(sector.preset == null && sector.generateEnemyBase){ + if((sector.preset == null || !sector.preset.requireUnlock) && sector.generateEnemyBase){ attack.add(sector.id); } diff --git a/core/src/mindustry/ui/dialogs/SectorSelectDialog.java b/core/src/mindustry/ui/dialogs/SectorSelectDialog.java index 7624f8005b..c1ab07af05 100644 --- a/core/src/mindustry/ui/dialogs/SectorSelectDialog.java +++ b/core/src/mindustry/ui/dialogs/SectorSelectDialog.java @@ -78,6 +78,6 @@ public class SectorSelectDialog extends BaseDialog{ } boolean matches(SectorPreset sector, String text){ - return sector.planet == planet && (text.isEmpty() || sector.name.toLowerCase(Locale.ROOT).contains(text) || sector.localizedName.toLowerCase(Locale.ROOT).contains(text)); + return sector.planet == planet && sector.requireUnlock && (text.isEmpty() || sector.name.toLowerCase(Locale.ROOT).contains(text) || sector.localizedName.toLowerCase(Locale.ROOT).contains(text)); } }