Various ghost role QoL; moving holding facility; removing energy net (#11676)

* Removed gay baby jail net from ninja

* Made a proper holding facility for syndicate contractors

* Made ghost role eligibility able to allow reghosting.

* Added a medibot to the holding facility.

* Added new comsigs to every other ghost proc

* Properly dummied out capture objective
This commit is contained in:
Putnam3145
2020-03-31 13:04:55 -07:00
committed by GitHub
parent 01b30b4ebb
commit 658701bf37
12 changed files with 130 additions and 73 deletions
+16 -2
View File
@@ -1,12 +1,17 @@
/datum/element/ghost_role_eligibility
element_flags = ELEMENT_DETACH
element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE
id_arg_index = 3
var/list/timeouts = list()
var/list/mob/eligible_mobs = list()
var/penalizing = FALSE
var/free_ghost = FALSE
/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE)
/datum/element/ghost_role_eligibility/Attach(datum/target,penalize = FALSE,free_ghosting = FALSE, penalize_on_ghost = FALSE)
. = ..()
if(!ismob(target))
return ELEMENT_INCOMPATIBLE
penalizing = penalize_on_ghost
free_ghost = free_ghosting
var/mob/M = target
if(!(M in eligible_mobs))
eligible_mobs += M
@@ -27,6 +32,7 @@
else if(timeouts[M.ckey] == CANT_REENTER_ROUND)
return
timeouts[M.ckey] = max(timeouts[M.ckey],penalty)
RegisterSignal(M,COMSIG_MOB_GHOSTIZE,.proc/get_ghost_flags)
/datum/element/ghost_role_eligibility/Detach(mob/M)
. = ..()
@@ -56,3 +62,11 @@
if(!silent && M.client)
to_chat(M, "<span class='warning'>You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].</span>")
return FALSE
/datum/element/ghost_role_eligibility/proc/get_ghost_flags()
. = 0
if(!penalizing)
. |= COMPONENT_DO_NOT_PENALIZE_GHOSTING
if(free_ghost)
. |= COMPONENT_FREE_GHOSTING
return .