mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-27 01:21:30 +00:00
* Trimming the fat * Trimming the fat * Update mushpeople.dm * Adds colorblindness as a mild brain trauma (#76527) What the title says. The brain trauma makes the whole screen monochrome until cured.  I feel like the current pool for mild brain traumas is quite lame, this helps spice it up a bit with something that is quite annoying and distracting but not game breaking (as mild brain traumas should generally be). 🆑 add: Added colorblindness as a mild brain trauma. /🆑 --------- Co-authored-by: san7890 <the@san7890.com> * Fix species `var/hair_color` not being used for, well, hair color (#82168) `var/hair_color` for species was intended to be used as a "this species uses this type of hair color thing" But at some point that got completely lost and now it's only used for sprite accessories This fixes that. That means Slimepeople now have properly slimey hair. And Ethereals are less snowflake once more. 🆑 Melbert fix: Fixed Slimepeople's hair not matching their slimey colors. /🆑 * Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)" This reverts commit c4cb756. * Revert "Adds colorblindness as a mild brain trauma (#76527)" This reverts commit eb815f5. * Update _species.dm * unused var * Caps list.. * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Update mushpeople.dm * Attempts to fix CI errors * Update cap.dm * Update _external_organ.dm * Update monkey.dm * Revert "Update monkey.dm" This reverts commit 29f54c8. * Revert "Update _external_organ.dm" This reverts commit 8de5ea7. * Update _external_organ.dm * Revert "Update _external_organ.dm" This reverts commit 644cc56. * Fix CI maybe? * Update cap.dm * Update DNA.dm * Some cleanup/updating to upstream * Update global_lists.dm * Mush * Update mushpeople.dm * Hopefully the last fix * Doing this differently * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * Update organ.dm * OK * Update organ.dm * Update podpeople.dm * maybe * Hm * Hm * Will this break things? * Revert "Will this break things?" This reverts commit bd288c6. * Test * Update organ.dm * Update organ.dm * Revert "Update organ.dm" This reverts commit ca77ff9. * Update organ.dm * . * . * . * Update snail.dm * Monkeys now use height offset (and monkey tail works) (#81598) This PR adds the ability for monkeys to wear any jumpsuit in the game, and adds support for them to wear things like coats, gloves, and shoes (though this cannot be obtained in-game and is solely achieved through admins, which I also improved a bit upon by adding a defined bitfield for no equip flags). This reverts a lot of changes from tgstation/tgstation#73325 - We no longer check height from limbs and such to bring sprites down, instead monkeys now work more similarly to humans, so the entire PR was made irrelevant, and I didn't really want to leave around dead code for the sake of having a human with longer legs. I've now also added support for Dwarfism, which makes monkeys look even smaller. Very minor change but at least now the mutation doesn't feel like it does literally nothing to monkeys (since they can already walk over tables). Here's a few examples of how it can appear in game (purely for demonstration, as it is currently intentionally made impossible to obtain in-game, though if someone wants to change that post-this PR now that support is added, feel free): Tails have been broken for a while now, the only reason you see them in-game is because they are baked into the monkey sprites. This fixes that, which means humans can now get monkey tails implanted into them (hell yeah) and monkeys can have their tails removed (also hell yeah) * Removes unneeded files * Revert "Removes unneeded files" This reverts commit 6469d37. * . * ok * Update tails.dm * Update monkey.dm * Fix monkey screenshot test * Update species.dm * Update reinf_walls.dm * Maintenance --------- Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com> Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com> Co-authored-by: san7890 <the@san7890.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
923 lines
35 KiB
Plaintext
923 lines
35 KiB
Plaintext
/proc/add_item_to_steal(source, type)
|
|
GLOB.steal_item_handler.objectives_by_path[type] += source
|
|
return type
|
|
|
|
//Contains the target item datums for Steal objectives.
|
|
/datum/objective_item
|
|
/// How the item is described in the objective
|
|
var/name = "A silly bike horn! Honk!"
|
|
/// Typepath of item
|
|
var/targetitem = /obj/item/bikehorn
|
|
/// Valid containers that the target item can be in.
|
|
var/list/valid_containers = list()
|
|
/// Who CARES if this item goes missing (no stealing unguarded items), often similar but not identical to the next list
|
|
var/list/item_owner = list()
|
|
/// Jobs which cannot generate this objective (no stealing your own stuff)
|
|
var/list/excludefromjob = list()
|
|
/// List of additional items which also count, for things like blueprints
|
|
var/list/altitems = list()
|
|
/// Items to provide to people in order to allow them to acquire the target
|
|
var/list/special_equipment = list()
|
|
/// Defines in which contexts the item can be given as an objective
|
|
var/objective_type = OBJECTIVE_ITEM_TYPE_NORMAL
|
|
/// Whether this item exists on the station map at the start of a round.
|
|
var/exists_on_map = FALSE
|
|
/**
|
|
* How hard it is to steal this item given normal circumstances, ranked on a scale of 1 to 5.
|
|
*
|
|
* 1 - Probably found in a public area
|
|
* 2 - Likely on someone's person, or in a less-than-public but otherwise unguarded area
|
|
* 3 - Usually on someone's person, or in a locked locker or otherwise secure area
|
|
* 4 - Always on someone's person, or in a secure area
|
|
* 5 - You know it when you see it. Things like the Nuke Disc which have a pointer to it at all times.
|
|
*
|
|
* Also accepts 0 as "extremely easy to steal" and >5 as "almost impossible to steal"
|
|
*/
|
|
var/difficulty = 0
|
|
/// A hint explaining how one may find the target item.
|
|
var/steal_hint = "The clown might have one."
|
|
|
|
/// For objectives with special checks (does that intellicard have an ai in it? etcetc)
|
|
/datum/objective_item/proc/check_special_completion(obj/item/thing)
|
|
return TRUE
|
|
|
|
/// Takes a list of minds and returns true if this is a valid objective to give to a team of these minds
|
|
/datum/objective_item/proc/valid_objective_for(list/potential_thieves, require_owner = FALSE)
|
|
if(!target_exists() || (require_owner && !owner_exists()))
|
|
return FALSE
|
|
for (var/datum/mind/possible_thief as anything in potential_thieves)
|
|
var/datum/job/role = possible_thief.assigned_role
|
|
if(role.title in excludefromjob)
|
|
return FALSE
|
|
return TRUE
|
|
|
|
/// Returns true if the target item exists
|
|
/datum/objective_item/proc/target_exists()
|
|
return (exists_on_map) ? length(GLOB.steal_item_handler.objectives_by_path[targetitem]) : TRUE
|
|
|
|
/// Returns true if one of the item's owners exists somewhere
|
|
/datum/objective_item/proc/owner_exists()
|
|
if (!length(item_owner))
|
|
return TRUE
|
|
for (var/mob/living/player as anything in GLOB.player_list)
|
|
if ((player.mind?.assigned_role.title in item_owner) && player.stat != DEAD && !is_centcom_level(player.z))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/datum/objective_item/steal/New()
|
|
. = ..()
|
|
if(target_exists())
|
|
GLOB.possible_items += src
|
|
else
|
|
qdel(src)
|
|
|
|
/datum/objective_item/steal/Destroy()
|
|
GLOB.possible_items -= src
|
|
return ..()
|
|
|
|
// Low risk steal objectives
|
|
/datum/objective_item/steal/traitor
|
|
objective_type = OBJECTIVE_ITEM_TYPE_TRAITOR
|
|
|
|
// Unique-ish low risk objectives
|
|
/datum/objective_item/steal/traitor/bartender_shotgun
|
|
name = "the bartender's shotgun"
|
|
targetitem = /obj/item/gun/ballistic/shotgun/doublebarrel
|
|
excludefromjob = list(JOB_BARTENDER)
|
|
item_owner = list(JOB_BARTENDER)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A double-barrel shotgun usually found on the bartender's person, or if none are around, in the bar's backroom."
|
|
|
|
/obj/item/gun/ballistic/shotgun/doublebarrel/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/ballistic/shotgun/doublebarrel)
|
|
|
|
/datum/objective_item/steal/traitor/fireaxe
|
|
name = "a fire axe"
|
|
targetitem = /obj/item/fireaxe
|
|
excludefromjob = list(
|
|
JOB_ATMOSPHERIC_TECHNICIAN,
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_QUARTERMASTER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_STATION_ENGINEER,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "Only two of these exist on the station - one in the bridge, and one in atmospherics. \
|
|
You can use a multitool to hack open the case, or break it open the hard way."
|
|
|
|
/obj/item/fireaxe/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/fireaxe)
|
|
|
|
/datum/objective_item/steal/traitor/big_crowbar
|
|
name = "a mech removal tool"
|
|
targetitem = /obj/item/crowbar/mechremoval
|
|
excludefromjob = list(
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_SCIENTIST,
|
|
JOB_ROBOTICIST,
|
|
)
|
|
item_owner = list(JOB_ROBOTICIST)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A specialized tool found in the roboticist's lab. You can use a multitool to hack open the case, or break it open the hard way."
|
|
|
|
/obj/item/crowbar/mechremoval/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/crowbar/mechremoval)
|
|
|
|
/datum/objective_item/steal/traitor/nullrod
|
|
name = "the chaplain's null rod"
|
|
targetitem = /obj/item/nullrod
|
|
excludefromjob = list(JOB_CHAPLAIN)
|
|
item_owner = list(JOB_CHAPLAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A holy artifact usually found on the chaplain's person, or if none are around, in the chapel's relic closet. \
|
|
If there is a chaplain aboard, it is likely be to be transformed into some holy weapon - some of which are... difficult to remove from their person."
|
|
|
|
/obj/item/nullrod/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/nullrod)
|
|
|
|
/datum/objective_item/steal/traitor/clown_shoes
|
|
name = "the clown's shoes"
|
|
targetitem = /obj/item/clothing/shoes/clown_shoes
|
|
excludefromjob = list(JOB_CLOWN, JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER)
|
|
item_owner = list(JOB_CLOWN)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "The clown's huge, bright shoes. They should always be on the clown's feet."
|
|
|
|
/obj/item/clothing/shoes/clown_shoes/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/shoes/clown_shoes)
|
|
|
|
/datum/objective_item/steal/traitor/mime_mask
|
|
name = "the mime's mask"
|
|
targetitem = /obj/item/clothing/mask/gas/mime
|
|
excludefromjob = list(JOB_MIME, JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER)
|
|
item_owner = list(JOB_MIME)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "The mime's mask. It should always be on the mime's face."
|
|
|
|
/obj/item/clothing/mask/gas/mime/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/mask/gas/mime)
|
|
|
|
/datum/objective_item/steal/traitor/pka
|
|
name = "a protokinetic accelerator"
|
|
targetitem = /obj/item/gun/energy/recharge/kinetic_accelerator
|
|
excludefromjob = list(JOB_SHAFT_MINER, JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER)
|
|
item_owner = list(JOB_SHAFT_MINER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A tool primarily used by shaft miners to mine. Most carry one (or multiple) on their person, \
|
|
but they can also be found in the Mining Station, Mining office, or Auxiliary Mining Base on the station."
|
|
|
|
/obj/item/gun/energy/recharge/kinetic_accelerator/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/energy/recharge/kinetic_accelerator)
|
|
|
|
/datum/objective_item/steal/traitor/chef_moustache
|
|
name = "a fancy fake moustache"
|
|
targetitem = /obj/item/clothing/mask/fakemoustache/italian
|
|
excludefromjob = list(JOB_COOK, JOB_HEAD_OF_PERSONNEL, JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER)
|
|
item_owner = list(JOB_COOK)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "The chef's fake Italian moustache, either found on their face or in the garbage, depending on who's on duty."
|
|
|
|
/obj/item/clothing/mask/fakemoustache/italian/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/mask/fakemoustache/italian)
|
|
|
|
/datum/objective_item/steal/traitor/det_revolver
|
|
name = "detective's revolver"
|
|
targetitem = /obj/item/gun/ballistic/revolver/c38/detective
|
|
excludefromjob = list(JOB_DETECTIVE)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A .38 special revolver found in the Detective's holder. \
|
|
Usually found on the Detective's person, or if none are around, in the detective's locker, in their office."
|
|
|
|
/obj/item/gun/ballistic/revolver/c38/detective/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/ballistic/revolver/c38/detective)
|
|
|
|
/datum/objective_item/steal/traitor/lawyers_badge
|
|
name = "the lawyer's badge"
|
|
targetitem = /obj/item/clothing/accessory/lawyers_badge
|
|
excludefromjob = list(JOB_LAWYER)
|
|
item_owner = list(JOB_LAWYER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "The lawyer's badge. Usually pinned to their chest, but a spare can be obtained from their clothes vendor."
|
|
|
|
/obj/item/clothing/accessory/lawyers_badge/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/accessory/lawyers_badge)
|
|
|
|
/datum/objective_item/steal/traitor/chief_engineer_belt
|
|
name = "the chief engineer's belt"
|
|
targetitem = /obj/item/storage/belt/utility/chief
|
|
excludefromjob = list(JOB_CHIEF_ENGINEER)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "The chief engineer's toolbelt, strapped to their waist at all times."
|
|
|
|
/obj/item/storage/belt/utility/chief/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/storage/belt/utility/chief)
|
|
|
|
/datum/objective_item/steal/traitor/telebaton
|
|
name = "a head of staff's telescopic baton"
|
|
targetitem = /obj/item/melee/baton/telescopic
|
|
excludefromjob = list(
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_CAPTAIN,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_QUARTERMASTER,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A self-defense weapon standard-issue for all heads of staffs barring the Head of Security. Rarely found off of their person."
|
|
|
|
/obj/item/melee/baton/telescopic/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/melee/baton/telescopic)
|
|
|
|
/datum/objective_item/steal/traitor/cargo_budget
|
|
name = "cargo's departmental budget"
|
|
targetitem = /obj/item/card/id/departmental_budget/car
|
|
excludefromjob = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN)
|
|
item_owner = list(JOB_QUARTERMASTER)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A card that grants access to Cargo's funds. \
|
|
Normally found in the locker of the Quartermaster, but a particularly keen one may have it on their person or in their wallet."
|
|
|
|
/obj/item/card/id/departmental_budget/car/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/card/id/departmental_budget/car)
|
|
|
|
/datum/objective_item/steal/traitor/captain_modsuit
|
|
name = "the captain's magnate MOD control unit"
|
|
targetitem = /obj/item/mod/control/pre_equipped/magnate
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "An expensive, hand-crafted MOD unit made for the station's Captain. \
|
|
If not being worn by the Captain, you would find it in the Suit Storage Unit in their quarters."
|
|
|
|
/obj/item/mod/control/pre_equipped/magnate/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/magnate)
|
|
|
|
/datum/objective_item/steal/traitor/captain_spare
|
|
name = "the captain's spare ID"
|
|
targetitem = /obj/item/card/id/advanced/gold/captains_spare
|
|
excludefromjob = list(
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_CAPTAIN,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_QUARTERMASTER,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "The spare ID of the High Lord himself. \
|
|
If there's no official Captain around, you may find it pinned to the chest of the Acting Captain - one of the Heads of Staff. \
|
|
Otherwise, you'll have to bust open the golden safe on the bridge with acid or explosives to get to it."
|
|
|
|
/obj/item/card/id/advanced/gold/captains_spare/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/card/id/advanced/gold/captains_spare)
|
|
|
|
// High risk steal objectives
|
|
|
|
// Will always generate even with no Captain due to its security and temptation to use it
|
|
/datum/objective_item/steal/caplaser
|
|
name = "the captain's antique laser gun"
|
|
targetitem = /obj/item/gun/energy/laser/captain
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "A self-charging laser gun found in a display case in the Captain's Quarters. \
|
|
Breaking it open may trigger a security alert, so be careful."
|
|
|
|
/obj/item/gun/energy/laser/captain/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/energy/laser/captain)
|
|
|
|
/datum/objective_item/steal/hoslaser
|
|
name = "the head of security's personal laser gun"
|
|
targetitem = /obj/item/gun/energy/e_gun/hos
|
|
excludefromjob = list(JOB_HEAD_OF_SECURITY)
|
|
item_owner = list(JOB_HEAD_OF_SECURITY)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "The Head of Security's unique three mode laser gun. \
|
|
Always found on their person, if they are alive, but may otherwise be found in their locker."
|
|
|
|
/obj/item/gun/energy/e_gun/hos/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/energy/e_gun/hos)
|
|
|
|
/datum/objective_item/steal/compactshotty
|
|
name = "the head of security's personal compact shotgun"
|
|
targetitem = /obj/item/gun/ballistic/shotgun/automatic/combat/compact
|
|
excludefromjob = list(JOB_HEAD_OF_SECURITY)
|
|
item_owner = list(JOB_HEAD_OF_SECURITY)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "A miniaturized combat shotgun. May be found in Head of Security's locker or strapped to their back."
|
|
|
|
/obj/item/gun/ballistic/shotgun/automatic/combat/compact/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/ballistic/shotgun/automatic/combat/compact)
|
|
|
|
/datum/objective_item/steal/handtele
|
|
name = "a hand teleporter"
|
|
targetitem = /obj/item/hand_tele
|
|
excludefromjob = list(JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR, JOB_HEAD_OF_PERSONNEL)
|
|
item_owner = list(JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "Only two of these devices exist on the station, with one sitting in the Teleporter Room \
|
|
for emergencies, and the other in the Captain's Quarters for personal use."
|
|
|
|
/obj/item/hand_tele/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/hand_tele)
|
|
|
|
/datum/objective_item/steal/jetpack
|
|
name = "the Captain's jetpack"
|
|
targetitem = /obj/item/tank/jetpack/oxygen/captain
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
item_owner = list(JOB_CAPTAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A special yellow jetpack found in the Suit Storage Unit in the Captain's Quarters."
|
|
|
|
/obj/item/tank/jetpack/oxygen/captain/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/tank/jetpack/oxygen/captain)
|
|
|
|
/datum/objective_item/steal/magboots
|
|
name = "the chief engineer's advanced magnetic boots"
|
|
targetitem = /obj/item/clothing/shoes/magboots/advance
|
|
excludefromjob = list(JOB_CHIEF_ENGINEER)
|
|
item_owner = list(JOB_CHIEF_ENGINEER)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A pair of magnetic boots found in the Chief Engineer's Suit Storage Unit. \
|
|
May also be found on their person, concealed beneath their MODsuit."
|
|
|
|
/obj/item/clothing/shoes/magboots/advance/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/shoes/magboots/advance)
|
|
|
|
/datum/objective_item/steal/capmedal
|
|
name = "the medal of captaincy"
|
|
targetitem = /obj/item/clothing/accessory/medal/gold/captain
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
item_owner = list(JOB_CAPTAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A gold medal found in the medal box in the Captain's Quarters. \
|
|
The Captain usually also has one pinned to their jumpsuit."
|
|
|
|
/obj/item/clothing/accessory/medal/gold/captain/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/accessory/medal/gold/captain)
|
|
|
|
/datum/objective_item/steal/hypo
|
|
//name = "the hypospray" // ORIGINAL
|
|
name = "the Chief Medical Officer's hypospray" // SKYRAT EDIT CHANGE
|
|
//targetitem = /obj/item/reagent_containers/hypospray/cmo // ORIGINAL
|
|
targetitem = /obj/item/hypospray/mkii/deluxe/cmo // SKYRAT EDIT CHANGE
|
|
excludefromjob = list(JOB_CHIEF_MEDICAL_OFFICER)
|
|
item_owner = list(JOB_CHIEF_MEDICAL_OFFICER)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "The Chief Medical Officer's personal medical injector. \
|
|
Usually found amongst their medical supplies on their person, in their belt, or otherwise in their locker."
|
|
|
|
/obj/item/hypospray/mkii/deluxe/cmo/add_stealing_item_objective() // SKYRAT EDIT CHANGE
|
|
return add_item_to_steal(src, /obj/item/hypospray/mkii/deluxe/cmo) // SKYRAT EDIT CHANGE
|
|
|
|
/datum/objective_item/steal/nukedisc
|
|
name = "the nuclear authentication disk"
|
|
targetitem = /obj/item/disk/nuclear
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
difficulty = 5
|
|
steal_hint = "THAT disk - you know the one. Carried by the Captain at all times (hopefully). \
|
|
Difficult to miss, but if you can't find it, the Head of Security and Captain both have devices to track its precise location."
|
|
|
|
/obj/item/disk/nuclear/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/disk/nuclear)
|
|
|
|
/datum/objective_item/steal/nukedisc/check_special_completion(obj/item/disk/nuclear/N)
|
|
return !N.fake
|
|
|
|
/datum/objective_item/steal/reflector
|
|
name = "a reflector trenchcoat"
|
|
targetitem = /obj/item/clothing/suit/hooded/ablative
|
|
excludefromjob = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN)
|
|
item_owner = list(JOB_HEAD_OF_SECURITY)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "An ablative trechcoat found on the shelves of the Armory."
|
|
|
|
/obj/item/clothing/suit/hooded/ablative/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/suit/hooded/ablative)
|
|
|
|
/datum/objective_item/steal/reactive
|
|
name = "the reactive teleport armor"
|
|
targetitem = /obj/item/clothing/suit/armor/reactive/teleport
|
|
excludefromjob = list(JOB_RESEARCH_DIRECTOR)
|
|
item_owner = list(JOB_RESEARCH_DIRECTOR)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A special suit of armor found in the possession of the Research Director. \
|
|
You may otherwise find it in their locker."
|
|
|
|
/obj/item/clothing/suit/armor/reactive/teleport/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/suit/armor/reactive/teleport)
|
|
|
|
/datum/objective_item/steal/documents
|
|
name = "any set of secret documents of any organization"
|
|
valid_containers = list(/obj/item/folder)
|
|
targetitem = /obj/item/documents
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A set of papers belonging to a megaconglomerate. \
|
|
Nanotrasen documents can easily be found in the station's vault. \
|
|
For other corporations, you may find them in strange and distant places. \
|
|
A photocopy may also suffice."
|
|
|
|
/obj/item/documents/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/documents) //Any set of secret documents. Doesn't have to be NT's
|
|
|
|
/datum/objective_item/steal/nuke_core
|
|
name = "the heavily radioactive plutonium core from the onboard self-destruct"
|
|
valid_containers = list(/obj/item/nuke_core_container)
|
|
targetitem = /obj/item/nuke_core
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "The core of the station's self-destruct device, found in the vault."
|
|
|
|
/obj/item/nuke_core/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/nuke_core)
|
|
|
|
/datum/objective_item/steal/nuke_core/New()
|
|
special_equipment += /obj/item/storage/box/syndie_kit/nuke
|
|
..()
|
|
|
|
/datum/objective_item/steal/hdd_extraction
|
|
name = "the source code for Project Goon from the master R&D server mainframe"
|
|
targetitem = /obj/item/computer_disk/hdd_theft
|
|
excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST)
|
|
item_owner = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "The hard drive of the master research server, found in R&D's server room."
|
|
|
|
/obj/item/computer_disk/hdd_theft/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/computer_disk/hdd_theft)
|
|
|
|
/datum/objective_item/steal/hdd_extraction/New()
|
|
special_equipment += /obj/item/paper/guides/antag/hdd_extraction
|
|
return ..()
|
|
|
|
|
|
/datum/objective_item/steal/supermatter
|
|
name = "a sliver of a supermatter crystal"
|
|
targetitem = /obj/item/nuke_core/supermatter_sliver
|
|
valid_containers = list(/obj/item/nuke_core_container/supermatter)
|
|
difficulty = 5
|
|
steal_hint = "A small shard of the station's supermatter crystal engine."
|
|
|
|
/datum/objective_item/steal/supermatter/New()
|
|
special_equipment += /obj/item/storage/box/syndie_kit/supermatter
|
|
..()
|
|
|
|
/datum/objective_item/steal/supermatter/target_exists()
|
|
return GLOB.main_supermatter_engine != null
|
|
|
|
// Doesn't need item_owner = (JOB_AI) because this handily functions as a murder objective if there isn't one
|
|
/datum/objective_item/steal/functionalai
|
|
name = "a functional AI"
|
|
targetitem = /obj/item/aicard
|
|
difficulty = 5
|
|
steal_hint = "An intellicard (or MODsuit) containing an active, functional AI."
|
|
|
|
/datum/objective_item/steal/functionalai/New()
|
|
. = ..()
|
|
altitems += typesof(/obj/item/mod/control) // only here so we can account for AIs tucked away in a MODsuit.
|
|
|
|
/datum/objective_item/steal/functionalai/check_special_completion(obj/item/potential_storage)
|
|
var/mob/living/silicon/ai/being
|
|
|
|
if(istype(potential_storage, /obj/item/aicard))
|
|
var/obj/item/aicard/card = potential_storage
|
|
being = card.AI // why is this one capitalized and the other one not? i wish i knew.
|
|
// SKYRAT EDIT REMOVAL START - MOD PAI
|
|
/*else if(istype(potential_storage, /obj/item/mod/control))
|
|
var/obj/item/mod/control/suit = potential_storage
|
|
if(isAI(suit.ai_assistant))
|
|
being = suit.ai_assistant
|
|
*/ // SKYRAT EDIT REMOVAL END
|
|
else
|
|
stack_trace("check_special_completion() called on [src] with [potential_storage] ([potential_storage.type])! That's not supposed to happen!")
|
|
return FALSE
|
|
|
|
if(isAI(being) && being.stat != DEAD)
|
|
return TRUE
|
|
|
|
return FALSE
|
|
|
|
/datum/objective_item/steal/blueprints
|
|
name = "the station blueprints"
|
|
targetitem = /obj/item/blueprints
|
|
excludefromjob = list(JOB_CHIEF_ENGINEER)
|
|
item_owner = list(JOB_CHIEF_ENGINEER)
|
|
altitems = list(/obj/item/photo)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "The blueprints of the station, found in the Chief Engineer's locker, or on their person. A picture may suffice."
|
|
|
|
/obj/item/blueprints/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/blueprints)
|
|
|
|
/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I)
|
|
if(istype(I, /obj/item/blueprints))
|
|
return TRUE
|
|
if(istype(I, /obj/item/photo))
|
|
var/obj/item/photo/P = I
|
|
if(P.picture.has_blueprints) //if the blueprints are in frame
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/datum/objective_item/steal/blackbox
|
|
name = "the Blackbox"
|
|
targetitem = /obj/item/blackbox
|
|
excludefromjob = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN)
|
|
exists_on_map = TRUE
|
|
difficulty = 4
|
|
steal_hint = "The station's data Blackbox, found solely within Telecommunications."
|
|
|
|
/obj/item/blackbox/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/blackbox)
|
|
|
|
|
|
// A number of special early-game steal objectives intended to be used with the steal-and-destroy objective.
|
|
// They're basically items of utility or emotional value that may be found on many players or lying around the station.
|
|
/datum/objective_item/steal/traitor/insuls
|
|
name = "insulated gloves"
|
|
targetitem = /obj/item/clothing/gloves/color/yellow
|
|
excludefromjob = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER, JOB_ATMOSPHERIC_TECHNICIAN, JOB_STATION_ENGINEER, JOB_CHIEF_ENGINEER)
|
|
item_owner = list(JOB_STATION_ENGINEER, JOB_CHIEF_ENGINEER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A basic pair of insulated gloves, usually worn by Assistants, Engineers, or Cargo Technicians."
|
|
|
|
/obj/item/clothing/gloves/color/yellow/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/gloves/color/yellow)
|
|
|
|
/datum/objective_item/steal/traitor/moth_plush
|
|
name = "cute moth plush toy"
|
|
targetitem = /obj/item/toy/plush/moth
|
|
excludefromjob = list(JOB_PSYCHOLOGIST, JOB_PARAMEDIC, JOB_CHEMIST, JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_CORONER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A moth plush toy. The Psychologist has one to help console patients."
|
|
|
|
/obj/item/toy/plush/moth/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/toy/plush/moth)
|
|
|
|
/datum/objective_item/steal/traitor/lizard_plush
|
|
name = "cute lizard plush toy"
|
|
targetitem = /obj/item/toy/plush/lizard_plushie
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A lizard plush toy. Often found hidden in maintenance."
|
|
|
|
/obj/item/toy/plush/lizard_plushie/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/toy/plush/lizard_plushie)
|
|
|
|
/datum/objective_item/steal/traitor/denied_stamp
|
|
name = "cargo's denied stamp"
|
|
targetitem = /obj/item/stamp/denied
|
|
excludefromjob = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER, JOB_SHAFT_MINER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "Cargo often has multiple of these red stamps lying around to process paperwork."
|
|
|
|
/obj/item/stamp/denied/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/stamp/denied)
|
|
|
|
/datum/objective_item/steal/traitor/granted_stamp
|
|
name = "cargo's granted stamp"
|
|
targetitem = /obj/item/stamp/granted
|
|
excludefromjob = list(JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER, JOB_SHAFT_MINER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "Cargo often has multiple of these green stamps lying around to process paperwork."
|
|
|
|
/obj/item/stamp/granted/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/stamp/granted)
|
|
|
|
/datum/objective_item/steal/traitor/space_law
|
|
name = "a book on space law"
|
|
targetitem = /obj/item/book/manual/wiki/security_space_law
|
|
excludefromjob = list(JOB_SECURITY_OFFICER, JOB_WARDEN, JOB_HEAD_OF_SECURITY, JOB_LAWYER, JOB_DETECTIVE)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "Sometimes found in the possession of members of Security and Lawyers. \
|
|
The courtroom and the library are also good places to look."
|
|
|
|
/obj/item/book/manual/wiki/security_space_law/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/book/manual/wiki/security_space_law)
|
|
|
|
/datum/objective_item/steal/traitor/rpd
|
|
name = "rapid pipe dispenser"
|
|
targetitem = /obj/item/pipe_dispenser
|
|
excludefromjob = list(
|
|
JOB_ATMOSPHERIC_TECHNICIAN,
|
|
JOB_STATION_ENGINEER,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_SCIENTIST,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_GENETICIST,
|
|
JOB_ROBOTICIST,
|
|
)
|
|
item_owner = list(JOB_CHIEF_ENGINEER)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A tool often used by Engineers, Atmospherics Technicians, and Ordnance Technicians."
|
|
|
|
/obj/item/pipe_dispenser/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/pipe_dispenser)
|
|
|
|
/datum/objective_item/steal/traitor/donut_box
|
|
name = "a box of prized donuts"
|
|
targetitem = /obj/item/storage/fancy/donut_box
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_QUARTERMASTER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
JOB_LAWYER,
|
|
JOB_DETECTIVE,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "Everyone has a box of donuts - you may most commonly find them on the Bridge, within Security, or in any department's break room."
|
|
|
|
/obj/item/storage/fancy/donut_box/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/storage/fancy/donut_box)
|
|
|
|
/datum/objective_item/steal/spy
|
|
objective_type = OBJECTIVE_ITEM_TYPE_SPY
|
|
|
|
/datum/objective_item/steal/spy/lamarr
|
|
name = "The Research Director's pet headcrab"
|
|
targetitem = /obj/item/clothing/mask/facehugger/lamarr
|
|
excludefromjob = list(JOB_RESEARCH_DIRECTOR)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "The Research Director's pet headcrab, Lamarr, found in a secure cage in their office."
|
|
|
|
/obj/item/clothing/mask/facehugger/lamarr/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/clothing/mask/facehugger/lamarr)
|
|
|
|
/datum/objective_item/steal/spy/disabler
|
|
name = "a disabler"
|
|
targetitem = /obj/item/gun/energy/disabler
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
difficulty = 2
|
|
steal_hint = "A hand-held disabler, often found in the possession of Security Officers."
|
|
|
|
/datum/objective_item/steal/spy/energy_gun
|
|
name = "an energy gun"
|
|
targetitem = /obj/item/gun/energy/e_gun
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_QUARTERMASTER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A two-mode energy gun, found in the station's Armory, as well as in the hands of some heads of staff for personal defense."
|
|
|
|
/datum/objective_item/steal/spy/energy_gun/check_special_completion(obj/item/thing)
|
|
return thing.type == /obj/item/gun/energy/e_gun
|
|
|
|
/obj/item/gun/energy/e_gun/add_stealing_item_objective()
|
|
if(type == /obj/item/gun/energy/e_gun)
|
|
return add_item_to_steal(src, /obj/item/gun/energy/e_gun)
|
|
|
|
/datum/objective_item/steal/spy/laser_gun
|
|
name = "a laser gun"
|
|
targetitem = /obj/item/gun/energy/laser
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_QUARTERMASTER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A simple laser gun, found in the station's Armory."
|
|
|
|
/datum/objective_item/steal/spy/laser_gun/check_special_completion(obj/item/thing)
|
|
return thing.type == /obj/item/gun/energy/laser
|
|
|
|
/obj/item/gun/energy/laser/add_stealing_item_objective()
|
|
if(type == /obj/item/gun/energy/laser)
|
|
return add_item_to_steal(src, /obj/item/gun/energy/laser)
|
|
|
|
/datum/objective_item/steal/spy/shotgun
|
|
name = "a riot shotgun"
|
|
targetitem = /obj/item/gun/ballistic/shotgun/riot
|
|
excludefromjob = list(
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "A shotgun found in the station's Armory for riot suppression. Doesn't miss."
|
|
|
|
/obj/item/gun/ballistic/shotgun/riot/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/ballistic/shotgun/riot)
|
|
|
|
/datum/objective_item/steal/spy/temp_gun
|
|
name = "security's temperature gun"
|
|
targetitem = /obj/item/gun/energy/temperature/security
|
|
excludefromjob = list(
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 2 // lowered for the meme
|
|
steal_hint = "Security's TRUSTY temperature gun, found in the station's Armory."
|
|
|
|
/obj/item/gun/energy/temperature/security/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/gun/energy/temperature/security)
|
|
|
|
/datum/objective_item/steal/spy/stamp
|
|
name = "a head of staff's stamp"
|
|
targetitem = /obj/item/stamp/head
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_QUARTERMASTER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 1
|
|
steal_hint = "A stamp owned by a head of staff, from their offices."
|
|
|
|
/obj/item/stamp/head/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/stamp/head)
|
|
|
|
/datum/objective_item/steal/spy/sunglasses
|
|
name = "sunglasses"
|
|
targetitem = /obj/item/clothing/glasses/sunglasses
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_CHIEF_ENGINEER,
|
|
JOB_CHIEF_MEDICAL_OFFICER,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_LAWYER,
|
|
JOB_QUARTERMASTER,
|
|
JOB_RESEARCH_DIRECTOR,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
difficulty = 1
|
|
steal_hint = "A pair of sunglasses. Lawyers often have a few pairs, as do some heads of staff. \
|
|
You can also obtain a pair from dissassembling hudglasses."
|
|
|
|
/datum/objective_item/steal/spy/ce_modsuit
|
|
name = "the cheif engineer's advanced MOD control unit"
|
|
targetitem = /obj/item/mod/control/pre_equipped/advanced
|
|
excludefromjob = list(JOB_CHIEF_ENGINEER)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "An advanced version of the standard Engineering MODsuit commonly worn by the Chief Engineer."
|
|
|
|
/obj/item/mod/control/pre_equipped/advanced/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/advanced)
|
|
|
|
/datum/objective_item/steal/spy/rd_modsuit
|
|
name = "the research director's research MOD control unit"
|
|
targetitem = /obj/item/mod/control/pre_equipped/research
|
|
excludefromjob = list(JOB_RESEARCH_DIRECTOR)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A bulky MODsuit commonly worn by the Research Director to protect themselves from the hazards of their work."
|
|
|
|
/obj/item/mod/control/pre_equipped/research/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/research)
|
|
|
|
/datum/objective_item/steal/spy/cmo_modsuit
|
|
name = "the chief medical officer's rescure MOD control unit"
|
|
targetitem = /obj/item/mod/control/pre_equipped/rescue
|
|
excludefromjob = list(JOB_CHIEF_MEDICAL_OFFICER)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "A MODsuit sometimes equipped by the Chief Medical Officer to perform rescue opperations in hazardous environments."
|
|
|
|
/obj/item/mod/control/pre_equipped/rescue/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/rescue)
|
|
|
|
/datum/objective_item/steal/spy/hos_modsuit
|
|
name = "the head of security's safeguard MOD control unit"
|
|
targetitem = /obj/item/mod/control/pre_equipped/safeguard
|
|
excludefromjob = list(JOB_HEAD_OF_SECURITY)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "An advanced MODsuit sometimes worn by the Head of Security when needing to detain hostiles invading the station."
|
|
|
|
/obj/item/mod/control/pre_equipped/safeguard/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/mod/control/pre_equipped/safeguard)
|
|
|
|
/datum/objective_item/steal/spy/stun_baton
|
|
name = "a stun baton"
|
|
targetitem = /obj/item/melee/baton/security
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
difficulty = 2
|
|
steal_hint = "Steal any stun baton from Security."
|
|
|
|
/datum/objective_item/steal/spy/stun_baton/check_special_completion(obj/item/thing)
|
|
return !istype(thing, /obj/item/melee/baton/security/cattleprod)
|
|
|
|
/datum/objective_item/steal/spy/det_baton
|
|
name = "the detective's baton"
|
|
targetitem = /obj/item/melee/baton
|
|
excludefromjob = list(
|
|
JOB_CAPTAIN,
|
|
JOB_DETECTIVE,
|
|
JOB_HEAD_OF_PERSONNEL,
|
|
JOB_HEAD_OF_SECURITY,
|
|
JOB_SECURITY_OFFICER,
|
|
JOB_WARDEN,
|
|
)
|
|
exists_on_map = TRUE
|
|
difficulty = 2
|
|
steal_hint = "The detective's old wooden truncheon, commonly found on their person for self defense."
|
|
|
|
/datum/objective_item/steal/spy/det_baton/check_special_completion(obj/item/thing)
|
|
return thing.type == /obj/item/melee/baton
|
|
|
|
/obj/item/melee/baton/add_stealing_item_objective()
|
|
if(type == /obj/item/melee/baton)
|
|
return add_item_to_steal(src, /obj/item/melee/baton)
|
|
|
|
/datum/objective_item/steal/spy/captain_sabre_sheathe
|
|
name = "the captain's sabre sheathe"
|
|
targetitem = /obj/item/storage/belt/sabre
|
|
excludefromjob = list(JOB_CAPTAIN)
|
|
exists_on_map = TRUE
|
|
difficulty = 3
|
|
steal_hint = "The sheathe for the captain's sabre, found in their closet or strapped to their waist at all times."
|
|
|
|
/obj/item/storage/belt/sabre/add_stealing_item_objective()
|
|
return add_item_to_steal(src, /obj/item/storage/belt/sabre)
|