Bugfix pile (#22823)

Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.

changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
  - bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
  - bugfix: "Fixes additional materials regressions in INDRA code."
  - bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
This commit is contained in:
Batrachophreno
2026-07-12 18:06:28 +00:00
committed by GitHub
parent f39fd55441
commit 1c8c0c2221
178 changed files with 1040 additions and 794 deletions
@@ -179,8 +179,15 @@ when portals are shortly lived, or when portals are made to be obvious with spec
// Connects both sides of a portal together.
/obj/effect/map_effect/portal/master/proc/find_counterparts()
var/list/invalid_portal_masters
for(var/thing in GLOB.all_portal_masters)
if(!istype(thing, /obj/effect/map_effect/portal/master))
LAZYADD(invalid_portal_masters, thing)
continue
var/obj/effect/map_effect/portal/master/M = thing
if(QDELETED(M))
LAZYADD(invalid_portal_masters, thing)
continue
if(M == src)
continue
if(M.counterpart)
@@ -197,6 +204,9 @@ when portals are shortly lived, or when portals are made to be obvious with spec
their_line.counterpart = our_line
break
if(invalid_portal_masters)
GLOB.all_portal_masters -= invalid_portal_masters
if(!counterpart)
crash_with("Portal master [type] ([x],[y],[z]) could not find another portal master with a matching portal_id ([portal_id]).")