/datum/event/flockmind name = "Flockmind" noAutoEnd = TRUE nominal_severity = EVENT_LEVEL_DISASTER role_weights = list(ASSIGNMENT_SECURITY = 2, ASSIGNMENT_CREW = 0.7, ASSIGNMENT_MEDICAL = 2) role_requirements = list(ASSIGNMENT_SECURITY = 3, ASSIGNMENT_CREW = 25, ASSIGNMENT_MEDICAL = 2) /datum/event/flockmind/start() INVOKE_ASYNC(src, PROC_REF(create_flock)) /datum/event/flockmind/proc/create_flock() var/list/candidates = SSghost_spawns.poll_candidates("Do you want to play as a Flockmind?", ROLE_FLOCK, TRUE, source = /mob/camera/flock/overmind) if(!length(candidates)) return kill() var/mob/C while(length(candidates)) C = pick_n_take(candidates) if(jobban_isbanned(C, ROLE_TRAITOR)) continue break if(!C) kill() return var/player_key = C.key if(!player_key) kill() return dust_if_respawnable(C) var/list/spawn_locs = list() for(var/obj/effect/landmark/spawner/flock/spawn_site in GLOB.landmarks_list) spawn_locs += get_turf(spawn_site) if(!spawn_locs) // If we can't find any, then give up kill() return var/mob/camera/flock/overmind/flockmind = new /mob/camera/flock/overmind(pick(spawn_locs)) flockmind.key = C.key flockmind.mind = new flockmind.mind.bind_to(flockmind) flockmind.mind.set_original_mob(flockmind) flockmind.mind.assigned_role = SPECIAL_ROLE_FLOCK flockmind.mind.special_role = SPECIAL_ROLE_FLOCK var/list/messages = list() messages += "