Cruxscape and GS moved off of tech tree

This commit is contained in:
Anuken
2026-01-06 02:08:26 -05:00
parent 57b1cfa3fa
commit a0e37f3f37
6 changed files with 17 additions and 31 deletions

View File

@@ -13,8 +13,6 @@ public class SectorPresets{
impact0078, desolateRift, nuclearComplex, planetaryTerminal,
coastline, navalFortress, weatheredChannels, seaPort,
geothermalStronghold, cruxscape,
onset, aegis, lake, intersect, basin, atlas, split, marsh, peaks, ravine, caldera,
stronghold, crevice, siege, crossroads, karst, origin;
@@ -161,12 +159,18 @@ public class SectorPresets{
isLastSector = true;
}};
geothermalStronghold = new SectorPreset("geothermalStronghold", serpulo, 264){{
//TODO: show up differently with PLT selected.
new SectorPreset("geothermalStronghold", serpulo, 264){{
requireUnlock = false;
difficulty = 10;
showHidden = true;
}};
cruxscape = new SectorPreset("cruxscape", serpulo, 54){{
new SectorPreset("cruxscape", serpulo, 54){{
requireUnlock = false;
difficulty = 10;
showHidden = true;
}};
SectorSubmissions.registerSectors();

View File

@@ -521,29 +521,7 @@ public class SerpuloTechTree{
new Research(exponentialReconstructor),
new Research(tetrativeReconstructor)
), () -> {
node(geothermalStronghold, Seq.with(
new Research(omura),
new Research(navanax),
new Research(eclipse),
new Research(oct),
new Research(reign),
new Research(corvus),
new Research(toxopid)
), () -> {
});
node(cruxscape, Seq.with(
new Research(omura),
new Research(navanax),
new Research(eclipse),
new Research(oct),
new Research(reign),
new Research(corvus),
new Research(toxopid)
), () -> {
});
});
});
});

View File

@@ -155,7 +155,7 @@ abstract class BuilderComp implements Posc, Statusc, Teamc, Rotc{
if(!within(tile, finalPlaceDst)) continue;
if(!headless){
Vars.control.sound.loop(Sounds.loopBuild, tile, 1.2f);
Vars.control.sound.loop(Sounds.loopBuild, tile, 1.3f);
}
if(!(tile.build instanceof ConstructBuild cb)){

View File

@@ -146,7 +146,9 @@ public class Sector{
}
public String name(){
if(preset != null && info.name == null && preset.requireUnlock) return preset.localizedName;
if(preset != null && info.name == null && (preset.requireUnlock || preset.showHidden)){
return preset.localizedName;
}
//single-sector "planets" use their own name for the sector name.
if(info.name == null && planet.sectors.size == 1){
return planet.localizedName;
@@ -161,7 +163,7 @@ public class Sector{
@Nullable
public TextureRegion icon(){
return info.contentIcon != null ? info.contentIcon.uiIcon : info.icon == null ? (preset != null && preset.requireUnlock && preset.uiIcon.found() && preset.unlocked() ? preset.uiIcon : null) : Fonts.getLargeIcon(info.icon);
return info.contentIcon != null ? info.contentIcon.uiIcon : info.icon == null ? (preset != null && preset.requireUnlock && preset.unlocked() && preset.uiIcon.found() ? preset.uiIcon : null) : Fonts.getLargeIcon(info.icon);
}
@Nullable

View File

@@ -25,6 +25,8 @@ public class SectorPreset extends UnlockableContent{
public boolean isLastSector;
/** If true, this sector must be unlocked before landing is permitted. */
public boolean requireUnlock = true;
/** If true, the icon and name is shown, even when it's a 'hidden' always-unlocked sector. TODO: this field may be changed, not sure how it should work*/
public boolean showHidden = false;
public boolean showSectorLandInfo = true;
/** If true, uses this sector's launch fields instead */
public boolean overrideLaunchDefaults = false;

View File

@@ -536,8 +536,8 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{
var preficon = sec.icon();
var icon =
sec.isAttacked() ? Fonts.getLargeIcon("warning") :
!sec.hasBase() && sec.preset != null && sec.preset.requireUnlock && sec.preset.unlocked() && preficon == null ?
(sec.preset != null && sec.preset.requireUnlock && sec.preset.unlocked() ? sec.preset.uiIcon : Fonts.getLargeIcon("terrain")) :
!sec.hasBase() && sec.preset != null && ((sec.preset.requireUnlock && sec.preset.unlocked()) || (sec.preset.showHidden && mode == planetLaunch)) && preficon == null ?
(sec.preset != null && ((sec.preset.requireUnlock && sec.preset.unlocked()) || sec.preset.showHidden) ? sec.preset.uiIcon : Fonts.getLargeIcon("terrain")) :
sec.preset != null && sec.preset.requireUnlock && sec.preset.locked() && sec.preset.techNode != null && (sec.preset.techNode.parent == null || !sec.preset.techNode.parent.content.locked()) ? Fonts.getLargeIcon("lock") :
preficon;
var color = sec.isAttacked() ? Team.sharded.color : Color.white;