Near as I can tell, Chimera Squad uses the same code as XCOM2. This can be found in
X2Effect_ApplyWeaponDamage.uc in the SDK, and is also used for things like grenades, etc.:
if (DamageSpread > 0)
WeaponDamage += DamageSpread; // set to max damage based on spread
if (!bCritForcesMaxDamage) // Do max spread damage if the shot crit
WeaponDamage -= `SYNC_RAND(DamageSpread * 2 + 1);// multiply spread by 2 to get full range off base damage, add 1 as rand returns 0:x-1, not 0:x
Assault Rifles, SMGs, and Shotguns all have a damage spread of 1. This means Assault Rifles and SMGs are 3-5 damage, and Shotguns are 4-6. (Pistols have no spread, but have a 50% chance for bonus damage).
The counter-intuitive way this works is to start from the maximum possible damage, then subtract an integer between
In the case of a crit, they do bonus damage.
- Assault Rifle / SMG: 33% chance of 3,4,5
- Shotguns: 33% chance of 4, 5, 6
- Subdue: 50% chance of 2 or 3 (this is handled elsewhere b/c it's an ability)
- Workshop upgrades add to base damage
- Certain weapon crits always max spread damage