diff --git a/code/datums/action.dm b/code/datums/action.dm index 77aa729eb1..cb56c26b91 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -141,6 +141,17 @@ current_button.add_overlay(mutable_appearance(icon_icon, button_icon_state)) current_button.button_icon_state = button_icon_state +/datum/action/ghost + icon_icon = 'icons/mob/mob.dmi' + button_icon_state = "ghost" + name = "Ghostize" + desc = "Turn into a ghost and freely come back to your body." + +/datum/action/ghost/Trigger() + if(!..()) + return 0 + var/mob/M = target + M.ghostize(1) //Presets for item actions /datum/action/item_action diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index b26cae2fb0..3314401245 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -177,8 +177,6 @@ // 15 minutes-ish safe period before being despawned. var/time_till_despawn = 15 * 600 // This is reduced by 90% if a player manually enters cryo var/despawn_world_time = null // Used to keep track of the safe period. - var/penalize_cryo = TRUE // Makes it so that players who cryo are not eligible for midround antags. - var/announce_cryo = TRUE // Makes it so when players cryo it's announced to the station var/obj/machinery/computer/cryopod/control_computer var/last_no_computer_message = 0 @@ -410,7 +408,7 @@ // Ghost and delete the mob. if(!mob_occupant.get_ghost(1)) - mob_occupant.ghostize(FALSE, penalize = penalize_cryo) + mob_occupant.ghostize(FALSE, penalize = TRUE) QDEL_NULL(occupant) open_machine() @@ -494,7 +492,3 @@ //Attacks/effects. /obj/machinery/cryopod/blob_act() return //Sorta gamey, but we don't really want these to be destroyed. - -/obj/machinery/cryopod/ghost_cafe - penalize_cryo = FALSE - announce_cryo = FALSE diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 8ee6981fa4..b6c69e5470 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -620,6 +620,8 @@ SSquirks.AssignQuirks(new_spawn, new_spawn.client, TRUE, TRUE, null, FALSE, new_spawn) new_spawn.AddElement(/datum/element/ghost_role_eligibility) ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, "Ghost Cafe") + var/datum/action/ghost/G = new(new_spawn) + G.Grant(new_spawn) /datum/outfit/ghostcafe name = "ID, jumpsuit and shoes"