diff --git a/code/controllers/subsystems/ghostroles.dm b/code/controllers/subsystems/ghostroles.dm index eec9fee6faf..5cc6a02212e 100644 --- a/code/controllers/subsystems/ghostroles.dm +++ b/code/controllers/subsystems/ghostroles.dm @@ -193,7 +193,7 @@ /datum/controller/subsystem/ghostroles/proc/add_spawn_atom(var/ghost_role_name, var/atom/spawn_atom) if(ghost_role_name && spawn_atom) var/datum/ghostspawner/G = spawners[ghost_role_name] - if(G) + if(G && !(spawn_atom in G.spawn_atoms)) G.spawn_atoms += spawn_atom if(G.atom_add_message) say_dead_direct("[G.atom_add_message]
Spawn in as it by using the ghost spawner menu in the ghost tab, and try to be good!") diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 89feb7d8c72..1ef0e86f9e7 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -194,9 +194,13 @@ . = ..() SSghostroles.remove_spawn_atom("matriarchmaintdrone", src) +/mob/living/silicon/robot/drone/construction/matriarch/do_possession(mob/abstract/observer/possessor) + . = ..() + SSghostroles.remove_spawn_atom("matriarchmaintdrone", src) + /mob/living/silicon/robot/drone/construction/matriarch/ghostize(can_reenter_corpse, should_set_timer) . = ..() - if(stat == DEAD) + if(can_reenter_corpse || stat == DEAD) return if(src in mob_list) // needs to exist to reopen spawn atom set_name(initial(name)) diff --git a/html/changelogs/geeves-matriarch_fixes.yml b/html/changelogs/geeves-matriarch_fixes.yml new file mode 100644 index 00000000000..0181fd077a7 --- /dev/null +++ b/html/changelogs/geeves-matriarch_fixes.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Dragging yourself onto a matriarch drone to possess it will now remove it from the ghost spawner list." + - bugfix: "Aghosting from a matriarch drone no longer reopens the slot." \ No newline at end of file