BUGSo I've been trying to get a certain Gedune ship for a while. But after sitting on their station for ages, only really small fleet types were spawning. The only ones I saw were Scavengers, Scouts, and Raider. But in /data/world/factions, there's three bigger fleet types: Liberators, Elites, and Seige Group.
After digging around a bit, I think I found the problem in /data/scripts/world/GeduneSpawnPoint.java:
@Override
protected CampaignFleetAPI spawnFleet() {
float r = (float) Math.random();
if ( (r -= .5f) < 0) {
return raidFleet("scout");
} else if ((r -= .4f) < 0) {
return raidFleet("longRangeScout");
} else if ((r -= .3f) < 0) {
return raidFleet("raiders");
} else if ((r -= .2f) < 0) {
return Math.random() > 0.3 ? raidFleet("libers"): defendFleet("libers");
} else if ((r -= .2f) < 0) {
return l33tFleet(Math.random() > 0.1 ? raidFleet("elite"): defendFleet("elite"));
} else {
return Math.random() > 0.1 ? raidFleet("siege"): defendFleet("siege");
}
}
Looks like an oversight when adding new fleet types; the probabilities total more than 100%, so the top several are the only ones that ever get picked.
I think this should fix it; just chose some probabilities that summed to less than 1.0 (and the remaining 0.1 goes to the else for seige fleet type)
@Override
protected CampaignFleetAPI spawnFleet() {
float r = (float) Math.random();
if ( (r -= .3f) < 0) {
return raidFleet("scout");
} else if ((r -= .1f) < 0) {
return raidFleet("longRangeScout");
} else if ((r -= .2f) < 0) {
return raidFleet("raiders");
} else if ((r -= .2f) < 0) {
return Math.random() > 0.3 ? raidFleet("libers"): defendFleet("libers");
} else if ((r -= .1f) < 0) {
return l33tFleet(Math.random() > 0.1 ? raidFleet("elite"): defendFleet("elite"));
} else {
return Math.random() > 0.1 ? raidFleet("siege"): defendFleet("siege");
}
}