mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
/datum/round_event_control/operative
|
|
name = "Lone Operative"
|
|
typepath = /datum/round_event/ghost_role/operative
|
|
weight = 0 //Admin only
|
|
max_occurrences = 1
|
|
category = EVENT_CATEGORY_INVASION
|
|
description = "A single nuclear operative assaults the station."
|
|
|
|
/datum/round_event/ghost_role/operative
|
|
minimum_required = 1
|
|
role_name = "lone operative"
|
|
fakeable = FALSE
|
|
|
|
/datum/round_event/ghost_role/operative/spawn_role()
|
|
var/list/candidates = get_candidates(ROLE_OPERATIVE, null, ROLE_OPERATIVE)
|
|
if(!candidates.len)
|
|
return NOT_ENOUGH_PLAYERS
|
|
|
|
var/mob/dead/selected = pick_n_take(candidates)
|
|
|
|
var/list/spawn_locs = list()
|
|
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
|
|
spawn_locs += L.loc
|
|
for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list)
|
|
spawn_locs += L.loc
|
|
if(!spawn_locs.len)
|
|
return MAP_ERROR
|
|
|
|
var/mob/living/carbon/human/operative = new(pick(spawn_locs))
|
|
var/datum/preferences/A = new
|
|
A.copy_to(operative)
|
|
operative.dna.update_dna_identity()
|
|
var/datum/mind/Mind = new /datum/mind(selected.key)
|
|
Mind.assigned_role = "Lone Operative"
|
|
Mind.special_role = "Lone Operative"
|
|
Mind.active = 1
|
|
Mind.transfer_to(operative)
|
|
Mind.add_antag_datum(/datum/antagonist/nukeop/lone)
|
|
|
|
message_admins("[ADMIN_LOOKUPFLW(operative)] has been made into lone operative by an event.")
|
|
log_game("[key_name(operative)] was spawned as a lone operative by an event.")
|
|
spawned_mobs += operative
|
|
return SUCCESSFUL_SPAWN
|