Skill calculation fixes, tweaks, antag and brain damage modifiers. (#12302)

* Skill calculation fixes, tweaks, antag and brain damage modifiers.

* Experience through patience.

* Priority Fix etcetera.
This commit is contained in:
Ghom
2020-05-21 03:42:58 +02:00
committed by GitHub
parent a7053a978f
commit 7f38e0714b
19 changed files with 181 additions and 114 deletions
+8 -4
View File
@@ -57,10 +57,11 @@
surgery.step_in_progress = FALSE
return FALSE
if(tool)
speed_mod = tool.toolspeed
speed_mod = tool.toolspeed //faster tools mean faster surgeries, but also less experience.
if(user.mind)
speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_COMPETENT, FALSE)
if(do_after(user, time * speed_mod, target = target))
speed_mod = user.mind.action_skill_mod(/datum/skill/numerical/surgery, speed_mod, THRESHOLD_UNTRAINED, FALSE)
var/delay = time * speed_mod
if(do_after(user, delay, target = target))
var/prob_chance = 100
if(implement_type) //this means it isn't a require hand or any item step.
prob_chance = implements[implement_type]
@@ -68,7 +69,10 @@
if((prob(prob_chance) || (iscyborg(user) && !silicons_obey_prob)) && chem_check(target) && !try_to_fail)
if(success(user, target, target_zone, tool, surgery))
user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP)
var/multi = (delay/SKILL_GAIN_DELAY_DIVISOR)
if(repeatable)
multi *= 0.5 //Spammable surgeries award less experience.
user.mind?.auto_gain_experience(/datum/skill/numerical/surgery, SKILL_GAIN_SURGERY_PER_STEP * multi)
advance = TRUE
else
if(failure(user, target, target_zone, tool, surgery))