Yes, but you'll need to replace the script RemnantThemeGenerator.java with an altered version.
The relevant section of code is here:
public static final int MIN_CONSTELLATIONS_WITH_REMNANTS = 15;
public static final int MAX_CONSTELLATIONS_WITH_REMNANTS = 25;
public static float CONSTELLATION_SKIP_PROB = 0.25f;
Turn the min and max numbers up and you should be good to go.
Yes, but you'll need to replace the script RemnantThemeGenerator.java with an altered version.
The relevant section of code is here:
public static final int MIN_CONSTELLATIONS_WITH_REMNANTS = 15;
public static final int MAX_CONSTELLATIONS_WITH_REMNANTS = 25;
public static float CONSTELLATION_SKIP_PROB = 0.25f;
Turn the min and max numbers up and you should be good to go.
Okay, i'm doing something wrong.
So, i changed MIN_CONSTELLATIONS_WITH_REMNANTS to 75, MAX_CONSTELLATIONS_WITH_REMNANTS to 125, and overall amount of constellations up to 300, using Grand Sector mod. Also turned CONSTELLATION_SKIP_PROB=0f
I started new game, and decided to check through devmode on, ctrl+z and going "outside", and i got only 22 remnant beacons.
I turned Grand Sector off, and cranked up both sector size in settings, and "count" in SectorProcGen.java, but got the same result.
Spoiler
(https://i.imgur.com/hWYKSAI.jpg)
Broadcasts the Distress Call.
Ok, two things.
First:
Spoiler
(https://i.imgur.com/9mOYqyu.jpg)
Second: i'm pretty sure i break something.
Spoiler
public void generateForSector(ThemeGenContext context, float allowedUnusedFraction) {
float total = (float) (context.constellations.size() - context.majorThemes.size()) * allowedUnusedFraction;
if (total <= 0) return;
int num = (int) StarSystemGenerator.getNormalRandom(MIN_CONSTELLATIONS_WITH_REMNANTS, MAX_CONSTELLATIONS_WITH_REMNANTS);
//if (num > total) num = (int) total;
Also, apparently, i'm unable do the same through mod. Feelsbad.
So from what I'm reading, total (which is (context.constellations.size() - context.majorThemes.size()) * allowedUnusedFraction) is a secret cap, above and beyond MAX_CONSTELLATIONS_WITH_REMNANTS.
Odd that it's a float though, I always thought that those were <1.
For a lark, try instead replacing it with something like:
(context.constellations.size() - context.majorThemes.size()) * allowedUnusedFraction * 20
Or if you can find allowedUnusedFraction somewhere, try upping that.
Nah, if i do that this way it will probably generate zero remnants, since total will be smaller.
Why would multiplying total make it smaller?
Spoiler
float total = (float) (context.constellations.size() - context.majorThemes.size()) * allowedUnusedFraction;
if (total <= 0) return;
int num = (int) StarSystemGenerator.getNormalRandom(MIN_CONSTELLATIONS_WITH_REMNANTS, MAX_CONSTELLATIONS_WITH_REMNANTS);
if (num > total) num = (int) total;
Well, if MIN_CONSTELLATIONS_WITH_REMNANTS=75, and MAX_CONSTELLATIONS_WITH_REMNANTS=125, num will be somewhere in-between, let's say 100. If number > total => number==total, so maximum possible amount of remsystems decreases.
Since total is something similar to "constellations free for new themes", by multiplying allowedUnusedFraction we decreasing "total" number.
At least this is what i'm seeing here.
Also, i found this:
Spoiler
public interface ThemeGenerator {
String getThemeId();
void generateForSector(ThemeGenContext context, float allowedUnusedFraction);
/**
* Themes with lower "order" values get their shot at generating content first.
* @return
*/
int getOrder();
/**
* What fraction of the Sector this theme wants to be used for, relative to other themes.
*
* The fraction it gets is weight / (total weight of all themes).
*
* Base value is 100.
*
* @return
*/
float getWeight();
Random getRandom();
void setRandom(Random random);
}
So it make sense.
Spoiler
float total = (float) (context.constellations.size() - context.majorThemes.size()) * allowedUnusedFraction;
if (total <= 0) return;
int num = (int) StarSystemGenerator.getNormalRandom(MIN_CONSTELLATIONS_WITH_REMNANTS, MAX_CONSTELLATIONS_WITH_REMNANTS);
if (num > total) num = (int) total;
Well, if MIN_CONSTELLATIONS_WITH_REMNANTS=75, and MAX_CONSTELLATIONS_WITH_REMNANTS=125, num will be somewhere in-between, let's say 100. If number > total => number==total, so maximum possible amount of remsystems decreases.
Since total is something similar to "constellations free for new themes", by multiplying allowedUnusedFraction we decreasing "total" number.
At least this is what i'm seeing here.
Right, so let's say total, as is, is 90.
Sticking * 20 on the end now makes total 1800. So now the cap for the maximum number of systems is 20 times higher.
if (num > total) num = (int) total;
Means that if num is higher than total, it is set to total. So the higher total is, the higher num can be before getting capped, not the lower.
Or if you can find allowedUnusedFraction somewhere, try upping that.
Okaaaay, i think i found it.
public class SectorThemeGenerator {
public static List<ThemeGenerator> generators = new ArrayList<ThemeGenerator>();
static {
generators.add(new DerelictThemeGenerator());
generators.add(new RemnantThemeGenerator());
generators.add(new RuinsThemeGenerator());
generators.add(new MiscellaneousThemeGenerator());
}
public static void generate(ThemeGenContext context) {
Collections.sort(generators, new Comparator<ThemeGenerator>() {
public int compare(ThemeGenerator o1, ThemeGenerator o2) {
int result = o1.getOrder() - o2.getOrder();
if (result == 0) return o1.getThemeId().compareTo(o2.getThemeId());
return result;
}
});
float totalWeight = 0f;
for (ThemeGenerator g : generators) {
totalWeight += g.getWeight();
g.setRandom(StarSystemGenerator.random);
}
for (ThemeGenerator g : generators) {
float w = g.getWeight();
float f = 0f;
if (totalWeight > 0) {
f = w / totalWeight;
} else {
if (w > 0) f = 1f;
}
//g.setRandom(StarSystemGenerator.random);
g.generateForSector(context, f);
//float used = context.majorThemes.size();
totalWeight -= w;
}
}
}
getWeight always returns 100, so f (allowedUnusedFraction) is always 0.25
Still not sure what context.majorThemes.size returns, but here's thing, context.constellations.size() should return 100 in base game, and i got ~20 systems in first playthrough. Maybe "majorThemes" just unused in base game, hell if i'm know. If it is that way, remnants capped at 25% of free sector systems = 25 remnant systems maximum at default map. Since i changed amount of constellations through mod, maybe it just returned base value of 100 and *** me. I'll try something to see how it works.