diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 459c0ab7ce2..935ead8f93e 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -204,6 +204,16 @@ for(var/i in 1 to 7) new /obj/item/ammo_casing/shotgun/breacher(src) +/obj/item/storage/box/large_dart + name = "box of XL shotgun darts" + name = "A box full of shotgun darts with increased chemical storage capacity." + icon_state = "shotdart_box" + illustration = null + +/obj/item/storage/box/large_dart/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/ammo_casing/shotgun/dart/large(src) + /obj/item/storage/box/emptysandbags name = "box of empty sandbags" illustration = "sandbag" diff --git a/code/modules/cargo/markets/market_items/clothing.dm b/code/modules/cargo/markets/market_items/clothing.dm index 82bda848eb8..cb788300866 100644 --- a/code/modules/cargo/markets/market_items/clothing.dm +++ b/code/modules/cargo/markets/market_items/clothing.dm @@ -32,13 +32,23 @@ stock_max = 4 availability_prob = 50 +/datum/market_item/tool/medsechud + name = "MedSec HUD" + desc = "A mostly defunct combination of security and health scanner HUDs. They don't produce these around anymore." + item = /obj/item/clothing/glasses/hud/medsechud + + price_min = CARGO_CRATE_VALUE * 2 + price_max = CARGO_CRATE_VALUE * 3.5 + stock_max = 3 + availability_prob = 50 + /datum/market_item/clothing/full_spacesuit_set name = "\improper Nanotrasen Branded Spacesuit Box" desc = "A few boxes of \"Old Style\" space suits fell off the back of a space truck." item = /obj/item/storage/box - price_min = CARGO_CRATE_VALUE * 7.5 - price_max = CARGO_CRATE_VALUE * 20 + price_min = CARGO_CRATE_VALUE * 1.875 + price_max = CARGO_CRATE_VALUE * 4 stock_max = 3 availability_prob = 30 @@ -66,7 +76,7 @@ item = /obj/item/clothing/shoes/bhop/rocket price_min = CARGO_CRATE_VALUE * 5 - price_max = CARGO_CRATE_VALUE * 15 + price_max = CARGO_CRATE_VALUE * 10 stock_max = 1 availability_prob = 40 diff --git a/code/modules/cargo/markets/market_items/consumables.dm b/code/modules/cargo/markets/market_items/consumables.dm index f002ff99424..b7eed89a195 100644 --- a/code/modules/cargo/markets/market_items/consumables.dm +++ b/code/modules/cargo/markets/market_items/consumables.dm @@ -19,10 +19,20 @@ stock_min = 2 stock_max = 5 - price_min = CARGO_CRATE_VALUE * 1.625 - price_max = CARGO_CRATE_VALUE * 2 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 1.825 availability_prob = 80 +/datum/market_item/consumable/donk_pocket_box/spawn_item(loc) + var/static/list/choices + if(isnull(choices)) + choices = list() + for(var/boxtype as anything in typesof(/obj/item/storage/box/donkpockets)) + choices[boxtype] = 3 + choices[/obj/item/storage/box/donkpockets/donkpocketgondola] = 1 + item = pick_weight(choices) + return ..() + /datum/market_item/consumable/suspicious_pills name = "Bottle of Suspicious Pills" desc = "A random cocktail of luxury drugs that are sure to put a smile on your face!" @@ -30,17 +40,18 @@ stock_min = 2 stock_max = 3 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 3.5 + price_min = CARGO_CRATE_VALUE * 0.625 + price_max = CARGO_CRATE_VALUE * 1.25 availability_prob = 50 /datum/market_item/consumable/suspicious_pills/spawn_item(loc) - var/pillbottle = pick(list(/obj/item/storage/pill_bottle/zoom, - /obj/item/storage/pill_bottle/happy, - /obj/item/storage/pill_bottle/lsd, - /obj/item/storage/pill_bottle/aranesp, - /obj/item/storage/pill_bottle/stimulant)) - item = pillbottle + item = pick(list(/obj/item/storage/pill_bottle/zoom, + /obj/item/storage/pill_bottle/happy, + /obj/item/storage/pill_bottle/lsd, + /obj/item/storage/pill_bottle/aranesp, + /obj/item/storage/pill_bottle/stimulant, + /obj/item/storage/pill_bottle/maintenance_pill, + )) return ..() /datum/market_item/consumable/floor_pill diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index 435396c15f2..6e61bf87f0c 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -2,7 +2,7 @@ category = "Miscellaneous" abstract_path = /datum/market_item/misc -/datum/market_item/misc/Clear_PDA +/datum/market_item/misc/clear_pda name = "Clear PDA" desc = "Show off your style with this limited edition clear PDA!." item = /obj/item/modular_computer/pda/clear @@ -12,7 +12,7 @@ stock_max = 2 availability_prob = 50 -/datum/market_item/misc/jade_Lantern +/datum/market_item/misc/jade_lantern name = "Jade Lantern" desc = "Found in a box labeled 'Danger: Radioactive'. Probably safe." item = /obj/item/flashlight/lantern/jade diff --git a/code/modules/cargo/markets/market_items/tools.dm b/code/modules/cargo/markets/market_items/tools.dm index 9576810b3a3..963d7fbaeb0 100644 --- a/code/modules/cargo/markets/market_items/tools.dm +++ b/code/modules/cargo/markets/market_items/tools.dm @@ -60,8 +60,8 @@ item = /obj/item/binoculars stock = 1 - price_min = CARGO_CRATE_VALUE * 2 - price_max = CARGO_CRATE_VALUE * 4.8 + price_min = CARGO_CRATE_VALUE * 1.75 + price_max = CARGO_CRATE_VALUE * 4 availability_prob = 30 /datum/market_item/tool/riot_shield @@ -76,23 +76,13 @@ /datum/market_item/tool/thermite_bottle name = "Thermite Bottle" - desc = "30u of Thermite to assist in creating a quick access point or get away!" + desc = "50u of Thermite to assist in creating a quick access point or get away!" item = /obj/item/reagent_containers/cup/bottle/thermite - price_min = CARGO_CRATE_VALUE * 2.5 - price_max = CARGO_CRATE_VALUE * 7.5 - stock_max = 3 - availability_prob = 30 - -/datum/market_item/tool/science_goggles - name = "Science Goggles" - desc = "These glasses scan the contents of containers and projects their contents to the user in an easy to read format." - item = /obj/item/clothing/glasses/science - price_min = CARGO_CRATE_VALUE * 0.75 price_max = CARGO_CRATE_VALUE stock_max = 3 - availability_prob = 50 + availability_prob = 30 /** * # Fake N-spect scanner black market entry diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm index 3323e169162..4f20cf865bc 100644 --- a/code/modules/cargo/markets/market_items/weapons.dm +++ b/code/modules/cargo/markets/market_items/weapons.dm @@ -13,16 +13,15 @@ availability_prob = 40 /datum/market_item/weapon/shotgun_dart - name = "Shotgun Dart" + name = "Box of XL Shotgun Darts" desc = "These handy darts can be filled up with any chemical and be shot with a shotgun! \ Prank your friends by shooting them with laughter! \ Not recommended for comercial use." - item = /obj/item/ammo_casing/shotgun/dart + item = /obj/item/storage/box/large_dart - price_min = CARGO_CRATE_VALUE * 0.05 - price_max = CARGO_CRATE_VALUE * 0.25 - stock_min = 10 - stock_max = 60 + price_min = CARGO_CRATE_VALUE * 1.375 + price_max = CARGO_CRATE_VALUE * 2.875 + stock_max = 4 availability_prob = 40 /datum/market_item/weapon/bone_spear diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 4f5668f7bcc..f82f56a48fb 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -2,7 +2,8 @@ name = "HUD" desc = "A heads-up display that provides important info in (almost) real time." flags_1 = null //doesn't protect eyes because it's a monocle, duh - var/hud_type = null + ///A list of atom hud types added to the mob when the glasses are worn on the appropriate slot. + var/list/hud_types // NOTE: Just because you have a HUD display doesn't mean you should be able to interact with stuff on examine, that's where the associated trait (TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD, etc) is necessary. @@ -10,7 +11,7 @@ ..() if(!(slot & ITEM_SLOT_EYES)) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -18,7 +19,7 @@ ..() if(!istype(user) || user.glasses != src) return - if(hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) @@ -55,10 +56,17 @@ name = "health scanner HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status." icon_state = "healthhud" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue +/obj/item/clothing/glasses/hud/medsechud + name = "health scanner security HUD" + desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status, ID status and security records." + icon_state = "medsechud" + hud_types = list(DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_SECURITY_ADVANCED) + clothing_traits = list(TRAIT_MEDICAL_HUD, TRAIT_SECURITY_HUD) + /obj/item/clothing/glasses/hud/health/night name = "night vision health scanner HUD" desc = "An advanced medical heads-up display that allows doctors to find patients in complete darkness." @@ -110,7 +118,7 @@ name = "diagnostic HUD" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange @@ -153,7 +161,7 @@ name = "security HUD" desc = "A heads-up display that scans the humanoids in view and provides accurate data about their ID status and security records." icon_state = "securityhud" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red @@ -243,18 +251,18 @@ if (wearer.glasses != src) return - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.hide_from(user) - if (hud_type == DATA_HUD_MEDICAL_ADVANCED) - hud_type = null - else if (hud_type == DATA_HUD_SECURITY_ADVANCED) - hud_type = DATA_HUD_MEDICAL_ADVANCED + if (DATA_HUD_MEDICAL_ADVANCED in hud_types) + hud_types = null + else if (DATA_HUD_SECURITY_ADVANCED in hud_types) + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) else - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) - if (hud_type) + for(var/hud_type in hud_types) var/datum/atom_hud/our_hud = GLOB.huds[hud_type] our_hud.show_to(user) @@ -265,13 +273,14 @@ name = "thermal HUD scanner" desc = "Thermal imaging HUD in the shape of glasses." icon_state = "thermal" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) vision_flags = SEE_MOBS color_cutoffs = list(25, 8, 5) glass_colour_type = /datum/client_colour/glass_colour/red /obj/item/clothing/glasses/hud/toggle/thermal/attack_self(mob/user) ..() + var/hud_type = hud_types[1] switch (hud_type) if (DATA_HUD_MEDICAL_ADVANCED) icon_state = "meson" diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index c3816608800..2b445dba936 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -160,7 +160,13 @@ /obj/item/ammo_casing/shotgun/dart/attackby() return +/obj/item/ammo_casing/shotgun/dart/large + name = "XL shotgun dart" + desc = "A dart for use in shotguns. Can be injected with up to 25 units of any chemical." + reagent_amount = 25 + /obj/item/ammo_casing/shotgun/dart/bioterror + name = "bioterror dart" desc = "An improved shotgun dart filled with deadly toxins. Can be injected with up to 30 units of any chemical." reagent_amount = 30 diff --git a/code/modules/reagents/reagent_containers/cups/bottle.dm b/code/modules/reagents/reagent_containers/cups/bottle.dm index 97906b26240..fda39ed4877 100644 --- a/code/modules/reagents/reagent_containers/cups/bottle.dm +++ b/code/modules/reagents/reagent_containers/cups/bottle.dm @@ -431,7 +431,7 @@ /obj/item/reagent_containers/cup/bottle/thermite name = "thermite bottle" - list_reagents = list(/datum/reagent/thermite = 30) + list_reagents = list(/datum/reagent/thermite = 50) // Bottles for mail goodies. diff --git a/icons/obj/storage/box.dmi b/icons/obj/storage/box.dmi index c0a327d7df6..01588bd050f 100644 Binary files a/icons/obj/storage/box.dmi and b/icons/obj/storage/box.dmi differ diff --git a/modular_skyrat/modules/aesthetics/storage/storage.dm b/modular_skyrat/modules/aesthetics/storage/storage.dm index 01b7b5d56b9..95e6d7de519 100644 --- a/modular_skyrat/modules/aesthetics/storage/storage.dm +++ b/modular_skyrat/modules/aesthetics/storage/storage.dm @@ -120,6 +120,10 @@ icon_state = "secbox_xl" illustration = "breacherslug" +/obj/item/storage/box/large_dart + icon_state = "secbox_xl" + illustration = "shotdart" + /obj/item/storage/box/evidence icon_state = "secbox" illustration = "evidence" diff --git a/modular_skyrat/modules/aesthetics/storage/storage.dmi b/modular_skyrat/modules/aesthetics/storage/storage.dmi index 8a7e15587e6..4bcf087cdb8 100644 Binary files a/modular_skyrat/modules/aesthetics/storage/storage.dmi and b/modular_skyrat/modules/aesthetics/storage/storage.dmi differ diff --git a/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm b/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm index fdb9df70e32..406c96326b6 100644 --- a/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm +++ b/modular_skyrat/modules/company_imports/code/objects/hud_glasses.dm @@ -4,7 +4,7 @@ icon = 'modular_skyrat/modules/company_imports/icons/hud_goggles.dmi' worn_icon = 'modular_skyrat/modules/company_imports/icons/hud_goggles_worn.dmi' icon_state = "permithud" - hud_type = DATA_HUD_PERMIT + hud_types = list(DATA_HUD_PERMIT) /obj/item/clothing/glasses/hud/gun_permit/sunglasses name = "permit HUD sunglasses" diff --git a/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm index 69df3d6539c..d31c443940d 100644 --- a/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm +++ b/modular_skyrat/modules/customization/modules/clothing/glasses/hud.dm @@ -20,7 +20,7 @@ /obj/item/clothing/glasses/hud/eyepatch/sec name = "security eyepatch HUD" desc = "Lost your eye beating an innocent clown? Thankfully your corporate overlords have made something to make up for this. May not do well against flashes." - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/blue @@ -39,7 +39,7 @@ desc = "Do no harm, maybe harm has befell to you, or your poor eyeball, thankfully there's a way to continue your oath, thankfully it didn't mention sleepdarts or monkey men." icon_state = "medpatch" base_icon_state = "medpatch" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue @@ -81,7 +81,7 @@ desc = "Lost your eyeball to a rogue borg? Dare to tell a Dogborg to do it's job? Got bored? Whatever the reason, this bit of tech will help you still repair borgs, they'll never need it since they usually do it themselves, but its the thought that counts." icon_state = "robopatch" base_icon_state = "robopatch" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange diff --git a/modular_skyrat/modules/modular_items/code/modular_glasses.dm b/modular_skyrat/modules/modular_items/code/modular_glasses.dm index 96272393a1f..e39aa32e552 100644 --- a/modular_skyrat/modules/modular_items/code/modular_glasses.dm +++ b/modular_skyrat/modules/modular_items/code/modular_glasses.dm @@ -88,7 +88,7 @@ if(ishuman(user)) // Make sure they're a human wearing the glasses first var/mob/living/carbon/human/human = user if(human.glasses == src) - var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_type)] + var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_types)] our_hud.show_to(human) for(var/trait in initial(glasses_type.clothing_traits)) ADD_TRAIT(human, trait, GLASSES_TRAIT) @@ -97,7 +97,7 @@ if(ishuman(user)) // Make sure they're a human wearing the glasses first var/mob/living/carbon/human/human = user if(human.glasses == src) - var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_type)] + var/datum/atom_hud/our_hud = GLOB.huds[initial(glasses_type.hud_types)] our_hud.hide_from(human) for(var/trait in initial(glasses_type.clothing_traits)) REMOVE_TRAIT(human, trait, GLASSES_TRAIT) @@ -109,17 +109,17 @@ tint = initial(glasses_type.tint) color_cutoffs = initial(glasses_type.color_cutoffs) vision_flags = initial(glasses_type.vision_flags) - hud_type = initial(glasses_type.hud_type) //initial does not currently work on lists so we must do this var/obj/item/clothing/glasses/hud/ar/glasses_object = new glasses_type // make a temporary glasses obj clothing_traits = glasses_object.clothing_traits // pull the list from the created obj + hud_types = glasses_object.hud_types // same here qdel(glasses_object) // delete the object /obj/item/clothing/glasses/hud/ar/proc/disable_vars(mob/user) vision_flags = 0 /// Sets vision_flags to 0 to disable meson view mainly color_cutoffs = null // Resets lighting_alpha to user's default one clothing_traits = null /// also disables the options for Science functionality - hud_type = null + hud_types = null /// Create new icon and worn_icon, with only the first frame of every state and setting that as icon. /// this practically freezes the animation :) @@ -164,7 +164,7 @@ icon_state = "aviator_sec" off_state = "aviator_sec_flash" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) glass_colour_type = /datum/client_colour/glass_colour/red modes = list(MODE_OFF_FLASH_PROTECTION, MODE_ON) @@ -176,7 +176,7 @@ desc = "A heads-up display that scans the humanoids in view and provides accurate data about their health status. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_med" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(TRAIT_MEDICAL_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightblue @@ -197,7 +197,7 @@ desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits. This HUD has been fitted inside of a pair of sunglasses." icon_state = "aviator_diagnostic" flash_protect = FLASH_PROTECTION_NONE - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) glass_colour_type = /datum/client_colour/glass_colour/lightorange @@ -263,19 +263,19 @@ /obj/item/clothing/glasses/hud/ar/projector/health name = "retinal projector health HUD" icon_state = "projector_med" - hud_type = DATA_HUD_MEDICAL_ADVANCED + hud_types = list(DATA_HUD_MEDICAL_ADVANCED) clothing_traits = list(ID_HUD, TRAIT_MEDICAL_HUD) /obj/item/clothing/glasses/hud/ar/projector/security name = "retinal projector security HUD" icon_state = "projector_sec" - hud_type = DATA_HUD_SECURITY_ADVANCED + hud_types = list(DATA_HUD_SECURITY_ADVANCED) clothing_traits = list(TRAIT_SECURITY_HUD) /obj/item/clothing/glasses/hud/ar/projector/diagnostic name = "retinal projector diagnostic HUD" icon_state = "projector_diagnostic" - hud_type = DATA_HUD_DIAGNOSTIC_BASIC + hud_types = list(DATA_HUD_DIAGNOSTIC_BASIC) clothing_traits = list(TRAIT_DIAGNOSTIC_HUD) /obj/item/clothing/glasses/hud/ar/projector/science