diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 0e1fc7daa86..e17b5098c5c 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -120,4 +120,17 @@ B.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND spawn(0) if(is_offspring) - B.verbs -= /mob/camera/blob/verb/split_consciousness \ No newline at end of file + B.verbs -= /mob/camera/blob/verb/split_consciousness + +/obj/structure/blob/core/proc/lateblobtimer() + addtimer(CALLBACK(src, .proc/lateblobcheck), 50) + +/obj/structure/blob/core/proc/lateblobcheck() + if(overmind) + overmind.add_points(60) + if(overmind.mind) + overmind.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND + else + log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks a overmind.mind.") + else + log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks an overmind.") \ No newline at end of file diff --git a/code/game/gamemodes/blob/blobs/storage.dm b/code/game/gamemodes/blob/blobs/storage.dm index f29fb9af405..8c9da104edf 100644 --- a/code/game/gamemodes/blob/blobs/storage.dm +++ b/code/game/gamemodes/blob/blobs/storage.dm @@ -7,7 +7,7 @@ var/mob/camera/blob/overmind = null /obj/structure/blob/storage/update_icon() - if(health <= 0) + if(health <= 0 && !QDELETED(src)) overmind.max_blob_points -= 50 qdel(src) diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index e58b2a861bd..a482642f023 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -1,7 +1,6 @@ /datum/event/blob - announceWhen = 60 - endWhen = 120 - var/obj/structure/blob/core/Blob + announceWhen = 120 + endWhen = 180 /datum/event/blob/announce() event_announcement.Announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg') @@ -24,11 +23,4 @@ B.key = M.key to_chat(B, "You are now a mouse, infected with blob spores. Find somewhere isolated... before you burst and become the blob! Use ventcrawl (alt-click on vents) to move around.") var/image/alert_overlay = image('icons/mob/blob.dmi', "blank_blob") - notify_ghosts("Infected Mouse has appeared in [get_area(B)].", source = B, alert_overlay = alert_overlay) - -/datum/event/blob/tick() - if(!Blob) - kill() - return - if(IsMultiple(activeFor, 3)) - Blob.process() + notify_ghosts("Infected Mouse has appeared in [get_area(B)].", source = B, alert_overlay = alert_overlay) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 079ec7df1d2..762dea31272 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -186,9 +186,7 @@ if(istype(blobmind) && istype(C)) blobmind.special_role = SPECIAL_ROLE_BLOB var/obj/structure/blob/core/core = new(T, 200, C, 3) - if(core.overmind && core.overmind.mind) - //core.overmind.mind.name = blob.name - core.overmind.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND + core.lateblobtimer() else new /obj/structure/blob/core(T) // Ghosts will be prompted to control it. if(ismob(loc)) // in case some taj/etc ate the mouse.