From fb61c31470ac37597b0e5abe124c4d77cf34026c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 25 Apr 2017 03:59:08 -0500 Subject: [PATCH] Small abductors refactor --- code/datums/mind.dm | 25 +- .../abduction/abductee_objectives.dm | 148 ++++++++++ .../miniantags/abduction/abduction.dm | 269 +----------------- .../miniantags/abduction/abduction_gear.dm | 19 ++ .../miniantags/abduction/abduction_outfits.dm | 62 ++++ .../carbon/human/species_types/abductors.dm | 3 +- icons/mob/ears.dmi | Bin 881 -> 901 bytes icons/obj/abductor.dmi | Bin 55429 -> 55757 bytes tgstation.dme | 2 + 9 files changed, 257 insertions(+), 271 deletions(-) create mode 100644 code/game/gamemodes/miniantags/abduction/abductee_objectives.dm create mode 100644 code/game/gamemodes/miniantags/abduction/abduction_outfits.dm diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 0f308681af..535247d750 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1192,14 +1192,17 @@ log_admin("[key_name(usr)] turned [current] into abductor.") SSticker.mode.update_abductor_icons_added(src) if("equip") + if(!ishuman(current)) + to_chat(usr, "This only works on humans!") + return + + var/mob/living/carbon/human/H = current var/gear = alert("Agent or Scientist Gear","Gear","Agent","Scientist") if(gear) - var/datum/game_mode/abduction/temp = new - temp.equip_common(current) if(gear=="Agent") - temp.equip_agent(current) + H.equipOutfit(/datum/outfit/abductor/agent) else - temp.equip_scientist(current) + H.equipOutfit(/datum/outfit/abductor/scientist) else if (href_list["monkey"]) var/mob/living/L = current @@ -1468,11 +1471,8 @@ H.set_species(/datum/species/abductor) var/datum/species/abductor/S = H.dna.species - switch(role) - if("Agent") - S.agent = 1 - if("Scientist") - S.scientist = 1 + if(role == "Scientist") + S.scientist = TRUE S.team = team var/list/obj/effect/landmark/abductor/agent_landmarks = new @@ -1489,13 +1489,10 @@ if(teleport=="Yes") switch(role) if("Agent") - S.agent = 1 L = agent_landmarks[team] - H.loc = L.loc if("Scientist") - S.scientist = 1 - L = agent_landmarks[team] - H.loc = L.loc + L = scientist_landmarks[team] + H.forceMove(L.loc) /datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) spell_list += S diff --git a/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm new file mode 100644 index 0000000000..aa633e1ef5 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/abductee_objectives.dm @@ -0,0 +1,148 @@ +/datum/objective/abductee + dangerrating = 5 + completed = 1 + +/datum/objective/abductee/steal + explanation_text = "Steal all" + +/datum/objective/abductee/steal/New() + var/target = pick(list("pets","lights","monkeys","fruits","shoes","bars of soap", "weapons", "computers", "organs")) + explanation_text+=" [target]." + +/datum/objective/abductee/paint + explanation_text = "The station is hideous. You must color it all" + +/datum/objective/abductee/paint/New() + var/color = pick(list("red", "blue", "green", "yellow", "orange", "purple", "black", "in rainbows", "in blood")) + explanation_text+= " [color]!" + +/datum/objective/abductee/speech + explanation_text = "Your brain is broken... you can only communicate in" + +/datum/objective/abductee/speech/New() + var/style = pick(list("pantomime", "rhyme", "haiku", "extended metaphors", "riddles", "extremely literal terms", "sound effects", "military jargon")) + explanation_text+= " [style]." + +/datum/objective/abductee/capture + explanation_text = "Capture" + +/datum/objective/abductee/capture/New() + var/list/jobs = SSjob.occupations.Copy() + for(var/datum/job/J in jobs) + if(J.current_positions < 1) + jobs -= J + if(jobs.len > 0) + var/datum/job/target = pick(jobs) + explanation_text += " a [target.title]." + else + explanation_text += " someone." + +/datum/objective/abductee/shuttle + explanation_text = "You must escape the station! Get the shuttle called!" + +/datum/objective/abductee/noclone + explanation_text = "Don't allow anyone to be cloned." + +/datum/objective/abductee/oxygen + explanation_text = "The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station." + +/datum/objective/abductee/blazeit + explanation_text = "Your body must be improved. Ingest as many drugs as you can." + +/datum/objective/abductee/yumyum + explanation_text = "You are hungry. Eat as much food as you can find." + +/datum/objective/abductee/insane + explanation_text = "You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL" + +/datum/objective/abductee/cannotmove + explanation_text = "Convince the crew that you are a paraplegic." + +/datum/objective/abductee/deadbodies + explanation_text = "Start a collection of corpses. Don't kill people to get these corpses." + +/datum/objective/abductee/floors + explanation_text = "Replace all the floor tiles with wood, carpeting, grass or bling." + +/datum/objective/abductee/POWERUNLIMITED + explanation_text = "Flood the station's powernet with as much electricity as you can." + +/datum/objective/abductee/pristine + explanation_text = "The CEO of Nanotrasen is coming! Ensure the station is in absolutely pristine condition." + +/datum/objective/abductee/nowalls + explanation_text = "The crew must get to know one another better. Break down the walls inside the station!" + +/datum/objective/abductee/nations + explanation_text = "Ensure your department prospers over all else." + +/datum/objective/abductee/abductception + explanation_text = "You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine." + +/datum/objective/abductee/summon + explanation_text = "The elder gods hunger. Gather a cult and conduct a ritual to summon one." + +/datum/objective/abductee/machine + explanation_text = "You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last." + +/datum/objective/abductee/calling + explanation_text = "Call forth a spirit from the other side." + +/datum/objective/abductee/calling/New() + var/mob/dead/D = pick(GLOB.dead_mob_list) + if(D) + explanation_text = "You know that [D] has perished. Hold a seance to call them from the spirit realm." + +/datum/objective/abductee/social_experiment + explanation_text = "This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth." + +/datum/objective/abductee/vr + explanation_text = "It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR." + +/datum/objective/abductee/pets + explanation_text = "Nanotrasen is abusing the animals! Save as many as you can!" + +/datum/objective/abductee/defect + explanation_text = "Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can." + +/datum/objective/abductee/promote + explanation_text = "Climb the corporate ladder all the way to the top!" + +/datum/objective/abductee/science + explanation_text = "So much lies undiscovered. Look deeper into the machinations of the universe." + +/datum/objective/abductee/build + explanation_text = "Expand the station." + +/datum/objective/abductee/pragnant + explanation_text = "You are pregnant and soon due. Find a safe place to deliver your baby." + +/datum/objective/abductee/engine + explanation_text = "Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds." + +/datum/objective/abductee/music + explanation_text = "You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument!" + +/datum/objective/abductee/clown + explanation_text = "The clown is not funny. You can do better! Steal his audience and make the crew laugh!" + +/datum/objective/abductee/party + explanation_text = "You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE!" + +/datum/objective/abductee/pets + explanation_text = "All the pets around here suck. You need to make them cooler. Replace them with exotic beasts!" + +/datum/objective/abductee/conspiracy + explanation_text = "The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people!" + +/datum/objective/abductee/stalker + explanation_text = "The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it." + +/datum/objective/abductee/narrator + explanation_text = "You're the narrator of this tale. Follow around the protagonists to tell their story." + +/datum/objective/abductee/lurve + explanation_text = "You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you!" + +/datum/objective/abductee/sixthsense + explanation_text = "You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo." diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm index aa5a688596..e692654bf3 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction.dm @@ -85,56 +85,14 @@ return 1 /datum/game_mode/abduction/post_setup() - //Spawn Team - var/list/obj/effect/landmark/abductor/agent_landmarks = new - var/list/obj/effect/landmark/abductor/scientist_landmarks = new - agent_landmarks.len = max_teams - scientist_landmarks.len = max_teams - for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) - if(istype(A,/obj/effect/landmark/abductor/agent)) - agent_landmarks[text2num(A.team)] = A - else if(istype(A,/obj/effect/landmark/abductor/scientist)) - scientist_landmarks[text2num(A.team)] = A - - var/datum/mind/agent - var/obj/effect/landmark/L - var/datum/mind/scientist - var/team_name - var/mob/living/carbon/human/H - var/datum/species/abductor/S for(var/team_number=1,team_number<=abductor_teams,team_number++) - team_name = team_names[team_number] - agent = agents[team_number] - H = agent.current - L = agent_landmarks[team_number] - H.loc = L.loc - H.set_species(/datum/species/abductor) - S = H.dna.species - S.agent = 1 - S.team = team_number - H.real_name = team_name + " Agent" - equip_common(H,team_number) - equip_agent(H,team_number) - greet_agent(agent,team_number) - - scientist = scientists[team_number] - H = scientist.current - L = scientist_landmarks[team_number] - H.loc = L.loc - H.set_species(/datum/species/abductor) - S = H.dna.species - S.scientist = 1 - S.team = team_number - H.real_name = team_name + " Scientist" - equip_common(H,team_number) - equip_scientist(H,team_number) - greet_scientist(scientist,team_number) + post_setup_team(team_number) return ..() //Used for create antag buttons /datum/game_mode/abduction/proc/post_setup_team(team_number) - var/list/obj/effect/landmark/abductor/agent_landmarks = new - var/list/obj/effect/landmark/abductor/scientist_landmarks = new + var/list/obj/effect/landmark/abductor/agent_landmarks = list() + var/list/obj/effect/landmark/abductor/scientist_landmarks = list() agent_landmarks.len = max_teams scientist_landmarks.len = max_teams for(var/obj/effect/landmark/abductor/A in GLOB.landmarks_list) @@ -143,39 +101,36 @@ else if(istype(A,/obj/effect/landmark/abductor/scientist)) scientist_landmarks[text2num(A.team)] = A + var/team_name = team_names[team_number] + var/datum/mind/agent var/obj/effect/landmark/L var/datum/mind/scientist - var/team_name var/mob/living/carbon/human/H var/datum/species/abductor/S - team_name = team_names[team_number] agent = agents[team_number] H = agent.current L = agent_landmarks[team_number] - H.loc = L.loc + H.forceMove(L.loc) H.set_species(/datum/species/abductor) S = H.dna.species - S.agent = 1 S.team = team_number H.real_name = team_name + " Agent" - equip_common(H,team_number) - equip_agent(H,team_number) + H.equipOutfit(/datum/outfit/abductor/agent) greet_agent(agent,team_number) scientist = scientists[team_number] H = scientist.current L = scientist_landmarks[team_number] - H.loc = L.loc + H.forceMove(L.loc) H.set_species(/datum/species/abductor) S = H.dna.species - S.scientist = 1 + S.scientist = TRUE S.team = team_number H.real_name = team_name + " Scientist" - equip_common(H,team_number) - equip_scientist(H,team_number) + H.equipOutfit(/datum/outfit/abductor/scientist) greet_scientist(scientist,team_number) @@ -200,57 +155,10 @@ abductor.announce_objectives() -/datum/game_mode/abduction/proc/equip_common(mob/living/carbon/human/agent,team_number) - var/radio_freq = GLOB.SYND_FREQ - - var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(agent) - R.set_frequency(radio_freq) - agent.equip_to_slot_or_del(R, slot_ears) - agent.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(agent), slot_shoes) - agent.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(agent), slot_w_uniform) //they're greys gettit - agent.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(agent), slot_back) - -/datum/game_mode/abduction/proc/get_team_console(team) - var/obj/machinery/abductor/console/console - for(var/obj/machinery/abductor/console/c in GLOB.machines) - if(c.team == team) - console = c - break - return console - -/datum/game_mode/abduction/proc/equip_agent(mob/living/carbon/human/agent,team_number) - if(!team_number) - var/datum/species/abductor/S = agent.dna.species - team_number = S.team - - var/obj/machinery/abductor/console/console = get_team_console(team_number) - var/obj/item/clothing/suit/armor/abductor/vest/V = new /obj/item/clothing/suit/armor/abductor/vest(agent) - if(console!=null) - console.vest = V - V.flags |= NODROP - agent.equip_to_slot_or_del(V, slot_wear_suit) - agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_in_backpack) - agent.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/alien(agent), slot_in_backpack) - agent.equip_to_slot_or_del(new /obj/item/device/abductor/silencer(agent), slot_in_backpack) - agent.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/abductor(agent), slot_head) - agent.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/military/abductor/full(agent), slot_belt) - - -/datum/game_mode/abduction/proc/equip_scientist(var/mob/living/carbon/human/scientist,var/team_number) - if(!team_number) - var/datum/species/abductor/S = scientist.dna.species - team_number = S.team - - var/obj/machinery/abductor/console/console = get_team_console(team_number) - var/obj/item/device/abductor/gizmo/G = new /obj/item/device/abductor/gizmo(scientist) - if(console!=null) - console.gizmo = G - G.console = console - scientist.equip_to_slot_or_del(G, slot_in_backpack) - - var/obj/item/weapon/implant/abductor/beamplant = new /obj/item/weapon/implant/abductor(scientist) - beamplant.implant(scientist) - +/datum/game_mode/abduction/proc/get_team_console(team_number) + for(var/obj/machinery/abductor/console/C in GLOB.machines) + if(C.team == team_number) + return C /datum/game_mode/abduction/check_finished() if(!finished) @@ -336,152 +244,3 @@ var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_ABDUCTOR] hud.leave_hud(alien_mind.current) set_antag_hud(alien_mind.current, null) - -/datum/objective/abductee - dangerrating = 5 - completed = 1 - -/datum/objective/abductee/steal - explanation_text = "Steal all" - -/datum/objective/abductee/steal/New() - var/target = pick(list("pets","lights","monkeys","fruits","shoes","bars of soap", "weapons", "computers", "organs")) - explanation_text+=" [target]." - -/datum/objective/abductee/paint - explanation_text = "The station is hideous. You must color it all" - -/datum/objective/abductee/paint/New() - var/color = pick(list("red", "blue", "green", "yellow", "orange", "purple", "black", "in rainbows", "in blood")) - explanation_text+= " [color]!" - -/datum/objective/abductee/speech - explanation_text = "Your brain is broken... you can only communicate in" - -/datum/objective/abductee/speech/New() - var/style = pick(list("pantomime", "rhyme", "haiku", "extended metaphors", "riddles", "extremely literal terms", "sound effects", "military jargon")) - explanation_text+= " [style]." - -/datum/objective/abductee/capture - explanation_text = "Capture" - -/datum/objective/abductee/capture/New() - var/list/jobs = SSjob.occupations.Copy() - for(var/datum/job/J in jobs) - if(J.current_positions < 1) - jobs -= J - if(jobs.len > 0) - var/datum/job/target = pick(jobs) - explanation_text += " a [target.title]." - else - explanation_text += " someone." - -/datum/objective/abductee/shuttle - explanation_text = "You must escape the station! Get the shuttle called!" - -/datum/objective/abductee/noclone - explanation_text = "Don't allow anyone to be cloned." - -/datum/objective/abductee/oxygen - explanation_text = "The oxygen is killing them all and they don't even know it. Make sure no oxygen is on the station." - -/datum/objective/abductee/blazeit - explanation_text = "Your body must be improved. Ingest as many drugs as you can." - -/datum/objective/abductee/yumyum - explanation_text = "You are hungry. Eat as much food as you can find." - -/datum/objective/abductee/insane - explanation_text = "You see you see what they cannot you see the open door you seeE you SEeEe you SEe yOU seEee SHOW THEM ALL" - -/datum/objective/abductee/cannotmove - explanation_text = "Convince the crew that you are a paraplegic." - -/datum/objective/abductee/deadbodies - explanation_text = "Start a collection of corpses. Don't kill people to get these corpses." - -/datum/objective/abductee/floors - explanation_text = "Replace all the floor tiles with wood, carpeting, grass or bling." - -/datum/objective/abductee/POWERUNLIMITED - explanation_text = "Flood the station's powernet with as much electricity as you can." - -/datum/objective/abductee/pristine - explanation_text = "The CEO of Nanotrasen is coming! Ensure the station is in absolutely pristine condition." - -/datum/objective/abductee/nowalls - explanation_text = "The crew must get to know one another better. Break down the walls inside the station!" - -/datum/objective/abductee/nations - explanation_text = "Ensure your department prospers over all else." - -/datum/objective/abductee/abductception - explanation_text = "You have been changed forever. Find the ones that did this to you and give them a taste of their own medicine." - -/datum/objective/abductee/summon - explanation_text = "The elder gods hunger. Gather a cult and conduct a ritual to summon one." - -/datum/objective/abductee/machine - explanation_text = "You are secretly an android. Interface with as many machines as you can to boost your own power so the AI may acknowledge you at last." - -/datum/objective/abductee/calling - explanation_text = "Call forth a spirit from the other side." - -/datum/objective/abductee/calling/New() - var/mob/dead/D = pick(GLOB.dead_mob_list) - if(D) - explanation_text = "You know that [D] has perished. Hold a seance to call them from the spirit realm." - -/datum/objective/abductee/social_experiment - explanation_text = "This is a secret social experiment conducted by Nanotrasen. Convince the crew that this is the truth." - -/datum/objective/abductee/vr - explanation_text = "It's all an entirely virtual simulation within an underground vault. Convince the crew to escape the shackles of VR." - -/datum/objective/abductee/pets - explanation_text = "Nanotrasen is abusing the animals! Save as many as you can!" - -/datum/objective/abductee/defect - explanation_text = "Fuck the system! Defect from the station and start an independent colony in space, Lavaland or the derelict. Recruit crewmates if you can." - -/datum/objective/abductee/promote - explanation_text = "Climb the corporate ladder all the way to the top!" - -/datum/objective/abductee/science - explanation_text = "So much lies undiscovered. Look deeper into the machinations of the universe." - -/datum/objective/abductee/build - explanation_text = "Expand the station." - -/datum/objective/abductee/pragnant - explanation_text = "You are pregnant and soon due. Find a safe place to deliver your baby." - -/datum/objective/abductee/engine - explanation_text = "Go have a good conversation with the singularity/tesla/supermatter crystal. Bonus points if it responds." - -/datum/objective/abductee/music - explanation_text = "You burn with passion for music. Share your vision. If anyone hates it, beat them on the head with your instrument!" - -/datum/objective/abductee/clown - explanation_text = "The clown is not funny. You can do better! Steal his audience and make the crew laugh!" - -/datum/objective/abductee/party - explanation_text = "You're throwing a huge rager. Make it as awesome as possible so the whole crew comes... OR ELSE!" - -/datum/objective/abductee/pets - explanation_text = "All the pets around here suck. You need to make them cooler. Replace them with exotic beasts!" - -/datum/objective/abductee/conspiracy - explanation_text = "The leaders of this station are hiding a grand, evil conspiracy. Only you can learn what it is, and expose it to the people!" - -/datum/objective/abductee/stalker - explanation_text = "The Syndicate has hired you to compile dossiers on all important members of the crew. Be sure they don't know you're doing it." - -/datum/objective/abductee/narrator - explanation_text = "You're the narrator of this tale. Follow around the protagonists to tell their story." - -/datum/objective/abductee/lurve - explanation_text = "You are doomed to feel woefully incomplete forever... until you find your true love on this station. They're waiting for you!" - -/datum/objective/abductee/sixthsense - explanation_text = "You died back there and went to heaven... or is it hell? No one here seems to know they're dead. Convince them, and maybe you can escape this limbo." \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm index f735bf253c..e6365d5e65 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm @@ -479,6 +479,25 @@ Congratulations! You are now trained for invasive xenobiology research!"} if(BATON_PROBE) to_chat(user, "The baton is in probing mode.") +/obj/item/device/radio/headset/abductor + name = "alien headset" + desc = "An advanced alien headset designed to monitor communications of human space stations. Why does it have a microphone? No one knows." + origin_tech = "magnets=2;abductor=3" + icon = 'icons/obj/abductor.dmi' + icon_state = "abductor_headset" + item_state = "abductor_headset" + keyslot2 = new /obj/item/device/encryptionkey/heads/captain + +/obj/item/device/radio/headset/abductor/Initialize(mapload) + ..() + SET_SECONDARY_FLAG(src, BANG_PROTECT) + make_syndie() + +/obj/item/device/radio/headset/abductor/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/weapon/screwdriver)) + return // Stops humans from disassembling abductor headsets. + return ..() + /obj/item/weapon/scalpel/alien name = "alien scalpel" diff --git a/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm new file mode 100644 index 0000000000..100c485263 --- /dev/null +++ b/code/game/gamemodes/miniantags/abduction/abduction_outfits.dm @@ -0,0 +1,62 @@ +/datum/outfit/abductor + name = "Abductor Basic" + uniform = /obj/item/clothing/under/color/grey //they're greys gettit + shoes = /obj/item/clothing/shoes/combat + back = /obj/item/weapon/storage/backpack + ears = /obj/item/device/radio/headset/abductor + +/datum/outfit/abductor/proc/get_team_console(team_number) + for(var/obj/machinery/abductor/console/C in GLOB.machines) + if(C.team == team_number) + return C + +/datum/outfit/abductor/proc/link_to_console(mob/living/carbon/human/H, team_number) + if(!team_number && isabductor(H)) + var/datum/species/abductor/S = H.dna.species + team_number = S.team + + if(!team_number) + team_number = 1 + + var/obj/machinery/abductor/console/console = get_team_console(team_number) + if(console) + var/obj/item/clothing/suit/armor/abductor/vest/V = locate() in H + if(V) + console.vest = V + V.flags |= NODROP + + var/obj/item/device/abductor/gizmo/G = locate() in H.getBackSlot() + if(G) + console.gizmo = G + G.console = console + +/datum/outfit/abductor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + if(!visualsOnly) + link_to_console(H) + + +/datum/outfit/abductor/agent + name = "Abductor Agent" + head = /obj/item/clothing/head/helmet/abductor + suit = /obj/item/clothing/suit/armor/abductor/vest + belt = /obj/item/weapon/storage/belt/military/abductor/full + + backpack_contents = list( + /obj/item/weapon/abductor_baton = 1, + /obj/item/weapon/gun/energy/alien = 1, + /obj/item/device/abductor/silencer = 1 + ) + +/datum/outfit/abductor/scientist + name = "Abductor Scientist" + + backpack_contents = list( + /obj/item/device/abductor/gizmo = 1 + ) + +/datum/outfit/abductor/scientist/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + if(!visualsOnly) + var/obj/item/weapon/implant/abductor/beamplant = new /obj/item/weapon/implant/abductor(H) + beamplant.implant(H) diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 109a14c7f7..85b36c90c0 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -3,8 +3,7 @@ id = "abductor" say_mod = "gibbers" sexes = 0 - species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS) + species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS,NOHUNGER) mutant_organs = list(/obj/item/organ/tongue/abductor) var/scientist = 0 // vars to not pollute spieces list with castes - var/agent = 0 var/team = 1 \ No newline at end of file diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi index f87713f7a1f665cfb6208eab710e1700a872943b..0a5154c396c8ddb81e09c1f4a26ee302c686435a 100644 GIT binary patch delta 763 zcmV289QZBmq&8B~=x@=~Y_*0004WQchC%1+xRF@O1s+;QR(LG9B>2J}0CHxigj#t*jt^fc4 z00000$RvNhUrf~e-72SOz8{{B!5~+&lmP00000z#o-6-ydWDz>xX=;%QZ= z^P87r|3J=szqtryzB&G6D;)17-J^)kN63*6WicA0i002ovPDHLkV1iq#c{Bh3 delta 743 zcmV;2k{1wBmq>BB~=)}z`#I*XpH~>00DGTPE!Ct=GbNc005qmk0pOg>A}82 z2+70*Obgjn@$GF@@S5Ic;G5Znsnxmd`aw09UOtd1PNO=h<7O+xGdd2lIqanfh}Xbh zLu?qctOAT9a3zI{nUicjV?l$zH6tns@`Jc zRe=Oo!q=)Dn$IwA6<>SDx66N?Q2+n}AxT6*RCt{2-0M!lKoExEr9!PmKm|E?{}*aG z#RfVDnZkm;k3q@KGSepY&sQKNpk+`DLiOB=!{gF=ZiCkEOX|5jo&5c6Jq?|MlzrY7 zT}I{MNjbWxp3<{(lCsa+qDyr=z^b~ao?hIe#GU>YUBZ`;cf7JMb_Ra{0000006-@B z^ZjC==I>THMf3gGd{_3aY>DUlvH2-IiMgp~PdJ>U@jBKUn7Nw1 zAv%B3Jf=#0TFl<`4)1^JA=bMM*POrG^&u2KrW5nU^X5k_OU+yJ7eZm-n7>m>>-Ndd z=j!n{8>HqfpVGQLf3NHguq(%GQzbNSTXtWB_0l<`w(|W5v3YBY^iSjq-mjX^JDPKU z0000000030Qs#U=I{y~=z8;as<|jwKFNOC%rqXxx4EwmhV0?c8ke%;4ve!Vq-^+Ye zJ+eDQ^L=%GG`)@lLQ57joY%F}!~ag!cdd00000 Z2j5#;5F-PT{ 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 delta 6494 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 F{ReMyc+LO- diff --git a/tgstation.dme b/tgstation.dme index e3517b1979..364631cd82 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -484,8 +484,10 @@ #include "code\game\gamemodes\malfunction\Malf_Modules.dm" #include "code\game\gamemodes\meteor\meteor.dm" #include "code\game\gamemodes\meteor\meteors.dm" +#include "code\game\gamemodes\miniantags\abduction\abductee_objectives.dm" #include "code\game\gamemodes\miniantags\abduction\abduction.dm" #include "code\game\gamemodes\miniantags\abduction\abduction_gear.dm" +#include "code\game\gamemodes\miniantags\abduction\abduction_outfits.dm" #include "code\game\gamemodes\miniantags\abduction\abduction_surgery.dm" #include "code\game\gamemodes\miniantags\abduction\gland.dm" #include "code\game\gamemodes\miniantags\abduction\machinery\camera.dm"