diff --git a/code/__defines/belly_modes_vr.dm b/code/__defines/belly_modes_vr.dm index bf64819cd45..810f0da00b3 100644 --- a/code/__defines/belly_modes_vr.dm +++ b/code/__defines/belly_modes_vr.dm @@ -18,6 +18,7 @@ #define DM_FLAG_THICKBELLY 0x8 #define DM_FLAG_AFFECTWORN 0x10 #define DM_FLAG_JAMSENSORS 0x20 +#define DM_FLAG_FORCEPSAY 0x40 //Item related modes #define IM_HOLD "Hold" diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 9dbc7c0d997..94914550b3a 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -453,6 +453,11 @@ Turf and target are seperate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/simple_mob/M in sortmob) moblist.Add(M) + //VOREStation Addition Start + for(var/mob/living/dominated_brain/M in sortmob) + moblist.Add(M) + //VOREStation Addition End + // for(var/mob/living/silicon/hivebot/M in sortmob) // mob_list.Add(M) // for(var/mob/living/silicon/hive_mainframe/M in sortmob) diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm index 951474062a0..990b87b52d1 100644 --- a/code/datums/autolathe/arms.dm +++ b/code/datums/autolathe/arms.dm @@ -411,12 +411,6 @@ category = list("Arms and Ammunition") hidden = 1 -/datum/category_item/autolathe/arms/pistol_clip_10mm - name = "ammo clip (10mm)" - path =/obj/item/ammo_magazine/clip/c10mm - category = list("Arms and Ammunition") - hidden = 1 - /datum/category_item/autolathe/arms/pistol_clip_50 name = "ammo clip (.44)" path =/obj/item/ammo_magazine/clip/c50 diff --git a/code/datums/roundstats/roundstats.dm b/code/datums/roundstats/roundstats.dm index c1453b18aff..6a4c3b09931 100644 --- a/code/datums/roundstats/roundstats.dm +++ b/code/datums/roundstats/roundstats.dm @@ -21,6 +21,10 @@ GLOBAL_VAR_INIT(items_sold_shift_roundstat, 0) GLOBAL_VAR_INIT(disposals_flush_shift_roundstat, 0) GLOBAL_VAR_INIT(rocks_drilled_roundstat, 0) GLOBAL_VAR_INIT(mech_destroyed_roundstat, 0) +GLOBAL_VAR_INIT(prey_eaten_roundstat, 0) //VOREStation Edit - Obviously +GLOBAL_VAR_INIT(prey_absorbed_roundstat, 0) //VOREStation Edit - Obviously +GLOBAL_VAR_INIT(prey_digested_roundstat, 0) //VOREStation Edit - Obviously +GLOBAL_VAR_INIT(items_digested_roundstat, 0) //VOREStation Edit - Obviously /hook/roundend/proc/RoundTrivia()//bazinga var/list/valid_stats_list = list() //This is to be populated with the good shit @@ -50,6 +54,17 @@ GLOBAL_VAR_INIT(mech_destroyed_roundstat, 0) else if(GLOB.disposals_flush_shift_roundstat > 40) valid_stats_list.Add("The disposal system flushed a whole [GLOB.disposals_flush_shift_roundstat] times for this shift. We should really invest in waste treatement.") + //VOREStation Add Start - Vore stats lets gooooo + if(GLOB.prey_eaten_roundstat > 0) + valid_stats_list.Add("A total of [GLOB.prey_eaten_roundstat] individuals were eaten today!") + if(GLOB.prey_digested_roundstat > 0) + valid_stats_list.Add("A total of [GLOB.prey_digested_roundstat] individuals were digested today!") + if(GLOB.prey_absorbed_roundstat > 0) + valid_stats_list.Add("A total of [GLOB.prey_absorbed_roundstat] individuals were absorbed today!") + if(GLOB.items_digested_roundstat > 0) + valid_stats_list.Add("A total of [GLOB.items_digested_roundstat] items were digested today!") + //VOREStation Add End + if(LAZYLEN(valid_stats_list)) to_world("Shift trivia!") diff --git a/code/datums/supplypacks/hospitality_vr.dm b/code/datums/supplypacks/hospitality_vr.dm index 49d4091e506..ff198ab1ec7 100644 --- a/code/datums/supplypacks/hospitality_vr.dm +++ b/code/datums/supplypacks/hospitality_vr.dm @@ -29,7 +29,7 @@ /obj/item/weapon/reagent_containers/food/snacks/berrymuffin, /obj/item/weapon/reagent_containers/food/snacks/bunbun, /obj/item/weapon/reagent_containers/food/snacks/cherrypie, - /obj/item/weapon/reagent_containers/food/snacks/cookiesnack, + /obj/item/weapon/reagent_containers/food/snacks/cookie, /obj/item/weapon/reagent_containers/food/snacks/croissant, /obj/item/weapon/reagent_containers/food/snacks/donut/normal, /obj/item/weapon/reagent_containers/food/snacks/donut/jelly, diff --git a/code/datums/supplypacks/munitions.dm b/code/datums/supplypacks/munitions.dm index cec258270c0..30ccee5746e 100644 --- a/code/datums/supplypacks/munitions.dm +++ b/code/datums/supplypacks/munitions.dm @@ -38,7 +38,7 @@ /obj/item/weapon/gun/projectile/sec/flash, /obj/item/ammo_magazine/m45/flash, /obj/item/weapon/gun/projectile/shotgun/doublebarrel/flare, - /obj/item/weapon/storage/box/flashshells + /obj/item/ammo_magazine/ammo_box/b12g/flash ) cost = 25 containertype = /obj/structure/closet/crate/secure/gear @@ -66,8 +66,8 @@ /datum/supply_pack/munitions/shotgun name = "Weapons - Shotgun crate" contains = list( - /obj/item/weapon/storage/box/shotgunammo, - /obj/item/weapon/storage/box/shotgunshells, + /obj/item/ammo_magazine/ammo_box/b12g, + /obj/item/ammo_magazine/ammo_box/b12g/pellet, /obj/item/weapon/gun/projectile/shotgun/pump/combat = 2 ) cost = 50 @@ -198,8 +198,8 @@ /datum/supply_pack/munitions/shotgunammo name = "Ammunition - Shotgun shells" contains = list( - /obj/item/weapon/storage/box/shotgunammo = 2, - /obj/item/weapon/storage/box/shotgunshells = 2 + /obj/item/ammo_magazine/ammo_box/b12g = 2, + /obj/item/ammo_magazine/ammo_box/b12g/pellet = 2 ) cost = 25 containertype = /obj/structure/closet/crate/secure/weapon @@ -208,7 +208,7 @@ /datum/supply_pack/munitions/beanbagammo name = "Ammunition - Beanbag shells" - contains = list(/obj/item/weapon/storage/box/beanbags = 3) + contains = list(/obj/item/ammo_magazine/ammo_box/b12g/beanbag = 3) cost = 25 containertype = /obj/structure/closet/crate containername = "Ballistic ammunition crate" diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index b926fa8b8de..c19c4b00970 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -256,7 +256,7 @@ /obj/item/weapon/shield/riot = 3, /obj/item/weapon/handcuffs = 3, /obj/item/weapon/storage/box/flashbangs, - /obj/item/weapon/storage/box/beanbags, + /obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/item/weapon/storage/box/handcuffs ) cost = 40 diff --git a/code/datums/uplink/ammunition.dm b/code/datums/uplink/ammunition.dm index 8b853aed632..8a749250b66 100644 --- a/code/datums/uplink/ammunition.dm +++ b/code/datums/uplink/ammunition.dm @@ -63,11 +63,11 @@ /datum/uplink_item/item/ammo/sniperammo name = "Anti-Materiel Rifle ammo box (14.5mm)" - path = /obj/item/weapon/storage/box/sniperammo + path = /obj/item/ammo_magazine/ammo_box/b145 /datum/uplink_item/item/ammo/sniperammo_highvel name = "Anti-Materiel Rifle ammo box (14.5mm sabot)" - path = /obj/item/weapon/storage/box/sniperammo/highvel + path = /obj/item/ammo_magazine/ammo_box/b145/highvel /datum/uplink_item/item/ammo/c545 name = "Rifle Magazine (5.45mm)" @@ -107,25 +107,25 @@ /datum/uplink_item/item/ammo/g12 name = "12g Shotgun Ammo Box (Slug)" - path = /obj/item/weapon/storage/box/shotgunammo + path = /obj/item/ammo_magazine/ammo_box/b12g /datum/uplink_item/item/ammo/g12/beanbag name = "12g Shotgun Ammo Box (Beanbag)" - path = /obj/item/weapon/storage/box/beanbags + path = /obj/item/ammo_magazine/ammo_box/b12g/beanbag item_cost = 10 // Discount due to it being LTL. /datum/uplink_item/item/ammo/g12/pellet name = "12g Shotgun Ammo Box (Pellet)" - path = /obj/item/weapon/storage/box/shotgunshells + path =/obj/item/ammo_magazine/ammo_box/b12g/pellet /datum/uplink_item/item/ammo/g12/stun name = "12g Shotgun Ammo Box (Stun)" - path = /obj/item/weapon/storage/box/stunshells + path = /obj/item/ammo_magazine/ammo_box/b12g/stunshell item_cost = 10 // Discount due to it being LTL. /datum/uplink_item/item/ammo/g12/flash name = "12g Shotgun Ammo Box (Flash)" - path = /obj/item/weapon/storage/box/flashshells + path = /obj/item/ammo_magazine/ammo_box/b12g/flash item_cost = 10 // Discount due to it being LTL. /datum/uplink_item/item/ammo/cell diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index be8639e4bcc..f9484599700 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -522,9 +522,18 @@ control_computer.frozen_crew += "[to_despawn.real_name], [to_despawn.mind.role_alt_title] - [stationtime2text()]" control_computer._admin_logs += "[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) at [stationtime2text()]" log_and_message_admins("[key_name(to_despawn)] ([to_despawn.mind.role_alt_title]) entered cryostorage.") + + //VOREStation Edit Start + var/depart_announce = TRUE - announce.autosay("[to_despawn.real_name], [to_despawn.mind.role_alt_title], [on_store_message]", "[on_store_name]", announce_channel, using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE)) - visible_message("\The [initial(name)] [on_store_visible_message_1] [to_despawn.real_name] [on_store_visible_message_2]", 3) + if(istype(to_despawn, /mob/living/dominated_brain)) + depart_announce = FALSE + + if(depart_announce) + announce.autosay("[to_despawn.real_name], [to_despawn.mind.role_alt_title], [on_store_message]", "[on_store_name]", announce_channel, using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE)) + visible_message("\The [initial(name)] [on_store_visible_message_1] [to_despawn.real_name] [on_store_visible_message_2]", 3) + + //VOREStation Edit End //VOREStation Edit begin: Dont delete mobs-in-mobs if(to_despawn.client && to_despawn.stat<2) diff --git a/code/game/objects/items/devices/binoculars.dm b/code/game/objects/items/devices/binoculars.dm index 15995b15c6f..1bb63fab38d 100644 --- a/code/game/objects/items/devices/binoculars.dm +++ b/code/game/objects/items/devices/binoculars.dm @@ -9,8 +9,13 @@ throw_range = 15 throw_speed = 3 - //matter = list(MAT_STEEL = 50,MAT_GLASS = 50) - + //matter = list(MAT_STEEL = 50, MAT_GLASS = 50) /obj/item/device/binoculars/attack_self(mob/user) zoom() + +/obj/item/device/binoculars/spyglass + name = "spyglass" + desc = "It's a hand-held telescope, useful for star-gazing, peeping, and recon." + icon_state = "spyglass" + slot_flags = SLOT_BELT \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 96d03266544..58ea2ad9d5d 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -72,7 +72,8 @@ /obj/item/device/integrated_electronics/wirer, /obj/item/device/integrated_electronics/debugger, //Vorestation edit adding debugger to toolbelt can hold list /obj/item/weapon/shovel/spade, //VOREStation edit. If it can hold minihoes and hatchers, why not the gardening spade? - /obj/item/stack/nanopaste //VOREStation edit. Think of it as a tube of superglue. Belts hold that all the time. + /obj/item/stack/nanopaste, //VOREStation edit. Think of it as a tube of superglue. Belts hold that all the time. + /obj/item/device/geiger //VOREStation edit. Engineers work with rad-slinging stuff sometimes too ) /obj/item/weapon/storage/belt/utility/full @@ -102,7 +103,9 @@ /obj/item/weapon/tool/wrench, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/crowbar, - /obj/item/weapon/tool/wirecutters + /obj/item/weapon/tool/wirecutters, + /obj/item/device/analyzer, //Vorestation edit. Gives atmos techs a few extra tools fitting their job from the start + /obj/item/weapon/extinguisher/mini //Vorestation edit. As above, the mini's much more handy to have rather than lugging a big one around ) /obj/item/weapon/storage/belt/utility/chief @@ -538,4 +541,4 @@ storage_slots = 8 can_hold = list( /obj/item/ammo_casing/afoam_dart - ) \ No newline at end of file + ) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 4eac505ebf0..18d0ef948fe 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -142,126 +142,6 @@ /obj/item/weapon/dnainjector/m2h = 3 ) -/obj/item/weapon/storage/box/blanks - name = "box of blank shells" - desc = "It has a picture of a gun and several warning symbols on the front." - icon_state = "blankshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/blank = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/blanks/large - starts_with = list(/obj/item/ammo_casing/a12g/blank = 16) - -/obj/item/weapon/storage/box/beanbags - name = "box of beanbag shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "beanshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/beanbags/large/New() - starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16) - -/obj/item/weapon/storage/box/shotgunammo - name = "box of shotgun slugs" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "lethalshellshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/shotgunammo/large - starts_with = list(/obj/item/ammo_casing/a12g = 16) - -/obj/item/weapon/storage/box/shotgunshells - name = "box of shotgun shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "lethalslug_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/shotgunshells/large - starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16) - -/obj/item/weapon/storage/box/flashshells - name = "box of illumination shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "illumshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/flash = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/flashshells/large - starts_with = list(/obj/item/ammo_casing/a12g/flash = 16) - -/obj/item/weapon/storage/box/stunshells - name = "box of stun shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "stunshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/stunshells/large - starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16) - -/obj/item/weapon/storage/box/practiceshells - name = "box of practice shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "blankshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/practice = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/practiceshells/large - starts_with = list(/obj/item/ammo_casing/a12g/practice = 16) - -/obj/item/weapon/storage/box/empshells - name = "box of emp shells" - desc = "It has a picture of a gun and several warning symbols on the front." - icon_state = "empshot_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/emp = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/empshells/large - starts_with = list(/obj/item/ammo_casing/a12g/emp = 16) - -/obj/item/weapon/storage/box/flechetteshells - name = "box of shotgun flechettes" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - icon_state = "lethalslug_box" - item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - starts_with = list(/obj/item/ammo_casing/a12g/flechette = 8) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/flechetteshells/large - starts_with = list(/obj/item/ammo_casing/a12g/flechette = 16) - -/obj/item/weapon/storage/box/sniperammo - name = "box of 14.5mm shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - starts_with = list(/obj/item/ammo_casing/a145 = 7) - drop_sound = 'sound/items/drop/ammobox.ogg' - pickup_sound = 'sound/items/pickup/ammobox.ogg' - -/obj/item/weapon/storage/box/sniperammo/highvel - name = "box of 14.5mm sabot shells" - desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - starts_with = list(/obj/item/ammo_casing/a145/highvel = 7) - /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." diff --git a/code/game/objects/random/guns_and_ammo.dm b/code/game/objects/random/guns_and_ammo.dm index c4766db55a5..ee675519146 100644 --- a/code/game/objects/random/guns_and_ammo.dm +++ b/code/game/objects/random/guns_and_ammo.dm @@ -154,10 +154,10 @@ icon_state = "ammo" /obj/random/ammo/item_to_spawn() - return pick(prob(6);/obj/item/weapon/storage/box/beanbags, - prob(2);/obj/item/weapon/storage/box/shotgunammo, - prob(4);/obj/item/weapon/storage/box/shotgunshells, - prob(1);/obj/item/weapon/storage/box/stunshells, + return pick(prob(6);/obj/item/ammo_magazine/ammo_box/b12g/beanbag, + prob(2);/obj/item/ammo_magazine/ammo_box/b12g, + prob(4);/obj/item/ammo_magazine/ammo_box/b12g/pellet, + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/stunshell, prob(2);/obj/item/ammo_magazine/m45, prob(4);/obj/item/ammo_magazine/m45/rubber, prob(4);/obj/item/ammo_magazine/m45/flash, @@ -315,8 +315,8 @@ ), prob(1);list( /obj/item/weapon/gun/projectile/garand, - /obj/item/ammo_magazine/m762garand, - /obj/item/ammo_magazine/m762garand + /obj/item/ammo_magazine/m762enbloc, + /obj/item/ammo_magazine/m762enbloc ), prob(1);list( /obj/item/weapon/gun/projectile/revolvingrifle, @@ -489,11 +489,11 @@ ), prob(3);list( /obj/item/weapon/gun/projectile/shotgun/pump/slug, - /obj/item/weapon/storage/box/shotgunammo + /obj/item/ammo_magazine/ammo_box/b12g ), prob(1);list( /obj/item/weapon/gun/projectile/shotgun/pump/combat, - /obj/item/weapon/storage/box/shotgunammo + /obj/item/ammo_magazine/ammo_box/b12g ) ) diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index a9e567c6c09..6940a6702fa 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -351,8 +351,8 @@ /obj/item/clothing/suit/armor/vest, /obj/item/weapon/gun/projectile/garand, /obj/item/weapon/gun/projectile/garand, - /obj/item/ammo_magazine/m762garand, - /obj/item/ammo_magazine/m762garand, + /obj/item/ammo_magazine/m762enbloc, + /obj/item/ammo_magazine/m762enbloc, /obj/structure/closet/crate/plastic ), prob(2);list( diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index ac7d0457046..0ac9f2c7114 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -848,7 +848,7 @@ /obj/item/weapon/reagent_containers/food/snacks/donut/plain, /obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, - /obj/item/weapon/reagent_containers/food/snacks/cookiesnack) + /obj/item/weapon/reagent_containers/food/snacks/cookie) /obj/random/mre/dessert/vegan name = "random vegan MRE dessert" diff --git a/code/game/objects/random/mob_vr.dm b/code/game/objects/random/mob_vr.dm index d644e9e0143..b153ce360b3 100644 --- a/code/game/objects/random/mob_vr.dm +++ b/code/game/objects/random/mob_vr.dm @@ -96,8 +96,8 @@ icon = 'icons/obj/ammo.dmi' icon_state = "666" /obj/random/ammo_all/item_to_spawn() - return pick(prob(5);/obj/item/weapon/storage/box/shotgunammo,\ - prob(5);/obj/item/weapon/storage/box/shotgunshells,\ + return pick(prob(5);/obj/item/ammo_magazine/ammo_box/b12g,\ + prob(5);/obj/item/ammo_magazine/ammo_box/b12g/pellet,\ prob(5);/obj/item/ammo_magazine/clip/c762,\ prob(5);/obj/item/ammo_magazine/m380,\ prob(5);/obj/item/ammo_magazine/m45,\ @@ -111,24 +111,25 @@ prob(4);/obj/item/ammo_magazine/m9mmp90,\ prob(4);/obj/item/ammo_magazine/m10mm,\ prob(4);/obj/item/ammo_magazine/m545/small,\ - prob(3);/obj/item/ammo_magazine/clip/c10mm,\ prob(3);/obj/item/ammo_magazine/clip/c44,\ + prob(3);/obj/item/ammo_magazine/ammo_box/b10mm/emp,\ + prob(3);/obj/item/ammo_magazine/ammo_box/b10mm,\ prob(3);/obj/item/ammo_magazine/s44,\ prob(3);/obj/item/ammo_magazine/m762,\ prob(3);/obj/item/ammo_magazine/m545,\ prob(3);/obj/item/weapon/cell/device/weapon,\ prob(2);/obj/item/ammo_magazine/m44,\ prob(2);/obj/item/ammo_magazine/s357,\ - prob(2);/obj/item/ammo_magazine/m762m,\ + prob(2);/obj/item/ammo_magazine/m762/ext,\ prob(2);/obj/item/ammo_magazine/clip/c12g, prob(2);/obj/item/ammo_magazine/clip/c12g/pellet,\ prob(1);/obj/item/ammo_magazine/m45tommy,\ /* prob(1);/obj/item/ammo_magazine/m95,\ */ prob(1);/obj/item/ammo_casing/rocket,\ - prob(1);/obj/item/weapon/storage/box/sniperammo,\ - prob(1);/obj/item/weapon/storage/box/flashshells,\ - prob(1);/obj/item/weapon/storage/box/beanbags,\ - prob(1);/obj/item/weapon/storage/box/stunshells,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b145,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/flash,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/beanbag,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/stunshell,\ prob(1);/obj/item/ammo_magazine/mtg,\ prob(1);/obj/item/ammo_magazine/m12gdrum,\ prob(1);/obj/item/ammo_magazine/m12gdrum/pellet,\ diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index eecfde21bc3..cd0edddce17 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -111,14 +111,14 @@ ///obj/item/clamp, //VOREStation Removal: without leaks those are pointless, /obj/item/device/radio/headset/headset_eng, /obj/item/device/radio/headset/headset_eng/alt, - /obj/item/clothing/suit/storage/hazardvest, + /obj/item/clothing/suit/storage/hazardvest/atmos, //VOREStation edit. Eng locker gets regular haz-vest, atmos gets the themed one of their own /obj/item/clothing/mask/gas, /obj/item/weapon/cartridge/atmos, /obj/item/taperoll/atmos, /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos, /obj/item/clothing/shoes/boots/winter/atmos, /obj/item/weapon/tank/emergency/oxygen/engi, - /obj/item/weapon/storage/belt/utility) //VOREStation Add + /obj/item/weapon/storage/belt/utility/atmostech) //VOREStation edit. They don't get a toolbox to fill it from, so why not give a spare one that's full already? /obj/structure/closet/secure_closet/atmos_personal/Initialize() if(prob(50)) diff --git a/code/game/objects/structures/loot_piles.dm b/code/game/objects/structures/loot_piles.dm index a0737da55c6..87b91e84693 100644 --- a/code/game/objects/structures/loot_piles.dm +++ b/code/game/objects/structures/loot_piles.dm @@ -300,8 +300,8 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh uncommon_loot = list( /obj/item/weapon/storage/box/sinpockets, - /obj/item/weapon/storage/box/practiceshells, - /obj/item/weapon/storage/box/blanks, + /obj/item/ammo_magazine/ammo_box/b12g/practice, + /obj/item/ammo_magazine/ammo_box/b12g/blank, /obj/item/weapon/storage/box/smokes, /obj/item/weapon/storage/box/metalfoam, /obj/item/weapon/storage/box/handcuffs, @@ -311,8 +311,8 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh rare_loot = list( /obj/item/weapon/storage/box/flashbangs, /obj/item/weapon/storage/box/empslite, - /obj/item/weapon/storage/box/flashshells, - /obj/item/weapon/storage/box/stunshells, + /obj/item/ammo_magazine/ammo_box/b12g/flash, + /obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/item/weapon/storage/box/teargas ) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 41f14ec5c7c..c82ea1c80ad 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -554,7 +554,7 @@ jobs += "" counter = 0 - jobs += "" + jobs += "" //VOREstation Edit End //Civilian (Grey) @@ -635,7 +635,7 @@ jobs += "[entry]" else jobs += "[entry]" - + if(++counter >= 5) //So things dont get squiiiiished! jobs += "" counter = 0 @@ -1417,10 +1417,10 @@ to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") return - H.equip_to_slot_or_del( new /obj/item/weapon/reagent_containers/food/snacks/cookiesnack(H), slot_l_hand ) - if(!(istype(H.l_hand,/obj/item/weapon/reagent_containers/food/snacks/cookiesnack))) - H.equip_to_slot_or_del( new /obj/item/weapon/reagent_containers/food/snacks/cookiesnack(H), slot_r_hand ) - if(!(istype(H.r_hand,/obj/item/weapon/reagent_containers/food/snacks/cookiesnack))) + H.equip_to_slot_or_del( new /obj/item/weapon/reagent_containers/food/snacks/cookie(H), slot_l_hand ) + if(!(istype(H.l_hand,/obj/item/weapon/reagent_containers/food/snacks/cookie))) + H.equip_to_slot_or_del( new /obj/item/weapon/reagent_containers/food/snacks/cookie(H), slot_r_hand ) + if(!(istype(H.r_hand,/obj/item/weapon/reagent_containers/food/snacks/cookie))) log_admin("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") message_admins("[key_name(H)] has their hands full, so they did not receive their cookie, spawned by [key_name(src.owner)].") return @@ -1558,7 +1558,7 @@ var/mob/M = locate(href_list["jumpto"]) if(!M) return - + var/turf/T = get_turf(M) if(isturf(T)) usr.on_mob_jump() @@ -1597,16 +1597,16 @@ var/mob/M = locate(href_list["sendmob"]) if(!M) return - + var/list/areachoices = return_sorted_areas() var/choice = tgui_input_list(usr, "Pick an area:", "Send Mob", areachoices) if(!choice) return - + var/area/A = areachoices[choice] if(!A) return - + M.on_mob_jump() M.forceMove(pick(get_area_turfs(A))) var/msg = "[key_name_admin(usr)] teleported [ADMIN_LOOKUPFLW(M)]" diff --git a/code/modules/awaymissions/loot_vr.dm b/code/modules/awaymissions/loot_vr.dm index d6364d3bd4a..6845f649790 100644 --- a/code/modules/awaymissions/loot_vr.dm +++ b/code/modules/awaymissions/loot_vr.dm @@ -145,7 +145,6 @@ prob(8);/obj/item/weapon/gun/projectile/automatic/c20r,\ prob(8);/obj/item/weapon/gun/projectile/automatic/stg,\ prob(8);/obj/item/weapon/melee/energy/sword,\ - /* prob(8);/obj/item/weapon/gun/projectile/automatic/m41a,\ */ prob(7);/obj/item/weapon/gun/energy/captain,\ prob(7);/obj/item/weapon/gun/energy/sniperrifle,\ prob(7);/obj/item/weapon/gun/projectile/automatic/p90,\ @@ -176,8 +175,8 @@ new new_gun(C) if(prob(50)) var/new_ammo = pick( // Copied from Random.dm - prob(5);/obj/item/weapon/storage/box/shotgunammo,\ - prob(5);/obj/item/weapon/storage/box/shotgunshells,\ + prob(5);/obj/item/ammo_magazine/ammo_box/b12g,\ + prob(5);/obj/item/ammo_magazine/ammo_box/b12g/pellet,\ prob(5);/obj/item/ammo_magazine/s357,\ prob(5);/obj/item/ammo_magazine/clip/c762,\ prob(5);/obj/item/ammo_magazine/m45,\ @@ -197,12 +196,13 @@ prob(4);/obj/item/ammo_magazine/m9mmt/rubber,\ prob(4);/obj/item/ammo_magazine/m10mm,\ prob(4);/obj/item/ammo_magazine/m9mmp90,\ - /* prob(4);/obj/item/ammo_magazine/m14,\ - prob(4);/obj/item/ammo_magazine/m14/large,\*/ prob(4);/obj/item/ammo_magazine/m545/ext, prob(4);/obj/item/ammo_magazine/m762,\ + prob(4);/obj/item/ammo_magazine/ammo_box/b762/surplus/hunter,\ + prob(4);/obj/item/ammo_magazine/ammo_box/b762/surplus,\ prob(4);/obj/item/ammo_magazine/m545/ext,\ - prob(3);/obj/item/ammo_magazine/clip/c10mm,\ + prob(3);/obj/item/ammo_magazine/ammo_box/b10mm/emp,\ + prob(3);/obj/item/ammo_magazine/ammo_box/b10mm,\ prob(3);/obj/item/ammo_magazine/clip/c44,\ prob(3);/obj/item/ammo_magazine/m545,\ prob(2);/obj/item/ammo_magazine/m44,\ @@ -210,12 +210,12 @@ prob(1);/obj/item/weapon/storage/box/frags,\ /* prob(1);/obj/item/ammo_magazine/m95,\ */ prob(1);/obj/item/ammo_casing/rocket,\ - prob(1);/obj/item/weapon/storage/box/sniperammo,\ - prob(1);/obj/item/weapon/storage/box/flashshells,\ - prob(1);/obj/item/weapon/storage/box/beanbags,\ - prob(1);/obj/item/weapon/storage/box/practiceshells,\ - prob(1);/obj/item/weapon/storage/box/stunshells,\ - prob(1);/obj/item/weapon/storage/box/blanks,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b145,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/flash,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/beanbag,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/practice,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/stunshell,\ + prob(1);/obj/item/ammo_magazine/ammo_box/b12g/blank,\ prob(1);/obj/item/ammo_magazine/mtg,\ prob(1);/obj/item/ammo_magazine/m45tommydrum,\ prob(1);/obj/item/ammo_magazine/m45tommy) @@ -267,7 +267,7 @@ /obj/item/weapon/reagent_containers/food/drinks/dry_ramen, \ /obj/item/weapon/reagent_containers/food/snacks/candiedapple, \ /obj/item/weapon/reagent_containers/food/snacks/chocolatebar, \ - /obj/item/weapon/reagent_containers/food/snacks/cookiesnack, \ + /obj/item/weapon/reagent_containers/food/snacks/cookie, \ /obj/item/weapon/reagent_containers/food/snacks/meatball, \ /obj/item/weapon/reagent_containers/food/snacks/plump_pie, \ /obj/item/weapon/reagent_containers/food/snacks/liquidfood) @@ -286,7 +286,7 @@ else if(prob(50)) if(live_cargo) // Something else very much alive and angry. var/spawn_type = pick(/mob/living/simple_mob/animal/space/alien, /mob/living/simple_mob/animal/space/alien/drone, /mob/living/simple_mob/animal/space/alien/sentinel) - new spawn_type(C) + new spawn_type(C) else // Just a costume. new /obj/item/clothing/head/xenos(C) new /obj/item/clothing/suit/xenos(C) diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index 615e16bf5d9..74a69d46e00 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -140,3 +140,12 @@ display_name = "Cards Against The Galaxy (black deck)" path = /obj/item/weapon/deck/cah/black description = "The ever-popular Cards Against The Galaxy word game. Warning: may include traces of broken fourth wall. This is the black deck." + +/datum/gear/wizoff + display_name = "WizOff" + path = /obj/item/weapon/deck/wizoff + +/datum/gear/wizoffguide + display_name = "WizOff Guide" + path = /obj/item/weapon/book/manual/wizzoffguide + description = "The guide to playing the ever popular card game: Wiz-Off!" \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_shoes.dm b/code/modules/client/preference_setup/loadout/loadout_shoes.dm index c01d4c6f99f..a4f0ad315df 100644 --- a/code/modules/client/preference_setup/loadout/loadout_shoes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_shoes.dm @@ -13,6 +13,18 @@ display_name = "tourist, green" path = /obj/item/clothing/shoes/tourist_2 +/datum/gear/shoes/sneakerspurple + display_name = "sneakers, purple" + path = /obj/item/clothing/shoes/sneakerspurple + +/datum/gear/shoes/sneakersblue + display_name = "sneakers, blue" + path = /obj/item/clothing/shoes/sneakersblue + +/datum/gear/shoes/sneakersred + display_name = "sneakers, red" + path = /obj/item/clothing/shoes/sneakersred + /datum/gear/shoes/jackboots display_name = "jackboots" path = /obj/item/clothing/shoes/boots/jackboots diff --git a/code/modules/client/preference_setup/loadout/loadout_suit.dm b/code/modules/client/preference_setup/loadout/loadout_suit.dm index 8c9efbd119b..bdc941cfae4 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit.dm @@ -197,6 +197,18 @@ path = /obj/item/clothing/suit/cyberpunk cost = 2 +/datum/gear/suit/puffycoat/blue + display_name = "puffy coat, blue" + path = /obj/item/clothing/suit/storage/puffyblue + +/datum/gear/suit/puffycoat/red + display_name = "puffy coat, red" + path = /obj/item/clothing/suit/storage/puffyred + +/datum/gear/suit/puffycoat/purple + display_name = "puffy coat, purple" + path = /obj/item/clothing/suit/storage/puffypurple + /datum/gear/suit/poncho display_name = "poncho selection" path = /obj/item/clothing/accessory/poncho @@ -226,7 +238,6 @@ ) gear_tweaks += new/datum/gear_tweak/path(ponchos) - /datum/gear/suit/roles/cloak display_name = "cloak selection, departments" path = /obj/item/clothing/accessory/poncho/roles/cloak/cargo diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index b11905385ab..12bf14ad2fe 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -119,3 +119,8 @@ Talon winter coat display_name = "knight, Field Medic" path = /obj/item/clothing/suit/armor/combat/crusader_explo/FM allowed_roles = list ("Field Medic") + +//Atmos-coloured hazard vest + display_name = "hazard vest, atmospherics" + path = /obj/item/clothing/suit/storage/hazardvest/atmos + allowed_roles = list("Chief Engineer","Atmospheric Technician", "Engineer") diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform.dm b/code/modules/client/preference_setup/loadout/loadout_uniform.dm index 874501d1088..ccd61969484 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform.dm @@ -699,6 +699,26 @@ display_name = "heavy utility, galactic survey" path = /obj/item/clothing/under/gsa_work +/* + * 80s + */ + +/datum/gear/uniform/tropical_outfit/black + display_name = "tropical outfit, animal style" + path = /obj/item/clothing/under/tropical + +/datum/gear/uniform/tropical_outfit/green + display_name = "tropical outfit, tropico-puke" + path = /obj/item/clothing/under/tropical/green + +/datum/gear/uniform/tropical_outfit/pink + display_name = "tropical outfit, 3005 vintage" + path = /obj/item/clothing/under/tropical/pink + +/datum/gear/uniform/tropical_outfit/blue + display_name = "tropical outfit, miami vice" + path = /obj/item/clothing/under/tropical/blue + /* * Branded Uniforms */ diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index 26caf70b2be..e6988b0ac98 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -237,3 +237,42 @@ Talon jumpsuit "red and white" = /obj/item/clothing/under/summerdress/red ) gear_tweaks += new/datum/gear_tweak/path(dresses) + +// undersuits +/datum/gear/uniform/undersuit + display_name = "undersuit selection" + path = /obj/item/clothing/under/undersuit/ + +/datum/gear/uniform/undersuit/New() + ..() + var/list/suits = list() + var/list/blacklisted_types = list(/obj/item/clothing/under/undersuit/sec, + /obj/item/clothing/under/undersuit/sec/hos, + /obj/item/clothing/under/undersuit/hazard, + /obj/item/clothing/under/undersuit/command, + /obj/item/clothing/under/undersuit/centcom) + for(var/obj/item/clothing/under/undersuit/undersuit_type as anything in typesof(/obj/item/clothing/under/undersuit)) + if(undersuit_type in blacklisted_types) + continue + suits[initial(undersuit_type.name)] = undersuit_type + gear_tweaks += new/datum/gear_tweak/path(sortAssoc(suits)) + +/datum/gear/uniform/undersuit_haz + display_name = "undersuit, hazard (Engineering)" + allowed_roles = list("Chief Engineer", "Atmospheric Technician", "Engineer") + path = /obj/item/clothing/under/undersuit/hazard + +/datum/gear/uniform/undersuit_sec + display_name = "undersuit, security (Security)" + allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer") + path = /obj/item/clothing/under/undersuit/sec + +/datum/gear/uniform/undersuit_hos + display_name = "undersuit, security command (HoS)" + allowed_roles = list("Head of Security") + path = /obj/item/clothing/under/undersuit/sec/hos + +/datum/gear/uniform/undersuit_com + display_name = "undersuit, command (SM/HoP)" + allowed_roles = list("Site Manager", "Head of Personnel") + path = /obj/item/clothing/under/undersuit/command diff --git a/code/modules/client/stored_item.dm b/code/modules/client/stored_item.dm index d2210b22452..fbc384e5a1f 100644 --- a/code/modules/client/stored_item.dm +++ b/code/modules/client/stored_item.dm @@ -232,6 +232,8 @@ persist_storable = FALSE /obj/item/weapon/melee/cursedblade persist_storable = FALSE +/obj/item/weapon/circuitboard/mecha/imperion + persist_storable = FALSE /obj/item/device/paicard persist_storable = FALSE /obj/item/organ diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 52aabe2bb4f..0fe9cb8b6c9 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -233,4 +233,26 @@ icon_state = "rag" force = 0 drop_sound = 'sound/items/drop/clothing.ogg' - pickup_sound = 'sound/items/pickup/clothing.ogg' \ No newline at end of file + pickup_sound = 'sound/items/pickup/clothing.ogg' + +/* + * 80s + */ + +/obj/item/clothing/shoes/sneakerspurple + name = "purple sneakers" + desc = "A stylish, expensive pair of purple sneakers." + icon_state = "sneakerspurple" + item_state = "sneakerspurple" + +/obj/item/clothing/shoes/sneakersblue + name = "blue sneakers" + desc = "A stylish, expensive pair of blue sneakers." + icon_state = "sneakersblue" + item_state = "sneakersblue" + +/obj/item/clothing/shoes/sneakersred + name = "red sneakers" + desc = "A stylish, expensive pair of red sneakers." + icon_state = "sneakersred" + item_state = "sneakersred" \ No newline at end of file diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index bce11495c7b..17b265ed9fe 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -173,7 +173,7 @@ blood_overlay_type = "armor" allowed = list (/obj/item/device/analyzer, /obj/item/device/flashlight, /obj/item/device/multitool, /obj/item/device/pipe_painter, /obj/item/device/radio, /obj/item/device/t_scanner, /obj/item/weapon/tool/crowbar, /obj/item/weapon/tool/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/weapon/tank/emergency/oxygen, - /obj/item/clothing/mask/gas, /obj/item/taperoll/engineering) + /obj/item/clothing/mask/gas, /obj/item/taperoll/engineering, /obj/item/taperoll/atmos, /obj/item/device/analyzer, /obj/item/weapon/extinguisher/mini) //VOREStation edit. Few more tools that can be put on vests body_parts_covered = UPPER_TORSO /obj/item/clothing/suit/storage/hazardvest/blue @@ -259,4 +259,4 @@ /obj/item/clothing/suit/suspenders/grey name = "grey suspenders" - icon_state = "suspenders_grey" \ No newline at end of file + icon_state = "suspenders_grey" diff --git a/code/modules/clothing/suits/jobs_vr.dm b/code/modules/clothing/suits/jobs_vr.dm index 9b34c186376..45e36be2c15 100644 --- a/code/modules/clothing/suits/jobs_vr.dm +++ b/code/modules/clothing/suits/jobs_vr.dm @@ -15,4 +15,17 @@ icon = 'icons/inventory/suit/item_vr.dmi' default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' icon_state = "qm_coat" - \ No newline at end of file + +//Atmos-coloured hazard vest +/obj/item/clothing/suit/storage/hazardvest/atmos + name = "light blue hazard vest" + desc = "A high-visibility vest used in work zones. This one is in the colors of atmospherics!" + + icon = 'icons/inventory/suit/item_vr.dmi' + default_worn_icon = 'icons/inventory/suit/mob_vr.dmi' + icon_state = "hazard_a" + item_state = "hazard_a" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi', + ) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 61825a6e5dd..0c637046943 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -42,6 +42,46 @@ desc = "Repilca rmor commonly worn by Dominion Of Mu'tu'bi soldiers from the hit series Spacer Trail. Modified for Laser Tag (Red Team)." icon_state = "redtag2" +/* + * 80s + */ + +/obj/item/clothing/suit/storage/puffyblue + name = "blue puffy coat" + desc = "A stylish, shiny, very blue puffer coat." + icon_state = "puffycoatblue" + item_state = "puffycoatblue" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + flags_inv = HIDEHOLSTER + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE + siemens_coefficient = 0.7 + item_state_slots = list(slot_r_hand_str = "blue_labcoat", slot_l_hand_str = "blue_labcoat") + +/obj/item/clothing/suit/storage/puffypurple + name = "purple puffy coat" + desc = "A stylish, shiny, very purple puffer coat." + icon_state = "puffycoatpurple" + item_state = "puffycoatpurple" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + flags_inv = HIDEHOLSTER + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE + siemens_coefficient = 0.7 + item_state_slots = list(slot_r_hand_str = "purple_labcoat", slot_l_hand_str = "purple_labcoat") + +/obj/item/clothing/suit/storage/puffyred + name = "crimson puffy coat" + desc = "A stylish, shiny, very crimson puffer coat." + icon_state = "puffycoatred" + item_state = "puffycoatred" + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + flags_inv = HIDEHOLSTER + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS + min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE + siemens_coefficient = 0.7 + item_state_slots = list(slot_r_hand_str = "red_labcoat", slot_l_hand_str = "red_labcoat") + /* * Costume */ diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/under/accessories/clothing.dm index 2729696eb6e..ab8464a5448 100644 --- a/code/modules/clothing/under/accessories/clothing.dm +++ b/code/modules/clothing/under/accessories/clothing.dm @@ -103,6 +103,44 @@ prob(2);/obj/item/clothing/accessory/hawaiian/yellow ) +/* + * 80s + */ + +/obj/item/clothing/accessory/tropical + name = "black tropical shirt" + desc = "A classic themed neosilk tropical shirt. This one makes you feel like an animal." + icon_state = "animalstyle" + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + slot_flags = SLOT_OCLOTHING | SLOT_TIE + body_parts_covered = UPPER_TORSO|LOWER_TORSO + siemens_coefficient = 0.9 + w_class = ITEMSIZE_NORMAL + slot = ACCESSORY_SLOT_OVER + +/obj/item/clothing/accessory/tropical/green + name = "puke-green tropical shirt" + desc = "A classic themed neosilk tropical shirt. This one makes you look like puke." + icon_state = "tropicopuke" + +/obj/item/clothing/accessory/tropical/pink + name = "pink tropical shirt" + desc = "A classic themed neosilk tropical shirt. This one makes you feel nostalgic." + icon_state = "3005vintage" + +/obj/item/clothing/accessory/tropical/blue + name = "blue tropical shirt" + desc = "A classic themed neosilk tropical shirt. This one makes you feel out of touch." + icon_state = "miamivice" + +/obj/item/clothing/accessory/tropical_random/New() + return pick( + prob(2);/obj/item/clothing/accessory/tropical, + prob(2);/obj/item/clothing/accessory/tropical/green, + prob(2);/obj/item/clothing/accessory/tropical/pink, + prob(2);/obj/item/clothing/accessory/tropical/blue + ) + /* * Chaps */ diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 8367a6e0458..a200f4538dc 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -1270,6 +1270,38 @@ icon_state = "curator" worn_state = "curator" +/* + * 80s + */ + +/obj/item/clothing/under/tropical + name = "black tropical oufit" + desc = "A classic themed outfit. This one makes you feel like an animal." + icon_state = "animalstyle" + worn_state = "animalstyle" + starting_accessories = list(/obj/item/clothing/accessory/tropical) + +/obj/item/clothing/under/tropical/green + name = "puke-green tropical oufit" + desc = "A classic themed outfit. This one makes you look like puke." + icon_state = "tropicopuke" + worn_state = "tropicopuke" + starting_accessories = list(/obj/item/clothing/accessory/tropical/green) + +/obj/item/clothing/under/tropical/pink + name = "pink tropical oufit" + desc = "A classic themed outfit. This one makes you feel nostalgic." + icon_state = "3005vintage" + worn_state = "3005vintage" + starting_accessories = list(/obj/item/clothing/accessory/tropical/pink) + +/obj/item/clothing/under/tropical/blue + name = "pink tropical oufit" + desc = "A classic themed outfit. This one makes you feel out of touch." + icon_state = "miamivice" + worn_state = "miamivice" + starting_accessories = list(/obj/item/clothing/accessory/tropical/blue) + /* * Modern */ diff --git a/code/modules/clothing/under/miscellaneous_vr.dm b/code/modules/clothing/under/miscellaneous_vr.dm index eb53f9e1383..93f46e3e9df 100644 --- a/code/modules/clothing/under/miscellaneous_vr.dm +++ b/code/modules/clothing/under/miscellaneous_vr.dm @@ -308,4 +308,72 @@ item_state = "lewdcap" rolled_sleeves = -1 rolled_down = -1 - body_parts_covered = UPPER_TORSO // frankly this thing's a fucking embarassment \ No newline at end of file + body_parts_covered = UPPER_TORSO // frankly this thing's a fucking embarassment + +/obj/item/clothing/under/undersuit // undersuits! intended for wearing under hardsuits or for being too lazy to not wear anything other than it + name = "undersuit" + desc = "A nondescript undersuit, intended for wearing under a voidsuit or other EVA equipment. Breathable, yet sleek." + icon = 'icons/inventory/uniform/item_vr.dmi' + default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi' + rolled_down_icon = 'icons/inventory/uniform/mob_vr_rolled_down.dmi' + icon_state = "bodysuit" + item_state = "bodysuit" + rolled_sleeves = -1 + rolled_down_icon_override = FALSE + +/obj/item/clothing/under/undersuit/eva + name = "EVA undersuit" + desc = "A nondescript undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for EVA usage, but differs little from the standard." + icon_state = "bodysuit_eva" + item_state = "bodysuit_eva" + +/obj/item/clothing/under/undersuit/command + name = "command undersuit" + desc = "A fancy undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for those in Command, and comes with a swanky gold trim and navy blue inlay." + icon_state = "bodysuit_com" + item_state = "bodysuit_com" + +/obj/item/clothing/under/undersuit/sec + name = "security undersuit" + desc = "A reinforced undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for those in Security, and has slight protective capabilities against simple melee attacks." + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + siemens_coefficient = 0.9 + icon_state = "bodysuit_sec" + item_state = "bodysuit_sec" + +/obj/item/clothing/under/undersuit/sec/hos + name = "security command undersuit" + desc = "A reinforced undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for the Head of Security or equivalent, and has slight protective capabilities against simple melee attacks." + icon_state = "bodysuit_seccom" + item_state = "bodysuit_seccom" + +/obj/item/clothing/under/undersuit/hazard + name = "hazard undersuit" + desc = "An undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for Engineering crew, and comes with slight radiation absorption capabilities. Not a lot, but it's there." + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) + icon_state = "bodysuit_haz" + item_state = "bodysuit_haz" + +/obj/item/clothing/under/undersuit/mining + name = "mining undersuit" + desc = "An undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for Mining crew, and comes with an interestingly colored trim." + icon_state = "bodysuit_min" + item_state = "bodysuit_min" + +/obj/item/clothing/under/undersuit/emt + name = "medical technician undersuit" + desc = "An undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for Medical response crew, and comes with a distinctive coloring scheme." + icon_state = "bodysuit_emt" + item_state = "bodysuit_emt" + +/obj/item/clothing/under/undersuit/explo + name = "exploration undersuit" + desc = "An undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for Exploration crew, for hazardous environments." + icon_state = "bodysuit_exp" + item_state = "bodysuit_exp" + +/obj/item/clothing/under/undersuit/centcom + name = "Central Command undersuit" + desc = "A very descript undersuit, intended for wearing under a voidsuit or other EVA equipment. This one is specifically made for NanoTrasen Central Command officers, and comes with a swanky gold trim and other fancy markings." + icon_state = "bodysuit_cent" + item_state = "bodysuit_cent" \ No newline at end of file diff --git a/code/modules/economy/price_list.dm b/code/modules/economy/price_list.dm index 10199e9e466..3a92f3d46be 100644 --- a/code/modules/economy/price_list.dm +++ b/code/modules/economy/price_list.dm @@ -615,7 +615,7 @@ // Cookies and Candies // -/obj/item/weapon/reagent_containers/food/snacks/cookiesnack +/obj/item/weapon/reagent_containers/food/snacks/cookie price_tag = 1 /obj/item/weapon/reagent_containers/food/snacks/chocolatebar diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 133894337de..4973281ccd4 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1219,7 +1219,10 @@ /obj/item/clothing/mask/bandana/red = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/security = 5, /obj/item/clothing/accessory/armband = 5, - /obj/item/clothing/accessory/holster/waist = 5 + /obj/item/clothing/accessory/holster/armpit = 2, //VOREStation edit - gives some variety of available holsters for those who forgot to bring their own + /obj/item/clothing/accessory/holster/waist = 2, //VOREStation edit - But also reduces the number per type, so there's 8 overall rather than like, 20 + /obj/item/clothing/accessory/holster/hip = 2, //VOREStation edit + /obj/item/clothing/accessory/holster/leg = 2 //VOREStation edit ) req_log_access = access_hop has_logs = 1 @@ -1624,4 +1627,4 @@ /obj/item/clothing/under/clown/rainbow = 1 ) req_log_access = access_hop - has_logs = 1 \ No newline at end of file + has_logs = 1 diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 756a17645f6..3a58a1018bc 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -218,7 +218,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/orangecake = 10, /obj/item/weapon/reagent_containers/food/snacks/sliceable/peanutcake = 10, /obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich = 15, - /obj/item/weapon/reagent_containers/food/snacks/cookiesnack = 15, + /obj/item/weapon/reagent_containers/food/snacks/cookie = 15, /obj/item/weapon/reagent_containers/food/snacks/sliceable/brownies = 10, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 10, /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece = 20 @@ -415,7 +415,10 @@ /obj/item/clothing/shoes/boots/workboots/toeless = 5, /obj/item/clothing/shoes/boots/winter = 5, /obj/item/clothing/shoes/boots/workboots = 5, - /obj/item/clothing/shoes/footwraps = 5) + /obj/item/clothing/shoes/footwraps = 5, + /obj/item/clothing/shoes/sneakerspurple = 5, + /obj/item/clothing/shoes/sneakersblue = 5, + /obj/item/clothing/shoes/sneakersred = 5) prices = list(/obj/item/clothing/gloves/evening = 50, /obj/item/clothing/gloves/fingerless = 50, /obj/item/clothing/gloves/black = 50, @@ -473,7 +476,10 @@ /obj/item/clothing/shoes/boots/workboots/toeless = 50, /obj/item/clothing/shoes/boots/winter = 50, /obj/item/clothing/shoes/boots/workboots = 50, - /obj/item/clothing/shoes/footwraps = 50) + /obj/item/clothing/shoes/footwraps = 50, + /obj/item/clothing/shoes/sneakerspurple = 50, + /obj/item/clothing/shoes/sneakersblue = 50, + /obj/item/clothing/shoes/sneakersred = 50) premium = list(/obj/item/clothing/gloves/rainbow = 1, /obj/item/clothing/shoes/rainbow = 1,) contraband = list(/obj/item/clothing/shoes/syndigaloshes = 1, @@ -539,6 +545,10 @@ /obj/item/clothing/accessory/hawaiian/pink = 5, /obj/item/clothing/accessory/hawaiian/red = 5, /obj/item/clothing/accessory/hawaiian/yellow = 5, + /obj/item/clothing/accessory/tropical = 5, + /obj/item/clothing/accessory/tropical/green = 5, + /obj/item/clothing/accessory/tropical/pink = 5, + /obj/item/clothing/accessory/tropical/blue = 5, /obj/item/clothing/accessory/locket = 5, /obj/item/weapon/storage/backpack/purse = 1, /obj/item/clothing/accessory/sash = 5, @@ -652,6 +662,10 @@ /obj/item/clothing/accessory/hawaiian/pink = 50, /obj/item/clothing/accessory/hawaiian/red = 50, /obj/item/clothing/accessory/hawaiian/yellow = 50, + /obj/item/clothing/accessory/tropical = 50, + /obj/item/clothing/accessory/tropical/green = 50, + /obj/item/clothing/accessory/tropical/pink = 50, + /obj/item/clothing/accessory/tropical/blue = 50, /obj/item/clothing/accessory/locket = 50, /obj/item/weapon/storage/backpack/purse = 50, /obj/item/clothing/accessory/sash = 50, @@ -918,7 +932,11 @@ /obj/item/clothing/under/wedding/bride_white = 5, /obj/item/weapon/storage/backpack/ = 5, /obj/item/weapon/storage/backpack/messenger = 5, - /obj/item/weapon/storage/backpack/satchel = 5) + /obj/item/weapon/storage/backpack/satchel = 5, + /obj/item/clothing/under/tropical = 5, + /obj/item/clothing/under/tropical/green = 5, + /obj/item/clothing/under/tropical/pink = 5, + /obj/item/clothing/under/tropical/blue = 5) prices = list(/obj/item/clothing/under/bathrobe = 50, /obj/item/clothing/under/dress/black_corset = 50, /obj/item/clothing/under/blazer = 50, @@ -1089,7 +1107,11 @@ /obj/item/clothing/under/wedding/bride_white = 50, /obj/item/weapon/storage/backpack/ = 50, /obj/item/weapon/storage/backpack/messenger = 50, - /obj/item/weapon/storage/backpack/satchel = 50) + /obj/item/weapon/storage/backpack/satchel = 50, + /obj/item/clothing/under/tropical = 50, + /obj/item/clothing/under/tropical/green = 50, + /obj/item/clothing/under/tropical/pink = 50, + /obj/item/clothing/under/tropical/blue = 50) premium = list(/obj/item/clothing/under/color/rainbow = 1) contraband = list(/obj/item/clothing/under/rank/clown = 1) @@ -1217,7 +1239,10 @@ /obj/item/clothing/suit/varsity/brown = 5, /obj/item/clothing/suit/storage/hooded/wintercoat = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 5, - /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 5) + /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 5, + /obj/item/clothing/suit/storage/puffyred = 5, + /obj/item/clothing/suit/storage/puffypurple = 5, + /obj/item/clothing/suit/storage/puffyblue = 5) prices = list(/obj/item/clothing/suit/storage/apron = 100, /obj/item/clothing/suit/storage/flannel/aqua = 100, /obj/item/clothing/suit/storage/toggle/bomber = 100, @@ -1306,7 +1331,10 @@ /obj/item/clothing/suit/varsity/brown = 100, /obj/item/clothing/suit/storage/hooded/wintercoat = 100, /obj/item/clothing/suit/storage/hooded/wintercoat/aformal = 100, - /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 100) + /obj/item/clothing/suit/storage/teshari/cloak/standard/white_grey = 100, + /obj/item/clothing/suit/storage/puffyred = 100, + /obj/item/clothing/suit/storage/puffypurple = 100, + /obj/item/clothing/suit/storage/puffyblue = 100) premium = list(/obj/item/clothing/suit/imperium_monk = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/cosmic = 1) contraband = list(/obj/item/toy/katana = 1) @@ -2516,6 +2544,7 @@ /obj/item/weapon/reagent_containers/food/snacks/clownstears = 10, /obj/item/weapon/reagent_containers/food/snacks/coldchili = 10, /obj/item/weapon/reagent_containers/food/snacks/cookiesnack = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookie = 10, /obj/item/weapon/reagent_containers/food/snacks/corn_dog = 10, /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice = 10, /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled = 10, @@ -3000,6 +3029,7 @@ /obj/item/weapon/reagent_containers/food/snacks/clownstears = 10, /obj/item/weapon/reagent_containers/food/snacks/coldchili = 10, /obj/item/weapon/reagent_containers/food/snacks/cookiesnack = 10, + /obj/item/weapon/reagent_containers/food/snacks/cookie = 10, /obj/item/weapon/reagent_containers/food/snacks/corn_dog = 10, /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice = 10, /obj/item/weapon/reagent_containers/food/snacks/cosmicbrowniesslice/filled = 10, diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm index 7516be2efff..b0b3fce0bb0 100644 --- a/code/modules/emotes/emote_mob.dm +++ b/code/modules/emotes/emote_mob.dm @@ -27,6 +27,11 @@ if(world.time < next_emote) to_chat(src, SPAN_WARNING("You cannot use another emote yet.")) return + //VOREStation Addition Start + if(forced_psay) + pme(message) + return + //VOREStation Addition End if(act == "help") if(world.time >= next_emote_refresh) diff --git a/code/modules/events/event.dm b/code/modules/events/event.dm index a17489921f6..0b48f77fc3c 100644 --- a/code/modules/events/event.dm +++ b/code/modules/events/event.dm @@ -9,9 +9,10 @@ var/one_shot = 0 // If true, then the event will not be re-added to the list of available events var/add_to_queue= 1 // If true, add back to the queue of events upon finishing. var/list/role_weights = list() + var/list/min_job_count = list() var/datum/event/event_type -/datum/event_meta/New(var/event_severity, var/event_name, var/datum/event/type, var/event_weight, var/list/job_weights, var/is_one_shot = 0, var/min_event_weight = 0, var/max_event_weight = 0, var/add_to_queue = 1) +/datum/event_meta/New(var/event_severity, var/event_name, var/datum/event/type, var/event_weight, var/list/job_weights, var/is_one_shot = 0, var/min_event_weight = 0, var/max_event_weight = 0, var/add_to_queue = 1, var/list/min_jobs) name = event_name severity = event_severity event_type = type @@ -22,6 +23,9 @@ src.add_to_queue = add_to_queue if(job_weights) role_weights = job_weights + if(min_jobs) + min_job_count = min_jobs + /datum/event_meta/proc/get_weight(var/list/active_with_role) if(!enabled) @@ -40,6 +44,16 @@ return total_weight +/datum/event_meta/proc/minimum_active(var/list/active_with_role) + var/can_fire = TRUE + for(var/role in min_job_count) + if(role in active_with_role) + if(active_with_role[role] < min_job_count[role]) + can_fire = FALSE + break + + return can_fire + /datum/event_meta/no_overmap/get_weight() //these events have overmap equivalents, and shouldn't fire randomly if overmap is used return global.using_map.use_overmap ? 0 : ..() diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 09b624058ca..99783780b08 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -78,6 +78,9 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT if(!EM.enabled) return 0 + if(!(EM.minimum_active(active_with_role))) + return 0 + var/weight = EM.get_weight(active_with_role) var/last_time = last_event_time[EM] if(last_time) diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm index ee4a416ab50..874dca6aea6 100644 --- a/code/modules/events/event_container_vr.dm +++ b/code/modules/events/event_container_vr.dm @@ -2,7 +2,7 @@ #define ASSIGNMENT_AI "AI" #define ASSIGNMENT_CYBORG "Cyborg" #define ASSIGNMENT_ENGINEER "Engineer" -#define ASSIGNMENT_GARDENER "Gardener" +#define ASSIGNMENT_GARDENER "Botanist" #define ASSIGNMENT_JANITOR "Janitor" #define ASSIGNMENT_MEDICAL "Medical" #define ASSIGNMENT_SCIENTIST "Scientist" @@ -30,13 +30,13 @@ // Severity level, event name, even type, base weight, role weights, one shot, min weight, max weight. Last two only used if set and non-zero new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Nothing", /datum/event/nothing, 400), // Bluescreens APCs, but they still work - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 20)), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence, 0, list(ASSIGNMENT_ENGINEER = 10), 1), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20)), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Canister Leak", /datum/event/canister_leak, 10, list(ASSIGNMENT_ENGINEER = 20)), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "APC Damage", /datum/event/apc_damage, 20, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Brand Intelligence",/datum/event/brand_intelligence, 0, list(ASSIGNMENT_ENGINEER = 10), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Camera Damage", /datum/event/camera_damage, 20, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Canister Leak", /datum/event/canister_leak, 10, list(ASSIGNMENT_ENGINEER = 20), min_jobs = list(ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 0, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 2)), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Economic News", /datum/event/economic_event, 300), - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 10), 1), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Lost Carp", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 10), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Hacker", /datum/event/money_hacker, 0, list(ASSIGNMENT_ANY = 4), 1, 10, 25), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Money Lotto", /datum/event/money_lotto, 0, list(ASSIGNMENT_ANY = 1), 1, 5, 15), //new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Mundane News", /datum/event/mundane_news, 300), @@ -47,7 +47,7 @@ // Spawns mice, lizards, or dud spiderlings new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 50, list(ASSIGNMENT_JANITOR = 25), 1), // Rot only weakens walls, not destroy them - new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)), new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 2, list(), 1), ) add_disabled_events(list( @@ -59,33 +59,33 @@ available_events = list( new /datum/event_meta(EVENT_LEVEL_MODERATE, "Nothing", /datum/event/nothing, 1600), // Leaks gas into an unoccupied room. - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Carp School", /datum/event/carp_migration, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)), // Just disables comms for a short while. - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 150, ASSIGNMENT_SECURITY = 120), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Communication Blackout", /datum/event/communications_blackout, 500, list(ASSIGNMENT_AI = 100, ASSIGNMENT_SECURITY = 50), 1), // Just blows out a few lights new /datum/event_meta(EVENT_LEVEL_MODERATE, "Electrical Storm", /datum/event/electrical_storm, 70, list(ASSIGNMENT_ENGINEER = 20, ASSIGNMENT_JANITOR = 150), 1), // This one is just too fun. new /datum/event_meta(EVENT_LEVEL_MODERATE, "Gravity Failure", /datum/event/gravity, 75, list(ASSIGNMENT_ENGINEER = 60), 1), // Temporary power failure, but mitigatead by subgrids - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 0, list(ASSIGNMENT_ENGINEER = 25), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grid Check", /datum/event/grid_check, 0, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)), // Pure RP fun, no mechanical effects. - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ionstorm, 0, list(ASSIGNMENT_AI = 80, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Ion Storm", /datum/event/ionstorm, 0, list(ASSIGNMENT_AI = 80, ASSIGNMENT_CYBORG = 50, ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_SCIENTIST = 5), min_jobs = list(ASSIGNMENT_AI = 1)), // Opens doors in brig. So just RP fun new /datum/event_meta(EVENT_LEVEL_MODERATE, "Prison Break", /datum/event/prison_break, 10, list(ASSIGNMENT_SECURITY = 100), 1), // Radiation, but only in space. - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Rogue Drones", /datum/event/rogue_drone, 0, list(ASSIGNMENT_SECURITY = 20), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Solar Storm", /datum/event/solar_storm, 30, list(ASSIGNMENT_ENGINEER = 40, ASSIGNMENT_SECURITY = 30), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Space Dust", /datum/event/dust, 0, list(ASSIGNMENT_ENGINEER = 20), 1, 0, 50, min_jobs = list(ASSIGNMENT_ENGINEER = 3)), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Virology Breach", /datum/event/prison_break/virology, 0, list(ASSIGNMENT_ENGINEER = 30), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Xenobiology Breach", /datum/event/prison_break/xenobiology, 0, list(ASSIGNMENT_ENGINEER = 30), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Spider Infestation", /datum/event/spider_infestation, 0, list(ASSIGNMENT_SECURITY = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)), //Evil grubs that drain station power slightly - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 10, list(ASSIGNMENT_SCIENTIST = 40), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1, min_jobs = list(ASSIGNMENT_SECURITY = 1, ASSIGNMENT_ENGINEER = 1)), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 25, list(ASSIGNMENT_SCIENTIST = 40), 1), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_ANY = 5), 0), new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 100, list(ASSIGNMENT_ANY = 5), 0), - new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 0, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 3), 1), + new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 0, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)), ) add_disabled_events(list( new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1), @@ -99,11 +99,11 @@ /datum/event_container/major/New() available_events = list( new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 20, list(ASSIGNMENT_ENGINEER = 25), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 20, list(ASSIGNMENT_ENGINEER = 25), 1, min_jobs = list(ASSIGNMENT_ENGINEER = 1)), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 10, list(ASSIGNMENT_ENGINEER = 7, ASSIGNMENT_GARDENER = 2), 1), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1, min_jobs = list(ASSIGNMENT_SECURITY = 3)), new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ANY = 5), 1), - new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1), + new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1, min_jobs = list(ASSIGNMENT_SECURITY = 2)), ) add_disabled_events(list( new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1), diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index e391637f4f7..e51dbf24721 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -186,7 +186,7 @@ var/list/event_last_fired = list() active_with_role["AI"] = 0 active_with_role["Cyborg"] = 0 active_with_role["Janitor"] = 0 - active_with_role["Gardener"] = 0 + active_with_role["Botanist"] = 0 for(var/mob/M in player_list) if(!M.mind || !M.client || M.client.is_afk(10 MINUTES)) // longer than 10 minutes AFK counts them as inactive @@ -227,7 +227,7 @@ var/list/event_last_fired = list() if(M.mind.assigned_role == "Janitor") active_with_role["Janitor"]++ - if(M.mind.assigned_role == "Gardener") - active_with_role["Gardener"]++ + if(M.mind.assigned_role == "Botanist") + active_with_role["Botanist"]++ return active_with_role diff --git a/code/modules/food/food/lunch.dm b/code/modules/food/food/lunch.dm index 81e75fa254e..5879a8e95ac 100644 --- a/code/modules/food/food/lunch.dm +++ b/code/modules/food/food/lunch.dm @@ -6,10 +6,25 @@ var/list/lunchables_lunches_ = list(/obj/item/weapon/reagent_containers/food/sna /obj/item/weapon/reagent_containers/food/snacks/slice/meatpizza/filled, /obj/item/weapon/reagent_containers/food/snacks/slice/mushroompizza/filled, /obj/item/weapon/reagent_containers/food/snacks/slice/vegetablepizza/filled, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice/filled, /obj/item/weapon/reagent_containers/food/snacks/tastybread, + /obj/item/weapon/reagent_containers/food/snacks/bagelplain, + /obj/item/weapon/reagent_containers/food/snacks/bagelsunflower, + /obj/item/weapon/reagent_containers/food/snacks/bagelcheese, + /obj/item/weapon/reagent_containers/food/snacks/bagelraisin, + /obj/item/weapon/reagent_containers/food/snacks/bagelpoppy, + /obj/item/weapon/reagent_containers/food/snacks/croissant, + /obj/item/weapon/reagent_containers/food/snacks/corn_dog, /obj/item/weapon/reagent_containers/food/snacks/liquidfood, + /obj/item/weapon/reagent_containers/food/snacks/liquidprotein, + /obj/item/weapon/reagent_containers/food/snacks/liquidvitamin, /obj/item/weapon/reagent_containers/food/snacks/jellysandwich/cherry, /obj/item/weapon/reagent_containers/food/snacks/tossedsalad, + /obj/item/weapon/reagent_containers/food/snacks/rosesalad, + /obj/item/weapon/reagent_containers/food/snacks/boiledegg, + /obj/item/weapon/reagent_containers/food/snacks/locust_cooked, + /obj/item/weapon/reagent_containers/food/snacks/spicedmeatbun, + /obj/item/weapon/reagent_containers/food/snacks/quicheslice/filled, /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/glucose) var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snacks/donut/plain/jelly, @@ -39,19 +54,50 @@ var/list/lunchables_snacks_ = list(/obj/item/weapon/reagent_containers/food/snac /obj/item/weapon/reagent_containers/food/snacks/watermelonslice, /obj/item/weapon/reagent_containers/food/snacks/slice/applecake/filled, /obj/item/weapon/reagent_containers/food/snacks/slice/pumpkinpie/filled, - /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks) + /obj/item/weapon/reagent_containers/food/snacks/keylimepieslice/filled, + /obj/item/weapon/reagent_containers/food/snacks/browniesslice/filled, + /obj/item/weapon/reagent_containers/food/snacks/skrellsnacks, + /obj/item/weapon/reagent_containers/food/snacks/mint/admints, + /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts, + /obj/item/weapon/reagent_containers/food/snacks/sugarcookie, + /obj/item/weapon/reagent_containers/food/snacks/eggroll, + /obj/item/weapon/reagent_containers/food/snacks/fruitsalad, + /obj/item/weapon/reagent_containers/food/snacks/honeybun, + /obj/item/weapon/reagent_containers/food/snacks/custardbun, + /obj/item/weapon/reagent_containers/food/snacks/honeytoast, + /obj/item/weapon/reagent_containers/food/snacks/cookie, + /obj/item/weapon/reagent_containers/food/snacks/fruitbar, + /obj/item/weapon/reagent_containers/food/snacks/semki, + /obj/item/weapon/reagent_containers/food/snacks/salo, + /obj/item/weapon/reagent_containers/food/snacks/weebonuts, + /obj/item/weapon/reagent_containers/food/snacks/ricecake, + /obj/item/weapon/reagent_containers/food/snacks/packaged/lunacake, + /obj/item/weapon/reagent_containers/food/snacks/packaged/darklunacake, + /obj/item/weapon/reagent_containers/food/snacks/packaged/mochicake, + /obj/item/weapon/reagent_containers/food/snacks/packaged/spacetwinkie + ) var/list/lunchables_drinks_ = list(/obj/item/weapon/reagent_containers/food/drinks/cans/cola, /obj/item/weapon/reagent_containers/food/drinks/cans/waterbottle, + /obj/item/weapon/reagent_containers/food/drinks/cans/decaf_cola, /obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind, /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb, + /obj/item/weapon/reagent_containers/food/drinks/cans/dr_gibb_diet, /obj/item/weapon/reagent_containers/food/drinks/cans/starkist, + /obj/item/weapon/reagent_containers/food/drinks/cans/starkistdecaf, /obj/item/weapon/reagent_containers/food/drinks/cans/space_up, /obj/item/weapon/reagent_containers/food/drinks/cans/lemon_lime, /obj/item/weapon/reagent_containers/food/drinks/cans/iced_tea, /obj/item/weapon/reagent_containers/food/drinks/cans/grape_juice, /obj/item/weapon/reagent_containers/food/drinks/cans/tonic, - /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater) + /obj/item/weapon/reagent_containers/food/drinks/cans/sodawater, + /obj/item/weapon/reagent_containers/food/drinks/cans/gingerale, + /obj/item/weapon/reagent_containers/food/drinks/cans/root_beer, + /obj/item/weapon/reagent_containers/food/drinks/cans/sarsaparilla, + /obj/item/weapon/reagent_containers/food/drinks/cans/straw_cola, + /obj/item/weapon/reagent_containers/food/drinks/cans/apple_cola, + /obj/item/weapon/reagent_containers/food/drinks/cans/lemon_cola + ) // This default list is a bit different, it contains items we don't want var/list/lunchables_drink_reagents_ = list(/datum/reagent/drink/nothing, diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index a5cf92e7061..b33ff1b7bb7 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -1594,16 +1594,6 @@ nutriment_desc = list("noodles" = 2) bitesize = 1 -/obj/item/weapon/reagent_containers/food/snacks/fortunecookie - name = "Fortune cookie" - desc = "A true prophecy in each cookie!" - icon_state = "fortune_cookie" - filling_color = "#E8E79E" - center_of_mass = list("x"=15, "y"=14) - nutriment_amt = 3 - nutriment_desc = list("fortune cookie" = 2) - bitesize = 2 - /obj/item/weapon/reagent_containers/food/snacks/badrecipe name = "Burned mess" desc = "Someone should be demoted from chef for this." @@ -2163,14 +2153,6 @@ . = ..() reagents.add_reagent("slimejelly", 5) -/obj/item/weapon/reagent_containers/food/snacks/mint - name = "mint" - desc = "it is only wafer thin." - icon_state = "mint" - filling_color = "#F2F2F2" - center_of_mass = list("x"=16, "y"=14) - bitesize = 1 - /obj/item/weapon/reagent_containers/food/snacks/plumphelmetbiscuit name = "plump helmet biscuit" desc = "This is a finely-prepared plump helmet biscuit. The ingredients are exceptionally minced plump helmet, and well-minced dwarven wheat flour." @@ -4109,7 +4091,7 @@ /obj/item/weapon/reagent_containers/food/snacks/liquidprotein name = "\improper LiquidProtein Ration" - desc = "A variant of the liquidfood ration, designed for obligate carnivore species. Only barely more appealing than regular liquidfood. Should this be crunchy?" + desc = "A variant of the liquidfood ration, designed for more carnivorous species. Only barely more appealing than regular liquidfood. Should this be crunchy?" icon_state = "liquidprotein" trash = /obj/item/trash/liquidprotein filling_color = "#A8A8A8" @@ -4232,6 +4214,15 @@ . = ..() reagents.add_reagent("bean_protein", 6) +/obj/item/weapon/reagent_containers/food/snacks/cookie + name = "chocolate chip cookie" + desc = "Just like your mother used to make." + filling_color = "#DBC94F" + icon_state = "cookie" + nutriment_amt = 5 + nutriment_desc = list("sweetness" = 2, "cookie" = 1, "chocolate" = 2) + bitesize = 1 + /obj/item/weapon/reagent_containers/food/snacks/sugarcookie name = "sugar cookie" desc = "Just like your little sister used to make." @@ -4241,6 +4232,16 @@ nutriment_desc = list("sweetness" = 4, "cookie" = 1) bitesize = 1 +/obj/item/weapon/reagent_containers/food/snacks/fortunecookie + name = "Fortune cookie" + desc = "A true prophecy in each cookie!" + icon_state = "fortune_cookie" + filling_color = "#E8E79E" + center_of_mass = list("x"=15, "y"=14) + nutriment_amt = 3 + nutriment_desc = list("fortune cookie" = 2) + bitesize = 2 + /obj/item/weapon/reagent_containers/food/snacks/berrymuffin name = "berry muffin" desc = "A delicious and spongy little cake, with berries." @@ -5888,32 +5889,6 @@ //////////////////////////////Candy Vend Items////////////////////////////// //////////////////////////////////////////////////////////////////////////// -/obj/item/weapon/reagent_containers/food/snacks/mint/Initialize() - . = ..() - reagents.add_reagent("mint", 1) - -/obj/item/weapon/reagent_containers/food/snacks/mint/admints - desc = "Spearmint, peppermint's non-festive cousin." - icon = 'icons/obj/food_snacks.dmi' - icon_state = "admint" - -/obj/item/weapon/storage/box/admints - name = "Ad-mints" - desc = "A pack of air fresheners for your mouth." - description_fluff = "Ad-mints earned their name, and reputation when a Major Bill's senior executive attended a meeting at a large a marketing firm and was so astounded by the quality of their complimentary mints, that he immediately bought the company - the mints company, not the ad agency - and began providing 'Ad-mints' on every MBT flight." - icon = 'icons/obj/food_snacks.dmi' - icon_state = "admint_pack" - item_state = "candy" - slot_flags = SLOT_EARS - w_class = 1 - starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/mint/admints = 6) - can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/mint/admints) - use_sound = 'sound/items/drop/paper.ogg' - drop_sound = 'sound/items/drop/wrapper.ogg' - max_storage_space = 6 - foldable = null - trash = /obj/item/trash/admints - /obj/item/weapon/reagent_containers/food/snacks/mint name = "mint" desc = "it is only wafer thin." @@ -5933,12 +5908,11 @@ /obj/item/weapon/storage/box/admints name = "Ad-mints" + desc = "A pack of air fresheners for your mouth." + description_fluff = "Ad-mints earned their name, and reputation when a Major Bill's senior executive attended a meeting at a large a marketing firm and was so astounded by the quality of their complimentary mints, that he immediately bought the company - the mints company, not the ad agency - and began providing 'Ad-mints' on every MBT flight." icon = 'icons/obj/food_snacks.dmi' icon_state = "admint_pack" item_state = "candy" - desc = "A pack of air fresheners for your mouth." - description_fluff = "Ad-mints earned their name, and reputation when a Major Bill's senior executive attended a meeting at a large a marketing firm and was so astounded by the quality of their complimentary mints, that he immediately bought the company - the mints company, not the ad agency - and began providing 'Ad-mints' on every MBT flight." - trash = /obj/item/trash/admints slot_flags = SLOT_EARS w_class = 1 starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/mint/admints = 6) @@ -5947,11 +5921,12 @@ drop_sound = 'sound/items/drop/wrapper.ogg' max_storage_space = 6 foldable = null + trash = /obj/item/trash/admints /obj/item/weapon/reagent_containers/food/snacks/candy name = "\improper Grandma Ellen's Candy Bar" desc = "Now without nuts!" - description_fluff = "Hard candies were banned from many early human colony ships due to the tendency for brittle, sticky chunks to find their way inside vital equipment in zero-G conditions. This only made them all the more popular to new arrivees, and the Grandma Ellen's brand was Tau Ceti's answer to that demand." + description_fluff = "Hard candies were banned from many early human colony ships due to the tendency for brittle, sticky chunks to find their way inside vital equipment in zero-G conditions. This only made them all the more popular to new arrivees, and the Grandpa Elliot's brand was Tau Ceti's answer to that demand." icon = 'icons/obj/food_snacks.dmi' icon_state = "candy" trash = /obj/item/trash/candy @@ -5965,7 +5940,7 @@ . = ..() reagents.add_reagent("sugar", 3) -/obj/item/weapon/reagent_containers/food/snacks/namagashi //ADDITION 04/14/2021 +/obj/item/weapon/reagent_containers/food/snacks/namagashi name = "\improper Ryo-kucha Namagashi" desc = "Sweet Japanese gummy like candy that are just bursting with flavor!" icon = 'icons/obj/food_snacks.dmi' @@ -6035,7 +6010,7 @@ nutriment_desc = list("apricot" = 2, "sugar" = 2, "dates" = 2, "cranberry" = 2, "apple" = 2) bitesize = 6 -/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar/Initialize() +/obj/item/weapon/reagent_containers/food/snacks/fruitbar/Initialize() . = ..() reagents.add_reagent("sugar", 4) @@ -6459,7 +6434,7 @@ . = ..() reagents.add_reagent("doctorsdelight", 5) -////////////////////sol_vend (Mars Mart) (ADDED 04/11/2021)//////////////////////////////////////////////////// +////////////////////sol_vend (Mars Mart)//////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/food/snacks/triton name = "\improper Tidal Gobs" @@ -6594,7 +6569,7 @@ nutriment_amt = 4 bitesize = 1 -////////////////////weeb_vend (Nippon-tan!) (ADDED 04/11/2021)//////////////////////////////////////////////////// +////////////////////weeb_vend (Nippon-tan!)//////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/food/snacks/ricecake name = "rice cake" @@ -6605,7 +6580,7 @@ nutriment_amt = 5 bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/dorayaki //ADDITION 04/14/2021 +/obj/item/weapon/reagent_containers/food/snacks/dorayaki name = "dorayaki" icon = 'icons/obj/food_snacks.dmi' icon_state = "dorayaki" @@ -6614,7 +6589,7 @@ nutriment_amt = 6 bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/daifuku //ADDITION 04/14/2021 +/obj/item/weapon/reagent_containers/food/snacks/daifuku name = "daifuku" icon = 'icons/obj/food_snacks.dmi' icon_state = "daifuku" @@ -6623,16 +6598,6 @@ nutriment_amt = 6 bitesize = 2 -///obj/item/weapon/reagent_containers/food/snacks/pocky (Moved to chewables) -// name = "pockys" -// icon = 'icons/obj/food_snacks.dmi' -// icon_state = "pockys" -// desc = "A bundle of chocolate-coated bisquit sticks." -// trash = /obj/item/trash/pocky -// nutriment_desc = list("chocolate" = 4, "biscuit" = 1) -// nutriment_amt = 5 -// bitesize = 2 - /obj/item/weapon/reagent_containers/food/snacks/weebonuts name = "\improper Red Alert Nuts!" icon = 'icons/obj/food_snacks.dmi' @@ -6675,7 +6640,7 @@ .=..() reagents.add_reagent("sprinkles", 10) -/obj/item/weapon/reagent_containers/food/snacks/goma_dango //ADDITION 04/14/2021 +/obj/item/weapon/reagent_containers/food/snacks/goma_dango name = "\improper Goma dango" icon = 'icons/obj/food_snacks.dmi' icon_state = "goma_dango" @@ -6685,7 +6650,7 @@ nutriment_amt = 5 bitesize = 2 -/obj/item/weapon/reagent_containers/food/snacks/hanami_dango //ADDITION 04/14/2021 +/obj/item/weapon/reagent_containers/food/snacks/hanami_dango name = "\improper Hanami dango" icon = 'icons/obj/food_snacks.dmi' icon_state = "hanami_dango" @@ -6696,7 +6661,7 @@ nutriment_amt = 5 bitesize = 2 -////////////////////ancient_vend (Hot Food - Old) (ADDED 04/11/2021)//////////////////////////////////////////////////// +////////////////////ancient_vend (Hot Food - Old)//////////////////////////////////////////////////// /obj/item/weapon/reagent_containers/food/snacks/old name = "master old-food" diff --git a/code/modules/food/food/snacks_vr.dm b/code/modules/food/food/snacks_vr.dm index dce6f234cfa..77eeef4c011 100644 --- a/code/modules/food/food/snacks_vr.dm +++ b/code/modules/food/food/snacks_vr.dm @@ -631,11 +631,11 @@ /obj/item/weapon/reagent_containers/food/snacks/grub_pink name = "pink candy grub" - desc = "A thoroughly candied grub, it smells of raspberry." + desc = "A thoroughly candied grub, it smells of cherry." icon = 'icons/obj/food_vr.dmi' icon_state = "grub_pink" nutriment_amt = 5 - nutriment_desc = list("raspberry" = 4, "goo" = 1) + nutriment_desc = list("cherry" = 4, "goo" = 1) /obj/item/weapon/reagent_containers/food/snacks/grub_pink/Initialize() . = ..() diff --git a/code/modules/food/recipes_microwave_vr.dm b/code/modules/food/recipes_microwave_vr.dm index b2f8fa26300..329c3e1198f 100644 --- a/code/modules/food/recipes_microwave_vr.dm +++ b/code/modules/food/recipes_microwave_vr.dm @@ -160,7 +160,7 @@ result = /obj/item/weapon/storage/box/wings/bucket /datum/recipe/grub_pink - fruit = list("cherry" = 1) + fruit = list("cherries" = 1) items = list( /obj/item/weapon/reagent_containers/food/snacks/grub ) diff --git a/code/modules/food/recipes_oven.dm b/code/modules/food/recipes_oven.dm index 4b92b1e3154..7b8bb2e46ed 100644 --- a/code/modules/food/recipes_oven.dm +++ b/code/modules/food/recipes_oven.dm @@ -299,7 +299,7 @@ /obj/item/weapon/reagent_containers/food/snacks/dough, /obj/item/weapon/reagent_containers/food/snacks/chocolatebar ) - result = /obj/item/weapon/reagent_containers/food/snacks/cookiesnack + result = /obj/item/weapon/reagent_containers/food/snacks/cookie result_quantity = 4 reagent_mix = RECIPE_REAGENT_REPLACE @@ -319,7 +319,6 @@ result = /obj/item/weapon/reagent_containers/food/snacks/poppypretzel result_quantity = 2 - /datum/recipe/cracker appliance = OVEN reagents = list("sodiumchloride" = 1) diff --git a/code/modules/games/wizoff.dm b/code/modules/games/wizoff.dm index 11cf1797352..2f87f15a903 100644 --- a/code/modules/games/wizoff.dm +++ b/code/modules/games/wizoff.dm @@ -55,3 +55,49 @@ "U9: Jaunt" ) +/obj/item/weapon/book/manual/wizzoffguide + name = "WizOff Guide" + icon = 'icons/obj/playing_cards.dmi' + icon_state ="wizoff_guide" + item_state = "book16" + author = "Donk Co." + title = "WizOff Guide" + drop_sound = 'sound/items/drop/paper.ogg' + pickup_sound = 'sound/items/pickup/paper.ogg' + +/obj/item/weapon/book/manual/wizzoffguide/New() + ..() + dat = {" + + + + + + +

Wiz-Off Player Guide

+

How to play Wiz-Off!

+

The wizard themed card game

+

Each player draws 5 cards. There are five rounds. Each round,
+ a player selects a card to play, and the winner is selected
+ based on the following rules:

+
    +
  1. Offensive (O) beats Utility (U)!
  2. +
  3. Defensive (D) beats Offensive (O)!
  4. +
  5. Utility (U) beats Defensive (D)!
  6. +
  7. If both players play the same type of spell,
    + the higher number wins!
  8. +
+

The player who wins the most of the 5 rounds wins the game!
+ Now get ready to battle for the fate of the universe: Wiz-Off!

+ + + + "} \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/death_vr.dm b/code/modules/mob/living/carbon/human/death_vr.dm index 47d5b885895..24bae5c7c2b 100644 --- a/code/modules/mob/living/carbon/human/death_vr.dm +++ b/code/modules/mob/living/carbon/human/death_vr.dm @@ -1,6 +1,7 @@ /mob/living/carbon/human/gib() //Drop the NIF, they're expensive, why not recover them? + release_vore_contents(silent = TRUE) if(nif) var/obj/item/device/nif/deadnif = nif //Unimplant removes the reference on the mob if(!deadnif.gib_nodrop) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5c3cfef731f..26e5963958d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -335,11 +335,6 @@ log_runtime(EXCEPTION("Warning: human/Topic was called with item [href_list["item"]], but the item Topic is deprecated!")) // handle_strip(href_list["item"],usr) - // VOREStation Start - if(href_list["ooc_notes"]) - src.Examine_OOC() - // VOREStation End - if (href_list["criminal"]) if(hasHUD(usr,"security")) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 3c2e0935801..41117e9fd25 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -480,3 +480,23 @@ /datum/trait/neutral/thinner/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.update_transform() + +/datum/trait/neutral/dominate_predator + name = "Dominate Predator" + desc = "Allows you to attempt to take control of a predator while inside of their belly." + cost = 0 + custom_only = FALSE + +/datum/trait/neutral/dominate_predator/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/proc/dominate_predator + +/datum/trait/neutral/dominate_prey + name = "Dominate Prey" + desc = "Connect to and dominate the brain of your prey." + cost = 0 + custom_only = FALSE + +/datum/trait/neutral/dominate_predator/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.verbs |= /mob/living/proc/dominate_prey diff --git a/code/modules/mob/living/living_defines_vr.dm b/code/modules/mob/living/living_defines_vr.dm index 684c0c08a16..06eeee7ac37 100644 --- a/code/modules/mob/living/living_defines_vr.dm +++ b/code/modules/mob/living/living_defines_vr.dm @@ -1,5 +1,6 @@ /mob - var/muffled = 0 // Used by muffling belly + var/muffled = FALSE // Used by muffling belly + var/forced_psay = FALSE // If true will prevent the user from speaking with normal say/emotes, and instead redirect these to a private speech mode with their predator. /mob/living var/ooc_notes = null diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 21f0e7df2ca..d10a1d3f0d7 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -155,7 +155,11 @@ var/list/channel_to_radio_key = new if(stat == DEAD && !forbid_seeing_deadchat) return say_dead(message) return - + //VOREStation Addition Start + if(forced_psay) + psay(message) + return + //VOREStation Addition End //Parse the mode var/message_mode = parse_message_mode(message, "headset") diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index 6f3cabe4afa..c46031a69a3 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -32,8 +32,6 @@ // VOREStation Edit: Start . += attempt_vr(src,"examine_bellies_borg",args) //VOREStation Edit - if(ooc_notes) - . += "OOC Notes: \[View\]" // VOREStation Edit: End . += "*---------*" diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 815ba3a598b..9589cc0246f 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -783,6 +783,26 @@ playsound(src.loc, 'sound/effects/clang2.ogg', 10, 1) visible_message("[H] taps [src].") return + if(I_GRAB) + if(is_vore_predator(H) && H.devourable && src.feeding && src.devourable) + var/switchy = tgui_alert(H, "Do you wish to eat [src] or feed yourself to them?", "Feed or Eat",list("Eat","Feed", "Nevermind!")) + switch(switchy) + if("Nevermind!") + return + if("Eat") + feed_grabbed_to_self(H, src) + return + if("Feed") + H.feed_self_to_grabbed(H, src) + return + if(is_vore_predator(H) && src.devourable) + if(tgui_alert(H, "Do you wish to eat [src]?", "Eat?",list("Yes!", "Nevermind!")) == "Yes!") + feed_grabbed_to_self(H, src) + return + if(H.devourable && src.feeding) + if(tgui_alert(H, "Do you wish to feed yourself to [src]?", "Feed?",list("Yes!", "Nevermind!")) == "Yes!") + H.feed_self_to_grabbed(H, src) + return //Robots take half damage from basic attacks. /mob/living/silicon/robot/attack_generic(var/mob/user, var/damage, var/attack_message) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm index 4cc14a1caae..0b27faa6c8d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm @@ -137,7 +137,7 @@ if(post_restless_tired) post_restless_tired-- return - if(!restless && prob(0.5)) + if(prob(0.5)) handle_restless() /mob/living/simple_mob/vore/overmap/spacewhale/proc/handle_restless() @@ -149,9 +149,7 @@ ai_holder.base_wander_delay = initial(ai_holder.base_wander_delay) ai_holder.wander = FALSE post_restless_tired = 250 - if(child_om_marker.known == TRUE) - child_om_marker.icon_state = "space_whale" - visible_message("\The [child_om_marker.name] settles down.") + update_icon() else restless = TRUE hazard_pickup_chance *= 1.5 @@ -159,9 +157,18 @@ movement_cooldown = 1 ai_holder.base_wander_delay = 2 ai_holder.wander_delay = 2 - if(child_om_marker.known == TRUE) + ai_holder.wander = TRUE + update_icon() + +/mob/living/simple_mob/vore/overmap/spacewhale/update_icon() + . = ..() + if(child_om_marker.known == TRUE) + if(restless) child_om_marker.icon_state = "space_whale_restless" visible_message("\The [child_om_marker.name] ripples excitedly.") + else + child_om_marker.icon_state = "space_whale" + visible_message("\The [child_om_marker.name] settles down.") /datum/ai_holder/simple_mob/melee/spacewhale hostile = TRUE @@ -182,8 +189,6 @@ if(stance == STANCE_IDLE) W.hazard_pickup_chance = initial(W.hazard_pickup_chance) W.hazard_drop_chance = initial(W.hazard_drop_chance) - W.movement_cooldown = 50 - base_wander_delay = 50 W.restless = FALSE W.handle_restless() W.movement_cooldown = initial(W.movement_cooldown) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm index b7f02e2833f..df106b4e1d3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/cookiegirl.dm @@ -16,7 +16,7 @@ melee_damage_upper = 5 meat_amount = 10 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/cookiesnack + meat_type = /obj/item/weapon/reagent_containers/food/snacks/cookie say_list_type = /datum/say_list/cookiegirl ai_holder_type = /datum/ai_holder/simple_mob/passive/cookiegirl diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm new file mode 100644 index 00000000000..8b38d1965ee --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm @@ -0,0 +1,372 @@ +///// A mob that gets used when prey dominate predators. Will automatically delete itself if it's not inside a mob. + +/mob/living/dominated_brain + name = "dominated brain" + desc = "Someone who has taken a back seat within their own body." + icon = 'icons/obj/surgery.dmi' + icon_state = "brain1" + forced_psay = TRUE + var/mob/living/prey_body //The body of the person who dominated the brain + var/prey_ckey //The ckey of the person who dominated the brain + var/prey_name //In case the body is missing. ;3c + var/list/prey_langs = list() + var/mob/living/pred_body //The body of the person who was dominated + var/pred_ckey //The ckey of the person who was dominated + var/pred_ooc_notes + var/prey_ooc_notes + +/mob/living/dominated_brain/New(loc, var/mob/living/pred, preyname, var/mob/living/prey) + . = ..() + prey_name = preyname + if(prey) + prey_body = prey + pred_body = pred + +/mob/living/dominated_brain/Initialize() + if(!isliving(loc)) + qdel(src) + return + . = ..() + lets_register_our_signals() + verbs |= /mob/living/dominated_brain/proc/resist_control + +/mob/living/dominated_brain/Life() + . = ..() + if(!isliving(loc)) + qdel(src) + if(!ckey) + qdel(src) + +/mob/living/dominated_brain/say_understands(var/mob/other, var/datum/language/speaking = null) + if(pred_body.say_understands(other, speaking)) + return TRUE + else return FALSE + +/mob/living/dominated_brain/proc/lets_register_our_signals() + if(prey_body) + RegisterSignal(prey_body, COMSIG_PARENT_QDELETING, .proc/prey_was_deleted, TRUE) + RegisterSignal(pred_body, COMSIG_PARENT_QDELETING, .proc/pred_was_deleted, TRUE) + +/mob/living/dominated_brain/proc/lets_unregister_our_signals() + prey_was_deleted() + pred_was_deleted() + +/mob/living/dominated_brain/proc/prey_was_deleted() + if(prey_body) + UnregisterSignal(prey_body, COMSIG_PARENT_QDELETING) + prey_body = null + +/mob/living/dominated_brain/proc/pred_was_deleted() + if(pred_body) + UnregisterSignal(pred_body, COMSIG_PARENT_QDELETING) + pred_body = null + +/mob/living/dominated_brain/Destroy() + lets_unregister_our_signals() + . = ..() + +/mob/living/dominated_brain/process_resist() + //Resisting control by an alien mind. + if(pred_body.ckey == pred_ckey) + dominate_predator() + return + if(pred_ckey == ckey && pred_body.prey_controlled) + if(tgui_alert(src, "Do you want to wrest control over your body back from \the [prey_name]?", "Regain Control",list("No","Yes")) != "Yes") + return + + to_chat(src, "You begin to resist \the [prey_name]'s control!!!") + to_chat(pred_body, "You feel the captive mind of [src] begin to resist your control.") + + if(do_after(src, 10 SECONDS, exclusive = TRUE)) + restore_control() + else + to_chat(src, "Your attempt to regain control has been interrupted...") + to_chat(pred_body, "The dominant sensation fades away...") + else + to_chat(src, "\The [pred_body] is already dominated, and cannot be controlled at this time.") + ..() + +/mob/living/dominated_brain/proc/restore_control(ask = TRUE) + + if(ask && disconnect_time || client && ((client.inactivity / 10) / 60 > 10)) + if(tgui_alert(src, "Your predator's mind does not seem to be active presently. Releasing control in this state may leave you stuck in whatever state you find yourself in. Are you sure?", "Release Control",list("No","Yes")) != "Yes") + return + var/mob/living/prey_goes_here + + if(prey_body && prey_body.loc.loc == pred_body) //The prey body exists and is here, let's handle the prey! + + prey_goes_here = prey_body + + else if(prey_body) //It exists, but it's not here, let's spawn them a temporary home. + var/mob/living/dominated_brain/ndb = new /mob/living/dominated_brain(pred_body, pred_body, prey_name, prey_body) + ndb.name = prey_name + ndb.prey_ckey = src.prey_ckey + ndb.pred_ckey = src.pred_ckey + + prey_goes_here = ndb + prey_goes_here.real_name = src.prey_name + src.languages -= src.temp_languages + prey_goes_here.languages |= src.prey_langs + prey_goes_here.ooc_notes = prey_ooc_notes + prey_goes_here.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness + + + else //The prey body does not exist, let's put them in the back seat instead! + var/mob/living/dominated_brain/ndb = new /mob/living/dominated_brain(pred_body, pred_body, prey_name) + ndb.name = prey_name + ndb.prey_ckey = src.prey_ckey + ndb.pred_ckey = src.pred_ckey + + prey_goes_here = ndb + src.languages -= src.temp_languages + prey_goes_here.languages |= src.prey_langs + prey_goes_here.real_name = src.prey_name + prey_goes_here.ooc_notes = prey_ooc_notes + + /////////////////// + + // Handle Pred + pred_body.verbs -= /mob/proc/release_predator + + //Now actually put the people in the mobs + prey_goes_here.ckey = src.prey_ckey + pred_body.ckey = src.pred_ckey + pred_body.ooc_notes = pred_ooc_notes + log_and_message_admins("[pred_body] is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].") + pred_body.absorb_langs() + pred_body.prey_controlled = FALSE + qdel(src) + +/mob/living/proc/absorb_langs() //This should be called on the predator in the exchange + var/list/langlist = list() + + languages -= temp_languages + LAZYCLEARLIST(src.temp_languages) + src.temp_languages = list() + for(var/mob/living/L in contents) + if(istype(L,/mob/living/dominated_brain)) + if(L.ckey) + langlist |= L.languages + for(var/b in vore_organs) + for(var/mob/living/L in b) + if(isliving(L)) + if(L.ckey) + langlist |= L.languages + if(langlist.len) + langlist -= languages + temp_languages |= langlist + languages |= langlist + +//Welcome to the adapted borer code. +/mob/proc/dominate_predator() + set category = "Abilities" + set name = "Dominate Predator" + set desc = "Connect to and dominate the brain of your predator." + + var/mob/living/pred + var/mob/living/prey = src + if(isbelly(prey.loc)) + pred = loc.loc + else if(isliving(prey.loc)) + pred = loc + else + to_chat(prey, "You are not inside anyone.") + return + + if(prey.stat == DEAD) + to_chat(prey, "You cannot do that in your current state.") + return + + if(!pred.ckey) + to_chat(prey, "\The [pred] isn't able to be dominated.") + return + if(prey.prey_controlled) + to_chat(prey, "You are already controlling someone, you can't control anyone else at this time.") + return + if(pred.prey_controlled) + to_chat(prey, "\The [pred] is already dominated, and cannot be controlled at this time.") + return + if(ishuman(pred)) + var/mob/living/carbon/human/h = pred + if(h.resleeve_lock && ckey != h.resleeve_lock) + to_chat(src, "\The [h] cannot be impersonated!") + return + if(tgui_alert(prey, "You are attempting to take over [pred], are you sure? Ensure that their preferences align with this kind of play.", "Take Over Predator",list("No","Yes")) != "Yes") + return + to_chat(prey, "You attempt to exert your control over \the [pred]...") + log_admin("[key_name_admin(prey)] attempted to take over [pred].") + if(tgui_alert(pred, "\The [prey] has elected to attempt to take control of you. Is this something you will allow to happen?", "Allow Prey Domination",list("No","Yes")) != "Yes") + to_chat(prey, "\The [pred] declined your request for control.") + return + if(tgui_alert(pred, "Are you sure? If you should decide to revoke this, you will have the ability to do so in your 'Abilities' tab.", "Allow Prey Domination",list("No","Yes")) != "Yes") + return + to_chat(pred, "You can feel the will of another overwriting your own, control of your body being sapped away from you...") + to_chat(prey, "You can feel the will of your host diminishing as you exert your will over them!") + if(!do_after(prey, 10 SECONDS, exclusive = TRUE)) + to_chat(prey, "Your attempt to regain control has been interrupted...") + to_chat(pred, "The dominant sensation fades away...") + return + + to_chat(prey, "You plunge your conciousness into \the [pred], assuming control over their very body, leaving your own behind within \the [pred]'s [loc].") + to_chat(pred, "You feel your body move on its own, as you are pushed to the background, and an alien consciousness displaces yours.") + var/mob/living/dominated_brain/pred_brain + var/delete_source = FALSE + if(istype(prey, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/punished_prey = prey + if(punished_prey.prey_body) + pred_brain = new /mob/living/dominated_brain(pred, pred, name, punished_prey.prey_body) + else + pred_brain = new /mob/living/dominated_brain(pred, pred, name) //We have to play musical chairs with 3 bodies, or everyone gets d/ced + delete_source = TRUE + else + pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey) + + pred_brain.prey_ooc_notes = prey.ooc_notes + pred_brain.pred_ooc_notes = pred.ooc_notes + pred_brain.name = pred.name + var/list/preylangs = list() + preylangs |= prey.languages + preylangs -= prey.temp_languages + pred_brain.prey_langs |= preylangs + pred_brain.prey_ckey = prey.ckey + pred_brain.pred_ckey = pred.ckey + pred_brain.pred_body.absorb_langs() + pred.ooc_notes = pred_brain.prey_ooc_notes + + pred.verbs |= /mob/proc/release_predator + + //Now actually put the people in the mobs + pred_brain.ckey = pred_brain.pred_ckey + pred_brain.real_name = pred.real_name + pred.ckey = pred_brain.prey_ckey + pred.prey_controlled = TRUE + log_and_message_admins("[pred] is now controlled by [pred.ckey], they were taken over via prey domination, and were originally controlled by [pred_brain.pred_ckey].") + if(delete_source) + qdel(prey) + +/mob/proc/release_predator() + set category = "Abilities" + set name = "Restore Control" + set desc = "Release control of your predator's body." + + for(var/I in contents) + if(istype(I, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/db = I + if(db.ckey == db.pred_ckey) + to_chat(src, "You ease off of your control, releasing \the [db].") + to_chat(db, "You feel the alien presence fade, and restore control of your body to you of their own will...") + db.restore_control() + return + else + continue + to_chat(src, "You haven't been taken over, and shouldn't have this verb. I'll clean that up for you. Report this on the github, it is a bug.") + verbs -= /mob/proc/release_predator + +/mob/living/dominated_brain/proc/resist_control() + set category = "Abilities" + set name = "Resist Control" + set desc = "Attempt to resist control." + if(pred_body.ckey == pred_ckey) + dominate_predator() + return + if(pred_ckey == ckey && pred_body.prey_controlled) + to_chat(src, "You begin to resist \the [prey_name]'s control!!!") + to_chat(pred_body, "You feel the captive mind of [src] begin to resist your control.") + + if(do_after(src, 10 SECONDS, exclusive = TRUE)) + restore_control() + else + to_chat(src, "Your attempt to regain control has been interrupted...") + to_chat(pred_body, "The dominant sensation fades away...") + else + to_chat(src, "\The [pred_body] is already dominated, and cannot be controlled at this time.") + +/mob/living/proc/dominate_prey() + set category = "Abilities" + set name = "Dominate Prey" + set desc = "Connect to and dominate the brain of your prey." + + var/list/possible_mobs = list() + for(var/obj/belly/B in src.vore_organs) + for(var/mob/living/L in B) + if(isliving(L) && L.ckey) + possible_mobs |= L + else + continue + if(!possible_mobs) + to_chat(src, "There are no valid targets inside of you.") + return + var/input = tgui_input_list(src, "Select a mob to dominate:", "Dominate Prey", possible_mobs) + if(!input) + return + var/mob/living/M = input + if(tgui_alert(src, "You selected [M] to attempt to dominate. Are you sure?", "Dominate Prey",list("No","Yes")) != "Yes") + return + log_admin("[key_name_admin(src)] offered to use dominate prey on [M] ([M.ckey]).") + to_chat(src, "Attempting to dominate and gather \the [M]'s mind...") + if(tgui_alert(M, "\The [src] has elected collect your mind into their own. Is this something you will allow to happen?", "Allow Dominate Prey",list("No","Yes")) != "Yes") + to_chat(src, "\The [M] has declined your Dominate Prey attempt.") + return + if(tgui_alert(M, "Are you sure? You can only undo this while your body is inside of [src]. (You can resist, or use the resist verb in the abilities tab)", "Allow Dominate Prey",list("No","Yes")) != "Yes") + to_chat(src, "\The [M] has declined your Dominate Prey attempt.") + return + to_chat(M, "You can feel the will of another pulling you away from your body...") + to_chat(src, "You can feel the will of your prey diminishing as you gather them!") + + if(!do_after(src, 10 SECONDS, exclusive = TRUE)) + to_chat(M, "The alien presence fades, and you are left along in your body...") + to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.") + return + if(!isbelly(M.loc)) + to_chat(M, "The alien presence fades, and you are left along in your body...") + to_chat(src, "Your attempt to gather [M]'s mind has been interrupted.") + return + + var/mob/living/dominated_brain/db = new /mob/living/dominated_brain(src, src, M.name, M) + + + db.name = M.name + db.prey_ckey = M.ckey + db.pred_ckey = src.ckey + + + db.real_name = M.real_name + + M.languages -= M.temp_languages + db.languages |= M.languages + db.ooc_notes = M.ooc_notes + db.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness + + absorb_langs() + + db.ckey = db.prey_ckey + log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their original body.") + to_chat(src, "You feel your mind expanded as [M] is incorporated into you.") + to_chat(M, "Your mind is gathered into \the [src], becoming part of them...") + +/mob/living/dominated_brain/proc/cease_this_foolishness() + set category = "Abilities" + set name = "Return to Body" + set desc = "If your body is inside of your predator still, attempts to re-insert yourself into it." + + if(prey_body && prey_body.loc.loc == pred_body) + to_chat(src, "You exert your will and attempt to return to yout body!!!") + to_chat(pred_body, "\The [src] resists your hold and attempts to return to their body!") + if(do_after(src, 10 SECONDS, exclusive = TRUE)) + if(prey_body && prey_body.loc.loc == pred_body) + + prey_body.ckey = prey_ckey + pred_body.absorb_langs() + to_chat(src, "Your connection to [pred_body] fades, and you awaken back in your own body!") + to_chat(pred_body, "You feel as though a piece of yourself is missing, as \the [src] returns to their body.") + log_admin("[src] ([src.ckey]) has returned to their body, [prey_body].") + qdel(src) + else + to_chat(src, "Your attempt to regain your body has been interrupted...") + else + to_chat(src, "Your attempt to regain your body has been interrupted...") + else if(prey_body) + to_chat(src, "You can sense your body... but it is not contained within [pred_body]... You cannot return to it at this time.") + else + to_chat(src, "Your body seems to no longer exist, so, you cannot return to it.") + verbs -= /mob/living/dominated_brain/proc/cease_this_foolishness diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm index d3ba6eb0b86..8f91e3d80a1 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/morph/morph.dm @@ -264,8 +264,8 @@ return var/list/possible_mobs = list() for(var/obj/belly/B in src.vore_organs) - for(var/mob/living/carbon/human/H in B) - if(ishuman(H) && H.ckey) + for(var/mob/living/H in B) + if( (ishuman(H) || isrobot(H)) && H.ckey ) possible_mobs += H else continue @@ -276,9 +276,11 @@ M = input if(!M) return - if(M.resleeve_lock && ckey != M.resleeve_lock) - to_chat(src, "\The [M] cannot be impersonated!") - return + // Adding a ishuman check here, since silicon mobs don't have a resleeve_lock from what I can tell. + if(ishuman(M)) + if(M.resleeve_lock && ckey != M.resleeve_lock) + to_chat(src, "\The [M] cannot be impersonated!") + return if(tgui_alert(src, "You selected [M] to attempt to take over. Are you sure?", "Take Over Prey",list("No","Yes")) == "Yes") log_admin("[key_name_admin(src)] offered [M] to swap bodies as a morph.") if(tgui_alert(M, "\The [src] has elected to attempt to take over your body and control you. Is this something you will allow to happen?", "Allow Morph To Take Over",list("No","Yes")) == "Yes") diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index c30d256c596..d51d048da18 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -4,12 +4,22 @@ /mob/verb/whisper(message as text) set name = "Whisper" set category = "IC" + //VOREStation Addition Start + if(forced_psay) + psay(message) + return + //VOREStation Addition End usr.say(message,whispering=1) /mob/verb/say_verb(message as text) set name = "Say" set category = "IC" + //VOREStation Addition Start + if(forced_psay) + psay(message) + return + //VOREStation Addition End set_typing_indicator(FALSE) usr.say(message) @@ -21,6 +31,11 @@ if(say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return + //VOREStation Addition Start + if(forced_psay) + pme(message) + return + //VOREStation Addition End //VOREStation Edit Start if(muffled) @@ -63,6 +78,15 @@ else if(universal_speak || universal_understand) return TRUE + //VOREStation Addition Start + if(isliving(src)) + var/mob/living/L = src + if(isbelly(L.loc) && L.absorbed) + var/mob/living/P = L.loc.loc + if(P.say_understands(other, speaking)) + return TRUE + //VOREStation Addition End + //Languages are handled after. if(!speaking) if(!other) diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 8b06163590c..59f4f47825f 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -10,6 +10,11 @@ if(say_disabled) //This is here to try to identify lag problems to_chat(usr, "Speech is currently admin-disabled.") return + //VOREStation Addition Start + if(forced_psay) + pme(message) + return + //VOREStation Addition End message = sanitize_or_reflect(message,src) //VOREStation Edit - Reflect too-long messages (within reason) if(!message) @@ -26,6 +31,12 @@ to_chat(src, "You are unable to emote.") return + //VOREStation Addition Start + if(forced_psay) + pme(message) + return + //VOREStation Addition End + var/muzzled = is_muzzled() if(m_type == 2 && muzzled) return @@ -99,3 +110,163 @@ to_chat(user,message) to_chat(user, "^ This message was NOT SENT ^ -- It was [length] characters, and the limit is [MAX_MESSAGE_LEN]. It would fit in [posts] separate messages.") #undef MAX_HUGE_MESSAGE_LEN + +///// PSAY ///// + +/mob/verb/psay(message as text|null) + set category = "IC" + set name = "Psay" + set desc = "Talk to people affected by complete absorbed or dominate predator/prey." + + if (src.client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, "You cannot speak in IC (muted).") + return + if (!message) + message = input(usr, "Type a message to say.","Psay") as text|null + message = sanitize_or_reflect(message,src) + if (!message) + return + message = capitalize(message) + if (stat == DEAD) + return say_dead(message) + if(!isliving(src)) + forced_psay = FALSE + say(message) + var/f = FALSE //did we find someone to send the message to other than ourself? + var/mob/living/pb //predator body + var/mob/living/M = src + if(istype(M, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/db = M + if(db.loc != db.pred_body) + to_chat(db, "You aren't inside of a brain anymore!!!") + qdel(db) //Oh no, dominated brains shouldn't exist outside of the body, so if we got here something went very wrong. + return + else + pb = db.pred_body + to_chat(pb, "The captive mind of \the [M] thinks, \"[message]\"") //To our pred if dominated brain + f = TRUE + else if(M.absorbed && isbelly(M.loc)) + pb = M.loc.loc + to_chat(pb, "\The [M] thinks, \"[message]\"") //To our pred if absorbed + f = TRUE + + if(pb) //We are prey, let's do the prey thing. + + for(var/I in pb.contents) + if(istype(I, /mob/living/dominated_brain) && I != M) + var/mob/living/dominated_brain/db = I + to_chat(db, "The captive mind of \the [M] thinks, \"[message]\"") //To any dominated brains in the pred + f = TRUE + for(var/B in pb.vore_organs) + for(var/mob/living/L in B) + if(L.absorbed && L != M && L.ckey) + to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people in the pred + f = TRUE + + //Let's also check and see if there's anyone inside of us to send the message to. + for(var/I in M.contents) + if(istype(I, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/db = I + to_chat(db, "\The [M] thinks, \"[message]\"") //To any dominated brains inside us + f = TRUE + for(var/B in M.vore_organs) + for(var/mob/living/L in B) + if(L.absorbed) + to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people inside us + f = TRUE + + if(f) //We found someone to send the message to + if(pb) + to_chat(M, "You think \"[message]\"") //To us if we are the prey + else + to_chat(M, "You think \"[message]\"") //To us if we are the pred + for (var/mob/G in player_list) + if (istype(G, /mob/new_player)) + continue + else if(G.stat == DEAD && G.is_preference_enabled(/datum/client_preference/ghost_ears)) + to_chat(G, "\The [M] thinks, \"[message]\"") + log_say(message,M) + else //There wasn't anyone to send the message to, pred or prey, so let's just say it instead and correct our psay just in case. + M.forced_psay = FALSE + M.say(message) + +///// PME ///// + +/mob/verb/pme(message as text|null) + set category = "IC" + set name = "Pme" + set desc = "Emote to people affected by complete absorbed or dominate predator/prey." + + if (src.client) + if(client.prefs.muted & MUTE_IC) + to_chat(src, "You cannot speak in IC (muted).") + return + if (!message) + message = input(usr, "Type a message to emote.","Pme") as text|null + message = sanitize_or_reflect(message,src) + if (!message) + return + if (stat == DEAD) + return say_dead(message) + if(!isliving(src)) + forced_psay = FALSE + me_verb(message) + var/f = FALSE //did we find someone to send the message to other than ourself? + var/mob/living/pb //predator body + var/mob/living/M = src + if(istype(M, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/db = M + if(db.loc != db.pred_body) + to_chat(db, "You aren't inside of a brain anymore!!!") + qdel(db) //Oh no, dominated brains shouldn't exist outside of the body, so if we got here something went very wrong. + return + else + pb = db.pred_body + to_chat(pb, "\The [M] [message]") //To our pred if dominated brain + f = TRUE + + else if(M.absorbed && isbelly(M.loc)) + pb = M.loc.loc + to_chat(pb, "\The [M] [message]") //To our pred if absorbed + f = TRUE + + if(pb) //We are prey, let's do the prey thing. + + for(var/I in pb.contents) + if(istype(I, /mob/living/dominated_brain) && I != M) + var/mob/living/dominated_brain/db = I + to_chat(db, "\The [M] [message]") //To any dominated brains in the pred + f = TRUE + for(var/B in pb.vore_organs) + for(var/mob/living/L in B) + if(L.absorbed && L != M && L.ckey) + to_chat(L, "\The [M] [message]") //To any absorbed people in the pred + f = TRUE + + //Let's also check and see if there's anyone inside of us to send the message to. + for(var/I in M.contents) + if(istype(I, /mob/living/dominated_brain)) + var/mob/living/dominated_brain/db = I + to_chat(db, "\The [M] [message]") //To any dominated brains inside us + f = TRUE + for(var/B in M.vore_organs) + for(var/mob/living/L in B) + if(L.absorbed) + to_chat(L, "\The [M] [message]") //To any absorbed people inside us + f = TRUE + + if(f) //We found someone to send the message to + if(pb) + to_chat(M, "\The [M] [message]") //To us if we are the prey + else + to_chat(M, "\The [M] [message]") //To us if we are the pred + for (var/mob/G in player_list) + if (istype(G, /mob/new_player)) + continue + else if(G.stat == DEAD && G.is_preference_enabled(/datum/client_preference/ghost_ears)) + to_chat(G, "\The [M] [message]") + log_say(message,M) + else //There wasn't anyone to send the message to, pred or prey, so let's just emote it instead and correct our psay just in case. + M.forced_psay = FALSE + M.me_verb(message) diff --git a/code/modules/pda/pda.dm b/code/modules/pda/pda.dm index bda75db610b..a19552d3681 100644 --- a/code/modules/pda/pda.dm +++ b/code/modules/pda/pda.dm @@ -146,10 +146,11 @@ var/global/list/obj/item/device/pda/PDAs = list() SPECIES_TESHARI = 'icons/mob/species/teshari/pda_wrist.dmi', SPECIES_VR_TESHARI = 'icons/mob/species/teshari/pda_wrist.dmi', ) - if(7) icon = 'icons/obj/pda_clam.dmi' //VOREStation edit + if(7) icon = 'icons/obj/pda_slider.dmi' //VOREStation edit else icon = 'icons/obj/pda_old.dmi' log_debug("Invalid switch for PDA, defaulting to old PDA icons. [pdachoice] chosen.") + add_overlay("pda-pen") start_program(find_program(/datum/data/pda/app/main_menu)) /obj/item/device/pda/proc/can_use(mob/user) diff --git a/code/modules/projectiles/ammunition/ammo_boxes.dm b/code/modules/projectiles/ammunition/ammo_boxes.dm index 332b634a0f7..04d9d55d70f 100644 --- a/code/modules/projectiles/ammunition/ammo_boxes.dm +++ b/code/modules/projectiles/ammunition/ammo_boxes.dm @@ -55,4 +55,500 @@ ammo_type = /obj/item/ammo_casing/cap matter = list(MAT_STEEL = 2040) max_ammo = 24 - multiple_sprites = null \ No newline at end of file + multiple_sprites = null + +/* + * .357 + */ + +/obj/item/ammo_magazine/ammo_box/b357 + name = "ammo box (.357)" + desc = "A box of .357 rounds" + icon_state = "magnum" + caliber = ".357" + ammo_type = /obj/item/ammo_casing/a357 + matter = list(MAT_STEEL = 5040) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b357/rubber + name = "ammo box (.357 rubber)" + desc = "A box of .357 rubber rounds" + icon_state = "magnum_r" + caliber = ".357" + ammo_type = /obj/item/ammo_casing/a357/rubber + matter = list(MAT_STEEL = 5040) + max_ammo = 24 + multiple_sprites = 1 + +/* + * .38 + */ + +/obj/item/ammo_magazine/ammo_box/b38 + name = "ammo box (.38)" + desc = "A box of .38 rounds" + icon_state = "pistol" + caliber = ".38" + ammo_type = /obj/item/ammo_casing/a38 + matter = list(MAT_STEEL = 1440) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b38/rubber + name = "ammo box (.38 rubber)" + desc = "A box of .38 rubber rounds" + icon_state = "pistol_p" + caliber = ".38" + ammo_type = /obj/item/ammo_casing/a38/rubber + matter = list(MAT_STEEL = 1440) + max_ammo = 24 + multiple_sprites = 1 + +/* + * 10mm + */ + +/obj/item/ammo_magazine/ammo_box/b10mm + name = "ammo box (10mm)" + desc = "A box of 10mm rounds" + icon_state = "box10mm" + caliber = "10mm" + ammo_type = /obj/item/ammo_casing/a10mm + matter = list(MAT_STEEL = 3000) + max_ammo = 40 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b10mm/practice + name = "ammo box (10mm practice)" + desc = "A box of 10mm practice rounds" + icon_state = "box10mm-practice" + caliber = "10mm" + ammo_type = /obj/item/ammo_casing/a10mm/practice + matter = list(MAT_STEEL = 2400) + max_ammo = 40 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b10mm/rubber + name = "ammo box (10mm rubber)" + desc = "A box of 10mm rubber rounds" + icon_state = "box10mm-rubber" + caliber = "10mm" + ammo_type = /obj/item/ammo_casing/a10mm/rubber + matter = list(MAT_STEEL = 2400) + max_ammo = 40 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b10mm/emp + name = "ammo box (10mm haywire)" + desc = "A box of 10mm haywire rounds" + icon_state = "box10mm-hw" + caliber = "10mm" + ammo_type = /obj/item/ammo_casing/a10mm/emp + matter = list(MAT_STEEL = 5200, MAT_URANIUM = 4000) + max_ammo = 40 + multiple_sprites = 1 + +/* + * .44 + */ + +/obj/item/ammo_magazine/ammo_box/b44 + name = "ammo box (.44)" + desc = "A box of .44 rounds" + icon_state = "box44" + caliber = ".44" + ammo_type = /obj/item/ammo_casing/a44 + matter = list(MAT_STEEL = 5040) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b44/rubber + name = "ammo box (.44 rubber)" + desc = "A box of .44 rubber rounds" + icon_state = "box44-rubber" + caliber = ".44" + ammo_type = /obj/item/ammo_casing/a44/rubber + matter = list(MAT_STEEL = 1440) + max_ammo = 24 + multiple_sprites = 1 + +/* + * .45 + */ + +/obj/item/ammo_magazine/ammo_box/b45 + name = "ammo box (.45)" + desc = "A box of .45 rounds" + icon_state = "pistol_s" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45 + matter = list(MAT_STEEL = 1800) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b45/practice + name = "ammo box (.45 practice)" + desc = "A box of .45 practice rounds" + icon_state = "pistol_p" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45/practice + matter = list(MAT_STEEL = 1440) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b45/ap + name = "ammo box (.45 AP)" + desc = "A box of .45 armor-piercing rounds" + icon_state = "pistol_ap" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45/ap + matter = list(MAT_STEEL = 1200, MAT_PLASTEEL = 600) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b45/hp + name = "ammo box (.45 HP)" + desc = "A box of .45 hollow-point rounds" + icon_state = "pistol_hp" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45/hp + matter = list(MAT_STEEL = 1440, MAT_PLASTIC = 360) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b45/rubber + name = "ammo box (.45 rubber)" + desc = "A box of .45 rubber rounds" + icon_state = "pistol_r" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45/rubber + matter = list(MAT_STEEL = 1440) + max_ammo = 24 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b45/emp + name = "ammo box (.45 haywire)" + desc = "A box of .45 haywire rounds" + icon_state = "pistol_hw" + caliber = ".45" + ammo_type = /obj/item/ammo_casing/a45/emp + matter = list(MAT_STEEL = 3120, MAT_URANIUM = 2400) + max_ammo = 24 + multiple_sprites = 1 + +/* + * 12g (aka shotgun ammo) + */ + +/obj/item/ammo_magazine/ammo_box/b12g + name = "ammo box (12 gauge slug)" + desc = "A box of 12 gauge slug rounds" + icon_state = "slug" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g + matter = list(MAT_STEEL = 2880) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/pellet + name = "ammo box (12 gauge buckshot)" + desc = "A box of 12 gauge buckshot rounds" + icon_state = "buckshot" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/pellet + matter = list(MAT_STEEL = 2880) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/beanbag + name = "ammo box (12 gauge beanbag)" + desc = "A box of 12 gauge beanbag rounds" + icon_state = "bean" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/beanbag + matter = list(MAT_STEEL = 1440) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/stunshell + name = "ammo box (12 gauge stun)" + desc = "A box of 12 gauge stun rounds" + icon_state = "stunslug" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/stunshell + matter = list(MAT_STEEL = 2880, MAT_GLASS = 5760) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/emp + name = "ammo box (12 gauge EMP)" + desc = "A box of 12 gauge EMP rounds" + icon_state = "emp" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/emp + matter = list(MAT_STEEL = 2880, MAT_URANIUM = 1920) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/flechette + name = "ammo box (12 gauge flechette)" + desc = "A box of 12 gauge flechette rounds" + icon_state = "bean" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/flechette + matter = list(MAT_STEEL = 2880, MAT_PLASTEEL = 800) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/practice + name = "ammo box (12 gauge practice)" + desc = "A box of 12 gauge practice rounds" + icon_state = "practice" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/practice + matter = list(MAT_STEEL = 480) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/blank + name = "ammo box (12 gauge blank)" + desc = "A box of 12 gauge blank rounds" + icon_state = "blank" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/blank + matter = list(MAT_STEEL = 720) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b12g/flash + name = "ammo box (12 gauge flash)" + desc = "A box of 12 gauge flash rounds" + icon_state = "flash" + caliber = "12g" + ammo_type = /obj/item/ammo_casing/a12g/flash + matter = list(MAT_STEEL = 720, MAT_GLASS = 720) + max_ammo = 8 + multiple_sprites = 1 + +/* + * 14.5mm (anti-materiel rifle round) + */ + +/obj/item/ammo_magazine/ammo_box/b145 + desc = "ammo box (14.5mm)" + desc = "A box of 14.5mm rounds" + icon_state = "sniper" + caliber = "14.5mm" + ammo_type = /obj/item/ammo_casing/a145 + matter = list(MAT_STEEL = 8750) + max_ammo = 7 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b145/highvel + desc = "ammo box (14.5mm sabot)" + desc = "A box of 14.5mm sabot rounds" + icon_state = "sniper" + caliber = "14.5mm" + ammo_type = /obj/item/ammo_casing/a145 + matter = list(MAT_STEEL = 8750) + max_ammo = 7 + multiple_sprites = 1 + +/* + * 7.62mm + */ + +/obj/item/ammo_magazine/ammo_box/b762 + name = "ammo box (7.62mm)" + desc = "A box of 7.62mm rounds" + icon_state = "rifle" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762 + matter = list(MAT_STEEL = 6000) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/hp + name = "ammo box (7.62mm HP)" + desc = "A box of 7.62mm hollow-point rounds" + icon_state = "rifle_hp" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/hp + matter = list(MAT_STEEL = 9000) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/ap + name = "ammo box (7.62mm AP)" + desc = "A box of 7.62mm armor-piercing rounds" + icon_state = "rifle_ap" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/ap + matter = list(MAT_STEEL = 9000) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/practice + name = "ammo box (7.62mm practice)" + desc = "A box of 7.62mm practice rounds" + icon_state = "rifle_p" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/practice + matter = list(MAT_STEEL = 2700) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/hunter + name = "ammo box (7.62mm hunter)" + desc = "A box of 7.62mm hunter rounds" + icon_state = "rifle_hunter" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/hunter + matter = list(MAT_STEEL = 6000) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/surplus + name = "ammo wrap (7.62mm)" + desc = "A paper wrap of 7.62mm rounds" + icon_state = "paper_wrap" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762 + matter = list(MAT_STEEL = 1600) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/surplus/blank + name = "ammo wrap (7.62mm blank)" + desc = "A paper wrap of 7.62mm blank rounds" + icon_state = "paper_wrap" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/blank + matter = list(MAT_STEEL = 720) + max_ammo = 8 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b762/surplus/hunter + name = "ammo wrap (7.62mm hunter)" + desc = "A paper wrap of 7.62mm hunter rounds" + icon_state = "paper_wrap" + caliber = "7.62mm" + ammo_type = /obj/item/ammo_casing/a762/hunter + matter = list(MAT_STEEL = 1600) + max_ammo = 8 + multiple_sprites = 1 + +/* + * 5.45mm + */ + +/obj/item/ammo_magazine/ammo_box/b545 + name = "ammo box (5.45mm)" + desc = "A box of 5.45mm rounds" + icon_state = "hrifle" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545 + matter = list(MAT_STEEL = 5400) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/ap + name = "ammo box (5.45mm AP)" + desc = "A box of 5.45mm armor-piercing rounds" + icon_state = "hrifle-ap" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/ap + matter = list(MAT_STEEL = 8100) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/hp + name = "ammo box (5.45mm HP)" + desc = "A box of 5.45mm hollow-point rounds" + icon_state = "hrifle-hp" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/hp + matter = list(MAT_STEEL = 5400) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/practice + name = "ammo box (5.45mm practice)" + desc = "A box of 5.45mm practice rounds" + icon_state = "hrifle-practice" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/practice + matter = list(MAT_STEEL = 2700) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/hunter + name = "ammo box (5.45mm hunter)" + desc = "A box of 5.45mm hunter rounds" + icon_state = "hrifle-hunter" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/hunter + matter = list(MAT_STEEL = 5400) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/blank + name = "ammo box (5.45mm blank)" + desc = "A box of 5.45mm blank rounds" + icon_state = "hrifle-practice" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/blank + matter = list(MAT_STEEL = 2700) + max_ammo = 30 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/large + name = "ammo box (5.45mm)" + desc = "A steel box of 5.45mm rounds" + icon_state = "boxhrifle" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545 + matter = list(MAT_STEEL = 18000) + max_ammo = 100 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/large/ap + name = "ammo box (5.45mm AP)" + desc = "A steel box of 5.45mm armor-piercing rounds" + icon_state = "boxhrifle-ap" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/ap + matter = list(MAT_STEEL = 27000) + max_ammo = 100 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/large/hp + name = "ammo box (5.45mm HP)" + desc = "A steel box of 5.45mm hollow-point rounds" + icon_state = "boxhrifle-hp" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/hp + matter = list(MAT_STEEL = 18000) + max_ammo = 100 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/large/practice + name = "ammo box (5.45mm practice)" + desc = "A steel box of 5.45mm practice rounds" + icon_state = "boxhrifle-practice" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/practice + matter = list(MAT_STEEL = 9000) + max_ammo = 100 + multiple_sprites = 1 + +/obj/item/ammo_magazine/ammo_box/b545/large/hunter + name = "ammo box (5.45mm hunter)" + desc = "A steel box of 5.45mm hunter rounds" + icon_state = "boxhrifle-hunter" + caliber = "5.45mm" + ammo_type = /obj/item/ammo_casing/a545/hunter + matter = list(MAT_STEEL = 18000) + max_ammo = 100 + multiple_sprites = 1 \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index aa43a547922..b678ec8d9e4 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -3,7 +3,7 @@ # An explaination of the naming format for guns and ammo: # # a = Ammo, as in individual rounds of ammunition. -# b = Box, intended to have ammo taken out one at a time by hand. Really obsolete. Don't use this. +# b = Box, intended to have ammo taken out one at a time by hand. # c = Clips, intended to reload magazines or guns quickly. # m = Magazine, intended to hold rounds of ammo. # s = Speedloaders, intended to reload guns quickly. @@ -15,7 +15,7 @@ # Likewise, when creating new rounds, the caliber variable should match whatever # the name says. # -# This comment is copied in rounds.dm as well. +# This comment is copied in rounds.dm and ammo_boxes.dm as well. # # Also, if a magazine is only meant for a specific gun, include the name # of the specific gun in the path. Example: m45uzi is only for the Uzi. @@ -35,12 +35,13 @@ max_ammo = 9 multiple_sprites = 1 -/obj/item/ammo_magazine/mfoam_dart/pistol/riot - ammo_type = /obj/item/ammo_casing/afoam_dart/riot - /obj/item/ammo_magazine/mfoam_dart/pistol/empty initial_ammo = 0 +/obj/item/ammo_magazine/mfoam_dart/pistol/riot + ammo_type = /obj/item/ammo_casing/afoam_dart/riot + +// SMG /obj/item/ammo_magazine/mfoam_dart/smg name = "\improper Donk-Soft smg magazine" icon = 'icons/obj/gun_toy.dmi' @@ -52,13 +53,13 @@ max_ammo = 20 multiple_sprites = 1 +/obj/item/ammo_magazine/mfoam_dart/smg/empty + initial_ammo = 0 + /obj/item/ammo_magazine/mfoam_dart/smg/riot ammo_type = /obj/item/ammo_casing/afoam_dart/riot matter = list(MAT_PLASTIC = 1260, MAT_PLASTIC = 250) -/obj/item/ammo_magazine/mfoam_dart/smg/empty - initial_ammo = 0 - ///////// .357 ///////// /obj/item/ammo_magazine/s357 @@ -71,6 +72,21 @@ max_ammo = 6 multiple_sprites = 1 +/obj/item/ammo_magazine/s357/stun + name = "speedloader (.357 stun)" + icon_state = "T38" + ammo_type = /obj/item/ammo_casing/a357/stun + +/obj/item/ammo_magazine/s357/rubber + name = "speedloader (.357 rubber)" + icon_state = "T38" + ammo_type = /obj/item/ammo_casing/a357/rubber + +/obj/item/ammo_magazine/s357/flash + name = "speedloader (.357 flash)" + icon_state = "S38" + ammo_type = /obj/item/ammo_casing/a357/flash + ///////// .38 ///////// /obj/item/ammo_magazine/s38 @@ -131,6 +147,7 @@ name = "ammunition box (.45 haywire)" ammo_type = /obj/item/ammo_casing/a45/emp +// Uzi /obj/item/ammo_magazine/m45uzi name = "stick magazine (.45)" icon_state = "uzi45" @@ -144,14 +161,16 @@ /obj/item/ammo_magazine/m45uzi/empty initial_ammo = 0 +// Tommy Gun /obj/item/ammo_magazine/m45tommy name = "Tommy Gun magazine (.45)" - icon_state = "tommy-mag" + icon_state = "tomstick" mag_type = MAGAZINE ammo_type = /obj/item/ammo_casing/a45 matter = list(MAT_STEEL = 1500) caliber = ".45" max_ammo = 20 + multiple_sprites = 1 /obj/item/ammo_magazine/m45tommy/ap name = "Tommy Gun magazine (.45 AP)" @@ -162,21 +181,23 @@ /obj/item/ammo_magazine/m45tommydrum name = "Tommy Gun drum magazine (.45)" - icon_state = "tommy-drum" + icon_state = "tomdrum" w_class = ITEMSIZE_NORMAL // Bulky ammo doesn't fit in your pockets! mag_type = MAGAZINE ammo_type = /obj/item/ammo_casing/a45 matter = list(MAT_STEEL = 3750) caliber = ".45" max_ammo = 50 + multiple_sprites = 1 + +/obj/item/ammo_magazine/m45tommydrum/empty + initial_ammo = 0 /obj/item/ammo_magazine/m45tommydrum/ap name = "Tommy Gun drum magazine (.45 AP)" ammo_type = /obj/item/ammo_casing/a45/ap -/obj/item/ammo_magazine/m45tommydrum/empty - initial_ammo = 0 - +// Stripper Clip /obj/item/ammo_magazine/clip/c45 name = "ammo clip (.45)" icon_state = "clip_pistol" @@ -199,13 +220,14 @@ name = "ammo clip (.45 flash)" ammo_type = /obj/item/ammo_casing/a45/flash +// Speedloader /obj/item/ammo_magazine/s45 name = "speedloader (.45)" icon_state = "45s" ammo_type = /obj/item/ammo_casing/a45 matter = list(MAT_STEEL = 525) //metal costs are very roughly based around 1 .45 casing = 75 metal caliber = ".45" - max_ammo = 7 + max_ammo = 6 multiple_sprites = 1 /obj/item/ammo_magazine/s45/empty @@ -238,6 +260,9 @@ max_ammo = 30 multiple_sprites = 1 +/obj/item/ammo_magazine/m5mmcaseless/empty + initial_ammo = 0 + /obj/item/ammo_magazine/m5mmcaseless/stun icon_state = "caseless-mag-alt" ammo_type = /obj/item/ammo_casing/a5mmcaseless/stun @@ -246,7 +271,7 @@ /obj/item/ammo_magazine/m9mm name = "magazine (9mm)" - icon_state = "9x19p_fullsize" + icon_state = "m91" origin_tech = list(TECH_COMBAT = 2) mag_type = MAGAZINE matter = list(MAT_STEEL = 600) @@ -255,15 +280,6 @@ max_ammo = 10 multiple_sprites = 1 -/obj/item/ammo_magazine/m9mm/large - desc = "\"FOR LAW ENFORCEMENT/MILITARY USE ONLY\" is clearly etched on the magazine. This is probably illegal for you to have." // Remember, Security is not Law Enforcement, so it's illegal for Security to use as well. - icon_state = "9x19p_highcap" - max_ammo = 17 - origin_tech = list(TECH_COMBAT = 2, TECH_ILLEGAL = 1) - -/obj/item/ammo_magazine/m9mm/large/preban // Sold by traders. - desc = "A large capacity magazine that was built before the SolGov Assault Weapons Ban, so it's legal to own." - /obj/item/ammo_magazine/m9mm/empty initial_ammo = 0 @@ -279,10 +295,33 @@ name = "magazine (9mm practice)" ammo_type = /obj/item/ammo_casing/a9mm/practice +// Extended +/obj/item/ammo_magazine/m9mm/large + name = "extended magazine (9mm)" + desc = "\"FOR LAW ENFORCEMENT/MILITARY USE ONLY\" is clearly etched on the magazine. This is probably illegal for you to have." // Remember, Security is not Law Enforcement, so it's illegal for Security to use as well. + icon_state = "m93" + origin_tech = list(TECH_COMBAT = 2, TECH_ILLEGAL = 1) + mag_type = MAGAZINE + matter = list(MAT_STEEL = 1000) + caliber = "9mm" + ammo_type = /obj/item/ammo_casing/a9mm + max_ammo = 17 + multiple_sprites = 1 + +/obj/item/ammo_magazine/m9mm/large/empty + initial_ammo = 0 + +/obj/item/ammo_magazine/m9mm/large/preban // Sold by traders. + desc = "A large capacity magazine that was built before the SolGov Assault Weapons Ban, so it's legal to own." + +/obj/item/ammo_magazine/m9mm/large/preban/hp // Hollow Point version + name = "magazine (9mm hollow-point)" + ammo_type = /obj/item/ammo_casing/a9mm/hp + // Compact /obj/item/ammo_magazine/m9mm/compact name = "compact magazine (9mm)" - icon_state = "9x19p" + icon_state = "m92" origin_tech = list(TECH_COMBAT = 2) mag_type = MAGAZINE matter = list(MAT_STEEL = 480) @@ -337,6 +376,7 @@ ammo_type = /obj/item/ammo_casing/a9mm/ap matter = list(MAT_STEEL = 1000, MAT_PLASTEEL = 2000) +// P90 /obj/item/ammo_magazine/m9mmp90 name = "large capacity top mounted magazine (9mm armor-piercing)" icon_state = "p90" @@ -350,6 +390,7 @@ /obj/item/ammo_magazine/m9mmp90/empty initial_ammo = 0 +// Stripper Clip /obj/item/ammo_magazine/clip/c9mm name = "ammo clip (9mm)" icon_state = "clip_pistol" @@ -372,6 +413,7 @@ name = "ammo clip (.45 flash)" ammo_type = /obj/item/ammo_casing/a9mm/flash +// Advanced SMG /obj/item/ammo_magazine/m9mmAdvanced desc = "A very high capacity double stack magazine made specially for the Advanced SMG. Filled with 21 9mm bullets." icon_state = "S9mm" @@ -408,20 +450,6 @@ /obj/item/ammo_magazine/m10mm/empty initial_ammo = 0 -/obj/item/ammo_magazine/clip/c10mm - name = "ammo clip (10mm)" - icon_state = "clip_pistol" - desc = "A stripper clip for reloading 5mm rounds into magazines." - caliber = "10mm" - ammo_type = /obj/item/ammo_casing/a10mm - matter = list(MAT_STEEL = 675) // metal costs are very roughly based around one 10mm casing = 75 metal - max_ammo = 9 - multiple_sprites = 1 - -/obj/item/ammo_magazine/box/emp/b10 - name = "ammunition box (10mm haywire)" - ammo_type = /obj/item/ammo_casing/a10mm/emp - ///////// 5.45mm ///////// /obj/item/ammo_magazine/m545 @@ -435,41 +463,43 @@ max_ammo = 20 multiple_sprites = 1 -/obj/item/ammo_magazine/m545/ext - name = "extended magazine (5.45mm)" - matter = list(MAT_STEEL = 2700) - max_ammo = 30 - /obj/item/ammo_magazine/m545/empty initial_ammo = 0 -/obj/item/ammo_magazine/m545/ext/empty - initial_ammo = 0 - /obj/item/ammo_magazine/m545/practice name = "magazine (5.45mm practice)" ammo_type = /obj/item/ammo_casing/a545/practice -/obj/item/ammo_magazine/m545/practice/ext - name = "extended magazine (5.45mm practice)" - max_ammo = 30 - /obj/item/ammo_magazine/m545/ap name = "magazine (5.45mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a545/ap -/obj/item/ammo_magazine/m545/ap/ext - name = "extended magazine (5.45mm armor-piercing)" - max_ammo = 30 - /obj/item/ammo_magazine/m545/hunter name = "magazine (5.45mm hunting)" ammo_type = /obj/item/ammo_casing/a545/hunter +// Extended +/obj/item/ammo_magazine/m545/ext + name = "extended magazine (5.45mm)" + matter = list(MAT_STEEL = 2700) + max_ammo = 30 + +/obj/item/ammo_magazine/m545/ext/empty + initial_ammo = 0 + +/obj/item/ammo_magazine/m545/practice/ext + name = "extended magazine (5.45mm practice)" + max_ammo = 30 + +/obj/item/ammo_magazine/m545/ap/ext + name = "extended magazine (5.45mm armor-piercing)" + max_ammo = 30 + /obj/item/ammo_magazine/m545/hunter/ext name = "extended magazine (5.45mm hunting)" max_ammo = 30 +// Reduced /obj/item/ammo_magazine/m545/small name = "reduced magazine (5.45mm)" icon_state = "m545-small" @@ -491,6 +521,7 @@ name = "magazine (5.45mm hunting)" ammo_type = /obj/item/ammo_casing/a545/hunter +// Stripper Clip /obj/item/ammo_magazine/clip/c545 name = "ammo clip (5.45mm)" icon_state = "clip_rifle" @@ -512,6 +543,7 @@ name = "rifle clip (5.45mm practice)" ammo_type = /obj/item/ammo_casing/a545 +// SAW /obj/item/ammo_magazine/m545saw name = "magazine box (5.45mm)" icon_state = "a545" @@ -524,6 +556,9 @@ max_ammo = 50 multiple_sprites = 1 +/obj/item/ammo_magazine/m545saw/empty + initial_ammo = 0 + /obj/item/ammo_magazine/m545saw/ap name = "magazine box (5.45mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a545/ap @@ -532,9 +567,6 @@ name = "magazine box (5.45mm hunting)" ammo_type = /obj/item/ammo_casing/a545/hunter -/obj/item/ammo_magazine/m545saw/empty - initial_ammo = 0 - ///////// .44 Magnum ///////// /obj/item/ammo_magazine/m44 @@ -551,6 +583,7 @@ /obj/item/ammo_magazine/m44/empty initial_ammo = 0 +// Stripper Clip /obj/item/ammo_magazine/clip/c44 name = "ammo clip (.44)" icon_state = "clip_pistol" @@ -561,6 +594,7 @@ max_ammo = 9 multiple_sprites = 1 +// Speedloader /obj/item/ammo_magazine/s44 name = "speedloader (.44)" icon_state = "44" @@ -595,33 +629,31 @@ max_ammo = 10 multiple_sprites = 1 +/obj/item/ammo_magazine/m762/empty + initial_ammo = 0 + /obj/item/ammo_magazine/m762/ap name = "magazine (7.62mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a762/ap -/obj/item/ammo_magazine/m762/empty +// Extended +/obj/item/ammo_magazine/m762/ext + name = "extended magazine (7.62mm)" + icon_state = "m762" + matter = list(MAT_STEEL = 4000) + max_ammo = 20 + +/obj/item/ammo_magazine/m762/ext/empty initial_ammo = 0 -/obj/item/ammo_magazine/m762m // Intentionally not a subtype of m762 because it's supposed to be incompatible with the Z8 Bulldog rifle. - name = "magazine (7.62mm)" - icon_state = "m762" - mag_type = MAGAZINE - caliber = "7.62mm" - matter = list(MAT_STEEL = 4000) - ammo_type = /obj/item/ammo_casing/a762 - max_ammo = 20 - multiple_sprites = 1 - -/obj/item/ammo_magazine/m762m/ap +/obj/item/ammo_magazine/m762/ext/ap name = "magazine (7.62mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a762/ap -/obj/item/ammo_magazine/m762m/empty - initial_ammo = 0 - -/obj/item/ammo_magazine/m762garand - name = "garand clip (7.62mm)" // The clip goes into the magazine, hence the name. I'm very sure this is correct. - icon_state = "gclip" +// Enbloc +/obj/item/ammo_magazine/m762enbloc + name = "enbloc (7.62mm)" + icon_state = "enbloc" mag_type = MAGAZINE caliber = "7.62mm" matter = list(MAT_STEEL = 1600) @@ -629,13 +661,14 @@ max_ammo = 8 multiple_sprites = 1 -/obj/item/ammo_magazine/m762garand/ap +/obj/item/ammo_magazine/m762enbloc/ap name = "garand clip (7.62mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a762/ap -/obj/item/ammo_magazine/m762/empty +/obj/item/ammo_magazine/m762enbloc/empty initial_ammo = 0 +// Stripper Clip /obj/item/ammo_magazine/clip/c762 name = "ammo clip (7.62mm)" icon_state = "clip_rifle" @@ -657,6 +690,7 @@ name = "rifle clip (7.62mm hunting)" ammo_type = /obj/item/ammo_casing/a762/hunter +// SVD /obj/item/ammo_magazine/m762svd name = "\improper SVD magazine (7.62mm)" icon_state = "SVD" @@ -667,13 +701,13 @@ max_ammo = 10 multiple_sprites = 1 +/obj/item/ammo_magazine/m762svd/empty + initial_ammo = 0 + /obj/item/ammo_magazine/m762svd/ap name = "\improper SVD magazine (7.62mm armor-piercing)" ammo_type = /obj/item/ammo_casing/a762/ap -/obj/item/ammo_magazine/m762svd/empty - initial_ammo = 0 - ///////// 12g ///////// /obj/item/ammo_magazine/m12gdrum @@ -686,6 +720,9 @@ max_ammo = 24 multiple_sprites = 1 +/obj/item/ammo_magazine/m12gdrum/empty + initial_ammo = 0 + /obj/item/ammo_magazine/m12gdrum/beanbag name = "magazine (12 gauge beanbag)" ammo_type = /obj/item/ammo_casing/a12g/beanbag @@ -698,9 +735,7 @@ name = "magazine (12 gauge flash)" ammo_type = /obj/item/ammo_casing/a12g/flash -/obj/item/ammo_magazine/m12gdrum/empty - initial_ammo = 0 - +// Clip /obj/item/ammo_magazine/clip/c12g name = "ammo clip (12g slug)" icon_state = "12gclipslug" // Still a placeholder sprite. Feel free to make a better one. @@ -738,15 +773,3 @@ /obj/item/ammo_magazine/m75/empty initial_ammo = 0 - -///////// Misc. ///////// - -/obj/item/ammo_magazine/caps - name = "speedloader (caps)" - icon_state = "T38" - caliber = "caps" - color = "#FF0000" - ammo_type = /obj/item/ammo_casing/cap - matter = list(MAT_STEEL = 600) - max_ammo = 7 - multiple_sprites = 1 \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/magazines_vr.dm b/code/modules/projectiles/ammunition/magazines_vr.dm deleted file mode 100644 index 0050ae7d478..00000000000 --- a/code/modules/projectiles/ammunition/magazines_vr.dm +++ /dev/null @@ -1,9 +0,0 @@ -/obj/item/ammo_magazine/m9mm/large/preban/hp // Hollow Point Version - name = "magazine (9mm hollow-point)" - ammo_type = /obj/item/ammo_casing/a9mm/hp - -/obj/item/weapon/magnetic_ammo/pistol/khi - name = "flechette magazine (small, khi)" - desc = "A magazine containing smaller carbyne flechettes, intended for a pistol." - icon_state = "caseless-mag-short-alt" - remaining = 12 \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/magnetic.dm b/code/modules/projectiles/ammunition/magnetic.dm index ea0c995ac82..3b6bd97c88d 100644 --- a/code/modules/projectiles/ammunition/magnetic.dm +++ b/code/modules/projectiles/ammunition/magnetic.dm @@ -17,3 +17,9 @@ name = "flechette magazine (small)" desc = "A magazine containing smaller steel flechettes, intended for a pistol." icon_state = "caseless-mag-short" + +/obj/item/weapon/magnetic_ammo/pistol/khi + name = "flechette magazine (small, khi)" + desc = "A magazine containing smaller carbyne flechettes, intended for a pistol." + icon_state = "caseless-mag-short-alt" + remaining = 12 \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/rounds.dm b/code/modules/projectiles/ammunition/rounds.dm index 0ea73396f89..2cbe138c61e 100644 --- a/code/modules/projectiles/ammunition/rounds.dm +++ b/code/modules/projectiles/ammunition/rounds.dm @@ -222,6 +222,18 @@ projectile_type = /obj/item/projectile/bullet/pistol/medium matter = list(MAT_STEEL = 75) +/obj/item/ammo_casing/a10mm/practice + desc = "A 10mm practice bullet casing." + icon_state = "r-casing" + projectile_type = /obj/item/projectile/bullet/practice + matter = list(MAT_STEEL = 60) + +/obj/item/ammo_casing/a10mm/rubber + desc = "A 10mm rubber bullet casing." + projectile_type = /obj/item/projectile/bullet/pistol/rubber + icon_state = "r-casing" + matter = list(MAT_STEEL = 60) + /obj/item/ammo_casing/a10mm/emp name = "10mm haywire round" desc = "A 10mm bullet casing fitted with a single-use ion pulse generator." diff --git a/code/modules/projectiles/guns/energy/laser_vr.dm b/code/modules/projectiles/guns/energy/laser_vr.dm index 6219af2ebf3..428b0500d6d 100644 --- a/code/modules/projectiles/guns/energy/laser_vr.dm +++ b/code/modules/projectiles/guns/energy/laser_vr.dm @@ -127,35 +127,6 @@ cut_overlays() update_mode() -///////////////////////////////////////////////////// -//////////////////// Custom Ammo //////////////////// -///////////////////////////////////////////////////// -//---------------- Beams ---------------- -/obj/item/projectile/beam/eluger - name = "laser beam" - icon_state = "xray" - light_color = "#00FF00" - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/imperial - name = "laser beam" - fire_sound = 'sound/weapons/mandalorian.ogg' - icon_state = "darkb" - light_color = "#8837A3" - muzzle_type = /obj/effect/projectile/muzzle/darkmatter - tracer_type = /obj/effect/projectile/tracer/darkmatter - impact_type = /obj/effect/projectile/impact/darkmatter - -/obj/item/projectile/beam/stun/kin21 - name = "kinh21 stun beam" - icon_state = "omnilaser" - light_color = "#0000FF" - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - //Gun Locking Mechanism /obj/item/weapon/gun/energy/locked req_access = list(access_armory) //for toggling safety diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e9fce291a34..cea479f48cf 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -415,7 +415,7 @@ slot_flags = SLOT_BACK load_method = MAGAZINE magazine_type = /obj/item/ammo_magazine/m762 - allowed_magazines = list(/obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762m) + allowed_magazines = list(/obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762/ext) projectile_type = /obj/item/projectile/bullet/rifle/a762 one_handed_penalty = 45 @@ -429,7 +429,7 @@ ..() if(istype(ammo_magazine,/obj/item/ammo_magazine/m762)) icon_state = "bullpup-small" - else if(istype(ammo_magazine,/obj/item/ammo_magazine/m762m)) + else if(istype(ammo_magazine,/obj/item/ammo_magazine/m762/ext)) icon_state = "bullpup" else item_state = "bullpup-empty" diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 678146eb182..3095666b830 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -78,7 +78,7 @@ caliber = ".45" origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) ammo_type = /obj/item/ammo_casing/a45/rubber - max_shells = 7 + max_shells = 6 /obj/item/weapon/gun/projectile/revolver/detective45/verb/rename_gun() diff --git a/code/modules/projectiles/guns/projectile/semiauto.dm b/code/modules/projectiles/guns/projectile/semiauto.dm index 31dcf48873f..d3fec59325d 100644 --- a/code/modules/projectiles/guns/projectile/semiauto.dm +++ b/code/modules/projectiles/guns/projectile/semiauto.dm @@ -12,8 +12,8 @@ slot_flags = SLOT_BACK //fire_sound = 'sound/weapons/rifleshot.ogg' load_method = MAGAZINE // ToDo: Make it so MAGAZINE, SPEEDLOADER and SINGLE_CASING can all be used on the same gun. - magazine_type = /obj/item/ammo_magazine/m762garand - allowed_magazines = list(/obj/item/ammo_magazine/m762garand) + magazine_type = /obj/item/ammo_magazine/m762enbloc + allowed_magazines = list(/obj/item/ammo_magazine/m762enbloc) auto_eject = 1 auto_eject_sound = 'sound/weapons/garand_ping.ogg' diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 734d14c63ad..d3f30f29d2a 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -37,6 +37,14 @@ icon_state = "laser" damage = 15 +/obj/item/projectile/beam/weaklaser/blue + icon_state = "bluelaser" + light_color = "#0066FF" + + muzzle_type = /obj/effect/projectile/muzzle/laser_blue + tracer_type = /obj/effect/projectile/tracer/laser_blue + impact_type = /obj/effect/projectile/impact/laser_blue + /obj/item/projectile/beam/smalllaser damage = 25 @@ -44,7 +52,7 @@ damage = 30 armor_penetration = 10 - + /obj/item/projectile/beam/midlaser damage = 40 armor_penetration = 10 @@ -226,7 +234,7 @@ fire_sound = 'sound/weapons/Taser.ogg' nodamage = 1 taser_effect = 1 - agony = 40 + agony = 35 damage_type = HALLOSS light_color = "#FFFFFF" hitsound = 'sound/weapons/zapbang.ogg' @@ -264,6 +272,34 @@ if(A.cell) A.cell.give(drainamt * 2) +/obj/item/projectile/beam/stun/kin21 + name = "kinh21 stun beam" + icon_state = "omnilaser" + light_color = "#0000FF" + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + +/obj/item/projectile/beam/stun/blue + icon_state = "bluelaser" + light_color = "#0066FF" + muzzle_type = /obj/effect/projectile/muzzle/laser_blue + tracer_type = /obj/effect/projectile/tracer/laser_blue + impact_type = /obj/effect/projectile/impact/laser_blue + +/obj/item/projectile/beam/disable + name = "disabler beam" + icon_state = "omnilaser" + nodamage = 1 + taser_effect = 1 + agony = 100 //One shot stuns for the time being until adjustments are fully made. + damage_type = HALLOSS + light_color = "#00CECE" + + muzzle_type = /obj/effect/projectile/muzzle/laser_omni + tracer_type = /obj/effect/projectile/tracer/laser_omni + impact_type = /obj/effect/projectile/impact/laser_omni + /obj/item/projectile/beam/shock name = "shock beam" icon_state = "lightning" @@ -282,11 +318,26 @@ damage = 5 agony = 10 +/obj/item/projectile/beam/eluger + name = "laser beam" + icon_state = "xray" + light_color = "#00FF00" + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/imperial + name = "laser beam" + fire_sound = 'sound/weapons/mandalorian.ogg' + icon_state = "darkb" + light_color = "#8837A3" + muzzle_type = /obj/effect/projectile/muzzle/darkmatter + tracer_type = /obj/effect/projectile/tracer/darkmatter + impact_type = /obj/effect/projectile/impact/darkmatter // // Projectile Beam Definitions // - /obj/item/projectile/beam/pointdefense name = "point defense salvo" icon_state = "laser" @@ -300,3 +351,63 @@ muzzle_type = /obj/effect/projectile/muzzle/pointdefense tracer_type = /obj/effect/projectile/tracer/pointdefense impact_type = /obj/effect/projectile/impact/pointdefense + +// +// Energy Net +// +/obj/item/projectile/beam/energy_net + name = "energy net projection" + icon_state = "xray" + nodamage = 1 + agony = 5 + damage_type = HALLOSS + light_color = "#00CC33" + + muzzle_type = /obj/effect/projectile/muzzle/xray + tracer_type = /obj/effect/projectile/tracer/xray + impact_type = /obj/effect/projectile/impact/xray + +/obj/item/projectile/beam/energy_net/on_hit(var/atom/netted) + do_net(netted) + ..() + +/obj/item/projectile/beam/energy_net/proc/do_net(var/mob/M) + var/obj/item/weapon/energy_net/net = new (get_turf(M)) + net.throw_impact(M) + +// +// Healing Beam +// +/obj/item/projectile/beam/medigun + name = "healing beam" + icon_state = "healbeam" + damage = 0 //stops it damaging walls + nodamage = TRUE + no_attack_log = TRUE + damage_type = BURN + check_armour = "laser" + light_color = "#80F5FF" + + combustion = FALSE + + muzzle_type = /obj/effect/projectile/muzzle/medigun + tracer_type = /obj/effect/projectile/tracer/medigun + impact_type = /obj/effect/projectile/impact/medigun + +/obj/item/projectile/beam/medigun/on_hit(var/atom/target, var/blocked = 0) + if(istype(target, /mob/living/carbon/human)) + var/mob/living/carbon/human/M = target + if(M.health < M.maxHealth) + var/obj/effect/overlay/pulse = new /obj/effect/overlay(get_turf(M)) + pulse.icon = 'icons/effects/effects.dmi' + pulse.icon_state = "heal" + pulse.name = "heal" + pulse.anchored = TRUE + spawn(20) + qdel(pulse) + to_chat(target, "As the beam strikes you, your injuries close up!") + M.adjustBruteLoss(-15) + M.adjustFireLoss(-15) + M.adjustToxLoss(-5) + M.adjustOxyLoss(-5) + return 1 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/beams_vr.dm b/code/modules/projectiles/projectile/beams_vr.dm deleted file mode 100644 index 3f3e82071d7..00000000000 --- a/code/modules/projectiles/projectile/beams_vr.dm +++ /dev/null @@ -1,85 +0,0 @@ -/obj/item/projectile/beam/disable - name = "disabler beam" - icon_state = "omnilaser" - nodamage = 1 - taser_effect = 1 - agony = 100 //One shot stuns for the time being until adjustments are fully made. - damage_type = HALLOSS - light_color = "#00CECE" - - muzzle_type = /obj/effect/projectile/muzzle/laser_omni - tracer_type = /obj/effect/projectile/tracer/laser_omni - impact_type = /obj/effect/projectile/impact/laser_omni - -/obj/item/projectile/beam/stun - agony = 35 - -/obj/item/projectile/beam/energy_net - name = "energy net projection" - icon_state = "xray" - nodamage = 1 - agony = 5 - damage_type = HALLOSS - light_color = "#00CC33" - - muzzle_type = /obj/effect/projectile/muzzle/xray - tracer_type = /obj/effect/projectile/tracer/xray - impact_type = /obj/effect/projectile/impact/xray - -/obj/item/projectile/beam/energy_net/on_hit(var/atom/netted) - do_net(netted) - ..() - -/obj/item/projectile/beam/energy_net/proc/do_net(var/mob/M) - var/obj/item/weapon/energy_net/net = new (get_turf(M)) - net.throw_impact(M) - -/obj/item/projectile/beam/stun/blue - icon_state = "bluelaser" - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_blue - tracer_type = /obj/effect/projectile/tracer/laser_blue - impact_type = /obj/effect/projectile/impact/laser_blue - -/obj/item/projectile/beam/weaklaser/blue - icon_state = "bluelaser" - light_color = "#0066FF" - - muzzle_type = /obj/effect/projectile/muzzle/laser_blue - tracer_type = /obj/effect/projectile/tracer/laser_blue - impact_type = /obj/effect/projectile/impact/laser_blue - -/obj/item/projectile/beam/medigun - name = "healing beam" - icon_state = "healbeam" - damage = 0 //stops it damaging walls - nodamage = TRUE - no_attack_log = TRUE - damage_type = BURN - check_armour = "laser" - light_color = "#80F5FF" - - combustion = FALSE - - muzzle_type = /obj/effect/projectile/muzzle/medigun - tracer_type = /obj/effect/projectile/tracer/medigun - impact_type = /obj/effect/projectile/impact/medigun - -/obj/item/projectile/beam/medigun/on_hit(var/atom/target, var/blocked = 0) - if(istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = target - if(M.health < M.maxHealth) - var/obj/effect/overlay/pulse = new /obj/effect/overlay(get_turf(M)) - pulse.icon = 'icons/effects/effects.dmi' - pulse.icon_state = "heal" - pulse.name = "heal" - pulse.anchored = TRUE - spawn(20) - qdel(pulse) - to_chat(target, "As the beam strikes you, your injuries close up!") - M.adjustBruteLoss(-15) - M.adjustFireLoss(-15) - M.adjustToxLoss(-5) - M.adjustOxyLoss(-5) - return 1 diff --git a/code/modules/projectiles/projectile/bullets_vr.dm b/code/modules/projectiles/projectile/bullets_vr.dm deleted file mode 100644 index 2f927afe998..00000000000 --- a/code/modules/projectiles/projectile/bullets_vr.dm +++ /dev/null @@ -1,29 +0,0 @@ -/obj/item/projectile/bullet/pistol/rubber/strong //"rubber" bullets for revolvers and matebas - damage = 10 - agony = 60 - embed_chance = 0 - sharp = FALSE - check_armour = "melee" - -/obj/item/projectile/energy/flash/strong - name = "chemical shell" - icon_state = "bullet" - damage = 10 - range = 15 //if the shell hasn't hit anything after travelling this far it just explodes. - flash_strength = 15 - brightness = 15 - -/obj/item/projectile/energy/electrode/stunshot/strong - name = "stunshot" - icon_state = "bullet" - damage = 10 - taser_effect = 1 - agony = 100 - -/obj/item/projectile/bullet/magnetic/flechette/small/khi - name = "small carbyne flechette" - icon_state = "flechette" - fire_sound = 'sound/weapons/rapidslice.ogg' - damage = 18 - armor_penetration = 100 - penetrating = 10 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 3136f10199b..f3f1068110a 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -87,6 +87,13 @@ damage = 5 agony = 80 +/obj/item/projectile/energy/electrode/stunshot/strong + name = "stunshot" + icon_state = "bullet" + damage = 10 + taser_effect = 1 + agony = 100 + /obj/item/projectile/energy/declone name = "declone" icon_state = "declone" @@ -136,6 +143,19 @@ name = "largebolt" damage = 20 +/obj/item/projectile/energy/bow + name = "engergy bolt" + icon_state = "cbbolt" + damage = 20 + +/obj/item/projectile/energy/bow/heavy + damage = 30 + icon_state = "cbbolt" + +/obj/item/projectile/energy/bow/stun + name = "stun bolt" + agony = 30 + /obj/item/projectile/energy/acid //Slightly up-gunned (Read: The thing does agony and checks bio resist) variant of the simple alien mob's projectile, for queens and sentinels. name = "acidic spit" icon_state = "neurotoxin" @@ -260,3 +280,23 @@ range = 10 damage = 15 SA_bonus_damage = 60 // 75 total on animals + +/obj/item/projectile/energy/electrode/strong + agony = 70 + +/obj/item/projectile/energy + flash_strength = 10 + +/obj/item/projectile/energy/flash + flash_range = 1 + +/obj/item/projectile/energy/flash/strong + name = "chemical shell" + icon_state = "bullet" + damage = 10 + range = 15 //if the shell hasn't hit anything after travelling this far it just explodes. + flash_strength = 15 + brightness = 15 + +/obj/item/projectile/energy/flash/flare + flash_range = 2 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy_vr.dm b/code/modules/projectiles/projectile/energy_vr.dm deleted file mode 100644 index 5bc690c1b5f..00000000000 --- a/code/modules/projectiles/projectile/energy_vr.dm +++ /dev/null @@ -1,25 +0,0 @@ -/obj/item/projectile/energy/electrode/strong - agony = 70 - -/obj/item/projectile/energy - flash_strength = 10 - -/obj/item/projectile/energy/flash - flash_range = 1 - -/obj/item/projectile/energy/flash/flare - flash_range = 2 - -/obj/item/projectile/energy/bow - name = "engergy bolt" - icon_state = "cbbolt" - damage = 20 - - -/obj/item/projectile/energy/bow/heavy - damage = 30 - icon_state = "cbbolt" - -/obj/item/projectile/energy/bow/stun - name = "stun bolt" - agony = 30 diff --git a/code/modules/projectiles/projectile/magnetic.dm b/code/modules/projectiles/projectile/magnetic.dm index 12452d46189..8b003bb6e59 100644 --- a/code/modules/projectiles/projectile/magnetic.dm +++ b/code/modules/projectiles/projectile/magnetic.dm @@ -29,6 +29,14 @@ damage = 12 armor_penetration = 100 +/obj/item/projectile/bullet/magnetic/flechette/small/khi + name = "small carbyne flechette" + icon_state = "flechette" + fire_sound = 'sound/weapons/rapidslice.ogg' + damage = 18 + armor_penetration = 100 + penetrating = 10 + /obj/item/projectile/bullet/magnetic/flechette/hunting name = "shredder slug" armor_penetration = 30 @@ -179,4 +187,4 @@ explosion(A, -1, -1, 1, 3) return ..() else - ..() + ..() \ No newline at end of file diff --git a/code/modules/reagents/reactions/instant/food.dm b/code/modules/reagents/reactions/instant/food.dm index 393c0334949..188e285623a 100644 --- a/code/modules/reagents/reactions/instant/food.dm +++ b/code/modules/reagents/reactions/instant/food.dm @@ -67,6 +67,7 @@ id = "cookingoilpeanut" result = "cookingoil" required_reagents = list("peanutoil" = 10) + inhibitors = list("sugar" = 1, "sodiumchloride" = 1) catalysts = list("enzyme" = 5) result_amount = 10 diff --git a/code/modules/research/designs/weapons.dm b/code/modules/research/designs/weapons.dm index 5013b230de3..f6644babaad 100644 --- a/code/modules/research/designs/weapons.dm +++ b/code/modules/research/designs/weapons.dm @@ -112,7 +112,7 @@ id = "stunshell" req_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3) materials = list(MAT_STEEL = 4000) - build_path = /obj/item/weapon/storage/box/stunshells + build_path = /obj/item/ammo_magazine/ammo_box/b12g/stunshell sort_string = "MABBB" /datum/design/item/weapon/ballistic/ammo/empshell @@ -121,7 +121,7 @@ id = "empshell" req_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) materials = list(MAT_STEEL = 4000, MAT_URANIUM = 1000) - build_path = /obj/item/weapon/storage/box/empshells + build_path = /obj/item/ammo_magazine/ammo_box/b12g/emp sort_string = "MABBC" // Phase weapons diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 53f8c1b7344..7faf07ae7a4 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -161,7 +161,11 @@ GLOBAL_LIST_BOILERPLATE(papers_dockingcode, /obj/item/weapon/paper/dockingcodes) /obj/item/weapon/paper/dockingcodes/proc/populate_info() var/dockingcodes = null - var/z_to_check = codes_from_z ? codes_from_z : z + var/turf/T = get_turf(src) + var/our_z + if(T) + our_z = T.z + var/z_to_check = codes_from_z ? codes_from_z : our_z if(using_map.use_overmap) var/obj/effect/overmap/visitable/location = get_overmap_sector(z_to_check) if(location && location.docking_codes) diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 10d1dd44f32..85d4fca868c 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -59,7 +59,7 @@ //Actual full digest modes var/tmp/static/list/digest_modes = list(DM_HOLD,DM_DIGEST,DM_ABSORB,DM_DRAIN,DM_UNABSORB,DM_HEAL,DM_SHRINK,DM_GROW,DM_SIZE_STEAL,DM_EGG) //Digest mode addon flags - var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS) + var/tmp/static/list/mode_flag_list = list("Numbing" = DM_FLAG_NUMBING, "Stripping" = DM_FLAG_STRIPPING, "Leave Remains" = DM_FLAG_LEAVEREMAINS, "Muffles" = DM_FLAG_THICKBELLY, "Affect Worn Items" = DM_FLAG_AFFECTWORN, "Jams Sensors" = DM_FLAG_JAMSENSORS, "Complete Absorb" = DM_FLAG_FORCEPSAY) //Item related modes var/tmp/static/list/item_digest_modes = list(IM_HOLD,IM_DIGEST_FOOD,IM_DIGEST) @@ -130,7 +130,7 @@ "You feel %prey becoming part of you.") var/list/absorb_messages_prey = list( - "Your feel yourself becoming part of %pred's %belly!") + "You feel yourself becoming part of %pred's %belly!") var/list/unabsorb_messages_owner = list( "You feel %prey reform into a recognizable state again.") @@ -359,9 +359,12 @@ p.undo_prey_takeover(FALSE) return 0 for(var/mob/living/L in M.contents) - L.muffled = 0 + L.muffled = FALSE + L.forced_psay = FALSE + for(var/obj/item/weapon/holder/H in M.contents) - H.held_mob.muffled = 0 + H.held_mob.muffled = FALSE + H.held_mob.forced_psay = FALSE //Place them into our drop_location M.forceMove(drop_location()) @@ -375,7 +378,9 @@ if(ML.client) ML.stop_sound_channel(CHANNEL_PREYLOOP) //Stop the internal loop, it'll restart if the isbelly check on next tick anyway if(ML.muffled) - ML.muffled = 0 + ML.muffled = FALSE + if(ML.forced_psay) + ML.forced_psay = FALSE if(ML.absorbed) ML.absorbed = FALSE handle_absorb_langs(ML, owner) @@ -422,6 +427,9 @@ for(var/mob/living/M in contents) M.updateVRPanel() + if(prey.ckey) + GLOB.prey_eaten_roundstat++ + // Get the line that should show up in Examine message if the owner of this belly // is examined. By making this a proc, we not only take advantage of polymorphism, // but can easily make the message vary based on how many people are inside, etc. @@ -682,10 +690,10 @@ M.absorbed = TRUE if(M.ckey) - owner.temp_language_sources += M - M.temp_language_sources += owner handle_absorb_langs(M, owner) + GLOB.prey_absorbed_roundstat++ + to_chat(M, "[absorb_alert_prey]") to_chat(owner, "[absorb_alert_owner]") if(M.noisy) //Mute drained absorbee hunger if enabled. @@ -764,34 +772,8 @@ owner.update_icon() ///////////////////////////////////////////////////////////////////////// -/obj/belly/proc/handle_absorb_langs(var/mob/living/prey, var/mob/living/pred) - for(var/mob/living/p in pred.temp_language_sources) //Let's look at the pred's sources - if (!p.absorbed) - for(var/L in pred.temp_languages) - if(L in p.languages) - pred.languages -= L - pred.temp_languages -= L - pred.temp_language_sources -= p - else - for(var/L in p.languages) - if(L in pred.languages) - continue - pred.languages += L - pred.temp_languages += L - - for(var/mob/living/P in prey.temp_language_sources) //Let's look at the prey's sources - if (!prey.absorbed) - for(var/L in prey.temp_languages) - if(L in P.languages) - prey.languages -= L - prey.temp_languages -= L - prey.temp_language_sources -= P - else - for(var/L in P.languages) - if(L in prey.languages) - continue - prey.languages += L - prey.temp_languages += L +/obj/belly/proc/handle_absorb_langs() + owner.absorb_langs() //////////////////////////////////////////////////////////////////////// diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index e4e358d3c41..5a92072756f 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -167,7 +167,7 @@ var/mob/living/L = A touchable_mobs += L - if(L.absorbed) + if(L.absorbed && !issilicon(L)) L.Weaken(5) // Fullscreen overlays @@ -186,6 +186,10 @@ if((mode_flags & DM_FLAG_THICKBELLY) && !H.muffled) H.muffled = TRUE + //Force psay + if((mode_flags & DM_FLAG_FORCEPSAY) && !H.forced_psay && H.absorbed) + H.forced_psay = TRUE + //Worn items flag if(mode_flags & DM_FLAG_AFFECTWORN) for(var/slot in slots) @@ -274,6 +278,9 @@ to_chat(owner, "[digest_alert_owner]") to_chat(M, "[digest_alert_prey]") + if(M.ckey) + GLOB.prey_digested_roundstat++ + if((mode_flags & DM_FLAG_LEAVEREMAINS) && M.digest_leave_remains) handle_remains_leaving(M) digestion_death(M) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 7a9cab7a2b6..4038ed6c54b 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -14,6 +14,7 @@ var/absorbed = FALSE // If a mob is absorbed into another var/list/temp_language_sources = list() //VOREStation Addition - Absorbs add languages to the pred var/list/temp_languages = list() //VOREStation Addition - Absorbs add languages to the pred + var/prey_controlled = FALSE //VOREStation Addition var/weight = 137 // Weight for mobs for weightgain system var/weight_gain = 1 // How fast you gain weight var/weight_loss = 0.5 // How fast you lose weight @@ -415,8 +416,8 @@ if(confirm != "Okay" || loc != B) return //Actual escaping - absorbed = 0 //Make sure we're not absorbed - muffled = 0 //Removes Muffling + absorbed = FALSE //Make sure we're not absorbed + muffled = FALSE //Removes Muffling forceMove(get_turf(src)) //Just move me up to the turf, let's not cascade through bellies, there's been a problem, let's just leave. for(var/mob/living/simple_mob/SA in range(10)) SA.prey_excludes[src] = world.time @@ -895,12 +896,15 @@ /mob/living/examine(mob/user, infix, suffix) . = ..() - if(showvoreprefs) - . += "\[Mechanical Vore Preferences\]" + if(ooc_notes) + . += "OOC Notes: \[View\]" + . += "\[Mechanical Vore Preferences\]" /mob/living/Topic(href, href_list) //Can't find any instances of Topic() being overridden by /mob/living in polaris' base code, even though /mob/living/carbon/human's Topic() has a ..() call if(href_list["vore_prefs"]) display_voreprefs(usr) + if(href_list["ooc_notes"]) + src.Examine_OOC() return ..() /mob/living/proc/display_voreprefs(mob/user) //Called by Topic() calls on instances of /mob/living (and subtypes) containing vore_prefs as an argument diff --git a/code/modules/vore/resizing/sizegun_vr.dm b/code/modules/vore/resizing/sizegun_vr.dm index 20db6e308e4..939c9053550 100644 --- a/code/modules/vore/resizing/sizegun_vr.dm +++ b/code/modules/vore/resizing/sizegun_vr.dm @@ -1,14 +1,13 @@ // // Size Gun // - /obj/item/weapon/gun/energy/sizegun name = "size gun" //I have no idea why this was called shrink ray when this increased and decreased size. desc = "A highly advanced ray gun with a knob on the side to adjust the size you desire. Warning: Do not insert into mouth." icon = 'icons/obj/gun_vr.dmi' - icon_override = 'icons/obj/gun_vr.dmi' icon_state = "sizegun" item_state = "sizegun" + item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_guns_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_guns_vr.dmi') fire_sound = 'sound/weapons/wave.ogg' charge_cost = 240 projectile_type = /obj/item/projectile/beam/sizelaser @@ -82,20 +81,39 @@ /obj/item/weapon/gun/energy/sizegun/admin name = "modified size gun" desc = "An older model sizegun, modified to be without limits on minimum/maximum size, and have an unlimited charge. Time to show 'em that size does matter." + description_fluff = "A standard size gun that has been modified with \ + a distabilized bluespace element that has allowed the gun to break the \ + normal laws of physics and create a 'weapon' capable of sizing any \ + creature well beyond any conceivable size. Only a handfull of these \ + exist in the known universe and they are \ + exclusively owned by NanoTrasen for research purposes." icon_state = "sizegun_admin" item_state = "sizegun_admin" charge_cost = 0 projectile_type = /obj/item/projectile/beam/sizelaser/admin -/obj/item/weapon/gun/energy/sizegun/abductor - name = "alien size gun" - icon_state = "sizegun-abductor" - item_state = "laser" - charge_cost = 0 - projectile_type = /obj/item/projectile/beam/sizelaser/admin +/datum/category_item/catalogue/anomalous/precursor_a/alien_sizegun + name = "Precursor Alpha Object - Matter Manipulation Ray" + desc = "This appears to be some sort of weapon and if someone were to pull \ + the trigger lopcated at the handle of the device it would fire a strong \ + laser at whatever it is pointed towards. While the laser certainly looks \ + dangerous, it is not, instead it is a powerful size manipulation spectrum \ + that is not disimilar to the size guns used by NanoTrasen.\ +

\ + It is unknown why the precursors would need such a device, possibly for \ + making it easier to transport large specimines. It is hard to tell \ + exactly what purpose such a device served the precursors but researchers \ + have their theories as they continue to analyse the technology." + value = CATALOGUER_REWARD_MEDIUM -/obj/item/weapon/gun/energy/sizegun/abductor/update_icon(ignore_inhands) - item_state = initial(item_state) +/obj/item/weapon/gun/energy/sizegun/admin/abductor + name = "alien size gun" + desc = "A strange looking ray gun weapon with an adjustor knob on the side. The design is alien, but it bares a striking resemblence to the older model size guns that NT uses for research." + catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_sizegun) + icon_state = "sizegun-abductor" + item_state = "sizegun-abductor" + charge_cost = 0 + projectile_type = /obj/item/projectile/beam/sizelaser/admin/alien /obj/item/weapon/gun/energy/sizegun/admin/select_size() set name = "Select Size" @@ -108,10 +126,14 @@ size_set_to = clamp((size_select/100), 0, 1000) //eheh to_chat(usr, "You set the size to [size_select]%") + +/obj/item/weapon/gun/energy/sizegun/mounted + name = "mounted size gun" + self_recharge = 1 + use_external_power = 1 // // Beams for size gun // - /obj/item/projectile/beam/sizelaser name = "size beam" icon_state = "xray" @@ -165,7 +187,10 @@ /obj/item/projectile/beam/sizelaser/grow set_size = 2.0 //200% of current size -/obj/item/weapon/gun/energy/sizegun/mounted - name = "mounted size gun" - self_recharge = 1 - use_external_power = 1 \ No newline at end of file +/obj/item/projectile/beam/sizelaser/admin/alien + name = "alien size beam" + icon_state = "darkb" + + muzzle_type = /obj/effect/projectile/muzzle/darkmatter + tracer_type = /obj/effect/projectile/tracer/darkmatter + impact_type = /obj/effect/projectile/impact/darkmatter \ No newline at end of file diff --git a/icons/inventory/accessory/item.dmi b/icons/inventory/accessory/item.dmi index 766a661e795..7fb37bd83f0 100644 Binary files a/icons/inventory/accessory/item.dmi and b/icons/inventory/accessory/item.dmi differ diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index b6e325e2d89..4ed739c88a5 100644 Binary files a/icons/inventory/accessory/mob.dmi and b/icons/inventory/accessory/mob.dmi differ diff --git a/icons/inventory/feet/item.dmi b/icons/inventory/feet/item.dmi index 5da36d908a6..76c19f09d59 100644 Binary files a/icons/inventory/feet/item.dmi and b/icons/inventory/feet/item.dmi differ diff --git a/icons/inventory/feet/mob.dmi b/icons/inventory/feet/mob.dmi index f89178cc908..9d6d5381435 100644 Binary files a/icons/inventory/feet/mob.dmi and b/icons/inventory/feet/mob.dmi differ diff --git a/icons/inventory/suit/item.dmi b/icons/inventory/suit/item.dmi index e5d75cd19ea..bf7a74c87f6 100644 Binary files a/icons/inventory/suit/item.dmi and b/icons/inventory/suit/item.dmi differ diff --git a/icons/inventory/suit/item_vr.dmi b/icons/inventory/suit/item_vr.dmi index 0261f8b6a3b..806c8a021a8 100644 Binary files a/icons/inventory/suit/item_vr.dmi and b/icons/inventory/suit/item_vr.dmi differ diff --git a/icons/inventory/suit/mob.dmi b/icons/inventory/suit/mob.dmi index 0eb7b2b6e13..4854a21c1aa 100644 Binary files a/icons/inventory/suit/mob.dmi and b/icons/inventory/suit/mob.dmi differ diff --git a/icons/inventory/suit/mob_vr.dmi b/icons/inventory/suit/mob_vr.dmi index d5e2082d0e1..c97f407958c 100644 Binary files a/icons/inventory/suit/mob_vr.dmi and b/icons/inventory/suit/mob_vr.dmi differ diff --git a/icons/inventory/uniform/item.dmi b/icons/inventory/uniform/item.dmi index 8188b08848e..10724fdd1ca 100644 Binary files a/icons/inventory/uniform/item.dmi and b/icons/inventory/uniform/item.dmi differ diff --git a/icons/inventory/uniform/item_vr.dmi b/icons/inventory/uniform/item_vr.dmi index 6b7566f8886..4e92cd67101 100644 Binary files a/icons/inventory/uniform/item_vr.dmi and b/icons/inventory/uniform/item_vr.dmi differ diff --git a/icons/inventory/uniform/mob.dmi b/icons/inventory/uniform/mob.dmi index 4e0bb00389a..69a5dd12dff 100644 Binary files a/icons/inventory/uniform/mob.dmi and b/icons/inventory/uniform/mob.dmi differ diff --git a/icons/inventory/uniform/mob_vr.dmi b/icons/inventory/uniform/mob_vr.dmi index 2230061fcea..e4295298d37 100644 Binary files a/icons/inventory/uniform/mob_vr.dmi and b/icons/inventory/uniform/mob_vr.dmi differ diff --git a/icons/inventory/uniform/mob_vr_rolled_down.dmi b/icons/inventory/uniform/mob_vr_rolled_down.dmi index 8c82d1f7c25..3016c210a3e 100644 Binary files a/icons/inventory/uniform/mob_vr_rolled_down.dmi and b/icons/inventory/uniform/mob_vr_rolled_down.dmi differ diff --git a/icons/mob/items/lefthand_guns_vr.dmi b/icons/mob/items/lefthand_guns_vr.dmi index fcf529ee985..f2c51e21b92 100644 Binary files a/icons/mob/items/lefthand_guns_vr.dmi and b/icons/mob/items/lefthand_guns_vr.dmi differ diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi index f96555c99bf..2117ebdf1d0 100644 Binary files a/icons/mob/items/lefthand_vr.dmi and b/icons/mob/items/lefthand_vr.dmi differ diff --git a/icons/mob/items/righthand_guns_vr.dmi b/icons/mob/items/righthand_guns_vr.dmi index 5554423acb8..7e899b2b990 100644 Binary files a/icons/mob/items/righthand_guns_vr.dmi and b/icons/mob/items/righthand_guns_vr.dmi differ diff --git a/icons/mob/items/righthand_vr.dmi b/icons/mob/items/righthand_vr.dmi index 5330cd7355a..a304b20fda7 100644 Binary files a/icons/mob/items/righthand_vr.dmi and b/icons/mob/items/righthand_vr.dmi differ diff --git a/icons/mob/robots_vr.dmi b/icons/mob/robots_vr.dmi index a05fa9c79f0..fab80dec2d8 100644 Binary files a/icons/mob/robots_vr.dmi and b/icons/mob/robots_vr.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index bc7116f5d78..6c5c1d07387 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/ammo_boxes.dmi b/icons/obj/ammo_boxes.dmi index 37069700416..0117deddeec 100644 Binary files a/icons/obj/ammo_boxes.dmi and b/icons/obj/ammo_boxes.dmi differ diff --git a/icons/obj/ammo_vr.dmi b/icons/obj/ammo_vr.dmi index 4d823c75421..07189d9cb48 100644 Binary files a/icons/obj/ammo_vr.dmi and b/icons/obj/ammo_vr.dmi differ diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index e10e8e42a48..23a0a0bc0ca 100644 Binary files a/icons/obj/food.dmi and b/icons/obj/food.dmi differ diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi index 7f44ea98023..17319770e94 100644 Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ diff --git a/icons/obj/pda_clam.dmi b/icons/obj/pda_slider.dmi similarity index 100% rename from icons/obj/pda_clam.dmi rename to icons/obj/pda_slider.dmi diff --git a/icons/obj/playing_cards.dmi b/icons/obj/playing_cards.dmi index 0195f8e6f47..b5336d6dd1c 100644 Binary files a/icons/obj/playing_cards.dmi and b/icons/obj/playing_cards.dmi differ diff --git a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm index c1d7fe3f7c7..a878f699933 100644 --- a/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm +++ b/maps/expedition_vr/aerostat/aerostat_science_outpost.dmm @@ -5286,7 +5286,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, -/obj/structure/closet/firecloset, +/obj/machinery/artifact_scanpad, /turf/simulated/floor/tiled/white, /area/offmap/aerostat/inside/xenoarch) "tj" = ( @@ -11220,7 +11220,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, -/obj/machinery/radiocarbon_spectrometer, +/obj/machinery/artifact_harvester, /turf/simulated/floor/tiled/white, /area/offmap/aerostat/inside/xenoarch) "RU" = ( @@ -12856,6 +12856,9 @@ dir = 1 }, /obj/structure/reagent_dispensers/coolanttank, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/simulated/floor/tiled/white, /area/offmap/aerostat/inside/xenoarch) "YH" = ( diff --git a/maps/gateway_vr/eggnogtownunderground.dmm b/maps/gateway_vr/eggnogtownunderground.dmm index 14c39d3f483..27968bf04c3 100644 --- a/maps/gateway_vr/eggnogtownunderground.dmm +++ b/maps/gateway_vr/eggnogtownunderground.dmm @@ -1,58 +1,78 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "ab" = ( /turf/simulated/mineral/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "ac" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "ad" = ( /obj/machinery/light/small, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/hotspring) "ae" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate/b, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "af" = ( /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) "ag" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate/c, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "ah" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) "ai" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate/c, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) "aj" = ( /obj/random/mob/semirandom_mob_spawner/vore/retaliate/b, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) @@ -61,6 +81,8 @@ dir = 8 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/hotsprings) @@ -69,6 +91,8 @@ dir = 4 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/hotsprings) @@ -77,6 +101,8 @@ dir = 8 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) @@ -85,18 +111,24 @@ dir = 8 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "ao" = ( /obj/random/mob/semirandom_mob_spawner/vore/hostile, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) "ap" = ( /obj/random/awayloot, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) @@ -105,6 +137,8 @@ dir = 5 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) @@ -113,11 +147,15 @@ dir = 4 }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/underground) "as" = ( /turf/simulated/mineral/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 258.15 }, /area/gateway/eggnogtown/vibeout) @@ -655,6 +693,8 @@ trader_type = /obj/trader/general }, /turf/simulated/mineral/floor/ignore_cavegen{ + nitrogen = 82.1472; + oxygen = 21.8366; temperature = 303.15 }, /area/gateway/eggnogtown/underground) diff --git a/maps/offmap_vr/om_ships/bearcat.dmm b/maps/offmap_vr/om_ships/bearcat.dmm index 28eb49a16f5..977ee382f22 100644 --- a/maps/offmap_vr/om_ships/bearcat.dmm +++ b/maps/offmap_vr/om_ships/bearcat.dmm @@ -356,7 +356,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/item/weapon/storage/box/beanbags/large, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/item/weapon/gun/projectile/shotgun/pump/combat{ desc = "When words don't strike hard enough."; name = "Solid Argument" diff --git a/maps/offmap_vr/om_ships/cruiser.dmm b/maps/offmap_vr/om_ships/cruiser.dmm index 834b910d7cd..292b8ff06d1 100644 --- a/maps/offmap_vr/om_ships/cruiser.dmm +++ b/maps/offmap_vr/om_ships/cruiser.dmm @@ -6061,22 +6061,22 @@ /turf/simulated/wall/rpshull, /area/mothership/bridge) "md" = ( -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/item/weapon/storage/box/empshells/large, /obj/item/weapon/storage/box/empshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /obj/structure/closet/secure_closet/guncabinet{ @@ -6792,8 +6792,8 @@ /obj/item/weapon/gun/projectile/automatic/z8, /obj/item/weapon/gun/projectile/automatic/z8, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762, @@ -6804,8 +6804,8 @@ /obj/item/ammo_magazine/m762/ap, /obj/item/ammo_magazine/m762/ap, /obj/item/ammo_magazine/m762/ap, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/simulated/floor/tiled/steel_grid, /area/mothership/armory) "ny" = ( diff --git a/maps/offmap_vr/om_ships/shelter_6.dmm b/maps/offmap_vr/om_ships/shelter_6.dmm index c7d3a9fec8b..a9e613c235d 100644 --- a/maps/offmap_vr/om_ships/shelter_6.dmm +++ b/maps/offmap_vr/om_ships/shelter_6.dmm @@ -284,20 +284,20 @@ /obj/item/ammo_magazine/m545, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /obj/item/weapon/gun/projectile/shotgun/pump/combat, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /obj/item/weapon/storage/box/empshells/large, /obj/item/weapon/storage/box/empshells/large, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/item/weapon/storage/box/flashshells, /obj/item/weapon/storage/box/flashshells, /obj/item/weapon/gun/energy/locked/frontier/carbine/unlocked, @@ -1824,8 +1824,8 @@ /obj/item/weapon/gun/projectile/automatic/z8, /obj/item/weapon/gun/projectile/automatic/z8, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762, @@ -1836,8 +1836,8 @@ /obj/item/ammo_magazine/m762/ap, /obj/item/ammo_magazine/m762/ap, /obj/item/ammo_magazine/m762/ap, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /obj/item/modular_computer/laptop/preset/custom_loadout/hybrid, /obj/item/modular_computer/laptop/preset/custom_loadout/hybrid, /obj/item/modular_computer/tablet/preset/custom_loadout/hybrid, diff --git a/maps/stellardelight/ship_centcom.dmm b/maps/stellardelight/ship_centcom.dmm index 6de916b0c17..37f0375e71d 100644 --- a/maps/stellardelight/ship_centcom.dmm +++ b/maps/stellardelight/ship_centcom.dmm @@ -42,8 +42,8 @@ "ag" = ( /obj/structure/table/rack, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/simulated/floor/tiled/dark, /area/centcom/specops) "ah" = ( @@ -669,11 +669,11 @@ "bZ" = ( /obj/structure/table/rack, /obj/structure/window/reinforced, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/simulated/floor/tiled{ icon_state = "dark" }, @@ -1584,12 +1584,12 @@ /area/centcom/evac) "fl" = ( /obj/structure/table/reinforced, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/tiled{ icon_state = "dark" }, @@ -5235,15 +5235,15 @@ "vk" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /turf/simulated/floor/tiled/dark, /area/centcom/security) "vl" = ( @@ -5626,10 +5626,10 @@ "wY" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/simulated/floor/tiled/dark, /area/centcom/security) "xc" = ( @@ -7159,14 +7159,14 @@ /area/centcom/control) "Eq" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) @@ -8505,15 +8505,15 @@ "Ih" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/simulated/floor/tiled/dark, /area/centcom/security) "Ij" = ( @@ -12083,14 +12083,14 @@ /area/centcom/security) "Ri" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) @@ -14307,14 +14307,14 @@ }) "Wq" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) diff --git a/maps/stellardelight/stellar_delight1.dmm b/maps/stellardelight/stellar_delight1.dmm index 5be491d41c9..cd9201d5162 100644 --- a/maps/stellardelight/stellar_delight1.dmm +++ b/maps/stellardelight/stellar_delight1.dmm @@ -1660,20 +1660,20 @@ /area/security/security_cell_hallway) "dD" = ( /obj/structure/table/rack/shelf/steel, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = 6; - pixel_y = -1 - }, /obj/machinery/atmospherics/pipe/simple/hidden/purple, /obj/effect/floor_decal/milspec/color/black, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = -5; + pixel_y = 7 + }, /turf/simulated/floor/tiled/dark, /area/security/armoury) "dF" = ( @@ -12022,21 +12022,22 @@ /area/security/warden) "zE" = ( /obj/structure/table/rack/shelf/steel, -/obj/item/weapon/storage/box/stunshells{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/flashshells{ - pixel_x = 1 - }, -/obj/item/weapon/storage/box/beanbags{ - pixel_x = 4; - pixel_y = -5 - }, /obj/machinery/atmospherics/pipe/simple/hidden/purple{ dir = 6 }, /obj/effect/floor_decal/milspec/color/black, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_magazine/ammo_box/b12g/flash{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag{ + pixel_x = -5; + pixel_y = 7 + }, /turf/simulated/floor/tiled/dark, /area/security/armoury) "zG" = ( @@ -18289,6 +18290,11 @@ }, /turf/simulated/floor/tiled/white, /area/stellardelight/deck1/shower) +"Na" = ( +/obj/item/weapon/storage/box/nifsofts_mining, +/obj/structure/table/reinforced, +/turf/simulated/floor/tiled/eris/steel/cargo, +/area/stellardelight/deck1/miningequipment) "Nb" = ( /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/angled{ @@ -33582,7 +33588,7 @@ dl QK pV xf -qV +Na MG vC vi diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm index 917295d9dec..620aa603d67 100644 --- a/maps/stellardelight/stellar_delight2.dmm +++ b/maps/stellardelight/stellar_delight2.dmm @@ -13513,12 +13513,12 @@ /area/storage/primary) "Ez" = ( /obj/structure/table/woodentable, -/obj/item/weapon/storage/box/beanbags, /obj/item/weapon/gun/projectile/shotgun/doublebarrel, /obj/item/weapon/paper{ info = "This permit signifies that the Bartender is permitted to posess this firearm in the bar, and ONLY the bar. Failure to adhere to this permit will result in confiscation of the weapon and possibly arrest."; name = "Shotgun permit" }, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/wood, /area/stellardelight/deck2/barbackroom) "EA" = ( @@ -13917,7 +13917,7 @@ pixel_x = 32; pixel_y = 0 }, -/obj/item/weapon/paper/dockingcodes, +/obj/item/weapon/paper/dockingcodes/sd, /obj/item/device/radio, /obj/item/device/radio, /turf/simulated/floor/tiled/eris/dark/monofloor, diff --git a/maps/submaps/admin_use_vr/dhael_centcom.dmm b/maps/submaps/admin_use_vr/dhael_centcom.dmm index 4021261ffee..ebf1d392003 100644 --- a/maps/submaps/admin_use_vr/dhael_centcom.dmm +++ b/maps/submaps/admin_use_vr/dhael_centcom.dmm @@ -381,11 +381,11 @@ "bb" = ( /obj/structure/table/rack, /obj/structure/window/reinforced, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -557,12 +557,12 @@ /area/centcom/specops) "br" = ( /obj/structure/table/reinforced, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -3919,15 +3919,15 @@ "ik" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /turf/unsimulated/floor{ icon_state = "vault"; dir = 5 @@ -3935,14 +3935,14 @@ /area/centcom/security) "il" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/effect/floor_decal/industrial/outline/yellow, /turf/unsimulated/floor{ icon_state = "vault"; @@ -3969,14 +3969,14 @@ /area/centcom/security) "in" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, /obj/effect/floor_decal/industrial/outline/yellow, /turf/unsimulated/floor{ icon_state = "vault"; @@ -3985,14 +3985,14 @@ /area/centcom/security) "io" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/effect/floor_decal/industrial/outline/yellow, /turf/unsimulated/floor{ icon_state = "vault"; @@ -4232,10 +4232,10 @@ "iY" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/unsimulated/floor{ icon_state = "vault"; dir = 5 @@ -4309,15 +4309,15 @@ "jd" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/unsimulated/floor{ icon_state = "vault"; dir = 5 @@ -16221,8 +16221,8 @@ "Zw" = ( /obj/structure/table/rack, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/unsimulated/floor{ icon_state = "dark" }, diff --git a/maps/submaps/admin_use_vr/ert.dmm b/maps/submaps/admin_use_vr/ert.dmm index 5660e5c1e50..0dd7d311ab9 100644 --- a/maps/submaps/admin_use_vr/ert.dmm +++ b/maps/submaps/admin_use_vr/ert.dmm @@ -6488,8 +6488,8 @@ "JZ" = ( /obj/structure/table/rack/steel, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /obj/effect/floor_decal/industrial/outline/grey, /obj/machinery/alarm/alarms_hidden{ dir = 1; @@ -6828,15 +6828,15 @@ /area/ship/ert/armoury_st) "LA" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /obj/item/weapon/storage/box/empshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/stunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/effect/floor_decal/industrial/outline/grey, /obj/item/weapon/gun/projectile/shotgun/pump/combat{ pixel_y = 3 @@ -6979,15 +6979,15 @@ /area/ship/ert/armoury_st) "Me" = ( /obj/structure/table/rack/steel, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /obj/item/weapon/storage/box/empshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/stunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/effect/floor_decal/industrial/outline/grey, /obj/item/weapon/gun/projectile/automatic/as24{ pixel_y = 3 diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index cc5db6e25da..ad77de938c2 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -7132,7 +7132,7 @@ /area/ship/manta/armoury_as) "Dq" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, /obj/item/weapon/gun/projectile/heavysniper, /obj/effect/floor_decal/techfloor{ dir = 5 @@ -9278,8 +9278,8 @@ /area/ship/manta/armoury_st) "Nc" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, /obj/item/weapon/gun/projectile/shotgun/pump/combat{ pixel_y = 4 }, diff --git a/maps/submaps/depreciated_vr/ert_base.dmm b/maps/submaps/depreciated_vr/ert_base.dmm index 6c095544288..811010e5d0f 100644 --- a/maps/submaps/depreciated_vr/ert_base.dmm +++ b/maps/submaps/depreciated_vr/ert_base.dmm @@ -507,17 +507,17 @@ /obj/structure/table/rack/steel, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /obj/item/weapon/gun/projectile/shotgun/pump/combat, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/shuttle/floor/black, /area/shuttle/specops/centcom) "ba" = ( diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 5c590364fd0..57afc34abde 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -164,7 +164,7 @@ /obj/effect/floor_decal/corner/red{ dir = 6 }, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, /obj/item/weapon/gun/projectile/heavysniper, /turf/unsimulated/floor{ dir = 2; @@ -285,8 +285,8 @@ /obj/effect/floor_decal/corner/red{ dir = 10 }, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /obj/item/weapon/gun/projectile/shotgun/pump/combat, /turf/unsimulated/floor{ diff --git a/maps/submaps/pois_vr/aerostat/Rockybase.dmm b/maps/submaps/pois_vr/aerostat/Rockybase.dmm index 657988b5858..2aacf9dde68 100644 --- a/maps/submaps/pois_vr/aerostat/Rockybase.dmm +++ b/maps/submaps/pois_vr/aerostat/Rockybase.dmm @@ -235,9 +235,9 @@ /area/submap/virgo2/Rockybase) "aR" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /obj/item/ammo_magazine/m10mm, /obj/item/ammo_magazine/m10mm, /obj/item/ammo_magazine/m10mm, diff --git a/maps/submaps/surface_submaps/mountains/CaveTrench.dmm b/maps/submaps/surface_submaps/mountains/CaveTrench.dmm index 4ff3001c290..3b9626828c2 100644 --- a/maps/submaps/surface_submaps/mountains/CaveTrench.dmm +++ b/maps/submaps/surface_submaps/mountains/CaveTrench.dmm @@ -29,7 +29,7 @@ "C" = (/obj/structure/closet/cabinet,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench) "D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench) "E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench) -"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench) +"F" = (/obj/item/ammo_magazine/ammo_box/b12g,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench) "G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench) "H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench) "I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench) diff --git a/maps/submaps/surface_submaps/plains/Boathouse.dmm b/maps/submaps/surface_submaps/plains/Boathouse.dmm index 0f20993d39b..798ad3431f5 100644 --- a/maps/submaps/surface_submaps/plains/Boathouse.dmm +++ b/maps/submaps/surface_submaps/plains/Boathouse.dmm @@ -9,7 +9,7 @@ "ai" = (/turf/simulated/wall/wood,/area/submap/Boathouse) "aj" = (/obj/structure/closet/cabinet,/obj/item/clothing/accessory/jacket,/obj/item/clothing/accessory/jacket,/obj/item/clothing/head/beanie,/turf/simulated/floor/wood,/area/submap/Boathouse) "ak" = (/turf/simulated/floor/wood,/area/submap/Boathouse) -"al" = (/obj/structure/closet/cabinet,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/weapon/storage/box/beanbags,/turf/simulated/floor/wood,/area/submap/Boathouse) +"al" = (/obj/structure/closet/cabinet,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/ammo_magazine/ammo_box/b12g/beanbag,/turf/simulated/floor/wood,/area/submap/Boathouse) "am" = (/turf/simulated/floor/carpet/turcarpet,/area/submap/Boathouse) "an" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/wood,/area/submap/Boathouse) "ao" = (/obj/structure/railing{dir = 8},/obj/structure/railing,/turf/simulated/floor/water,/area/submap/Boathouse) diff --git a/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm b/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm index 062bb105912..31ae85b9aaa 100644 --- a/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm +++ b/maps/submaps/surface_submaps/plains/Boathouse_vr.dmm @@ -42,7 +42,7 @@ "al" = ( /obj/structure/closet/cabinet, /obj/item/weapon/gun/projectile/shotgun/doublebarrel, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/wood, /area/submap/Boathouse) "am" = ( diff --git a/maps/submaps/surface_submaps/plains/Thiefc.dmm b/maps/submaps/surface_submaps/plains/Thiefc.dmm index f8b83273636..d83aa9631fc 100644 --- a/maps/submaps/surface_submaps/plains/Thiefc.dmm +++ b/maps/submaps/surface_submaps/plains/Thiefc.dmm @@ -13,7 +13,7 @@ "m" = (/obj/structure/table/steel,/obj/item/weapon/paper{desc = "This is some bullshit. First chance we got to knick something that looks half decent turns out to be mostly junk. And now we're getting calls that the other stash we've got has got a spider problem. Fuck this, Between the shitty weather, The pissed of bugs, And now apparently some NT goon running around in the area there's hardly enough reason to stick around. I'm telling Carl I'm out tommorow."; name = "Note"},/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc) "n" = (/obj/vehicle/train/trolley,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc) "o" = (/obj/structure/closet/crate,/obj/item/weapon/cell/device/weapon,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc) -"p" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/shotgunammo,/obj/item/weapon/storage/box/practiceshells,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc) +"p" = (/obj/structure/closet/crate,/obj/item/ammo_magazine/ammo_box/b12g,/obj/item/weapon/storage/box/practiceshells,/obj/random/projectile/scrapped_gun,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/Thiefc) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm index 133fd1025f6..68a7dd05970 100644 --- a/maps/submaps/surface_submaps/wilderness/Rockybase.dmm +++ b/maps/submaps/surface_submaps/wilderness/Rockybase.dmm @@ -38,28 +38,28 @@ "aL" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aM" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase) "aN" = (/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aO" = (/obj/structure/table/standard,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aP" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aQ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aR" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aS" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aT" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aO" = (/obj/structure/table/standard,/obj/item/modular_computer/laptop/preset/custom_loadout/cheap,/obj/effect/floor_decal/corner/red/border{dir = 9; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aP" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/red/border{dir = 1; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aQ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/obj/effect/floor_decal/corner/red/border{dir = 1; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aR" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/obj/effect/floor_decal/corner/red/border{dir = 1; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aS" = (/obj/machinery/light{dir = 1},/obj/effect/floor_decal/corner/red/border{dir = 1; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aT" = (/obj/machinery/vending/coffee,/obj/effect/floor_decal/corner/red/border{dir = 5; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "aU" = (/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) "aV" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) -"aW" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 9},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"aX" = (/obj/structure/closet/crate/hydroponics,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 5},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aW" = (/obj/machinery/vending/hydronutrients,/obj/effect/floor_decal/corner/lime/border{dir = 9; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"aX" = (/obj/structure/closet/crate/hydroponics,/obj/effect/floor_decal/corner/lime/border{dir = 5; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "aY" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "aZ" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "ba" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bb" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bb" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bc" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bd" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bd" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/obj/effect/floor_decal/corner/red/border{dir = 8; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "be" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bf" = (/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bg" = (/obj/machinery/vending/security,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bh" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/cell/device/weapon,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) -"bi" = (/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bg" = (/obj/machinery/vending/security,/obj/effect/floor_decal/corner/red/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bh" = (/obj/structure/table/rack,/obj/item/weapon/cell/device/weapon,/obj/item/ammo_magazine/ammo_box/b12g/pellet,/obj/item/ammo_magazine/ammo_box/b12g/pellet,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) +"bi" = (/obj/effect/floor_decal/corner/lime/border{dir = 8; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bj" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/floor_decal/corner/lime/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bk" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "bl" = (/obj/item/mecha_parts/part/gygax_left_leg,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) "bm" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase) @@ -67,17 +67,17 @@ "bo" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bp" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bq" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"br" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/effect/floor_decal/corner/red/border{icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"br" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/obj/effect/floor_decal/corner/red/border{dir = 10; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bs" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bt" = (/obj/effect/floor_decal/corner/red/border,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bu" = (/obj/effect/floor_decal/corner/red/border,/mob/living/simple_mob/mechanical/viscerator,/turf/simulated/floor/tiled,/area/submap/Rockybase) "bv" = (/obj/machinery/door/airlock/security{icon_state = "door_locked"; locked = 1},/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) "bw" = (/obj/machinery/light,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) "bx" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/ionrifle/pistol,/turf/simulated/floor/tiled/techfloor,/area/submap/Rockybase) -"by" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"by" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/effect/floor_decal/corner/lime/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bz" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bA" = (/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 8},/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"bB" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bA" = (/obj/effect/floor_decal/corner/lime/border{dir = 8; icon_state = "bordercolor"},/mob/living/bot/farmbot{faction = "malf_drone"; name = "Mr. Weddleton"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"bB" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/effect/floor_decal/corner/lime/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bC" = (/obj/effect/decal/remains/posi,/turf/template_noop,/area/template_noop) "bD" = (/obj/machinery/vending/cola,/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) "bE" = (/obj/effect/floor_decal/borderfloor{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase) @@ -156,20 +156,20 @@ "cZ" = (/obj/item/mecha_parts/part/gygax_armour,/turf/simulated/floor,/area/submap/Rockybase) "da" = (/obj/item/mecha_parts/chassis/gygax,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dc" = (/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dd" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dd" = (/obj/machinery/vending/robotics,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "de" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "df" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "dg" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dh" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dh" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "di" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase) -"dj" = (/obj/item/mecha_parts/part/gygax_right_leg,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dj" = (/obj/item/mecha_parts/part/gygax_right_leg,/obj/effect/floor_decal/corner/lime/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "dk" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/item/mecha_parts/part/gygax_left_arm,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase) "dl" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "dn" = (/obj/machinery/power/smes/buildable/point_of_interest,/obj/structure/cable/green,/turf/simulated/floor,/area/submap/Rockybase) "do" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dp" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_mob/mechanical/combat_drone/lesser,/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dq" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dq" = (/obj/structure/closet/secure_closet/hydroponics,/obj/effect/floor_decal/corner/lime/border{dir = 4; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "dr" = (/obj/effect/decal/cleanable/blood/oil,/turf/template_noop,/area/template_noop) "ds" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dt" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase) @@ -181,8 +181,8 @@ "dz" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dA" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/tiled,/area/submap/Rockybase) "dB" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot{faction = "malf_drone"},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dC" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 10},/turf/simulated/floor/tiled,/area/submap/Rockybase) -"dD" = (/obj/structure/closet/crate/secure/hydrosec,/obj/effect/floor_decal/corner/lime/border{icon_state = "bordercolor"; dir = 6},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dC" = (/obj/machinery/vending/hydroseeds,/obj/effect/floor_decal/corner/lime/border{dir = 10; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) +"dD" = (/obj/structure/closet/crate/secure/hydrosec,/obj/effect/floor_decal/corner/lime/border{dir = 6; icon_state = "bordercolor"},/turf/simulated/floor/tiled,/area/submap/Rockybase) "dE" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/structure/gravemarker{dir = 1},/turf/template_noop,/area/template_noop) "dF" = (/obj/effect/gibspawner/robot,/turf/template_noop,/area/template_noop) "dG" = (/obj/effect/gibspawner/human,/turf/template_noop,/area/template_noop) diff --git a/maps/submaps/surface_submaps/wilderness/deathden.dmm b/maps/submaps/surface_submaps/wilderness/deathden.dmm index bf2542946f5..d0bbccc747e 100644 --- a/maps/submaps/surface_submaps/wilderness/deathden.dmm +++ b/maps/submaps/surface_submaps/wilderness/deathden.dmm @@ -67,7 +67,7 @@ "wK" = (/obj/structure/window/reinforced/tinted/frosted{dir = 1},/obj/structure/table/wooden_reinforced,/obj/random/soap,/obj/item/weapon/flame/candle/everburn,/turf/simulated/floor/tiled/freezer,/area/submap/DeathDen) "xN" = (/obj/structure/loot_pile/maint/technical,/turf/simulated/floor/outdoors/dirt{outdoors = 0},/area/submap/DeathDen) "xS" = (/mob/living/simple_mob/animal/sif/savik{health = 200; melee_damage_lower = 20; melee_damage_upper = 40; name = "alpha savik"},/turf/simulated/floor/carpet/turcarpet,/area/submap/DeathDen) -"xZ" = (/obj/item/weapon/storage/box/shotgunammo/large,/turf/simulated/floor/wood/sif,/area/submap/DeathDen) +"xZ" = (/obj/item/ammo_magazine/ammo_box/b12g/pellet,/obj/item/ammo_magazine/ammo_box/b12g/pellet,/turf/simulated/floor/wood/sif,/area/submap/DeathDen) "yn" = (/turf/simulated/floor/outdoors/dirt,/area/template_noop) "yL" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/flame/candle/everburn,/obj/item/weapon/material/shard{pixel_x = -3; pixel_y = -6},/obj/item/weapon/material/shard{pixel_x = 6; pixel_y = -6},/turf/simulated/floor/wood/sif,/area/submap/DeathDen) "yS" = (/obj/item/weapon/reagent_containers/food/snacks/candy_corn{pixel_x = 6; pixel_y = 4},/obj/effect/floor_decal/carpet{dir = 8},/obj/random/maintenance/engineering,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/carpet/turcarpet,/area/submap/DeathDen) diff --git a/maps/tether/submaps/tether_centcom.dmm b/maps/tether/submaps/tether_centcom.dmm index fdbd8460325..ae96dcf6802 100644 --- a/maps/tether/submaps/tether_centcom.dmm +++ b/maps/tether/submaps/tether_centcom.dmm @@ -31,8 +31,8 @@ "ag" = ( /obj/structure/table/rack, /obj/item/weapon/gun/projectile/heavysniper, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/simulated/floor/tiled/dark, /area/centcom/specops) "ah" = ( @@ -627,11 +627,11 @@ "bZ" = ( /obj/structure/table/rack, /obj/structure/window/reinforced, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunammo, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, -/obj/item/weapon/storage/box/shotgunshells, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/simulated/floor/tiled{ icon_state = "dark" }, @@ -1569,12 +1569,12 @@ /area/centcom/terminal) "fl" = ( /obj/structure/table/reinforced, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/flashshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/stunshells, -/obj/item/weapon/storage/box/beanbags, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/tiled{ icon_state = "dark" }, @@ -5313,15 +5313,15 @@ "vk" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, -/obj/item/weapon/storage/box/shotgunammo/large, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, +/obj/item/ammo_magazine/ammo_box/b12g, /turf/simulated/floor/tiled/dark, /area/centcom/security) "vm" = ( @@ -5691,10 +5691,10 @@ "wY" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, -/obj/item/weapon/storage/box/sniperammo, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, +/obj/item/ammo_magazine/ammo_box/b145, /turf/simulated/floor/tiled/dark, /area/centcom/security) "xc" = ( @@ -7194,14 +7194,14 @@ /area/centcom/control) "Eq" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, -/obj/item/weapon/storage/box/stunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) @@ -8528,15 +8528,15 @@ "Ih" = ( /obj/structure/table/rack, /obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, -/obj/item/weapon/storage/box/shotgunshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, +/obj/item/ammo_magazine/ammo_box/b12g/pellet, /turf/simulated/floor/tiled/dark, /area/centcom/security) "Ij" = ( @@ -12177,14 +12177,14 @@ /area/centcom/security) "Ri" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, -/obj/item/weapon/storage/box/beanbags/large, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) @@ -14352,14 +14352,14 @@ }) "Wq" = ( /obj/structure/table/rack, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, -/obj/item/weapon/storage/box/flashshells/large, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, +/obj/item/ammo_magazine/ammo_box/b12g/flash, /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/tiled/dark, /area/centcom/security) diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index a92c25c0643..cdba4f64c5e 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -35167,14 +35167,6 @@ /area/tether/surfacebase/surface_one_hall) "lSW" = ( /obj/structure/table/reinforced, -/obj/item/weapon/storage/box/blanks{ - pixel_x = 2; - pixel_y = -2 - }, -/obj/item/weapon/storage/box/blanks{ - pixel_x = 2; - pixel_y = -2 - }, /obj/item/ammo_magazine/clip/c762/practice, /obj/item/ammo_magazine/clip/c762/practice, /obj/machinery/recharger/wallcharger{ @@ -35189,6 +35181,8 @@ /obj/item/ammo_magazine/m45/practice, /obj/item/ammo_magazine/m9mmt/practice, /obj/item/ammo_magazine/m9mmt/practice, +/obj/item/ammo_magazine/ammo_box/b12g/blank, +/obj/item/ammo_magazine/ammo_box/b12g/blank, /turf/simulated/floor/tiled, /area/tether/surfacebase/security/weaponsrange) "lTn" = ( diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index f9fd05e2ab0..cbc8186c5fd 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -4826,19 +4826,19 @@ /area/tether/surfacebase/security/armory) "ahA" = ( /obj/structure/table/steel, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = -2; +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/ammo_magazine/ammo_box/b12g/pellet{ + pixel_x = -5; pixel_y = 7 }, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/shotgunshells{ - pixel_x = 6; - pixel_y = -1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/armory) "ahB" = ( @@ -6064,20 +6064,21 @@ /area/tether/surfacebase/security/outfitting/storage) "ajs" = ( /obj/structure/table/steel, -/obj/item/weapon/storage/box/stunshells{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/storage/box/flashshells{ - pixel_x = 1 - }, -/obj/item/weapon/storage/box/beanbags{ - pixel_x = 4; - pixel_y = -5 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_magazine/ammo_box/b12g/flash{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/ammo_magazine/ammo_box/b12g/stunshell{ + pixel_x = -5; + pixel_y = 7 + }, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/armory) "ajt" = ( diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 3a8133e1c91..8478e8a3fa6 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -20249,6 +20249,8 @@ }, /obj/item/weapon/storage/pill_bottle/dice, /obj/item/weapon/storage/pill_bottle/dice_nerd, +/obj/item/weapon/deck/wizoff, +/obj/item/weapon/book/manual/wizzoffguide, /turf/simulated/floor/wood, /area/library) "aGZ" = ( @@ -31914,12 +31916,12 @@ /area/hallway/lower/third_south) "bcu" = ( /obj/structure/table/woodentable, -/obj/item/weapon/storage/box/beanbags, /obj/item/weapon/gun/projectile/shotgun/doublebarrel, /obj/item/weapon/paper{ info = "This permit signifies that the Bartender is permitted to posess this firearm in the bar, and ONLY the bar. Failure to adhere to this permit will result in confiscation of the weapon and possibly arrest."; name = "Shotgun permit" }, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/wood, /area/tether/surfacebase/bar_backroom) "bcv" = ( diff --git a/maps/virgo_minitest/virgo_minitest-sector-3.dmm b/maps/virgo_minitest/virgo_minitest-sector-3.dmm index d1d6b15a0d5..f0f58d57ede 100644 --- a/maps/virgo_minitest/virgo_minitest-sector-3.dmm +++ b/maps/virgo_minitest/virgo_minitest-sector-3.dmm @@ -41,7 +41,7 @@ "al" = ( /obj/structure/closet/cabinet, /obj/item/weapon/gun/projectile/shotgun/doublebarrel, -/obj/item/weapon/storage/box/beanbags, +/obj/item/ammo_magazine/ammo_box/b12g/beanbag, /turf/simulated/floor/wood, /area/awaymission/wwmines) "am" = ( diff --git a/sound/effects/spider_loop.ogg b/sound/effects/spider_loop.ogg index 3a98df83e2a..dfdd43f972c 100644 Binary files a/sound/effects/spider_loop.ogg and b/sound/effects/spider_loop.ogg differ diff --git a/vorestation.dme b/vorestation.dme index 275f73398f0..8965b79936d 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2357,6 +2357,7 @@ #include "code\modules\games\dice.dm" #include "code\modules\games\spaceball_cards.dm" #include "code\modules\games\tarot.dm" +#include "code\modules\games\wizoff.dm" #include "code\modules\genetics\side_effects.dm" #include "code\modules\ghosttrap\trap.dm" #include "code\modules\holodeck\HolodeckControl.dm" @@ -3108,6 +3109,7 @@ #include "code\modules\mob\living\simple_mob\subtypes\vore\corrupt_hounds.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\deathclaw.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\dino.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\dominated_brain.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\dragon.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\fennec.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\fennix.dm" @@ -3491,7 +3493,6 @@ #include "code\modules\projectiles\projectile.dm" #include "code\modules\projectiles\ammunition\ammo_boxes.dm" #include "code\modules\projectiles\ammunition\magazines.dm" -#include "code\modules\projectiles\ammunition\magazines_vr.dm" #include "code\modules\projectiles\ammunition\magnetic.dm" #include "code\modules\projectiles\ammunition\rounds.dm" #include "code\modules\projectiles\ammunition\smartmag.dm" @@ -3568,13 +3569,10 @@ #include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm" #include "code\modules\projectiles\projectile\arc.dm" #include "code\modules\projectiles\projectile\beams.dm" -#include "code\modules\projectiles\projectile\beams_vr.dm" #include "code\modules\projectiles\projectile\blob.dm" #include "code\modules\projectiles\projectile\bullets.dm" -#include "code\modules\projectiles\projectile\bullets_vr.dm" #include "code\modules\projectiles\projectile\change.dm" #include "code\modules\projectiles\projectile\energy.dm" -#include "code\modules\projectiles\projectile\energy_vr.dm" #include "code\modules\projectiles\projectile\explosive.dm" #include "code\modules\projectiles\projectile\force.dm" #include "code\modules\projectiles\projectile\hook.dm" @@ -4101,7 +4099,6 @@ #include "maps\southern_cross\loadout\loadout_suit.dm" #include "maps\southern_cross\loadout\loadout_uniform.dm" #include "maps\southern_cross\loadout\loadout_vr.dm" -#include "maps\stellardelight\stellar_delight.dm" #include "maps\submaps\_helpers.dm" #include "maps\submaps\_readme.dm" #include "maps\submaps\engine_submaps\engine.dm" @@ -4111,5 +4108,6 @@ #include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" +#include "maps\tether\tether.dm" #include "maps\~map_system\maps.dm" // END_INCLUDE