So, how it ought to work is that syndromes have an "adjusted level" which is multiplied by severity, then divided by 100, and then it adds 1 to all that, and if that's below 100 it just doesn't do the effect. How adjusted_level is calculated is:
1. Start with the current syndrome concentration (I think this is usually 10000, by default? A lot of syndromes have explicit set-to-10000 lines just in case in the vanilla raws)
2. Calculate dilution factor as DISEASE_RESISTANCE * SYNDROME_DILUTION_FACTOR/100 (only used for dwarves and alcohol right now, but important to point out)
2. If the symptom is RESISTABLE, multiply the dilution factor by min(500, exposure count*10+100)/100 (apparently RESISTABLE refers to immunity from repeat exposure?
I didn't know this either?
)
3. Multiply the dilution factor by min(500, exposure count*10+100)/100
4. If SIZE_DILUTES, multiply dilution factor by body size/100
5. Do...
the equation in this graph. Where adjusted_level was L_0, it is now L_1. As you can see, in practice these means that a dilution level of 5000 makes it 1% as strong, of 0 makes it 2x as strong, and 2500 is the halfway point between these.
6. Set the level to 1, if it's lower.
7. If there's a PEAK, multiply so you get a linear ramp-up to PEAK from START, if before PEAK; if after PEAK and no ABRUPT_END, do a similar linear interpolation.
Quick test with king cobra on a human got me an adjusted_level of 990, which sent the pain to "urgent care required" levels immediately, so I suspect it's an issue with PEAK calculations; this syndrome has a PEAK, and an early one, so it gets strong quickly.
[SYNDROME]
[SYN_NAME:king cobra bite]
[SYN_AFFECTED_CLASS:GENERAL_POISON]
[SYN_IMMUNE_CREATURE:KING_COBRA:ALL]
[SYN_INJECTED]
[CE_PAIN:SEV:75:PROB:100:RESISTABLE:SIZE_DILUTES:LOCALIZED:VASCULAR_ONLY:START:10:PEAK:50:END:1200]
[CE_DIZZINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_DROWSINESS:SEV:50:PROB:100:RESISTABLE:SIZE_DILUTES:START:30:PEAK:100:END:1200]
[CE_PARALYSIS:SEV:100:PROB:100:RESISTABLE:SIZE_DILUTES:START:60:PEAK:100:END:1200]