diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index fdee2b259c3..8ffe65bf82c 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -1539,7 +1539,7 @@ "DE" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/wizard{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/helmet/space/rig/syndi,/obj/item/clothing/head/helmet/space/santahat{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DF" = (/obj/structure/rack,/obj/item/clothing/head/welding/fluff/alice_mccrea_1{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/welding/fluff/norah_briggs_1,/obj/item/clothing/head/welding/fluff/yuki_matsuda_1{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DG" = (/obj/structure/rack,/obj/item/clothing/head/soft/black{pixel_x = -3; pixel_y = 3},/obj/item/clothing/head/soft/blue,/obj/item/clothing/head/soft/red{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"DH" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/holding,/obj/item/weapon/storage/backpack/duffel/clown,/obj/item/weapon/storage/backpack/duffel/captain,/obj/item/weapon/storage/backpack/duffel/science,/obj/item/weapon/storage/backpack/duffel/syndiammo,/obj/item/weapon/storage/backpack/duffel/syndimed,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) +"DH" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/holding,/obj/item/weapon/storage/backpack/duffel/clown,/obj/item/weapon/storage/backpack/duffel/captain,/obj/item/weapon/storage/backpack/duffel/science,/obj/item/weapon/storage/backpack/duffel/syndie/ammo,/obj/item/weapon/storage/backpack/duffel/syndie/med,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DI" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end (WEST)"},/area/admin) "DJ" = (/obj/structure/rack,/obj/item/clothing/under/shorts/black{pixel_x = -3; pixel_y = 3},/obj/item/clothing/under/shorts/blue,/obj/item/clothing/under/shorts/red{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DK" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) @@ -2071,3 +2071,4 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN "} + diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index ac914c9d3f6..f6101b6dcd2 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -165,7 +165,7 @@ var/list/uplink_items = list() desc = "A radiation laser concealed inside of a Health Analyser. After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!" reference = "RL" item = /obj/item/device/rad_laser - cost = 6 + cost = 5 job = list( "Chief Medical Officer", "Medical Doctor", @@ -327,6 +327,14 @@ var/list/uplink_items = list() gamemodes = list("nuclear emergency") surplus = 35 +/datum/uplink_item/ammo/bioterror + name = "Box of Bioterror Syringes" + desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor and broca system , making it impossible for them to move or speak while in their system." + reference = "BTS" + item = /obj/item/weapon/storage/box/syndie_kit/bioterror + cost = 6 + gamemodes = list("nuclear emergency") + /datum/uplink_item/dangerous/tabungrenades name = "Tabun Gas Grenades" desc = "A box of four (4) grenades filled with Tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings." @@ -412,11 +420,27 @@ var/list/uplink_items = list() cost = 2 gamemodes = list("nuclear emergency") +/datum/uplink_item/ammo/ammobag + name = "Ammo Duffelbag - Shotgun Ammo Grab Bag" + desc = "A duffelbag filled with Bulldog ammo to kit out an entire team, at a discounted price." + reference = "SAGL" + item = /obj/item/weapon/storage/backpack/duffel/syndie/ammo/loaded + cost = 10 //bulk buyer's discount. Very useful if you're buying a mech and dont have TC left to buy people non-shotgun guns + gamemodes = list("nuclear emergency") + +/datum/uplink_item/ammo/bullslug + name = "Drum Magazine - 12g Slugs" + desc = "An additional 8-round slug magazine for use in the Bulldog shotgun. Now 8 times less likely to shoot your pals." + reference = "12BSG" + item = /obj/item/ammo_box/magazine/m12g + cost = 2 + gamemodes = list("nuclear emergency") + /datum/uplink_item/ammo/bullbuck name = "Drum Magazine - 12g buckshot" desc = "An additional 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy." reference = "12BS" - item = /obj/item/ammo_box/magazine/m12g + item = /obj/item/ammo_box/magazine/m12g/buckshot cost = 2 gamemodes = list("nuclear emergency") @@ -433,7 +457,7 @@ var/list/uplink_items = list() desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. I'm a fire starter, twisted fire starter!" reference = "12DB" item = /obj/item/ammo_box/magazine/m12g/dragon - cost = 3 + cost = 2 gamemodes = list("nuclear emergency") /datum/uplink_item/ammo/car @@ -509,7 +533,7 @@ var/list/uplink_items = list() desc = "A pizza box with a bomb taped inside of it. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation." reference = "PB" item = /obj/item/device/pizza_bomb - cost = 4 + cost = 5 surplus = 8 /datum/uplink_item/stealthy_weapons/dehy_carp @@ -529,7 +553,7 @@ var/list/uplink_items = list() desc = "A jumpsuit used to imitate the uniforms of Nanotrasen crewmembers." reference = "CJ" item = /obj/item/clothing/under/chameleon - cost = 4 + cost = 2 /datum/uplink_item/stealthy_tools/chameleon_stamp name = "Chameleon Stamp" @@ -540,26 +564,34 @@ var/list/uplink_items = list() cost = 1 surplus = 35 -/datum/uplink_item/stealthy_tools/syndigolashes +/datum/uplink_item/stealthy_tools/syndigaloshes name = "No-Slip Syndicate Shoes" desc = "These allow you to run on wet floors. They do not work on lubricated surfaces." reference = "NSSS" item = /obj/item/clothing/shoes/syndigaloshes - cost = 4 + cost = 2 + excludefrom = list("nuclear emergency") + +/datum/uplink_item/stealthy_tools/syndigaloshes/nuke + name = "Tactical No-Slip Brown Shoes" + desc = "These allow you to run on wet floors. They do not work on lubricated surfaces, and the maker swears they're better than normal ones, somehow." + reference = "NNSSS" + cost = 4 //but they aren't + gamemodes = list("nuclear emergency") /datum/uplink_item/stealthy_tools/agent_card name = "Agent ID Card" desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access from other identification cards. The access is cumulative, so scanning one card does not erase the access gained from another." reference = "AIDC" item = /obj/item/weapon/card/id/syndicate - cost = 3 + cost = 2 /datum/uplink_item/stealthy_tools/voice_changer name = "Voice Changer" desc = "A conspicuous gas mask that mimics the voice named on your identification card. When no identification is worn, the mask will render your voice unrecognisable." reference = "VC" item = /obj/item/clothing/mask/gas/voice - cost = 5 + cost = 3 /datum/uplink_item/stealthy_tools/chameleon_proj name = "Chameleon-Projector" @@ -570,10 +602,10 @@ var/list/uplink_items = list() /datum/uplink_item/stealthy_tools/camera_bug name = "Camera Bug" - desc = "Enables you to bug cameras to view them remotely. Adding particular items to it alters its functions." + desc = "Enables you to view all cameras on the network and track a target. Bugging cameras allows you to disable them remotely." reference = "CB" item = /obj/item/device/camera_bug - cost = 2 + cost = 1 surplus = 90 /datum/uplink_item/stealthy_tools/dnascrambler @@ -611,6 +643,20 @@ var/list/uplink_items = list() item = /obj/item/weapon/storage/toolbox/syndicate cost = 1 +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Dufflebag" + desc = "The Syndicate surgery dufflebag is a toolkit containing all surgery tools, a straitjacket, and a muzzle." + reference = "SSDB" + item = /obj/item/weapon/storage/backpack/duffel/syndie/surgery + cost = 4 + +/datum/uplink_item/device_tools/military_belt + name = "Military Belt" + desc = "A robust seven-slot red belt made for carrying a broad variety of weapons, ammunition and explosives" + reference = "SBM" + item = /obj/item/weapon/storage/belt/military + cost = 3 + excludefrom = list("nuclear emergency") /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" @@ -621,19 +667,12 @@ var/list/uplink_items = list() cost = 9 gamemodes = list("nuclear emergency") -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - reference = "SYSM" - item = /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate - cost = 4 - /datum/uplink_item/device_tools/space_suit name = "Space Suit" desc = "The red and black syndicate space suit is less encumbering than Nanotrasen variants, fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit sightings." reference = "SS" item = /obj/item/weapon/storage/box/syndie_kit/space - cost = 5 + cost = 4 /datum/uplink_item/device_tools/hardsuit name = "Blood-red Hardsuit" @@ -680,7 +719,7 @@ var/list/uplink_items = list() These reverse-engineered knockoffs of Nanotrasen's 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." reference = "BRMB" item = /obj/item/clothing/shoes/magboots/syndie - cost = 5 + cost = 3 gamemodes = list("nuclear emergency") /datum/uplink_item/device_tools/plastic_explosives @@ -807,6 +846,13 @@ var/list/uplink_items = list() category = "(Pointless) Badassery" surplus = 0 +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + reference = "SYSM" + item = /obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate + cost = 2 + /datum/uplink_item/badass/bundle name = "Syndicate Bundle" desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 20 telecrystals, but you do not know which specialisation you will receive." diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 69adcfb3ae9..3535048659d 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -1,10 +1,3 @@ -#define VANILLA_BUG 0 -#define UNIVERSAL_BUG 1 -#define NETWORK_BUG 2 -#define SABOTAGE_BUG 3 -#define ADVANCED_BUG 4 -#define ADMIN_BUG 5 - #define BUGMODE_LIST 0 #define BUGMODE_MONITOR 1 #define BUGMODE_TRACK 2 @@ -23,13 +16,9 @@ throw_range = 20 var/obj/machinery/camera/current = null - var/obj/item/expansion = null - var/bugtype = VANILLA_BUG var/last_net_update = 0 - var/last_bugtype = VANILLA_BUG var/list/bugged_cameras = list() - var/skip_bugcheck = 0 var/track_mode = BUGMODE_LIST var/last_tracked = 0 @@ -46,11 +35,6 @@ processing_objects += src /obj/item/device/camera_bug/Destroy() - if(expansion) - qdel(expansion) - expansion = null - return ..() -/* Easier to just call del() than this nonsense get_cameras() for(var/cam_tag in bugged_cameras) var/obj/machinery/camera/camera = bugged_cameras[cam_tag] @@ -59,8 +43,7 @@ bugged_cameras = list() if(tracking) tracking = null - ..() -*/ + return ..() /obj/item/device/camera_bug/interact(var/mob/user = usr) var/datum/browser/popup = new(user, "camerabug","Camera Bug",nref=src) @@ -78,7 +61,7 @@ return null var/turf/T = get_turf(user.loc) - if(T.z != current.z || (!skip_bugcheck && current.bug != src) || !current.can_use()) + if(T.z != current.z || !current.can_use()) user << "[src] has lost the signal." current = null user.reset_view(null) @@ -88,26 +71,18 @@ return 1 /obj/item/device/camera_bug/proc/get_cameras() - if(bugtype != last_bugtype || ( (bugtype in list(UNIVERSAL_BUG,NETWORK_BUG,ADMIN_BUG)) && world.time > (last_net_update + 100))) + if( world.time > (last_net_update + 100)) bugged_cameras = list() - last_bugtype = bugtype for(var/obj/machinery/camera/camera in cameranet.cameras) if(camera.stat || !camera.can_use()) continue - switch(bugtype) - if(VANILLA_BUG,SABOTAGE_BUG,ADVANCED_BUG) - if(camera.bug == src) - bugged_cameras[camera.c_tag] = camera - if(UNIVERSAL_BUG) - if(camera.bug) - bugged_cameras[camera.c_tag] = camera - if(NETWORK_BUG,ADMIN_BUG) - if(length(list("SS13","MINE")&camera.network)) - bugged_cameras[camera.c_tag] = camera + if(length(list("SS13","MINE")&camera.network)) + bugged_cameras[camera.c_tag] = camera sortList(bugged_cameras) return bugged_cameras + /obj/item/device/camera_bug/proc/menu(var/list/cameras) if(!cameras || !cameras.len) return "No bugged cameras found." @@ -119,16 +94,10 @@ for(var/entry in cameras) var/obj/machinery/camera/C = cameras[entry] var/functions = "" - switch(bugtype) - if(SABOTAGE_BUG) - functions = " - \[Disable\]" - if(ADVANCED_BUG) - functions = " - \[Monitor\]" - if(ADMIN_BUG) - if(C.bug == src) - functions = " - \[Monitor\] \[Disable\]" - else - functions = " - \[Monitor\]" + if(C.bug == src) + functions = " - \[Monitor\] \[Disable\]" + else + functions = " - \[Monitor\]" html += "[entry][functions]" if(BUGMODE_MONITOR) @@ -157,6 +126,9 @@ var/s = (time_diff - 4*m) * 15 if(!s) s = "00" html += "Last seen near [outstring] ([m]:[s] minute\s ago)
" + if( C && (C.bug == src)) //Checks to see if the camera has a bug + html += "\[Disable\]" + else html += "Not yet seen." else @@ -309,62 +281,6 @@ break src.updateSelfDialog() -/obj/item/device/camera_bug/attackby(var/obj/item/W as obj,var/mob/living/user as mob, params) - if(istype(W,/obj/item/weapon/screwdriver) && expansion) - expansion.loc = get_turf(loc) - user << "You unscrew [expansion]." - user.put_in_inactive_hand(expansion) - expansion = null - bugtype = VANILLA_BUG - skip_bugcheck = 0 - track_mode = BUGMODE_LIST - tracking = null - return - - if(expansion || !W) - return ..(W,user) - - // I am not sure that this list is or should be final - // really I do not know what to do here. - var/static/list/expandables = list( - /obj/item/weapon/research = ADMIN_BUG, // could have been anything spawn-only - - // these are all so hackish I am sorry - - /obj/item/device/analyzer = UNIVERSAL_BUG, - /obj/item/weapon/stock_parts/subspace/analyzer = UNIVERSAL_BUG, - - /obj/item/device/assembly/igniter = SABOTAGE_BUG, - /obj/item/device/assembly/infra = SABOTAGE_BUG, // ir blaster to disable camera - /obj/item/weapon/stock_parts/subspace/amplifier = SABOTAGE_BUG, - - /obj/item/device/radio = NETWORK_BUG, - /obj/item/device/assembly/signaler = NETWORK_BUG, - /obj/item/weapon/stock_parts/subspace/transmitter = NETWORK_BUG, - - /obj/item/device/detective_scanner = ADVANCED_BUG, - /obj/item/device/paicard = ADVANCED_BUG, - /obj/item/weapon/stock_parts/scanning_module = ADVANCED_BUG - ) - - for(var/entry in expandables) - if(istype(W,entry)) - bugtype = expandables[entry] - user.drop_item() - W.loc = src - expansion = W - user << "You add [W] to [src]." - get_cameras() // the tracking code will want to know the new camera list - if(bugtype in list(UNIVERSAL_BUG,NETWORK_BUG,ADMIN_BUG)) - skip_bugcheck = 1 - return - -#undef VANILLA_BUG -#undef UNIVERSAL_BUG -#undef NETWORK_BUG -#undef SABOTAGE_BUG -#undef ADVANCED_BUG -#undef ADMIN_BUG #undef BUGMODE_LIST #undef BUGMODE_MONITOR diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 4a57227afa0..0bf771709b5 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -231,19 +231,65 @@ max_combined_w_class = 27 slowdown = 1 -/obj/item/weapon/storage/backpack/duffel/syndimed +/obj/item/weapon/storage/backpack/duffel/syndie + name = "suspicious looking dufflebag" + desc = "A large dufflebag for holding extra tactical supplies." + icon_state = "duffel-syndi" + item_state = "duffel-syndimed" + origin_tech = "syndicate=1" + silent = 1 + slowdown = 0 + +/obj/item/weapon/storage/backpack/duffel/syndie/med name = "suspicious duffelbag" desc = "A black and red duffelbag with a red and white cross sewn onto it." icon_state = "duffel-syndimed" item_state = "duffel-syndimed" - slowdown = 0 -/obj/item/weapon/storage/backpack/duffel/syndiammo +/obj/item/weapon/storage/backpack/duffel/syndie/ammo name = "suspicious duffelbag" desc = "A black and red duffelbag with a patch depicting shotgun shells sewn onto it." icon_state = "duffel-syndiammo" item_state = "duffel-syndiammo" - slowdown = 0 + +/obj/item/weapon/storage/backpack/duffel/syndie/ammo/loaded + desc = "A large dufflebag, packed to the brim with Bulldog shotgun ammo." + + New() + ..() + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g(src) + new /obj/item/ammo_box/magazine/m12g/buckshot(src) + new /obj/item/ammo_box/magazine/m12g/stun(src) + new /obj/item/ammo_box/magazine/m12g/dragon(src) + return + +/obj/item/weapon/storage/backpack/duffel/syndie/surgery + name = "surgery dufflebag" + desc = "A suspicious looking dufflebag for holding surgery tools." + icon_state = "duffel-syndimed" + item_state = "duffle-syndimed" + storage_slots = 12 + + New() + ..() + new /obj/item/weapon/scalpel(src) + new /obj/item/weapon/hemostat(src) + new /obj/item/weapon/retractor(src) + new /obj/item/weapon/circular_saw(src) + new /obj/item/weapon/surgicaldrill(src) + new /obj/item/weapon/cautery(src) + new /obj/item/weapon/bonegel(src) + new /obj/item/weapon/bonesetter(src) + new /obj/item/weapon/FixOVein(src) + new /obj/item/clothing/suit/straight_jacket(src) + new /obj/item/clothing/mask/muzzle(src) +// new /obj/item/device/mmi/syndie(src) + return /obj/item/weapon/storage/backpack/duffel/captain name = "captain's duffelbag" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index a8551e96fd6..65bf38cd961 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -9,6 +9,7 @@ name = "storage" icon = 'icons/obj/storage.dmi' w_class = 3.0 + var/silent = 0 // No message on putting items in var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) @@ -292,6 +293,8 @@ if(!usr.unEquip(W)) return 0 usr.update_icons() //update our overlays + if(silent) + prevent_warning = 1 W.loc = src W.on_enter_storage(src) if(usr) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index de1e1522a6b..51adfcd5a4c 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -77,6 +77,7 @@ icon_state = "syndicate" item_state = "toolbox_syndi" origin_tech = "combat=1;syndicate=1" + silent = 1 force = 15.0 throwforce = 18.0 @@ -88,4 +89,4 @@ new /obj/item/weapon/crowbar(src) new /obj/item/weapon/wirecutters(src) new /obj/item/device/multitool(src) - new /obj/item/clothing/gloves/color/red/insulated(src) \ No newline at end of file + new /obj/item/clothing/gloves/combat(src) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 09fa9b17db8..d676b3ba967 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -207,4 +207,18 @@ new /obj/item/weapon/grenade/chem_grenade/tabungas(src) new /obj/item/weapon/grenade/chem_grenade/tabungas(src) new /obj/item/weapon/grenade/chem_grenade/tabungas(src) - new /obj/item/weapon/grenade/chem_grenade/tabungas(src) \ No newline at end of file + new /obj/item/weapon/grenade/chem_grenade/tabungas(src) + +/obj/item/weapon/storage/box/syndie_kit/bioterror + name = "bioterror syringe box" + + New() + ..() + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + new /obj/item/weapon/reagent_containers/syringe/bioterror(src) + return \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index f62f03b175a..5f21f2d0c84 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -43,8 +43,7 @@ new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/weapon/storage/box/teargas(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/weapon/storage/backpack/duffel/syndimed(src) - new /obj/item/weapon/storage/backpack/duffel/syndiammo(src) + new /obj/item/weapon/storage/backpack/duffel/syndie/med(src) new /obj/item/weapon/gun/projectile/automatic/bulldog(src) new /obj/item/weapon/gun/projectile/automatic/bulldog(src) new /obj/item/weapon/gun/projectile/automatic/bulldog(src) diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index 49181471fe8..6b53a473cd1 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -353,7 +353,7 @@ user << "You switch your helmet to combat mode. You will take damage in zero pressure environments, but you are more suited for a fight." name = "blood-red hardsuit helmet (combat)" desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." - flags = BLOCKHAIR + flags = BLOCKHAIR | THICKMATERIAL flags_inv = HIDEEARS cold_protection = null set_light(0) @@ -393,7 +393,7 @@ name = "blood-red hardsuit helmet (combat)" desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." slowdown = 0 - flags = BLOCKHAIR + flags = THICKMATERIAL flags_inv = null cold_protection = null diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index be084ebca0e..7fa2224cbcd 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -188,9 +188,9 @@ icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]" /obj/item/ammo_box/magazine/m12g - name = "shotgun magazine (12g buckshot)" + name = "shotgun magazine (12g slugs)" icon_state = "m12gb" - ammo_type = "/obj/item/ammo_casing/shotgun/buckshot" + ammo_type = "/obj/item/ammo_casing/shotgun" origin_tech = "combat=3;syndicate=1" caliber = "shotgun" max_ammo = 8 @@ -199,6 +199,10 @@ ..() icon_state = "[initial(icon_state)]-[Ceiling(ammo_count(0)/8)*8]" +/obj/item/ammo_box/magazine/m12g/buckshot + name = "shotgun magazine (12g buckshot slugs)" + icon_state = "m12gb" + ammo_type = "/obj/item/ammo_casing/shotgun/buckshot" /obj/item/ammo_box/magazine/m12g/stun name = "shotgun magazine (12g taser slugs)" diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 408076341ee..9fc5fc5f0a2 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -168,7 +168,7 @@ if(target.reagents.total_volume >= target.reagents.maximum_volume) user << "\red [target] is full." return - + var/mob/living/carbon/human/H = target if(istype(H)) var/obj/item/organ/external/affected = H.get_organ(user.zone_sel.selecting) @@ -528,3 +528,14 @@ reagents.add_reagent("insulin", 15) mode = SYRINGE_INJECT update_icon() + +/obj/item/weapon/reagent_containers/syringe/bioterror + name = "bioterror syringe" + desc = "Contains several paralyzing reagents." + New() + ..() + reagents.add_reagent("neurotoxin", 5) + reagents.add_reagent("capulettium_plus", 5) + reagents.add_reagent("sodium_thiopental", 5) + mode = SYRINGE_INJECT + update_icon() \ No newline at end of file diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 4a3c4172c7f..f85a3167582 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ