Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 12:37, 20 May 2026 by Zemurin (talk | contribs) (4 revisions imported)
Precision

Precision is a statistic generated by the equipped Scanner module, and can be further boosted by substats on any other module or turret.

It defines how precise the ship's attacks are, which is relevant for critical hit calculations. The higher the level of the gear equipped on the ship, more Precision is required to maintain the same critical hit chance.

All turrets are subject to the same rule - thus having high precision on a mining ship will cause it to cause critical hits (and mine more ore) with increased frequency.

Precision and Critical chance

Critical Chance
  • At Level 1, 10 Precision equals 1.86% Critical Chance
  • At Level 30, 10 Precision equals 0.14% Critical Chance

There is always a base Critical chance of 3%. Skills that increase the Critical chance will always count towards the base value.

Example: A Skill gives 3% the base Critical chance, calculates to 6 (3% base + 3% from the skill)

Note: Precise calculations how Precision translates towards Critical Chance are not available at this time.

Cricital Hit Calculation

// ----- CRIT CALCULATION ----- 
int critCount = 0;                          // number of successful crit rolls 
float currentChance = this.criticalChance;  // initial crit chance 

// roll for crits repeatedly (multi-crit system) 
while (SeededRandom.Global.RandomBool(currentChance)) {    
  critCount++;                            // one crit succeeded    
  currentChance *= 0.5f;                  // each additional crit is half as likely    

  // cap number of crits by skill tree limit    
  if (critCount > SkilltreeNode.combatMegaCrit.currentPoints)    
  {        
    break;    
  } 

} 

// ----- APPLY CRIT DAMAGE ----- 

if (critCount > 0) {    
  float critMultiplier = 2f; // base crit = 2x damage    

  // add bonus crit damage from stats    
  if (this.sourceTurret != null)   
  {        
    critMultiplier += this.sourceTurret.GetStat(EquipStat.CriticalDamage);    
  }    
  else if (this.sourceUnit != null)    
  {        
    critMultiplier += this.sourceUnit.GetStat(EquipStat.CriticalDamage);    
  }    

  // apply exponential scaling for multi-crits    
  // 1 crit  → multiplier^1    
  // 2 crits → multiplier^2    
  // 3 crits → multiplier^3    
  damage *= Mathf.Pow(critMultiplier, critCount); 
}