Re: One bum's code digging notes
Posted: Mon Feb 13, 2017 2:13 am
Ok, I did some more code digging with respect to mini-retals, and as I understand it:
- the "base" threshold for a mini-retal to trigger is 6 working rebels (this is from the .ini file)
- each faceless on a particular job does in fact adjust (reduce) the threshold for a mini-retal
- the adjusted threshold for a mini-retal has a low-end cap of 3 depending on how many faceless are working on that particular job in your haven (this part implies it is literally impossible no matter how many faceless are on a particular job to trigger a mini-retal with 2 people on the job)
Thus if you have 5 working rebels on a single job and they are not faceless, it should be impossible to trigger a mini-retal.
If you have 5 working rebels on a single job and 1 of them is a faceless, then it is possible to trigger a mini-retal (6-1 = 5 is the new threshold, and guess what you have 5 working rebels on the job). So it's risky to put 5 on a single job unless you're sure none of them are faceless.
If you have 4 working rebels on a single job and 1 of them is a faceless, then it should be impossible to trigger the mini-retal (this is probably the most reasonable thing you can do with the 1/6 faceless proportion). If 2 of them are faceless then you can get a mini-retal (this explains xwynn's data tap ).
If you have 3 working rebels on a single job and all are faceless, you can trigger the mini-retal.
If you have 2 working rebels on a single job and all are faceless, you can't trigger the mini-retal.
"Proof" or here is the code I found in a .uc file that actually processes the check for a mini-retal
// This is for triggering mini-retals at lower threshhold representing the Faceless leaking information. The 3 constant is so the mini-retals have a minimum number of rebels on the screen)
if (FacelessReduceMinimum)
{
AdjustedMinRebelsOnJob = Max (MinRebelsOnJob - OutPostState.GetNumFacelessOnJob(Job), 3);
}
if (OutPostState.GetNumRebelsOnJob(Job) >= AdjustedMinRebelsOnJob)
{
`LWTRACE ("MinRebelsOnJob Pass" @ string(AdjustedMinRebelsOnJob) @ ActivityCreation.ActivityTemplate.ActivityName);
return true;
}
`LWTRACE ("MinRebelsOnJob Fail" @ string(AdjustedMinRebelsOnJob) @ ActivityCreation.ActivityTemplate.ActivityName);
return false;
}
And a bit of conjecture looking at other related files for the "regular" retaliations; they do NOT seem to check for faceless, and as I posted originally, 5 working rebels in total is the minimum to trigger a retaliation.
Overall, if you have 4 working rebels, you should be immune to regular retaliations regardless of faceless count, and while you are not guaranteed to be immune to mini-retals, you have to be slightly unlucky if you get mini-retals with 4 working rebels since that imples at least 2 of them are faceless.
I don't know if this is a regularly recommended strategy to only have 4 rebels working on an area, but if you're tired of seeing retals then you set 4 to work and rest hide and you should be fine generally. If you're actively hunting for good missions like scientists/engineers/troop columns, you might have to put up with the risk of retal and go high in intel in order to detect those with a good enough timer.
- the "base" threshold for a mini-retal to trigger is 6 working rebels (this is from the .ini file)
- each faceless on a particular job does in fact adjust (reduce) the threshold for a mini-retal
- the adjusted threshold for a mini-retal has a low-end cap of 3 depending on how many faceless are working on that particular job in your haven (this part implies it is literally impossible no matter how many faceless are on a particular job to trigger a mini-retal with 2 people on the job)
Thus if you have 5 working rebels on a single job and they are not faceless, it should be impossible to trigger a mini-retal.
If you have 5 working rebels on a single job and 1 of them is a faceless, then it is possible to trigger a mini-retal (6-1 = 5 is the new threshold, and guess what you have 5 working rebels on the job). So it's risky to put 5 on a single job unless you're sure none of them are faceless.
If you have 4 working rebels on a single job and 1 of them is a faceless, then it should be impossible to trigger the mini-retal (this is probably the most reasonable thing you can do with the 1/6 faceless proportion). If 2 of them are faceless then you can get a mini-retal (this explains xwynn's data tap ).
If you have 3 working rebels on a single job and all are faceless, you can trigger the mini-retal.
If you have 2 working rebels on a single job and all are faceless, you can't trigger the mini-retal.
"Proof" or here is the code I found in a .uc file that actually processes the check for a mini-retal
// This is for triggering mini-retals at lower threshhold representing the Faceless leaking information. The 3 constant is so the mini-retals have a minimum number of rebels on the screen)
if (FacelessReduceMinimum)
{
AdjustedMinRebelsOnJob = Max (MinRebelsOnJob - OutPostState.GetNumFacelessOnJob(Job), 3);
}
if (OutPostState.GetNumRebelsOnJob(Job) >= AdjustedMinRebelsOnJob)
{
`LWTRACE ("MinRebelsOnJob Pass" @ string(AdjustedMinRebelsOnJob) @ ActivityCreation.ActivityTemplate.ActivityName);
return true;
}
`LWTRACE ("MinRebelsOnJob Fail" @ string(AdjustedMinRebelsOnJob) @ ActivityCreation.ActivityTemplate.ActivityName);
return false;
}
And a bit of conjecture looking at other related files for the "regular" retaliations; they do NOT seem to check for faceless, and as I posted originally, 5 working rebels in total is the minimum to trigger a retaliation.
Overall, if you have 4 working rebels, you should be immune to regular retaliations regardless of faceless count, and while you are not guaranteed to be immune to mini-retals, you have to be slightly unlucky if you get mini-retals with 4 working rebels since that imples at least 2 of them are faceless.
I don't know if this is a regularly recommended strategy to only have 4 rebels working on an area, but if you're tired of seeing retals then you set 4 to work and rest hide and you should be fine generally. If you're actively hunting for good missions like scientists/engineers/troop columns, you might have to put up with the risk of retal and go high in intel in order to detect those with a good enough timer.