Early Access version 87

Knock yourself out:

		// Decide which stages will be replaced in hybrid missions
		const int hybridReplacement1 = rng.getI2(1, 4);
		const int hybridReplacement2 = hybridReplacement1 + 1 + rng.getI2(1, 4);
		const int hybridReplacement3 = hybridReplacement2 + 1 + rng.getI2(1, 4);

		...

		if (pd->perPlanetMissionType == HYBRID)
		{
			pd->perPlanetMissionType = INVASION; // Default setting
			// Certain planets have a chance of being substituted with another type
			if (p > 0 // Never replace first stage
				&& p < pInfo->numPlanets - 1 // Never replace last stage
				&& (p == hybridReplacement1 || p == hybridReplacement2 || p == hybridReplacement3))
			{
				RandomPick rp;
				rp.addEventuality(INVASION, 1);
				rp.addEventuality(COMETCHASE, 1);
				rp.addEventuality(SUPERNOVA, 1);
				rp.addEventuality(METEORSTORM, 1);
				rp.addEventuality(FEATHER, 1);
				rp.addEventuality(SUPPLYDROID, 0.5);
				rp.addEventuality(BOSSRUSH, 0.125);

				pd->perPlanetMissionType = rp.pick(&rng).index;
			}
		}
16 Likes