Technomancer Bugfix Extravaganza (#22873)

Technomancers, you're up.

changes:
- bugfix: "Fixes Mend Synthetic not repairing synthetic/robotic limbs
correctly."
- bugfix: "Fixes Dispel not removing Technomancer effects from its
target."
  - bugfix: "Fixes Corona not making targets glow or easier to hit."
- bugfix: "Fixes Resurrect not enforcing its maximum time-since-death
limit."
- bugfix: "Fixes Mend Internals skipping organic body parts because it
used old bitflags."
- bugfix: "Fixes Shield's scepter enhancement being straight up
ignored."
  - bugfix: "Fixes Energy Siphon overfilling synthetic internal cells."
- bugfix: "Fixes Audible Deception playing on the user instead of the
targeted turf, defeating the entire point of it."
- bugfix: "Fixes a bunch of spells not actually ending immediately when
energy runs out (and potential harddels.)"
This commit is contained in:
Batrachophreno
2026-07-19 10:16:53 +00:00
committed by GitHub
parent 076dc5463b
commit 2dc7bd03ce
16 changed files with 149 additions and 26 deletions
+11 -2
View File
@@ -349,11 +349,20 @@ GLOBAL_LIST_INIT(organ_rel_size, list(
return target.calculate_zone_with_miss_chance(zone, miss_chance_mod)
/mob/proc/get_modifier_miss_chance_modifier()
if(!modifiers)
return 0
var/total_modifier = 0
for(var/datum/modifier/M in modifiers)
if(M.active)
total_modifier += M.miss_chance_modifier
return total_modifier
/mob/proc/calculate_zone_with_miss_chance(var/zone, var/miss_chance_mod)
var/miss_chance = 10
if (zone in GLOB.base_miss_chance)
miss_chance = GLOB.base_miss_chance[zone]
miss_chance = max(miss_chance + miss_chance_mod, 0)
miss_chance = max(miss_chance + miss_chance_mod + get_modifier_miss_chance_modifier(), 0)
if(prob(miss_chance))
if(prob(70))
return null
@@ -367,7 +376,7 @@ GLOBAL_LIST_INIT(organ_rel_size, list(
var/miss_chance = 10
if(zone in GLOB.base_miss_chance)
miss_chance = GLOB.base_miss_chance[zone]
miss_chance = max(miss_chance + miss_chance_mod, 0)
miss_chance = max(miss_chance + miss_chance_mod + get_modifier_miss_chance_modifier(), 0)
if(prob(miss_chance))
return pick(GLOB.base_miss_chance)
return zone