/datum/ghostspawner/human/admin tags = list("Admin") //Add the ability to despawn /datum/ghostspawner/human/admin/post_spawn(mob/user) add_verb(user.client, /client/proc/despawn) return ..() /datum/ghostspawner/human/admin/checkpointsec short_name = "checkpointsec" name = "Odin Checkpoint Security" desc = "Secure the Odin checkpoint. Verify the identity of everyone passing through, perform random searches on \"suspicious\" crew." enabled = FALSE spawnpoints = list("OdinCheckpoint") req_perms = null req_perms_edit = R_CCIAA max_count = 4 //Vars related to human mobs outfit = /obj/outfit/admin/nt/odinsec possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Odin Security Officer" special_role = "Odin Security Officer" respawn_flag = null mob_name = null mob_name_prefix = "Spec. " mob_name_pick_message = "Pick a callsign or last-name." /datum/ghostspawner/human/admin/odindoc short_name = "odindoc" name = "Odin Medical Doctor" desc = "Provide medical assistance for those arriving on the Odin." enabled = FALSE spawnpoints = list("OdinDoctor") req_perms = null req_perms_edit = R_CCIAA max_count = 4 //Vars related to human mobs outfit = /obj/outfit/admin/nt/odindoc possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_UNATHI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Odin Medical Doctor" special_role = "Odin Medical Doctor" respawn_flag = null mob_name = null /datum/ghostspawner/human/admin/odinpharm short_name = "odinpharm" name = "Odin Pharmacist" desc = "Provide medication for the Doctors on the Odin and those in need." enabled = FALSE spawnpoints = list("OdinPharm") req_perms = null req_perms_edit = R_CCIAA max_count = 1 outfit = /obj/outfit/admin/nt/odinpharm possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_UNATHI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Odin Pharmacist" special_role = "Odin Pharmacist" respawn_flag = null mob_name = null /datum/ghostspawner/human/admin/odinchef short_name = "odinchef" name = "Odin Chef" desc = "Feed starving crew members on the Odin." enabled = FALSE spawnpoints = list("OdinChef") req_perms = null req_perms_edit = R_CCIAA max_count = 2 outfit = /obj/outfit/admin/nt/odinchef possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_UNATHI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Odin Chef" special_role = "Odin Chef" respawn_flag = null mob_name = null /datum/ghostspawner/human/admin/odinbartender short_name = "odinbartender" name = "Odin Bartender" desc = "Ensure enough drinks are available to the crew on the Odin." enabled = FALSE spawnpoints = list("OdinBartender") req_perms = null req_perms_edit = R_CCIAA max_count = 1 outfit = /obj/outfit/admin/nt/odinbartender possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_UNATHI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Odin Bartender" special_role = "Odin Bartender" respawn_flag = null mob_name = null /datum/ghostspawner/human/admin/odinjanitor short_name = "odinjanitor" name = "Odin Sanitation Specialist" desc = "You are a expert in your field. A true authority. The crew looks to you when they get into a sticky situation. You are a janitor on the Odin." enabled = FALSE spawnpoints = list("OdinJanitor") req_perms = null max_count = 1 outfit = /obj/outfit/admin/nt/odinjanitor possible_species = list(SPECIES_HUMAN,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_UNATHI,SPECIES_IPC) allow_appearance_change = APPEARANCE_PLASTICSURGERY assigned_role = "Sanitation Specialist" special_role = "Sanitation Specialist" respawn_flag = null mob_name = null mob_name_prefix = "Spec. " mob_name_pick_message = "Pick a callsign or last-name." /client/proc/despawn() set name = "Despawn" set desc = "Your work is done. Leave this realm." set category = "Special Verbs" var/mob/M = mob M.mind.special_role = null M.ghostize(1) remove_verb(src, /client/proc/despawn) qdel(M) /hook/shuttle_moved/proc/setup_odin_for_shuttle(var/obj/effect/shuttle_landmark/start_location, var/obj/effect/shuttle_landmark/destination) if(start_location.landmark_tag != "nav_emergency_start") return TRUE if(GLOB.evacuation_controller.evacuation_type == TRANSFER_EMERGENCY) if(get_security_level() != "green" ) var/datum/wifi/sender/door/wifi_sender = new("odin_arrivals_lockdown", SSghostroles) wifi_sender.activate("close") qdel(wifi_sender) if(prob(80)) var/datum/ghostspawner/G = SSghostroles.get_spawner("checkpointsec") G.enable() return TRUE else if(get_security_level() == "green" && prob(70)) var/datum/ghostspawner/G = SSghostroles.get_spawner("odinchef") G.enable() G = SSghostroles.get_spawner("odinbartender") G.enable() if(get_security_level() == "blue") var/datum/wifi/sender/door/wifi_sender = new("odin_arrivals_lockdown", SSghostroles) wifi_sender.activate("close") qdel(wifi_sender) if(prob(50)) var/datum/ghostspawner/G = SSghostroles.get_spawner("checkpointsec") G.enable() return TRUE