From 250b64edb2c4685ceab4f34086aeca6352d311a3 Mon Sep 17 00:00:00 2001 From: Kyep Date: Sun, 18 Jun 2017 23:48:51 -0700 Subject: [PATCH 1/4] Changes Dark Priest to Hunter --- code/datums/outfits/outfit_admin.dm | 22 ++++++++- code/modules/admin/topic.dm | 73 +++++++++++++++++------------ 2 files changed, 64 insertions(+), 31 deletions(-) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 40c38ac0627..17f8b659b98 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -18,9 +18,11 @@ I.icon_state = special_icon /datum/outfit/admin + var/is_hunter_outfit = 0 // Whether this can be used by the Smite command to send a hunter after someone /datum/outfit/admin/syndicate name = "Syndicate Agent" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate back = /obj/item/weapon/storage/backpack @@ -61,6 +63,7 @@ /datum/outfit/admin/syndicate/infiltrator name = "Syndicate Infiltrator" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/chameleon glasses = /obj/item/clothing/glasses/hud/security/chameleon @@ -90,6 +93,7 @@ /datum/outfit/admin/syndicate/operative name = "Syndicate Nuclear Operative" + is_hunter_outfit = 1 suit = /obj/item/clothing/suit/space/hardsuit/syndi belt = /obj/item/weapon/storage/belt/military @@ -121,6 +125,7 @@ /datum/outfit/admin/syndicate_strike_team name = "Syndicate Strike Team" + is_hunter_outfit = 1 /datum/outfit/admin/syndicate_strike_team/equip(mob/living/carbon/human/H, visualsOnly = FALSE) return H.equip_syndicate_commando() @@ -359,6 +364,7 @@ /datum/outfit/admin/death_commando name = "NT Death Commando" + is_hunter_outfit = 1 /datum/outfit/admin/death_commando/equip(mob/living/carbon/human/H, visualsOnly = FALSE) return H.equip_death_commando() @@ -435,6 +441,7 @@ /datum/outfit/admin/tunnel_clown name = "Tunnel Clown" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/rank/clown suit = /obj/item/clothing/suit/hooded/chaplain_hoodie @@ -465,6 +472,7 @@ /datum/outfit/admin/mime_assassin name = "Mime Assassin" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/mime suit = /obj/item/clothing/suit/suspenders @@ -514,6 +522,7 @@ /datum/outfit/admin/greytide name = "Greytide" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/grey back = /obj/item/weapon/storage/backpack @@ -539,6 +548,7 @@ /datum/outfit/admin/greytide/leader name = "Greytide Leader" + is_hunter_outfit = 1 belt = /obj/item/weapon/storage/belt/utility/full/multitool gloves = /obj/item/clothing/gloves/color/yellow @@ -613,6 +623,7 @@ /datum/outfit/admin/soviet/soldier name = "Soviet Soldier" + is_hunter_outfit = 1 gloves = /obj/item/clothing/gloves/combat shoes = /obj/item/clothing/shoes/combat @@ -684,6 +695,7 @@ /datum/outfit/admin/solgov name = "Solar Federation Marine" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/solgov back = /obj/item/weapon/storage/backpack/security @@ -709,6 +721,7 @@ /datum/outfit/admin/solgov/lieutenant name = "Solar Federation Lieutenant" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/solgov/command head = /obj/item/clothing/head/soft/solgov/command @@ -756,6 +769,7 @@ /datum/outfit/admin/chrono name = "Chrono Legionnaire" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/chronos @@ -947,6 +961,7 @@ /datum/outfit/admin/masked_killer name = "Masked Killer" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/overalls suit = /obj/item/clothing/suit/apron @@ -982,6 +997,7 @@ /datum/outfit/admin/singuloth_knight name = "Singuloth Knight" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate/combat suit = /obj/item/clothing/suit/space/hardsuit/singuloth @@ -1006,7 +1022,8 @@ apply_to_card(I, H, get_all_accesses(), "Singuloth Knight") /datum/outfit/admin/assassin - name = "Assassin" + name = "Syndicate Assassin" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/suit_jacket suit = /obj/item/clothing/suit/wcoat @@ -1061,6 +1078,7 @@ /datum/outfit/admin/spy name = "Spy" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/suit_jacket/really_black back = /obj/item/weapon/storage/backpack @@ -1105,6 +1123,7 @@ /datum/outfit/admin/dark_lord name = "Dark Lord" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/black suit = /obj/item/clothing/suit/hooded/chaplain_hoodie @@ -1177,6 +1196,7 @@ /datum/outfit/admin/dark_priest name = "Dark Priest" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/black suit = /obj/item/clothing/suit/hooded/chaplain_hoodie diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 9fffa7628f6..0527fe11791 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1797,8 +1797,8 @@ ptypes += "Mutagen Cookie" ptypes += "Hellwater Cookie" ptypes += "Assassin" - ptypes += "Priest" - ptypes += "Lynch" + ptypes += "Hunter" + ptypes += "Crew Traitor" var/punishment = input(owner, "How would you like to smite [M]?", "Its good to be baaaad...", "") as null|anything in ptypes if(!(punishment in ptypes)) return @@ -1856,47 +1856,60 @@ H.drop_l_hand() H.equip_to_slot_or_del(evilcookie, slot_l_hand) logmsg = "a hellwater cookie." - if("Priest") - logmsg = "priest." + if("Hunter") + logmsg = "hunter." H.mutations |= NOCLONE - message_admins("[key_name_admin(owner)] is sending a dark priest to assassinate [key_name_admin(M)]...") - var/list/candidates = pollCandidates("Do you want to play as a murderous dark priest?") + var/admin_outfits = subtypesof(/datum/outfit/admin) + var/hunter_outfits = list() + for(var/type in admin_outfits) + var/datum/outfit/admin/O = type + var/is_hunter_outfit = initial(O.is_hunter_outfit) + if(is_hunter_outfit) + hunter_outfits[initial(O.name)] = type + var/dresscode = input("Select hunter type", "Contract Killers") as null|anything in hunter_outfits + if(isnull(dresscode)) + return + var/datum/outfit/O = hunter_outfits[dresscode] + message_admins("[key_name_admin(owner)] is sending a dark hunter ([dresscode]) to assassinate [key_name_admin(M)]...") + var/list/candidates = pollCandidates("Play as a murderous [dresscode]?") if(!candidates.len) - to_chat(usr, "ERROR: Could not create priest. No valid candidates.") + to_chat(usr, "ERROR: Could not create dark hunter. No valid candidates.") return var/mob/C = pick(candidates) - var/key_of_priest = C.key - if(!key_of_priest) - to_chat(usr, "ERROR: Could not create priest. Could not pick key.") + var/key_of_hunter = C.key + if(!key_of_hunter) + to_chat(usr, "ERROR: Could not create dark hunter. Could not pick key.") return - var/datum/mind/priest_mind = new /datum/mind(key_of_priest) - priest_mind.active = 1 - var/mob/living/carbon/human/priest_mob = new /mob/living/carbon/human(pick(latejoin)) - priest_mind.transfer_to(priest_mob) - var/datum/outfit/admin/dark_priest/O = new /datum/outfit/admin/dark_priest - priest_mob.equipOutfit(O, FALSE) - var/obj/item/weapon/pinpointer/advpinpointer/N = new /obj/item/weapon/pinpointer/advpinpointer(priest_mob) - priest_mob.equip_to_slot_or_del(N, slot_r_store) + var/datum/mind/hunter_mind = new /datum/mind(key_of_hunter) + hunter_mind.active = 1 + var/mob/living/carbon/human/hunter_mob = new /mob/living/carbon/human(pick(latejoin)) + hunter_mind.transfer_to(hunter_mob) + hunter_mob.equipOutfit(O, FALSE) + var/obj/item/weapon/pinpointer/advpinpointer/N = new /obj/item/weapon/pinpointer/advpinpointer(hunter_mob) + hunter_mob.equip_to_slot_or_del(N, slot_in_backpack) N.active = 1 N.mode = 2 N.target = H N.point_at(N.target) N.flags |= NODROP + if(!locate(/obj/item/weapon/implant/dust, hunter_mob)) + var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(hunter_mob) + D.implant(hunter_mob) var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = priest_mind + kill_objective.owner = hunter_mind kill_objective.target = H.mind - kill_objective.explanation_text = "Murder [H.real_name], the [H.mind.assigned_role], in the name of the dark gods." - priest_mind.objectives += kill_objective - ticker.mode.traitors |= priest_mob.mind - to_chat(priest_mob, "ATTENTION: You are now a dark priest!") - to_chat(priest_mob, "Goal: MURDER [H.real_name], currently in [get_area(H.loc)], in the name of the dark gods. "); - to_chat(priest_mob, "The gods will prevent their revival."); - priest_mob.mind.special_role = SPECIAL_ROLE_TRAITOR + kill_objective.explanation_text = "Kill [H.real_name], the [H.mind.assigned_role]." + hunter_mind.objectives += kill_objective + ticker.mode.traitors |= hunter_mob.mind + to_chat(hunter_mob, "ATTENTION: You are now on a mission!") + to_chat(hunter_mob, "Goal: MURDER [H.real_name], currently in [get_area(H.loc)]. "); + to_chat(hunter_mob, "If you kill them, they cannot be revived."); + hunter_mob.mind.special_role = SPECIAL_ROLE_TRAITOR var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR] - tatorhud.join_hud(priest_mob) - ticker.mode.set_antag_hud(priest_mob, "hudsyndicate") - if("Assassin") - logmsg = "assassin." + tatorhud.join_hud(hunter_mob) + ticker.mode.set_antag_hud(hunter_mob, "hudsyndicate") + if("Crew Traitor") + logmsg = "crew traitor." var/list/possible_traitors = list() for(var/mob/living/player in living_mob_list) if(player.client && player.mind && !player.mind.special_role && player.stat != DEAD && player != H) From e324a73fc206943b9ed57dca78133e4446488da8 Mon Sep 17 00:00:00 2001 From: Kyep Date: Mon, 19 Jun 2017 00:12:48 -0700 Subject: [PATCH 2/4] Fixes reaper outfit briefcase --- code/datums/outfits/outfit_admin.dm | 19 +------------------ .../objects/items/weapons/storage/secure.dm | 8 ++++++++ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 17f8b659b98..19fb8734836 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -1034,35 +1034,18 @@ glasses = /obj/item/clothing/glasses/sunglasses id = /obj/item/weapon/card/id/syndicate l_pocket = /obj/item/weapon/melee/energy/sword/saber - l_hand = /obj/item/weapon/storage/secure/briefcase + l_hand = /obj/item/weapon/storage/secure/briefcase/reaper pda = /obj/item/device/pda/heads backpack_contents = list( /obj/item/weapon/storage/box/survival = 1, /obj/item/device/flashlight = 1 ) - var/briefcase_contents = list( - /obj/item/stack/spacecash/c1000 = 3, - /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow = 1, - /obj/item/weapon/gun/projectile/revolver/mateba = 1, - /obj/item/ammo_box/a357 = 1, - /obj/item/weapon/grenade/plastic/c4 = 1 - ) - /datum/outfit/admin/assassin/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) . = ..() if(visualsOnly) return - var/obj/item/weapon/storage/secure/briefcase/B = H.l_hand - if(istype(B)) - for(var/obj/item/I in B) - qdel(I) - for(var/path in briefcase_contents) - var/number = backpack_contents[path] - for(var/i = 0, i < number, i++) - B.handle_item_insertion(new path(B), 1) - var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(H) D.implant(H) diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 7619fd953d7..9eaf9eb8a3a 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -216,6 +216,14 @@ for(var/i = 0, i < storage_slots - 2, i++) handle_item_insertion(new /obj/item/stack/spacecash/c1000, 1) +/obj/item/weapon/storage/secure/briefcase/reaper/New() + ..() + handle_item_insertion(new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, 1) + handle_item_insertion(new /obj/item/weapon/gun/projectile/revolver/mateba, 1) + handle_item_insertion(new /obj/item/ammo_box/a357, 1) + handle_item_insertion(new /obj/item/weapon/grenade/plastic/c4, 1) + + // ----------------------------- // Secure Safe // ----------------------------- From ce48a277df3ce61980c7f719150b1b8c913aacfc Mon Sep 17 00:00:00 2001 From: Kyep Date: Sat, 24 Jun 2017 00:04:15 -0700 Subject: [PATCH 3/4] Support protective hunters, guardian/pet blessings --- code/datums/outfits/outfit_admin.dm | 3 + code/modules/admin/topic.dm | 150 +++++++++++++++++++--------- 2 files changed, 104 insertions(+), 49 deletions(-) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index 19fb8734836..b6c398985ca 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -371,6 +371,7 @@ /datum/outfit/admin/pirate name = "Space Pirate" + is_hunter_outfit = 1 uniform = /obj/item/clothing/under/pirate back = /obj/item/weapon/storage/backpack/satchel @@ -392,12 +393,14 @@ /datum/outfit/admin/pirate/first_mate name = "Space Pirate First Mate" + is_hunter_outfit = 1 glasses = /obj/item/clothing/glasses/eyepatch head = /obj/item/clothing/head/bandana /datum/outfit/admin/pirate/captain name = "Space Pirate Captain" + is_hunter_outfit = 1 suit = /obj/item/clothing/suit/pirate_black head = /obj/item/clothing/head/pirate diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 0527fe11791..1e993537801 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1741,6 +1741,9 @@ btypes += "Heal Over Time" btypes += "Permanent Regeneration" btypes += "Super Powers" + btypes += "Scarab Guardian" + btypes += "Human Protector" + btypes += "Pet" var/blessing = input(owner, "How would you like to bless [M]?", "Its good to be good...", "") as null|anything in btypes if(!(blessing in btypes)) return @@ -1766,6 +1769,7 @@ H.dna.SetSEState(REGENERATEBLOCK, 1) genemutcheck(H, REGENERATEBLOCK, null, MUTCHK_FORCED) H.update_mutations() + H.gene_stability = 100 logmsg = "permanent regeneration." if("Super Powers") var/list/default_genes = list(REGENERATEBLOCK, NOBREATHBLOCK, COLDBLOCK) @@ -1773,7 +1777,44 @@ H.dna.SetSEState(gene, 1) genemutcheck(H, gene, null, MUTCHK_FORCED) H.update_mutations() + H.gene_stability = 100 logmsg = "superpowers." + if("Scarab Guardian") + var/obj/item/weapon/guardiancreator/biological/scarab = new /obj/item/weapon/guardiancreator/biological(H) + var/list/possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Random") + var/typechoice = input("Select Guardian Type", "Type") as null|anything in possible_guardians + if(isnull(typechoice)) + return + if(typechoice != "Random") + possible_guardians -= "Random" + scarab.possible_guardians = list() + scarab.possible_guardians += typechoice + scarab.attack_self(H) + spawn(700) + qdel(scarab) + logmsg = "scarab guardian." + if("Pet") + var/pets = subtypesof(/mob/living/simple_animal/pet) + var/petchoice = input("Select pet type", "Pets") as null|anything in pets + if(isnull(petchoice)) + return + var/mob/living/simple_animal/pet/P = new petchoice(H.loc) + var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [P], pet of [H]?", poll_time = 100, min_hours = 10) + var/mob/dead/observer/theghost = null + if(candidates.len) + theghost = pick(candidates) + P.key = theghost.key + P.master_commander = H + spawn(30) + var/newname = sanitize(copytext(input(P, "You are [P], pet of [H]. Would you like to change your name to something else?", "Name change", P.name) as null|text,1,MAX_NAME_LEN)) + if(newname && newname != P.name) + P.name = newname + if(P.mind) + P.mind.name = newname + logmsg = "pet ([P])." + if("Human Protector") + usr.client.create_eventmob_for(H, 0) + logmsg = "syndie protector." if(logmsg) log_admin("[key_name(owner)] answered [key_name(M)]'s prayer with a blessing: [logmsg]") message_admins("[key_name_admin(owner)] answered [key_name_admin(M)]'s prayer with a blessing: [logmsg]") @@ -1859,55 +1900,7 @@ if("Hunter") logmsg = "hunter." H.mutations |= NOCLONE - var/admin_outfits = subtypesof(/datum/outfit/admin) - var/hunter_outfits = list() - for(var/type in admin_outfits) - var/datum/outfit/admin/O = type - var/is_hunter_outfit = initial(O.is_hunter_outfit) - if(is_hunter_outfit) - hunter_outfits[initial(O.name)] = type - var/dresscode = input("Select hunter type", "Contract Killers") as null|anything in hunter_outfits - if(isnull(dresscode)) - return - var/datum/outfit/O = hunter_outfits[dresscode] - message_admins("[key_name_admin(owner)] is sending a dark hunter ([dresscode]) to assassinate [key_name_admin(M)]...") - var/list/candidates = pollCandidates("Play as a murderous [dresscode]?") - if(!candidates.len) - to_chat(usr, "ERROR: Could not create dark hunter. No valid candidates.") - return - var/mob/C = pick(candidates) - var/key_of_hunter = C.key - if(!key_of_hunter) - to_chat(usr, "ERROR: Could not create dark hunter. Could not pick key.") - return - var/datum/mind/hunter_mind = new /datum/mind(key_of_hunter) - hunter_mind.active = 1 - var/mob/living/carbon/human/hunter_mob = new /mob/living/carbon/human(pick(latejoin)) - hunter_mind.transfer_to(hunter_mob) - hunter_mob.equipOutfit(O, FALSE) - var/obj/item/weapon/pinpointer/advpinpointer/N = new /obj/item/weapon/pinpointer/advpinpointer(hunter_mob) - hunter_mob.equip_to_slot_or_del(N, slot_in_backpack) - N.active = 1 - N.mode = 2 - N.target = H - N.point_at(N.target) - N.flags |= NODROP - if(!locate(/obj/item/weapon/implant/dust, hunter_mob)) - var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(hunter_mob) - D.implant(hunter_mob) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = hunter_mind - kill_objective.target = H.mind - kill_objective.explanation_text = "Kill [H.real_name], the [H.mind.assigned_role]." - hunter_mind.objectives += kill_objective - ticker.mode.traitors |= hunter_mob.mind - to_chat(hunter_mob, "ATTENTION: You are now on a mission!") - to_chat(hunter_mob, "Goal: MURDER [H.real_name], currently in [get_area(H.loc)]. "); - to_chat(hunter_mob, "If you kill them, they cannot be revived."); - hunter_mob.mind.special_role = SPECIAL_ROLE_TRAITOR - var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR] - tatorhud.join_hud(hunter_mob) - ticker.mode.set_antag_hud(hunter_mob, "hudsyndicate") + usr.client.create_eventmob_for(H, 1) if("Crew Traitor") logmsg = "crew traitor." var/list/possible_traitors = list() @@ -3339,6 +3332,65 @@ // Refresh the page src.view_flagged_books() +/client/proc/create_eventmob_for(var/mob/living/carbon/human/H, var/killthem = 0) + if(!check_rights(R_EVENT)) + return + var/admin_outfits = subtypesof(/datum/outfit/admin) + var/hunter_outfits = list() + for(var/type in admin_outfits) + var/datum/outfit/admin/O = type + var/is_hunter_outfit = initial(O.is_hunter_outfit) + if(is_hunter_outfit) + hunter_outfits[initial(O.name)] = type + var/dresscode = input("Select type", "Contracted Agents") as null|anything in hunter_outfits + if(isnull(dresscode)) + return + var/datum/outfit/O = hunter_outfits[dresscode] + message_admins("[key_name_admin(mob)] is sending a ([dresscode]) to [killthem ? "assassinate" : "protect"] [key_name_admin(H)]...") + var/list/candidates = pollCandidates("Play as a [killthem ? "murderous" : "protective"] [dresscode]?") + if(!candidates.len) + to_chat(usr, "ERROR: Could not create eventmob. No valid candidates.") + return + var/mob/C = pick(candidates) + var/key_of_hunter = C.key + if(!key_of_hunter) + to_chat(usr, "ERROR: Could not create eventmob. Could not pick key.") + return + var/datum/mind/hunter_mind = new /datum/mind(key_of_hunter) + hunter_mind.active = 1 + var/mob/living/carbon/human/hunter_mob = new /mob/living/carbon/human(pick(latejoin)) + hunter_mind.transfer_to(hunter_mob) + hunter_mob.equipOutfit(O, FALSE) + var/obj/item/weapon/pinpointer/advpinpointer/N = new /obj/item/weapon/pinpointer/advpinpointer(hunter_mob) + hunter_mob.equip_to_slot_or_del(N, slot_in_backpack) + N.active = 1 + N.mode = 2 + N.target = H + N.point_at(N.target) + if(!locate(/obj/item/weapon/implant/dust, hunter_mob)) + var/obj/item/weapon/implant/dust/D = new /obj/item/weapon/implant/dust(hunter_mob) + D.implant(hunter_mob) + if(killthem) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = hunter_mind + kill_objective.target = H.mind + kill_objective.explanation_text = "Kill [H.real_name], the [H.mind.assigned_role]." + hunter_mind.objectives += kill_objective + else + var/datum/objective/protect/protect_objective = new + protect_objective.owner = hunter_mind + protect_objective.target = H.mind + protect_objective.explanation_text = "Protect [H.real_name], the [H.mind.assigned_role]." + hunter_mind.objectives += protect_objective + ticker.mode.traitors |= hunter_mob.mind + to_chat(hunter_mob, "ATTENTION: You are now on a mission!") + to_chat(hunter_mob, "Goal: [killthem ? "MURDER" : "PROTECT"] [H.real_name], currently in [get_area(H.loc)]. "); + if(killthem) + to_chat(hunter_mob, "If you kill them, they cannot be revived."); + hunter_mob.mind.special_role = SPECIAL_ROLE_TRAITOR + var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR] + tatorhud.join_hud(hunter_mob) + ticker.mode.set_antag_hud(hunter_mob, "hudsyndicate") /proc/admin_jump_link(var/atom/target) if(!target) return From de56e4bf599c0028d4f622a9d4151080644a8e4d Mon Sep 17 00:00:00 2001 From: Kyep Date: Wed, 19 Jul 2017 02:03:21 -0700 Subject: [PATCH 4/4] Removed is_hunter_outfit --- code/datums/outfits/outfit_admin.dm | 25 ------------------------- code/modules/admin/topic.dm | 4 +--- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index b6c398985ca..37a28702c7d 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -17,12 +17,8 @@ if(special_icon) I.icon_state = special_icon -/datum/outfit/admin - var/is_hunter_outfit = 0 // Whether this can be used by the Smite command to send a hunter after someone - /datum/outfit/admin/syndicate name = "Syndicate Agent" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate back = /obj/item/weapon/storage/backpack @@ -63,7 +59,6 @@ /datum/outfit/admin/syndicate/infiltrator name = "Syndicate Infiltrator" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/chameleon glasses = /obj/item/clothing/glasses/hud/security/chameleon @@ -93,7 +88,6 @@ /datum/outfit/admin/syndicate/operative name = "Syndicate Nuclear Operative" - is_hunter_outfit = 1 suit = /obj/item/clothing/suit/space/hardsuit/syndi belt = /obj/item/weapon/storage/belt/military @@ -125,7 +119,6 @@ /datum/outfit/admin/syndicate_strike_team name = "Syndicate Strike Team" - is_hunter_outfit = 1 /datum/outfit/admin/syndicate_strike_team/equip(mob/living/carbon/human/H, visualsOnly = FALSE) return H.equip_syndicate_commando() @@ -364,14 +357,12 @@ /datum/outfit/admin/death_commando name = "NT Death Commando" - is_hunter_outfit = 1 /datum/outfit/admin/death_commando/equip(mob/living/carbon/human/H, visualsOnly = FALSE) return H.equip_death_commando() /datum/outfit/admin/pirate name = "Space Pirate" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/pirate back = /obj/item/weapon/storage/backpack/satchel @@ -393,14 +384,12 @@ /datum/outfit/admin/pirate/first_mate name = "Space Pirate First Mate" - is_hunter_outfit = 1 glasses = /obj/item/clothing/glasses/eyepatch head = /obj/item/clothing/head/bandana /datum/outfit/admin/pirate/captain name = "Space Pirate Captain" - is_hunter_outfit = 1 suit = /obj/item/clothing/suit/pirate_black head = /obj/item/clothing/head/pirate @@ -444,7 +433,6 @@ /datum/outfit/admin/tunnel_clown name = "Tunnel Clown" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/rank/clown suit = /obj/item/clothing/suit/hooded/chaplain_hoodie @@ -475,7 +463,6 @@ /datum/outfit/admin/mime_assassin name = "Mime Assassin" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/mime suit = /obj/item/clothing/suit/suspenders @@ -525,7 +512,6 @@ /datum/outfit/admin/greytide name = "Greytide" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/grey back = /obj/item/weapon/storage/backpack @@ -551,7 +537,6 @@ /datum/outfit/admin/greytide/leader name = "Greytide Leader" - is_hunter_outfit = 1 belt = /obj/item/weapon/storage/belt/utility/full/multitool gloves = /obj/item/clothing/gloves/color/yellow @@ -626,7 +611,6 @@ /datum/outfit/admin/soviet/soldier name = "Soviet Soldier" - is_hunter_outfit = 1 gloves = /obj/item/clothing/gloves/combat shoes = /obj/item/clothing/shoes/combat @@ -698,7 +682,6 @@ /datum/outfit/admin/solgov name = "Solar Federation Marine" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/solgov back = /obj/item/weapon/storage/backpack/security @@ -724,7 +707,6 @@ /datum/outfit/admin/solgov/lieutenant name = "Solar Federation Lieutenant" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/solgov/command head = /obj/item/clothing/head/soft/solgov/command @@ -772,7 +754,6 @@ /datum/outfit/admin/chrono name = "Chrono Legionnaire" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate suit = /obj/item/clothing/suit/space/chronos @@ -964,7 +945,6 @@ /datum/outfit/admin/masked_killer name = "Masked Killer" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/overalls suit = /obj/item/clothing/suit/apron @@ -1000,7 +980,6 @@ /datum/outfit/admin/singuloth_knight name = "Singuloth Knight" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/syndicate/combat suit = /obj/item/clothing/suit/space/hardsuit/singuloth @@ -1026,7 +1005,6 @@ /datum/outfit/admin/assassin name = "Syndicate Assassin" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/suit_jacket suit = /obj/item/clothing/suit/wcoat @@ -1064,7 +1042,6 @@ /datum/outfit/admin/spy name = "Spy" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/suit_jacket/really_black back = /obj/item/weapon/storage/backpack @@ -1109,7 +1086,6 @@ /datum/outfit/admin/dark_lord name = "Dark Lord" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/black suit = /obj/item/clothing/suit/hooded/chaplain_hoodie @@ -1182,7 +1158,6 @@ /datum/outfit/admin/dark_priest name = "Dark Priest" - is_hunter_outfit = 1 uniform = /obj/item/clothing/under/color/black suit = /obj/item/clothing/suit/hooded/chaplain_hoodie diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 1e993537801..1df5030a753 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -3339,9 +3339,7 @@ var/hunter_outfits = list() for(var/type in admin_outfits) var/datum/outfit/admin/O = type - var/is_hunter_outfit = initial(O.is_hunter_outfit) - if(is_hunter_outfit) - hunter_outfits[initial(O.name)] = type + hunter_outfits[initial(O.name)] = type var/dresscode = input("Select type", "Contracted Agents") as null|anything in hunter_outfits if(isnull(dresscode)) return