diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 83381318..b606b0ea 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -85,4 +85,9 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) /proc/gameTimestamp(format = "hh:mm:ss", wtime=null) if(!wtime) wtime = world.time - return time2text(wtime - GLOB.timezoneOffset, format) \ No newline at end of file + return time2text(wtime - GLOB.timezoneOffset, format) + +//Approximate time in seconds, which it then calculates the ticks using the world's fps value and the master tick rate.. +//Warning, this will likely be innacurate if the server is having tickrate issues. It's fine for shorter things though. +/proc/approximateSecondsToTicks(seconds) + return seconds*(world.fps/CONFIG_GET(number/mc_tick_rate/base_mc_tick_rate))/2 diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 5bf23c7a..f4e68073 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -315,9 +315,11 @@ Every day, you pause and recollect your memories from before it all happened... " assignedrole = "Arctic Exile" mirrorcanloadappearance = TRUE + ghost_usable = FALSE /obj/effect/mob_spawn/human/exiled/Initialize(mapload) . = ..() + delayusability(900) var/arrpee = rand(1,3) switch(arrpee) if(1) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index f43c76f1..4fddd798 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -86,6 +86,14 @@ /obj/effect/mob_spawn/proc/equip(mob/M) return +/obj/effect/mob_spawn/proc/delayusability(seconds) + addtimer(CALLBACK(src, .proc/enableghostrole), approximateSecondsToTicks(seconds)) + +/obj/effect/mob_spawn/proc/enableghostrole() + ghost_usable = TRUE + GLOB.poi_list |= src + LAZYADD(GLOB.mob_spawners[job_description ? job_description : name], src) + /obj/effect/mob_spawn/proc/create(ckey, name) var/mob/living/M = new mob_type(get_turf(src)) //living mobs only if(!random)