diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 5df20aed2e4..a819ac65628 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -431,6 +431,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Item still allows you to examine items while blind and actively held. #define TRAIT_BLIND_TOOL "blind_tool" +/// The person with this trait always appears as 'unknown'. +#define TRAIT_UNKNOWN "unknown" + // METABOLISMS // Various jobs on the station have historically had better reactions // to various drinks and foodstuffs. Security liking donuts is a classic diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index b347107fc6c..f7d8ade69fb 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -177,6 +177,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SHIFTY_EYES" = TRAIT_SHIFTY_EYES, "TRAIT_CANNOT_BE_UNBUCKLED" = TRAIT_CANNOT_BE_UNBUCKLED, "TRAIT_GAMER" = TRAIT_GAMER, + "TRAIT_UNKNOWN" = TRAIT_UNKNOWN, ), /obj/item/bodypart = list( "TRAIT_PARALYSIS" = TRAIT_PARALYSIS, diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index afc2e605a32..3c6921bfc9f 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -258,43 +258,6 @@ new /obj/item/gun_maintenance_supplies(src) new /obj/item/gun_maintenance_supplies(src) -/obj/item/storage/toolbox/infiltrator - name = "insidious case" - desc = "Bearing the emblem of the Syndicate, this case contains a full infiltrator stealth suit, and has enough room to fit weaponry if necessary." - icon_state = "infiltrator_case" - inhand_icon_state = "infiltrator_case" - lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' - force = 15 - throwforce = 18 - w_class = WEIGHT_CLASS_NORMAL - has_latches = FALSE - -/obj/item/storage/toolbox/infiltrator/Initialize(mapload) - . = ..() - atom_storage.max_slots = 10 - atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL - atom_storage.max_total_storage = 24 - atom_storage.set_holdable(list( - /obj/item/clothing/head/helmet/infiltrator, - /obj/item/clothing/suit/armor/vest/infiltrator, - /obj/item/clothing/under/syndicate/bloodred, - /obj/item/clothing/gloves/color/infiltrator, - /obj/item/clothing/mask/infiltrator, - /obj/item/clothing/shoes/combat/sneakboots, - /obj/item/gun/ballistic/automatic/pistol, - /obj/item/gun/ballistic/revolver, - /obj/item/ammo_box - )) - -/obj/item/storage/toolbox/infiltrator/PopulateContents() - new /obj/item/clothing/head/helmet/infiltrator(src) - new /obj/item/clothing/suit/armor/vest/infiltrator(src) - new /obj/item/clothing/under/syndicate/bloodred(src) - new /obj/item/clothing/gloves/color/infiltrator(src) - new /obj/item/clothing/mask/infiltrator(src) - new /obj/item/clothing/shoes/combat/sneakboots(src) - //floorbot assembly /obj/item/storage/toolbox/attackby(obj/item/stack/tile/iron/T, mob/user, params) var/list/allowed_toolbox = list(/obj/item/storage/toolbox/emergency, //which toolboxes can be made into floorbots diff --git a/code/modules/antagonists/traitor/components/demoraliser.dm b/code/modules/antagonists/traitor/components/demoraliser.dm index b6c02dc252f..e3089b5b803 100644 --- a/code/modules/antagonists/traitor/components/demoraliser.dm +++ b/code/modules/antagonists/traitor/components/demoraliser.dm @@ -150,3 +150,31 @@ mood_change = -3 timeout = 2 MINUTES hidden = TRUE + +/datum/demoralise_moods/module + mood_category = "module" + antag_notification = "I feel oddly refreshed." + antag_mood = /datum/mood_event/traitor_module_antag + crew_notification = "My head hurts. It feels like something is driving nails into my brain!" + crew_mood = /datum/mood_event/traitor_module_crew + authority_notification = "My heads beginning to spin. The enemy is at the gate. I'm all alone..." + authority_mood = /datum/mood_event/traitor_module_auth + reading_requirements = (READING_CHECK_LIGHT) + +/datum/mood_event/traitor_module_antag + description = "I think I'll cause problems on purpose." + mood_change = 1 + timeout = 2 MINUTES + hidden = TRUE + +/datum/mood_event/traitor_module_crew + description = "They're on the station! I know it! They're going to get me!" + mood_change = -4 + timeout = 2 MINUTES + hidden = TRUE + +/datum/mood_event/traitor_module_auth + description = "Nobody on this station is on my side, and the enemy could be anyone! I have to take more drastic measures..." + mood_change = -5 + timeout = 2 MINUTES + hidden = TRUE diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index b138b01a9d7..51226c18ca0 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -247,17 +247,6 @@ greyscale_colors = "#99eeff" clothing_traits = list(TRAIT_QUICKER_CARRY, TRAIT_FASTMED) -/obj/item/clothing/gloves/color/infiltrator - name = "infiltrator gloves" - desc = "Specialized tactical gloves for carrying people around. Has tactical rubber grips for tactical ease of kidnapping. Tactically." - icon_state = "infiltrator" - inhand_icon_state = null - greyscale_colors = null - siemens_coefficient = 0 - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 70, FIRE = 0, ACID = 0) - clothing_traits = list(TRAIT_QUICKER_CARRY) - resistance_flags = FIRE_PROOF | ACID_PROOF - /obj/item/clothing/gloves/color/latex/engineering name = "tinker's gloves" desc = "Overdesigned engineering gloves that have automated construction subrutines dialed in, allowing for faster construction while worn." diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index b962a98ab5b..0c31b3bfe98 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -349,18 +349,6 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT armor = list(MELEE = 25, BULLET = 20, LASER = 20, ENERGY = 30, BOMB = 20, BIO = 50, FIRE = -10, ACID = 50, WOUND = 5) -/obj/item/clothing/head/helmet/infiltrator - name = "infiltrator helmet" - desc = "The galaxy isn't big enough for the two of us." - icon_state = "infiltrator" - inhand_icon_state = "infiltrator_helmet" - armor = list(MELEE = 40, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 70, BIO = 0, FIRE = 100, ACID = 100) - resistance_flags = FIRE_PROOF | ACID_PROOF - flash_protect = FLASH_PROTECTION_WELDER - flags_inv = HIDEHAIR|HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF - strip_delay = 80 - /obj/item/clothing/head/helmet/elder_atmosian name = "\improper Elder Atmosian Helmet" desc = "A superb helmet made with the toughest and rarest materials available to man." diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 6f7593f61b1..1af058181a6 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -11,38 +11,6 @@ /obj/item/clothing/mask/balaclava/attack_self(mob/user) adjustmask(user) -/obj/item/clothing/mask/infiltrator - name = "infiltrator balaclava" - desc = "It makes you feel safe in your anonymity, but for a stealth outfit you sure do look obvious that you're up to no good. It seems to have a built in heads-up display." - icon_state = "syndicate_balaclava" - inhand_icon_state = "balaclava" - clothing_flags = MASKINTERNALS - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT - visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT - w_class = WEIGHT_CLASS_SMALL - armor = list(MELEE = 10, BULLET = 5, LASER = 5,ENERGY = 5, BOMB = 0, BIO = 50, FIRE = 100, ACID = 40) - resistance_flags = FIRE_PROOF | ACID_PROOF - - var/voice_unknown = FALSE ///This makes it so that your name shows up as unknown when wearing the mask. - -/obj/item/clothing/mask/infiltrator/equipped(mob/living/carbon/human/user, slot) - . = ..() - if(!(slot & ITEM_SLOT_MASK)) - return - to_chat(user, "You roll the balaclava over your face, and a data display appears before your eyes.") - ADD_TRAIT(user, TRAIT_DIAGNOSTIC_HUD, MASK_TRAIT) - var/datum/atom_hud/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] - diag_hud.show_to(user) - voice_unknown = TRUE - -/obj/item/clothing/mask/infiltrator/dropped(mob/living/carbon/human/user) - to_chat(user, "You pull off the balaclava, and the mask's internal hud system switches off quietly.") - REMOVE_TRAIT(user, TRAIT_DIAGNOSTIC_HUD, MASK_TRAIT) - var/datum/atom_hud/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] - diag_hud.hide_from(user) - voice_unknown = FALSE - return ..() - /obj/item/clothing/mask/luchador name = "Luchador Mask" desc = "Worn by robust fighters, flying high to defeat their foes!" diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index 7f3b6a6dd3c..3a8e917ef1f 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -13,15 +13,6 @@ create_storage(type = /datum/storage/pockets/shoes) -/obj/item/clothing/shoes/combat/sneakboots - name = "sneakboots" - desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme." - icon_state = "sneakboots" - inhand_icon_state = null - w_class = WEIGHT_CLASS_SMALL - resistance_flags = FIRE_PROOF | ACID_PROOF - clothing_traits = list(TRAIT_SILENT_FOOTSTEPS) - /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" desc = "High speed, no drag combat boots." diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 5ae286968a6..e0753690f34 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -231,15 +231,6 @@ . = ..() allowed = GLOB.detective_vest_allowed -/obj/item/clothing/suit/armor/vest/infiltrator - name = "infiltrator vest" - desc = "This vest appears to be made of of highly flexible materials that absorb impacts with ease." - icon_state = "infiltrator" - inhand_icon_state = null - armor = list(MELEE = 40, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 70, BIO = 0, FIRE = 100, ACID = 100) - resistance_flags = FIRE_PROOF | ACID_PROOF - strip_delay = 80 - /obj/item/clothing/suit/armor/swat name = "MK.I SWAT Suit" desc = "A tactical suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 2321 for military operations. It has a minor slowdown, but offers decent protection." diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 374c1a0e702..76df7f72c35 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -8,14 +8,21 @@ var/t_is = p_are() var/t_es = p_es() var/obscure_name + var/obscure_examine if(isliving(user)) var/mob/living/L = user if(HAS_TRAIT(L, TRAIT_PROSOPAGNOSIA) || HAS_TRAIT(L, TRAIT_INVISIBLE_MAN)) obscure_name = TRUE + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + obscure_name = TRUE + obscure_examine = TRUE . = list("This is [!obscure_name ? name : "Unknown"]!") + if(obscure_examine) + return list("You're struggling to make out any details...") + var/obscured = check_obscured_slots() //uniform diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index fadb1f25482..d8dfb39782a 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -9,6 +9,8 @@ //Useful when player do something with computers /mob/living/carbon/human/proc/get_assignment(if_no_id = "No id", if_no_job = "No job", hand_first = TRUE) var/obj/item/card/id/id = get_idcard(hand_first) + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return if_no_id if(id) . = id.assignment else @@ -24,6 +26,8 @@ //Useful when player do something with computers /mob/living/carbon/human/proc/get_authentification_name(if_no_id = "Unknown") var/obj/item/card/id/id = get_idcard(FALSE) + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return if_no_id if(id) return id.registered_name var/obj/item/modular_computer/pda = wear_id @@ -35,6 +39,8 @@ /mob/living/carbon/human/get_visible_name() var/face_name = get_face_name("") var/id_name = get_id_name("") + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return "Unknown" if(name_override) return name_override if(face_name) @@ -47,6 +53,8 @@ //Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable /mob/living/carbon/human/proc/get_face_name(if_no_face="Unknown") + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return if_no_face //We're Unknown, no face information for you if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible return if_no_face if( head && (head.flags_inv&HIDEFACE) ) @@ -62,6 +70,8 @@ var/obj/item/storage/wallet/wallet = wear_id var/obj/item/modular_computer/tablet/pda/pda = wear_id var/obj/item/card/id/id = wear_id + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + . = if_no_id //You get NOTHING, no id name, good day sir if(istype(wallet)) id = wallet.front_id if(istype(id)) diff --git a/code/modules/mob/living/carbon/human/human_say.dm b/code/modules/mob/living/carbon/human/human_say.dm index f128edc322d..e2c3ea6d608 100644 --- a/code/modules/mob/living/carbon/human/human_say.dm +++ b/code/modules/mob/living/carbon/human/human_say.dm @@ -10,6 +10,9 @@ return ..() /mob/living/carbon/human/GetVoice() + if(HAS_TRAIT(src, TRAIT_UNKNOWN)) + return ("Unknown") + if(istype(wear_mask, /obj/item/clothing/mask/chameleon)) var/obj/item/clothing/mask/chameleon/V = wear_mask if(V.voice_change && wear_id) @@ -20,12 +23,7 @@ return real_name else return real_name - if(istype(wear_mask, /obj/item/clothing/mask/infiltrator)) - var/obj/item/clothing/mask/infiltrator/V = wear_mask - if(V.voice_unknown) - return ("Unknown") - else - return real_name + if(mind) var/datum/antagonist/changeling/changeling = mind.has_antag_datum(/datum/antagonist/changeling) if(changeling?.mimicing) diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm index cc63483ee1e..15d599632d6 100644 --- a/code/modules/mod/mod_theme.dm +++ b/code/modules/mod/mod_theme.dm @@ -928,6 +928,61 @@ ), ) +/datum/mod_theme/infiltrator + name = "infiltrator" + desc = "A specialized infiltration suit, developed by the Roseus Galactic Actors Guild to strike fear and awe into the hearts of the public." + extended_desc = "Several questions have been raised over the years in regards to the clandestine Infiltrator modular suit. \ + Why is the suit blood red despite being a sneaking suit? Why did a movie company of all things develop a stealth suit? \ + The simplest answer is that Roseus Galactic hire more than a few eccentric individuals who know more about \ + visual aesthetics and prop design than they do functional operative camouflage. But the true reason goes deeper. \ + The visual appearance of the suit exemplifies brazen displays of power, not true stealth. However, the suit's inbuilt stealth mechanisms\ + prevent anyone from fully recognizing the occupant, only the suit, creating perfect anonymity. This visual transformation is \ + backed by inbuilt psi-emitters, heightening stressors common amongst Nanotrasen staff, and clouding identifiable information. \ + Scrubbed statistical data presented a single correlation within documented psychological profiles. The fear of the Unknown." + default_skin = "infiltrator" + armor = list(MELEE = 50, BULLET = 50, LASER = 40, ENERGY = 50, BOMB = 40, BIO = 0, FIRE = 100, ACID = 100, WOUND = 25) + resistance_flags = FIRE_PROOF | ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + siemens_coefficient = 0 + slowdown_inactive = 0 + slowdown_active = 0 + ui_theme = "syndicate" + slot_flags = ITEM_SLOT_BELT + inbuilt_modules = list(/obj/item/mod/module/infiltrator, /obj/item/mod/module/storage/belt, /obj/item/mod/module/demoralizer) + allowed_suit_storage = list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + /obj/item/melee/energy/sword, + /obj/item/shield/energy, + ) + skins = list( + "infiltrator" = list( + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + CAN_OVERSLOT = TRUE, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + ), + GAUNTLETS_FLAGS = list( + SEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + SEALED_CLOTHING = THICKMATERIAL, + CAN_OVERSLOT = TRUE, + ), + ), + ) + /datum/mod_theme/enchanted name = "enchanted" desc = "The Wizard Federation's relatively low-tech MODsuit. Is very protective, though." diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm index 246e79b2083..bab16b544d3 100644 --- a/code/modules/mod/mod_types.dm +++ b/code/modules/mod/mod_types.dm @@ -205,6 +205,16 @@ /obj/item/mod/module/flamethrower, ) +/obj/item/mod/control/pre_equipped/infiltrator + theme = /datum/mod_theme/infiltrator + applied_cell = /obj/item/stock_parts/cell/super + initial_modules = list( + /obj/item/mod/module/emp_shield, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/quick_carry, + /obj/item/mod/module/visor/diaghud, + ) + /obj/item/mod/control/pre_equipped/enchanted theme = /datum/mod_theme/enchanted applied_core = /obj/item/mod/core/infinite diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index 4fcee017449..f0b0fda395e 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -451,3 +451,49 @@ if(!holding_storage || holding_storage.max_specific_storage >= mod.w_class) return mod.forceMove(drop_location()) + +/obj/item/mod/module/demoralizer + name = "MOD psi-echo demoralizer module" + desc = "One incredibly morbid member of the RND team at Roseus Galactic posed a question to her colleagues. \ + 'I desire the power to scar my enemies mentally as I murder them. Who will stop me implementing this in our next project?' \ + And thus the Psi-Echo Demoralizer Device was reluctantly invented. The future of psychological warfare, today!" + icon_state = "brain_hurties" + complexity = 0 + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.1 + removable = FALSE + var/datum/proximity_monitor/advanced/demoraliser/demoralizer + +/obj/item/mod/module/demoralizer/on_suit_activation() + var/datum/demoralise_moods/module/mood_category = new() + demoralizer = new(mod.wearer, 7, TRUE, mood_category) + +/obj/item/mod/module/demoralizer/on_suit_deactivation(deleting = FALSE) + QDEL_NULL(demoralizer) + +/obj/item/mod/module/infiltrator + name = "MOD infiltration core programs module" + desc = "The primary stealth systems operating within the suit. Utilizing electromagnetic signals, \ + the wearer simply cannot be observed closely, or heard clearly by those around them." + icon_state = "infiltrator" + complexity = 0 + removable = FALSE + idle_power_cost = DEFAULT_CHARGE_DRAIN * 0 + incompatible_modules = list(/obj/item/mod/module/infiltrator, /obj/item/mod/module/armor_booster, /obj/item/mod/module/welding) + +/obj/item/mod/module/infiltrator/on_install() + mod.item_flags |= EXAMINE_SKIP + +/obj/item/mod/module/infiltrator/on_uninstall(deleting = FALSE) + mod.item_flags &= ~EXAMINE_SKIP + +/obj/item/mod/module/infiltrator/on_suit_activation() + ADD_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT) + ADD_TRAIT(mod.wearer, TRAIT_UNKNOWN, MOD_TRAIT) + mod.helmet.flash_protect = FLASH_PROTECTION_WELDER + +/obj/item/mod/module/infiltrator/on_suit_deactivation(deleting = FALSE) + REMOVE_TRAIT(mod.wearer, TRAIT_SILENT_FOOTSTEPS, MOD_TRAIT) + REMOVE_TRAIT(mod.wearer, TRAIT_UNKNOWN, MOD_TRAIT) + if(deleting) + return + mod.helmet.flash_protect = initial(mod.helmet.flash_protect) diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index ffd5f2e8920..78124e75c41 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -60,6 +60,18 @@ max_combined_w_class = 30 max_items = 21 +/obj/item/mod/module/storage/belt + name = "MOD case storage module" + desc = "Some concessions had to be made when creating a compressed modular suit core. \ + As a result, Roseus Galactic equipped their suit with a slimline storage case. \ + If you find this equipped to a standard modular suit, then someone has almost certainly shortchanged you on a proper storage module." + icon_state = "storage_case" + complexity = 0 + max_w_class = WEIGHT_CLASS_SMALL + removable = FALSE + max_combined_w_class = 21 + max_items = 7 + /obj/item/mod/module/storage/bluespace name = "MOD bluespace storage module" desc = "A storage system developed by Nanotrasen, these compartments employ \ diff --git a/code/modules/uplink/uplink_items/suits.dm b/code/modules/uplink/uplink_items/suits.dm index c6cbac65c99..c775ca9580f 100644 --- a/code/modules/uplink/uplink_items/suits.dm +++ b/code/modules/uplink/uplink_items/suits.dm @@ -9,13 +9,14 @@ surplus = 40 /datum/uplink_item/suits/infiltrator_bundle - name = "Infiltrator Case" - desc = "Developed by Roseus Galactic in conjunction with the Gorlex Marauders to produce a functional suit for urban operations, \ - this suit proves to be cheaper than your standard issue MODsuit, with none of the movement restrictions of the outdated spacesuits employed by the company. \ - Comes with an armor vest, helmet, sneaksuit, sneakboots, specialized combat gloves and a high-tech balaclava. The case is also rather useful as a storage container." - item = /obj/item/storage/toolbox/infiltrator + name = "Infiltrator MODsuit" + desc = "Developed by the Roseus Galactic Actors Guild in conjunction with the Gorlex Marauders to produce a functional suit for urban operations, \ + this suit proves to be cheaper than your standard issue MODsuit, with none of the movement restrictions of the space suits employed by the company. \ + However, this greater mobility comes at a cost, and the suit is ineffective at protecting the wearer from the vacuum of space. \ + The suit does come pre-equipped with a special psi-emitter stealth module that makes it impossible to recognize the wearer \ + as well as causing significant demoralization amongst Nanotrasen crew." + item = /obj/item/mod/control/pre_equipped/infiltrator cost = 6 - limited_stock = 1 //you only get one so you don't end up with too many gun cases purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) /datum/uplink_item/suits/space_suit @@ -59,7 +60,7 @@ /datum/uplink_item/suits/plate_compression name = "MODsuit Plate Compression Module" - desc = "A MODsuit module that lets the suit compress into a smaller size. Not compatible with storage modules." + desc = "A MODsuit module that lets the suit compress into a smaller size. Not compatible with storage modules or the Infiltrator MODsuit." item = /obj/item/mod/module/plate_compression progression_minimum = 20 MINUTES cost = 2 diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi index cb9e8603b76..57f90f140d1 100644 Binary files a/icons/mob/clothing/modsuit/mod_clothing.dmi and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi index ca4e8c32736..41ebc1a2ba8 100644 Binary files a/icons/obj/clothing/modsuit/mod_clothing.dmi and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi index 39189b1805a..037e7fe6963 100644 Binary files a/icons/obj/clothing/modsuit/mod_modules.dmi and b/icons/obj/clothing/modsuit/mod_modules.dmi differ