diff --git a/code/datums/mind.dm b/code/datums/mind.dm index cf3202c2..22a340da 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -61,6 +61,7 @@ var/datum/language_holder/language_holder var/unconvertable = FALSE var/late_joiner = FALSE + var/lastrespawn = 0 var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 2e643cc0..9c47180d 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -222,9 +222,9 @@ if(!..()) return if(IsStun() || IsKnockdown()) //just while I finish up the new 'fun' suiciding verb. This is to prevent metagaming via suicide - to_chat(src, "You can't commit suicide while stunned! ((You can type Ghost instead however.))") + to_chat(src, "You can't commit suicide while stunned!") return if(restrained()) - to_chat(src, "You can't commit suicide while restrained! ((You can type Ghost instead however.))") + to_chat(src, "You can't commit suicide while restrained!") return return TRUE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0e2e50c2..13774d90 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -269,6 +269,7 @@ Works together with spawning an observer, noted above. ghost.can_reenter_corpse = can_reenter_corpse ghost.can_reenter_round = (can_reenter_corpse && !suiciding) ghost.key = key + ghost.client.lastrespawn = world.time + 1800 SECONDS return ghost /* @@ -282,8 +283,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp // CITADEL EDIT if(istype(loc, /obj/machinery/cryopod)) - var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") + var/response = alert(src, "Are you -sure- you want to ghost?\n(If you ghost now, you will have to wait 30 minutes before you are able to respawn!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost")//darn copypaste + client.lastrespawn = world.time + 1800 SECONDS //set respawn time return var/obj/machinery/cryopod/C = loc C.despawn_occupant() @@ -295,11 +297,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(stat == DEAD) ghostize(1) else + //Low RP, removing. + /* var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you won't be able to re-enter this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 suicide_log(TRUE) + */ + to_chat(usr, "You cannot ghost, if you wish to remove yourself from the round, please locate a cryogenic freezer.") + message_admins("[usr] attempted to ghost.") /mob/camera/verb/ghost() set category = "OOC" diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 22d70920..ba81bd4e 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -84,6 +84,7 @@ if (client) client.move_delay = initial(client.move_delay) + client.lastrespawn = world.time + 1800 SECONDS //on death, 30 min respawn time. for(var/s in ownedSoullinks) var/datum/soullink/S = s diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 9e4cc055..d0b483e7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -423,9 +423,15 @@ to_chat(usr, "You must be dead to use this!") return + if(usr.client.lastrespawn <= world.time) + usr.client.lastrespawn = world.time + 1800 SECONDS + else + to_chat(usr, "You must wait [DisplayTimeText(usr.client.lastrespawn - world.time)] before respawning!") + return + log_game("[key_name(usr)] used abandon mob.") - to_chat(usr, "Please roleplay correctly!") + to_chat(usr, "Please roleplay correctly, do not meta-game, and use information from a different character or characters, to influence your actions!") if(!client) log_game("[key_name(usr)] AM failed due to disconnect.") @@ -442,6 +448,7 @@ qdel(M) return + message_admins("[client.ckey] respawned.") M.key = key // M.Login() //wat return @@ -530,7 +537,7 @@ /mob/proc/is_muzzled() return 0 - + /mob/Stat() ..() diff --git a/modular_citadel/code/modules/client/client_defines.dm b/modular_citadel/code/modules/client/client_defines.dm index d816b15d..83b886be 100644 --- a/modular_citadel/code/modules/client/client_defines.dm +++ b/modular_citadel/code/modules/client/client_defines.dm @@ -1,2 +1,3 @@ /client var/cryo_warned = -3000//when was the last time we warned them about not cryoing without an ahelp, set to -5 minutes so that rounstart cryo still warns + var/lastrespawn = 0 //when the last time they respawned.