diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 1da9c606d1e..653207b7e14 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -356,7 +356,7 @@ name = "CCIA Agent" uniform = /obj/item/clothing/under/rank/centcom_officer - suit = /obj/item/clothing/suit/storage/toggle/internalaffairs/cciaa + suit = /obj/item/clothing/suit/storage/toggle/liaison shoes = /obj/item/clothing/shoes/laceup gloves = /obj/item/clothing/gloves/white l_ear = /obj/item/device/radio/headset/ert/ccia @@ -365,6 +365,7 @@ l_pocket = /obj/item/weapon/reagent_containers/spray/pepper r_pocket = /obj/item/device/taperecorder/cciaa l_hand = /obj/item/weapon/storage/lockbox/cciaa + pda = /obj/item/device/pda/central /datum/outfit/admin/nt/odinsec name = "NTCC Odin Security Specialist" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index d34e46540fe..b1e991fae37 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -383,7 +383,6 @@ var/list/admin_verbs_cciaa = list( /client/proc/cmd_admin_pm_panel, /*admin-pm list*/ /client/proc/cmd_admin_create_centcom_report, /client/proc/cmd_cciaa_say, - /client/proc/returntobody, /datum/admins/proc/create_admin_fax, /client/proc/check_fax_history, /client/proc/aooc, diff --git a/code/modules/cciaa/cciaa.dm b/code/modules/cciaa/cciaa.dm index bff4f2a5d49..1ac1ef93523 100644 --- a/code/modules/cciaa/cciaa.dm +++ b/code/modules/cciaa/cciaa.dm @@ -1,71 +1,3 @@ -/client/proc/returntobody() - set name = "Return to mob" - set desc = "The Agent's work is done, return to your original mob" - set category = "Special Verbs" - - if(!check_rights(0)) return - - if (!mob.mind || !(mob.mind.special_role in list("CCIA Agent", "ERT Commander"))) - verbs -= /client/proc/returntobody - return - - if(!holder) return - - var/mob/M = mob - var/area/A = get_area(M) - - if(M.stat == DEAD) - if(holder.original_mob) - if(holder.original_mob.client) - if(alert(src, "There is someone else in your old body.\nWould you like to ghost instead?", "There is someone else in your old body, you will be ghosted", "Yes", "No") == "Yes") - M.mind.special_role = null - mob.ghostize(1) - return - else - return - holder.original_mob.key = key - holder.original_mob = null - return - M.mind.special_role = null - mob.ghostize(1) - return - - if(!is_type_in_list(A,centcom_areas)) - to_chat(src, "You need to be back at central to do this.") - return - - if(holder.original_mob) - if(holder.original_mob == M) - verbs -= /client/proc/returntobody - return - - if(holder.original_mob.client) - if(alert(src, "There is someone else in your old body.\nWould you like to ghost instead?", "There is someone else in your old body, you will be ghosted", "Yes", "No") == "Yes") - M.mind.special_role = null - mob.ghostize(0) - else - return - else - holder.original_mob.key = key - - holder.original_mob = null - else - if(mob.mind.admin_mob_placeholder) - if(mob.mind.admin_mob_placeholder.client) - if(alert(src, "There is someone else in your old body.\nWould you like to ghost instead?", "There is someone else in your old body, you will be ghosted", "Yes", "No") == "Yes") - M.mind.special_role = null - mob.ghostize(0) - else - return - else - mob.mind.admin_mob_placeholder.key = key - M.mind.admin_mob_placeholder = null - else - M.mind.special_role = null - mob.ghostize(0) - verbs -= /client/proc/returntobody - qdel(M) - /proc/clear_cciaa_job(var/mob/living/carbon/human/M) addtimer(CALLBACK(GLOBAL_PROC, /proc/actual_clear_ccia_job, M), 9000) diff --git a/code/modules/ghostroles/spawner/base.dm b/code/modules/ghostroles/spawner/base.dm index 0e30848500e..4dde3ed71a9 100644 --- a/code/modules/ghostroles/spawner/base.dm +++ b/code/modules/ghostroles/spawner/base.dm @@ -84,7 +84,7 @@ //Proc executed before someone is spawned in /datum/ghostspawner/proc/pre_spawn(mob/user) count++ //Increment the spawned in mob count - if(count >= max_count) + if(max_count && count >= max_count) disable() return TRUE diff --git a/code/modules/ghostroles/spawner/human/admin.dm b/code/modules/ghostroles/spawner/human/admin.dm index ac8ccc32985..fd2f369ef89 100644 --- a/code/modules/ghostroles/spawner/human/admin.dm +++ b/code/modules/ghostroles/spawner/human/admin.dm @@ -1,6 +1,11 @@ /datum/ghostspawner/human/admin tags = list("Admin") +//Add the ability to despawn +/datum/ghostspawner/human/admin/post_spawn(mob/user) + user.client.verbs += /client/proc/despawn + return ..() + /datum/ghostspawner/human/admin/ert_commander short_name = "ertcommander" name = "ERT Commander" @@ -78,7 +83,7 @@ //Vars related to human mobs outfit = /datum/outfit/admin/nt/protection_detail - possible_species = list("Human") + possible_species = list("Human","Skrell") possible_genders = list(MALE,FEMALE) allow_appearance_change = TRUE @@ -102,8 +107,8 @@ max_count = 4 //Vars related to human mobs - outfit = /datum/outfit/admin/nt/protection_detail - possible_species = list("Human","Skrell","Tajara","Unathi") + outfit = /datum/outfit/admin/nt/odinsec + possible_species = list("Human","Skrell") possible_genders = list(MALE,FEMALE) allow_appearance_change = TRUE @@ -112,4 +117,17 @@ respawn_flag = null mob_name = null - mob_name_prefix = "Spec. " \ No newline at end of file + mob_name_prefix = "Spec. " + + + +/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) + verbs -= /client/proc/despawn + qdel(M) diff --git a/code/modules/ghostroles/spawner/human/emergencypod.dm b/code/modules/ghostroles/spawner/human/emergencypod.dm index ad78f6b54ee..86241625c61 100644 --- a/code/modules/ghostroles/spawner/human/emergencypod.dm +++ b/code/modules/ghostroles/spawner/human/emergencypod.dm @@ -16,7 +16,7 @@ assigned_role = "Pod Survivor" special_role = "Pod Survivor" - respawn_flag = CREW + respawn_flag = null mob_name = FALSE @@ -76,6 +76,8 @@ H.internal = H.s_store if(istype(H.internal,/obj/item/weapon/tank) && H.internals) H.internals.icon_state = "internal1" + //Spawn a drill + new /obj/item/weapon/pickaxe/drill(H.loc) /datum/outfit/admin/pod/star name = "RescuePod - Star" diff --git a/code/modules/ghostroles/spawner/human/visitor.dm b/code/modules/ghostroles/spawner/human/visitor.dm index e48537e5625..04f0c2efd04 100644 --- a/code/modules/ghostroles/spawner/human/visitor.dm +++ b/code/modules/ghostroles/spawner/human/visitor.dm @@ -17,7 +17,7 @@ assigned_role = "Visitor" special_role = "Visitor" - respawn_flag = CREW + respawn_flag = null mob_name = null diff --git a/html/changelogs/arrow768-ghostspawners.yml b/html/changelogs/arrow768-ghostspawners.yml new file mode 100644 index 00000000000..7bef51b640c --- /dev/null +++ b/html/changelogs/arrow768-ghostspawners.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Arrow768 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Unlimited ghostspawners no longer disable themselfs after the first spawn." + - tweak: "Removed the respawn delay from visitor/pod survivors." + - bugfix: "Fixes the gear of various ghostroles."