diff --git a/code/__DEFINES/~skyrat_defines/projectiles.dm b/code/__DEFINES/~skyrat_defines/projectiles.dm index 1c0812617b5..06772d0a29e 100644 --- a/code/__DEFINES/~skyrat_defines/projectiles.dm +++ b/code/__DEFINES/~skyrat_defines/projectiles.dm @@ -28,3 +28,6 @@ #define CALIBER_457GOVT ".457 Government" #define CALIBER_FLECHETTE "Flechette" + +// Murphy caliber, there was no other way to make it non-compatible with syndie ammo and prevent gaming it +#define CALIBER_9MM_SEC "9mm Security" diff --git a/modular_skyrat/modules/company_imports/code/objects/vitezstvi/ammo_boxes.dm b/modular_skyrat/modules/company_imports/code/objects/vitezstvi/ammo_boxes.dm index 85c445b5b43..d7118005c1c 100644 --- a/modular_skyrat/modules/company_imports/code/objects/vitezstvi/ammo_boxes.dm +++ b/modular_skyrat/modules/company_imports/code/objects/vitezstvi/ammo_boxes.dm @@ -40,6 +40,11 @@ ammo_type = /obj/item/ammo_casing/c10mm/fire max_ammo = 20 +/obj/item/ammo_box/c9mm/security //Bubberstation sourced, because I'll finalize all the moving once I merge the adjacent PR's + name = "ammo box (9mm Murphy)" + ammo_type = /obj/item/ammo_casing/security + caliber = CALIBER_9MM_SEC + /obj/item/ammo_box/c46x30mm name = "ammo box (4.6x30mm)" icon = 'modular_skyrat/modules/company_imports/icons/ammo.dmi' diff --git a/modular_skyrat/modules/sec_haul/code/guns/bullets.dm b/modular_skyrat/modules/sec_haul/code/guns/bullets.dm index 36cecf75356..557791c2176 100644 --- a/modular_skyrat/modules/sec_haul/code/guns/bullets.dm +++ b/modular_skyrat/modules/sec_haul/code/guns/bullets.dm @@ -64,6 +64,17 @@ sharpness = NONE embed_type = null +/obj/item/ammo_casing/security + name = "9x25mm Mk.12 security casing" + desc = "A modern 9x25mm Mk.12 bullet casing. This one fires a law-enfocement grade round, making it less deadly than most, but still lethal enough to do it's job." + caliber = CALIBER_9MM_SEC + projectile_type = /obj/projectile/bullet/security + +/obj/projectile/bullet/security + name = "9x25mm Murphy bullet" + damage = 20 + wound_bonus = -20 + /obj/projectile/bullet/c9mm damage = 25 /* diff --git a/modular_skyrat/modules/sec_haul/code/misc/vending.dm b/modular_skyrat/modules/sec_haul/code/misc/vending.dm index fe0ea0c51af..01fcf1c4f58 100644 --- a/modular_skyrat/modules/sec_haul/code/misc/vending.dm +++ b/modular_skyrat/modules/sec_haul/code/misc/vending.dm @@ -18,7 +18,6 @@ contraband = list( /obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 2, - /obj/item/ammo_box/magazine/m9mm = 4, ) premium = list( /obj/item/storage/belt/security/webbing = 5, @@ -30,8 +29,7 @@ /obj/item/watertank/pepperspray = 2, /obj/item/storage/belt/holster/energy = 4, /obj/item/storage/box/holobadge = 1, - /obj/item/ammo_box/magazine/m9mm/rubber = 12, - /obj/item/ammo_box/magazine/m9mm/ihdf = 12, + /obj/item/ammo_box/magazine/security = 12, /obj/item/ammo_box/c10mm/speedloader/rubber = 12, /obj/item/ammo_box/advanced/s12gauge/frangible = 2, ) diff --git a/modular_skyrat/modules/sec_haul/code/technode/all_nodes.dm b/modular_skyrat/modules/sec_haul/code/technode/all_nodes.dm index 78e2bbb1866..8e2059818ae 100644 --- a/modular_skyrat/modules/sec_haul/code/technode/all_nodes.dm +++ b/modular_skyrat/modules/sec_haul/code/technode/all_nodes.dm @@ -34,6 +34,7 @@ design_ids += "ammoworkbench_disk_lethal" design_ids += "ammo_workbench" design_ids += "s12g_huntingslug" + design_ids += "m9mm_sec" /datum/techweb_node/magazineresearch_heavy id = "storedmunition_tech_three" @@ -64,6 +65,7 @@ design_ids += "sol_bolt_to_rifle" design_ids += "c10mm_rhp" design_ids += "c10mm_rap" + design_ids += "m9mm_sec_rocket" . = ..() /datum/techweb_node/syndicate_basic/New() diff --git a/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm new file mode 100644 index 00000000000..deda59f4e63 --- /dev/null +++ b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -0,0 +1,35 @@ +/obj/item/ammo_box/magazine/security + name = "pistol magazine (9mm Murphy)" + desc = "A 9mm handgun magazine, suitable for the Service Pistol." + icon = 'modular_skyrat/modules/aesthetics/guns/icons/magazine.dmi' + icon_state = "9x19p" + base_icon_state = "9x19p" + ammo_type = /obj/item/ammo_casing/security + caliber = CALIBER_9MM_SEC + max_ammo = 10 + ammo_band_color = null + multiple_sprites = AMMO_BOX_PER_BULLET + multiple_sprite_use_base = TRUE + var/murphy_eject_sound = 'sound/items/weapons/throwhard.ogg' + var/was_ejected = 0 + +/obj/item/ammo_box/magazine/security/rocket + name = "pistol magazine (9mm Murphy Rocket Eject)" + desc = "A 9mm handgun magazine, suitable for the Service Pistol." + ammo_type = /obj/item/ammo_casing/security + max_ammo = 8 + base_icon_state = "9x19pI" + murphy_eject_sound = 'sound/items/weapons/gun/general/rocket_launch.ogg' + +/obj/item/ammo_box/magazine/security/rocket/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(QDELETED(src)) + return + if(was_ejected) + playsound(get_turf(src.loc), 'sound/effects/explosion/explosion1.ogg', 40, 1) + visible_message(span_warning("[src] crumbles into scrap from the force of the impact")) + if(isliving(hit_atom)) + var/mob/living/hit_mob = hit_atom + hit_mob.Knockdown(2 SECONDS) + hit_mob.apply_damage(40, BRUTE, BODY_ZONE_CHEST) + qdel(src) diff --git a/modular_zubbers/code/modules/research/designs/autolathe/security_designs.dm b/modular_zubbers/code/modules/research/designs/autolathe/security_designs.dm new file mode 100644 index 00000000000..2cb97bf09c0 --- /dev/null +++ b/modular_zubbers/code/modules/research/designs/autolathe/security_designs.dm @@ -0,0 +1,12 @@ +/datum/design/c9mm_sec + name = "Ammo Box (9x25mm Murphy) (Lethal)" //SKYRAT EDIT: Calibre rename - Original: name = "Ammo Box (9mm)" + id = "c9mm_sec" + build_type = AUTOLATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 150) + build_path = /obj/item/ammo_box/c9mm/security + category = list( + RND_CATEGORY_HACKED, + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO, + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + diff --git a/modular_skyrat/modules/sec_haul/code/technode/sec_research.dm b/modular_zubbers/code/modules/research/designs/weapon_designs.dm similarity index 94% rename from modular_skyrat/modules/sec_haul/code/technode/sec_research.dm rename to modular_zubbers/code/modules/research/designs/weapon_designs.dm index 74bcfe96a5b..c62df3ded14 100644 --- a/modular_skyrat/modules/sec_haul/code/technode/sec_research.dm +++ b/modular_zubbers/code/modules/research/designs/weapon_designs.dm @@ -301,6 +301,36 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY +/datum/design/m9mm_sec + name = "Magazine (9x25mm Murphy) (Lethal)" + desc = "Designed to slide in and out of a 9mm 'Murphy' service pistol. It's heavier bullets make this magazine quite heavy, watch where you throw it!" + id = "m9mm_sec" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30, + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3, + ) + build_path = /obj/item/ammo_box/magazine/security + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + +/datum/design/m9mm_sec_rocket + name = "Magazine (9x25mm Murphy RE) (Lethal)" + desc = "A volatile magazine with extra weight and aerodynamic padding, letting it accelerate rapidly upon release - preferrably towards the suspect." + id = "m9mm_sec_rocket" + build_type = PROTOLATHE | AWAY_LATHE + materials = list( + /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10, + /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 5, + ) + build_path = /obj/item/ammo_box/magazine/security/rocket + category = list( + RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + /datum/design/m9mm_mag_rubber name = "9x25mm Mk2 Pistol Magazine(Less-Lethal)" desc = "A standard magazine for pistol using 9x25mm Mk2." diff --git a/modular_zubbers/code/modules/security/security_glock/cargo.dm b/modular_zubbers/code/modules/security/security_glock/cargo.dm index 5c67b18b815..914b9863a39 100644 --- a/modular_zubbers/code/modules/security/security_glock/cargo.dm +++ b/modular_zubbers/code/modules/security/security_glock/cargo.dm @@ -2,35 +2,21 @@ /datum/export/weapon/sec_glock export_types = list(/obj/item/gun/ballistic/automatic/pistol/sec_glock) cost = CARGO_CRATE_VALUE * 1.25 - unit_name = "C-CK 9x25mm pistol" + unit_name = "'Murphy' Service Pistol" /datum/supply_pack/security/armory/sec_glock - name = "C-CK 9x25mm Crate" - desc = "Contains a pair of C-CK 9x25mm pistols pre-loaded with less-than-lethal rubber-tipped rounds. Additional ammo sold seperately. Nanotrasen reminds you that the other weapon is for a friend, and not for going guns akimbo." + name = "'Murphy' Service Pistol Crate" + desc = "Contains a pair of 'Murphy' service pistols pre-loaded with lethal rounds. Additional ammo sold seperately. Nanotrasen reminds you that the other weapon is for a friend, and not for going guns akimbo." cost = CARGO_CRATE_VALUE * 6 - contains = list(/obj/item/gun/ballistic/automatic/pistol/sec_glock/security/rubber = 2) - crate_name = "C-CK 9x25mm crate" + contains = list(/obj/item/gun/ballistic/automatic/pistol/sec_glock = 2) + crate_name = "'Murphy' service pistol crate" -/datum/supply_pack/security/armory/sec_glock_ammo_rubber - name = "C-CK 9x25mm Ammo Crate (Rubber-Tipped)" - desc = "Contains 4 magazines with less-than-lethal rubber-tipped rounds for the C-CK 9x25mm." +/datum/supply_pack/security/armory/sec_glock_ammo + name = "'Murphy' Service Pistol Ammo Crate" + desc = "Contains 4 magazines with lethal rounds for the 'Murphy' service pistol." cost = CARGO_CRATE_VALUE * 3 - contains = list(/obj/item/ammo_box/magazine/m9mm/rubber = 4) - crate_name = "C-CK 9x25mm ammo crate (rubber-tipped)" - -/datum/supply_pack/security/armory/sec_glock_ammo_flat - name = "C-CK 9x25mm Ammo Crate (Flat-Tipped)" - desc = "Contains 4 magazines with lethal flat-tipped rounds for the C-CK 9x25mm." - cost = CARGO_CRATE_VALUE * 4 - contains = list(/obj/item/ammo_box/magazine/m9mm/flathead = 4) - crate_name = "C-CK 9x25mm ammo crate (flat-tipped)" - -/datum/supply_pack/security/armory/sec_glock_ammo_regular - name = "C-CK 9x25mm Ammo Crate (Regular)" - desc = "Contains 4 magazines with lethal rounds for the C-CK 9x25mm." - cost = CARGO_CRATE_VALUE * 6 - contains = list(/obj/item/ammo_box/magazine/m9mm = 4) - crate_name = "C-CK 9x25mm ammo crate (regular)" + contains = list(/obj/item/ammo_box/magazine/security = 4) + crate_name = "'Murphy' service pistol ammo crate" /datum/supply_pack/security/armory/alert_level_firing_pin name = "Alert Level Firing Pin Crate" diff --git a/modular_zubbers/code/modules/security/security_glock/case.dm b/modular_zubbers/code/modules/security/security_glock/case.dm index d7eafc93640..8afa1470893 100644 --- a/modular_zubbers/code/modules/security/security_glock/case.dm +++ b/modular_zubbers/code/modules/security/security_glock/case.dm @@ -1,15 +1,15 @@ /obj/item/storage/toolbox/guncase/skyrat/pistol/sec_glock - name = "black glock-9mm case" + name = "\improper 'Murphy' Service Pistol case" /obj/item/storage/toolbox/guncase/skyrat/pistol/sec_glock/PopulateContents() - new /obj/item/gun/ballistic/automatic/pistol/sec_glock/security(src) - new /obj/item/ammo_box/magazine/m9mm/flathead(src) - new /obj/item/ammo_box/magazine/m9mm/flathead(src) + new /obj/item/gun/ballistic/automatic/pistol/sec_glock(src) + new /obj/item/ammo_box/magazine/security(src) + new /obj/item/ammo_box/magazine/security(src) /obj/item/storage/toolbox/guncase/skyrat/pistol/hos_glock - name = "silver glock-9mm case" + name = "\improper 'Murphy' Service Pistol case" /obj/item/storage/toolbox/guncase/skyrat/pistol/hos_glock/PopulateContents() new /obj/item/gun/ballistic/automatic/pistol/sec_glock(src) - new /obj/item/ammo_box/magazine/m9mm(src) - new /obj/item/ammo_box/magazine/m9mm(src) + new /obj/item/ammo_box/magazine/security(src) + new /obj/item/ammo_box/magazine/security(src) diff --git a/modular_zubbers/code/modules/security/security_glock/gun.dm b/modular_zubbers/code/modules/security/security_glock/gun.dm index 16cefd68bb8..851a1586ca1 100644 --- a/modular_zubbers/code/modules/security/security_glock/gun.dm +++ b/modular_zubbers/code/modules/security/security_glock/gun.dm @@ -1,28 +1,158 @@ /obj/item/gun/ballistic/automatic/pistol/sec_glock //This is what you give to the Head of Security. - name = "\improper Silver C-CK 9x25mm" - desc = "The Compact Criminal Killer, or C-CK9 for short, is a semi-automatic ballistic pistol meant for regulated station defense. This one is silver plated." - icon = 'modular_zubbers/icons/obj/guns/sec_pistol.dmi' - icon_state = "silver" - w_class = WEIGHT_CLASS_NORMAL - accepted_magazine_type = /obj/item/ammo_box/magazine/m9mm - spawn_magazine_type = /obj/item/ammo_box/magazine/m9mm - fire_sound = 'modular_zubbers/sound/weapons/gun/lock/shot.ogg' - fire_delay = 3 - can_suppress = FALSE - projectile_damage_multiplier = 0.75 - -/obj/item/gun/ballistic/automatic/pistol/sec_glock/security //This is what you give to Security Officers. - name = "\improper C-CK 9x25mm" - desc = "The Compact Criminal Killer, or C-CK9 for short, is a semi-automatic ballistic pistol meant for regulated station defense. These are normally issued with a special firing pin that only allows firing on code blue or higher." + name = "\improper 'Murphy' Service Pistol" + desc = "This 9 mm monster was developed during the very first body-modding craze by Nanotrasen, built with every what-if in mind, this timeless brick is near-incapable of failure. It comes with a revolutionary quick-reload system." icon = 'modular_zubbers/icons/obj/guns/sec_pistol.dmi' icon_state = "black" - pin = /obj/item/firing_pin/alert_level/blue - spawn_magazine_type = /obj/item/ammo_box/magazine/m9mm/flathead - fire_delay = 4 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 19 //Nokia of guns, no locker breaking though + force = 10 //same as baton + accepted_magazine_type = /obj/item/ammo_box/magazine/security + fire_sound = 'modular_zubbers/sound/weapons/gun/lock/shot.ogg' + fire_delay = 5 can_suppress = FALSE - projectile_damage_multiplier = 0.65 + projectile_damage_multiplier = 1 + actions_types = list(/datum/action/item_action/toggle_mageject) + var/magejecting = FALSE //Whether we are launching the mags or not -/obj/item/gun/ballistic/automatic/pistol/sec_glock/security/rubber //This is what you give to cargo packages. - spawn_magazine_type = /obj/item/ammo_box/magazine/m9mm/rubber +/datum/action/item_action/toggle_mageject + button_icon = 'icons/obj/weapons/guns/ammo.dmi' + button_icon_state = "9x19p" + name = "Toggle magazine ejection" + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/ui_action_click(mob/user, actiontype) + if(!istype(actiontype, /datum/action/item_action/toggle_mageject)) + return ..() + magejecting = !magejecting + balloon_alert(user, "[magejecting ? "now" : "no longer"] launching empty magazines") + playsound(user, 'sound/items/weapons/empty.ogg', 100, TRUE) + update_appearance() + update_item_action_buttons() + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/examine(mob/user) + . = ..() + . += span_notice("Only compatible with Nanotrasen-sourced 9mm magazines.") + . += span_notice("Using it in hand when out of ammo to start a spin reload. This can only be done if you have a spare magazine in or on your belt.") + . += span_notice("Spin reloads can be done on the move and need you only to hold your gun for their 2 second duration.") + . += span_notice("If toggled on, spin reloads throw empty magazines in the direction you're facing, dealing damage dependant on their type.") + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/attack_self(mob/living/user) + var/obj/item/belt_item = user.get_item_by_slot(ITEM_SLOT_BELT) + var/obj/item/ammo_box/magazine/swapped_mag = istype(belt_item, accepted_magazine_type) ? belt_item : locate(accepted_magazine_type) in belt_item + if(!magazine && !chambered) //Empty gun, load in anyhow but without delay. No mag + if(swapped_mag) + balloon_alert(user, "you spin your gun, loading in a mag!") + SpinAnimation(2, 1) + if(do_after(user, 1 SECONDS, timed_action_flags = (IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE), target = src)) + insert_magazine(user, swapped_mag) // Just put the new mag in hands off + return + else + balloon_alert(user, "no spare magazines in your belt!") // We still say what's wrong + default_behaviour(user, TRUE) + return + if(!magazine && chambered) + default_behaviour(user) + return + if(magazine) + if(!magazine.ammo_count() && !chambered) + if(swapped_mag) + balloon_alert(user, "you spin your gun, loading in a mag!") + SpinAnimation(2, 1) + if(do_after(user, 1 SECONDS, timed_action_flags = (IGNORE_USER_LOC_CHANGE | IGNORE_TARGET_LOC_CHANGE), target = src)) + throw_eject_magazine(user, magejecting, swapped_mag) + return + else + default_behaviour(user, TRUE) + balloon_alert(user, "no spare magazines in your belt!") + return + default_behaviour(user) +/obj/item/gun/ballistic/automatic/pistol/sec_glock/proc/throw_eject_magazine(mob/user, was_ejected, obj/item/ammo_box/magazine/security/belt_mag, atom/target) + if(bolt_type == BOLT_TYPE_OPEN) + chambered = null + if(magazine.ammo_count()) + playsound(src, eject_sound, eject_sound_volume, eject_sound_vary) + else + playsound(src, eject_empty_sound, eject_sound_volume, eject_sound_vary) + magazine.forceMove(drop_location()) + var/obj/item/ammo_box/magazine/security/old_mag = magazine + if(belt_mag) + insert_magazine(user, belt_mag) + else + magazine = null + return + old_mag.forceMove(drop_location()) + playsound(old_mag, old_mag.murphy_eject_sound, 50, TRUE) + if(was_ejected) + old_mag.was_ejected = TRUE + old_mag.throw_at(get_edge_target_turf(user, user.dir), range = 7, speed = 7, thrower = user, force = 10) + old_mag.update_appearance() + update_appearance() + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/insert_magazine(mob/user, obj/item/ammo_box/magazine/AM, display_message = TRUE) + if(!istype(AM, accepted_magazine_type)) + balloon_alert(user, "[AM.name] doesn't fit!") + return FALSE + if(user.transferItemToLoc(AM, src)) + magazine = AM + if(bolt_type == BOLT_TYPE_OPEN && !bolt_locked) + chamber_round(TRUE) + drop_bolt() + update_appearance() + return TRUE + else + to_chat(user, span_warning("You cannot seem to get [src] out of your hands!")) + return FALSE + + +// for your viewing convenience, same procs, just without bubbles +/obj/item/gun/ballistic/automatic/pistol/sec_glock/drop_bolt(mob/user = null) + playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE) + chamber_round() + bolt_locked = FALSE + update_appearance() + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/rack(mob/user = null) + if(bolt_type == BOLT_TYPE_NO_BOLT) + return + if(bolt_type == BOLT_TYPE_OPEN) + if(!bolt_locked) + return + bolt_locked = FALSE + process_chamber(!chambered, FALSE) + if(bolt_type == BOLT_TYPE_LOCKING && !chambered) + bolt_locked = TRUE + playsound(src, lock_back_sound, lock_back_sound_volume, lock_back_sound_vary) + else + playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) + update_appearance() + +/obj/item/gun/ballistic/automatic/pistol/sec_glock/proc/default_behaviour(mob/user = null, eject_mag_inside = FALSE) //Proc that we call to make the gun work as any gun would when not launching magazines etc + if(!internal_magazine && magazine && eject_mag_inside) //Eject mag inside prevents someone spamming use in hand from emptying the clip they're going to throw into their hand. + if(!magazine.ammo_count()) + eject_magazine(user) + return + if(bolt_type == BOLT_TYPE_NO_BOLT) + unload_ammo(user) + return + if(bolt_type == BOLT_TYPE_LOCKING && bolt_locked) + drop_bolt(user) + return + if (recent_rack > world.time) + return + recent_rack = world.time + rack_delay + rack(user) + return + +//oh BROTHER I am NOT getting a coder of the year award with this... But yeah overriding the item_interaction was my best idea out of MULTPLE attempts. Not lazy, just stupid. +/obj/item/gun/ballistic/automatic/pistol/sec_glock/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + . = ..() + if (.) + return + + if (!internal_magazine && istype(tool, /obj/item/ammo_box/magazine)) + if (tac_reloads) + eject_magazine(user) + insert_magazine(user, tool) + return ITEM_INTERACT_SUCCESS + ..() diff --git a/modular_zubbers/code/modules/security/security_glock/research.dm b/modular_zubbers/code/modules/security/security_glock/research.dm deleted file mode 100644 index 21cda295ea2..00000000000 --- a/modular_zubbers/code/modules/security/security_glock/research.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/design/glock9mm_ammo_rubber - name = "C-CK Magazine (9x25mm Rubber-Tipped) (Less-Than-Lethal)" - desc = "A magazine for the C-CK 9x25mm Pistol. Contains less-than-lethal rubber-tipped ammo." - id = "glock9mm_ammo_rubber" - build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3) - build_path = /obj/item/ammo_box/magazine/m9mm/rubber - category = list( - RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO - ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY - -/datum/design/glock9mm_ammo_flat - name = "C-CK Magazine (9x25mm FlatHead) (Lethal)" - desc = "A magazine for the C-CK 9x25mm Pistol. Contains lethal surplus-tier flathead ammo." - id = "glock9mm_ammo_flathead" - build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 4) - build_path = /obj/item/ammo_box/magazine/m9mm/flathead - category = list( - RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO - ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY - -/datum/design/glock9mm_ammo - name = "C-CK Magazine (9x25mm Regular) (Lethal)" - desc = "A magazine for the C-CK 9x25mm Pistol. Contains lethal regular ammo." - id = "glock9mm_ammo_normal" - build_type = PROTOLATHE | AWAY_LATHE - materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5) - build_path = /obj/item/ammo_box/magazine/m9mm - category = list( - RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO - ) - departmental_flags = DEPARTMENT_BITFLAG_SECURITY - -/datum/techweb_node/weaponry/New() - design_ids += "glock9mm_ammo_rubber" - design_ids += "glock9mm_ammo_flathead" - . = ..() - -/datum/techweb_node/adv_weaponry/New() - design_ids += "glock9mm_ammo_normal" - . = ..() diff --git a/tgstation.dme b/tgstation.dme index 501ad4013b9..b06afd8b46f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8650,7 +8650,6 @@ #include "modular_skyrat\modules\sec_haul\code\peacekeeper\peacekeeper_lockers.dm" #include "modular_skyrat\modules\sec_haul\code\technode\all_nodes.dm" #include "modular_skyrat\modules\sec_haul\code\technode\conversion_kit.dm" -#include "modular_skyrat\modules\sec_haul\code\technode\sec_research.dm" #include "modular_skyrat\modules\self_actualization_device\code\self_actualization_device.dm" #include "modular_skyrat\modules\server_overflow\code\chat_link.dm" #include "modular_skyrat\modules\server_overflow\code\client_procs.dm" @@ -9545,6 +9544,7 @@ #include "modular_zubbers\code\modules\power\supermatter\supermatter_gas.dm" #include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\rifle.dm" #include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\smg.dm" +#include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\pistol.dm" #include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\smg.dm" #include "modular_zubbers\code\modules\projectiles\guns\ballistic\automatic.dm" #include "modular_zubbers\code\modules\projectiles\guns\energy\pulse.dm" @@ -9577,7 +9577,9 @@ #include "modular_zubbers\code\modules\research\designs\medical_designs.dm" #include "modular_zubbers\code\modules\research\designs\misc_designs.dm" #include "modular_zubbers\code\modules\research\designs\nerd_designs.dm" +#include "modular_zubbers\code\modules\research\designs\weapon_designs.dm" #include "modular_zubbers\code\modules\research\designs\wiremod_designs.dm" +#include "modular_zubbers\code\modules\research\designs\autolathe\security_designs.dm" #include "modular_zubbers\code\modules\research\techweb\all_nodes.dm" #include "modular_zubbers\code\modules\research\techweb\circuit_nodes.dm" #include "modular_zubbers\code\modules\rr_opt_in\examine.dm" @@ -9594,7 +9596,6 @@ #include "modular_zubbers\code\modules\security\security_glock\firing_pin.dm" #include "modular_zubbers\code\modules\security\security_glock\gun.dm" #include "modular_zubbers\code\modules\security\security_glock\lockers.dm" -#include "modular_zubbers\code\modules\security\security_glock\research.dm" #include "modular_zubbers\code\modules\security_levels\security_level_datums.dm" #include "modular_zubbers\code\modules\shelves\shelf.dm" #include "modular_zubbers\code\modules\shuttle\emergency.dm"