diff --git a/code/controllers/subsystems/statpanel.dm b/code/controllers/subsystems/statpanel.dm index b21965d9072..579b2c053f0 100644 --- a/code/controllers/subsystems/statpanel.dm +++ b/code/controllers/subsystems/statpanel.dm @@ -116,6 +116,9 @@ SUBSYSTEM_DEF(statpanels) /// Set up the various action tabs. /datum/controller/subsystem/statpanels/proc/set_action_tabs(client/target, mob/target_mob) + if(!target) + return + var/list/actions = target_mob.get_actions_for_statpanel() target.spell_tabs.Cut() diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index d6aefc17844..c256e6f6643 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -802,7 +802,10 @@ /obj/item/rig/dropped(var/mob/user) ..() - SSstatpanels.set_action_tabs(user.client, user) + + if(user.client) + SSstatpanels.set_action_tabs(user.client, user) + null_wearer(user) diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index 0523da6f417..578dc6de2d3 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -825,7 +825,9 @@ var/global/list/golem_types = list( /datum/species/golem/homunculus/handle_death(var/mob/living/carbon/human/H) if(turn_into_materials) - H.gib() + //This is because otherwise the removal of vital organs in the gibbing will call death again, which calls this again, creating a neverending + //server death loop + addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, gib)), 1 SECONDS) /datum/species/golem/homunculus/handle_environment_special(var/mob/living/carbon/human/H) if(prob(25)) diff --git a/html/changelogs/fluffyghost-fixfleshgolemexplodingserver.yml b/html/changelogs/fluffyghost-fixfleshgolemexplodingserver.yml new file mode 100644 index 00000000000..b95cdf2f01b --- /dev/null +++ b/html/changelogs/fluffyghost-fixfleshgolemexplodingserver.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: FluffyGhost + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixed flesh golems detonating the server." + - bugfix: "Fixed a runtime with RIGs and the statpanel action tab when there's no client in the wearer of the RIG."