mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 08:08:49 +01:00
Bubberstation gun replacements part 1: Murphy service pistol [part of skyrat removal PR] (#3949)
## About The Pull Request Feedback here: https://discord.com/channels/1059199070016655462/1381309027849474169 This PR is a complimentary PR that fills in the widest gaps left by the now-removed arrangement of guns. The focus is on making security still have a very reliable sidearm that is interesting and provides relevance even in the later game. It is also perfectly usable as a regular weapon without all the fluff. This PR is one of 5 total, and with being asked to atomize my things, it will be the first one to try out for testmerge. # This PR only adds the murphy, rest is data on all plans and guns ## 'Murphy' security pistol ``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. 60% more bullet-per-bullet ammo may not have helped it's killing power, but it sure helped this gun hit like an actual brick when used as a bludgeon. Not only that, but it's 'anti-lawsuit' heavy trigger design allows for safe spinning, if one can handle it and not hit anyone with the magazine flying out the handle...`` - 20 damage shots - 10 bullet magazines - baton-equivilent pistol whip damage - increased throw force - press Z when the gun is dry to reload your gun over (2-3 seconds, DRAFT, as I said). This can be done on the move and you do not need your other hand empty to do this. - toggleable setting, off by default, ejects your magazines for a tiny bit of extra damage. - researchable magazines that pack only 8 rounds in return for dealing [30-40, up to adjustment] damage. [knockdown is being discussed] ## Upcoming: Personality Core Eguns, The SC-3 Aren't you tired of old eguns? The blandness of them? Their low amount of potential upgrades? Well fear not, as with every arms race, Allstar has made developments of their own. *lightly* copying the homework off their more morally corrupt competitors, personality modules. So how's it compare to an egun? - Radial menu is a bit clunkier to use - Comes with a free combat knife as a module - Will loudly proclaim your location when emp'd due to a personaltiy module - Is practically the same combat-wise as the egun if you were to micromanage a combat knife alongside it. It's a third-degree, but was highly requested, and not only! (I say equivilent to combat knife because I am about to release an ERT buff PR) **As you can impact what the final modules are with this poll** https://forms.gle/d3Fst6ZLWYTb8mDo7 --## Plasma Gun [the most wip of them all] - Magazine fed bulky weapon - We hear concerns about vampires being too strong, so this weapon's shots damage scales depending on the amount of shots a target has received from this particular gun. No, 5 officers with the same gun will not be more effective than one. - Due to it's high power (if you can mind the damage rampup), it's also highly expensive and volatile. You shouldn't let one of those armaments explode, lest it's core bursts. (Gibtonite effect upon being caught in a heavy explosion, after some time). -- This weapon is not needed for the game balance, instead, focus is shifted to rebalancing the Kiboko to be a usable gun. The aim will be to have it to take on a more supportive role, being effective at applying firestacks and providing smoke if need be. The kiboko will become a tool that will require itself to be roundstart only, or at least dep-order only as to prevent it from being a recurring threat if dealt with once already. - Buff damage from 20 -> 30 on hit - Buff projectile velocity - Remove practise and shrapnel rounds - Remove delay between hitting target and exploding (if on the same tile) - Grenades will now explode even if they score a direct hit - Less deadly fire grenades (up to 100+ damage per one currently if met on an unarmored target in close proximity, will likely make it less damaging but more consistent) Planned addition: Breacher rounds: The kiboko's breacher rounds are inspired by the strange delay they initially had and how it felt reminiscent of R6's Ash. Frangible slugs are not often used as it takes away ammo from a main weapon, they are also clunkier and require several rounds. They have their place but are overall quite messy. What breacher rounds will do is cause a delayed (mostly cosmetic) explosion after striking a target object, structure or person. The delay will be larger if the integrity of the object hit is large, scaling. This isn't the end of the world as it will still be the quickest or at least easiest way to tear down walls and airlocks. This also provides some time to take out any shields, weapons and prime grenades while waiting on the charge to drill deeper and have the fuse detonate. ## Why It's Good For The Game (will update this, currently my exams are approaching very quickly, so please be understanding for needing yet more time. Work speed will pick up drastically once that is over. ) New security get a gun that is easy and convenient to use. The gun is not meant to be your main tool of dealing with threats such as traitor, rather your backup plan. As such, it benefits from okay-ish stats for melee combat once you run out of everything. It shakes up the belt-storage meta, making magazines more enticing of a choice considering the potential of unloading very consistent fire if one is to use that room. For threats that are more slippery or plentiful such as carps or spiders this gun's aforementioned consistency crowns over other ones. Lastly, in those scenarios it helps you keep your shield up and keep dishing out damage. Turn off your brain for once with the Murphy. Highly requested bit of fun gun customization, will come with multiple personality matrices. ~~ Helps security and crew with dealing with extremely defensive and bulky threats. Be it a nukie, mech or vampire, if the user maintains healthy social distancing then the tables will turn quickly, forcing antagonists to reconsider their approach and introduces a gun that while possible to use personally, becomes much better with team-oriented protective playstyles. ~~ I have discussed this heavily with my team and they have reassured me that the current threats are not as bad as it would have initially seemed. The tools to deal with that already exist. The kiboko's rounds can be outran which makes it only a good breaching weapon, as a breaching weapon it is outclassed by almost anything else as anyone can block the grenade with their body for a measely 20 damage pre-armour, and then there's the fact it's shrapnel rounds cause weeping avulsions near-guaranteedly if they hit. It's a mess. Again, disclaimer, the values are not final, will be likely changed, aspects such as how the guns work are being discussed and the visual aspects are going to be handled last. The necessity of more is being discussed as 5 concepts of guns were scrapped, 2 of which mid-development. ## Proof Of Testing To be done, you can find discussion pertaining this in the skyrat gun removal thread. ## Changelog 🆑 add: Added a security sidearm - the Murphy service pistol. Spin to reload with ammo from your belt slot, toggle launch-ejecting mags (and special mags) for a little (or a lot) extra damage. Show the last person to have laughed at your gun why your 'brick' is called a brick by pistolwhipping them (baton equivalent damage on hit, stronger throw). add: 9mm security caliber for the murphy. /🆑 --------- Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
/*
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
+30
@@ -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."
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
. = ..()
|
||||
+3
-2
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user