diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 426855f887..d55f1195ce 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -169,8 +169,7 @@ holder.icon_state = "nanites[nanite_percent]" /datum/component/nanites/proc/on_emp(datum/source, severity) - nanite_volume *= (rand(0.60, 0.90)) //Lose 10-40% of nanites - adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume. if(prob(40/severity)) cloud_id = 0 for(var/X in programs) @@ -178,14 +177,13 @@ NP.on_emp(severity) /datum/component/nanites/proc/on_shock(datum/source, shock_damage) - nanite_volume *= (rand(0.45, 0.80)) //Lose 20-55% of nanites - adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume for(var/X in programs) var/datum/nanite_program/NP = X NP.on_shock(shock_damage) /datum/component/nanites/proc/on_minor_shock(datum/source) - adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume + adjust_nanites(null, -15) for(var/X in programs) var/datum/nanite_program/NP = X NP.on_minor_shock() @@ -311,4 +309,4 @@ mob_program["trigger_code"] = P.trigger_code id++ mob_programs += list(mob_program) - data["mob_programs"] = mob_programs \ No newline at end of file + data["mob_programs"] = mob_programs