Oh, frequency of enclave-spawns isn't involved in any of the stuff I've mentioned thus far. That logic is below:
private void CheckForRoamingEnclaveSpawn()
{
bool ForceSpawn = false;//ForceMarauderSpawnOnNextCheck;
//ForceMarauderSpawnOnNextCheck = false;
if ( Game.Instance.GameSecond % 75 == 0 || ForceSpawn ) //every 75 seconds only
{
if ( Game.Instance.Options.AIMinorFactions[(int)AIMinorFaction.NeinzulRoamingEnclaves] || ForceSpawn )
{
int numberOfGameSecondsBeforeCountingStarts = (int)( ( 15 * 60 ) * ( this.AIDifficulty - (FInt)10 ) );
if ( Game.Instance.GameSecond > numberOfGameSecondsBeforeCountingStarts )
{
this.RoamingEnclaveCounter++;
int thresholdLow = this.AIDifficulty < 5
? 50
: this.AIDifficulty < 8
? 37
: 25;
int thresholdHigh = this.AIDifficulty < 5
? 75
: this.AIDifficulty < 8
? ( 37 + 18 )
: 37;
if ( this.RoamingEnclaveCounter >= Game.Instance.GameRandom.Next( thresholdLow, thresholdHigh ) || ForceSpawn )
{
// goes on to actually pick an alignment, spawn the enclaves, and sets RoamingEnclaveCounter to zero
Just ignore the ForceSpawn thing, that's copypasta (that I might use later, but no need now).
Anyway, what this means is that on Diff 7, it doesn't even start counting until 45 minutes into the game. Starting at roughly 45 minutes, every 75 seconds it increments RoamingEnclaveCounter. After a minimum of 37 increments (which is 2775 seconds, or 46.25 minutes) and a maximum of 55 increments (which is 4125 seconds, or 68.75 minutes), it triggers an actual spawn. Since it rerolls the threshold every check, the probabilityof the actual time-to-spawn is much weighted towards the lower end.
Difficulty 7.3 and 7.6 would differ only in that the counter would start counting at roughly 40 minutes and 35 minutes, respectively, instead of waiting until 45 minutes. The interval between spawns would be identical to Diff 7.
So, questions:
1) What difficulty are you playing on (apologies if you already told me)?
2) What's the earliest enclave spawn?
3) How often are the enclaves spawning after that?
Thanks