diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm index b67667e26c69..be52f6a67f46 100644 --- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm @@ -374,11 +374,8 @@ }, /obj/item/gun/energy/lasercannon{ pixel_y = 5; - pin = /obj/item/firing_pin - }, -/obj/item/gun/energy/lasercannon{ - pin = /obj/item/firing_pin }, +/obj/item/gun/energy/lasercannon, /obj/effect/turf_decal/industrial/hatch, /turf/open/floor/plasteel/mono, /area/ruin/beach/complex) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 5a3d8ea3a2c7..28a963ed476a 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -1324,7 +1324,6 @@ "En" = ( /obj/item/gun/ballistic/automatic/smg/proto, /obj/structure/rack, -/obj/item/firing_pin, /turf/open/floor/vault, /area/ruin/unpowered/corprejectvault) "Er" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index 259991408266..505ae3600d31 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -2589,9 +2589,6 @@ /obj/structure/railing{ dir = 4 }, -/obj/item/firing_pin{ - pixel_y = 6 - }, /turf/open/floor/plasteel, /area/ruin/rockplanet/nanotrasen) "Tl" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm index 702885f9a0a8..8d9d02795d7d 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm @@ -251,7 +251,7 @@ /area/ruin/powered) "ga" = ( /obj/structure/table/wood/reinforced, -/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot{ +/obj/item/gun/ballistic/automatic/smg/c20r/toy/riot{ pixel_x = 5; pixel_y = 7 }, diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index 1b31a059567b..7577cdeb99f5 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -1924,7 +1924,7 @@ "XA" = ( /obj/structure/rack, /obj/item/ammo_box/foambox/riot, -/obj/item/gun/ballistic/automatic/toy/pistol/riot/unrestricted, +/obj/item/gun/ballistic/automatic/toy/pistol/riot, /obj/structure/cable{ icon_state = "1-2" }, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index ab4d4aeecf39..202a6c0c0b74 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -9120,7 +9120,7 @@ /obj/item/clothing/under/rank/rnd/scientist, /obj/item/clothing/shoes/sneakers/white, /obj/effect/gibspawner, -/obj/item/gun/energy/lasercannon/unrestricted{ +/obj/item/gun/energy/lasercannon{ desc = "An advanced laser cannon, a laser etched inscription in the handle states 'NT-LS-1013'. The casing is made of a lightweight alloy."; icon_state = "pulse"; name = "NT-LS-1013" @@ -10926,7 +10926,7 @@ "PZ" = ( /obj/effect/turf_decal/box, /obj/machinery/light/directional/north, -/obj/item/gun/energy/lasercannon/unrestricted{ +/obj/item/gun/energy/lasercannon{ desc = "An advanced laser cannon, a laser etched inscription in the handle states 'NT-LS-1013'. The casing is made of a lightweight alloy."; icon_state = "pulse"; name = "NT-LS-1013" diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm index 83249514118f..8a63378ced3c 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm @@ -798,7 +798,7 @@ /turf/open/floor/wood/waste, /area/ruin/wasteplanet) "Fn" = ( -/obj/item/gun/ballistic/automatic/smg/proto/unrestricted{ +/obj/item/gun/ballistic/automatic/smg/proto{ pixel_y = -18 }, /obj/item/ammo_casing/spent{ diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 6c80b8b2096f..19b41ef8018f 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -5319,7 +5319,7 @@ /turf/open/floor/plasteel, /area/centcom/control) "aUp" = ( -/obj/item/gun/energy/pulse/carbine/loyalpin, +/obj/item/gun/energy/pulse/carbine, /obj/item/flashlight/seclite, /obj/structure/table/reinforced, /obj/machinery/airalarm/directional/south, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 28a59c22727b..107044c9e80f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -3374,13 +3374,13 @@ "mt" = ( /obj/structure/window/reinforced/spawner, /obj/structure/rack, -/obj/item/gun/ballistic/automatic/smg/proto/unrestricted{ +/obj/item/gun/ballistic/automatic/smg/proto{ pixel_y = 3 }, -/obj/item/gun/ballistic/automatic/smg/proto/unrestricted{ +/obj/item/gun/ballistic/automatic/smg/proto{ pixel_y = -2 }, -/obj/item/gun/ballistic/automatic/smg/proto/unrestricted{ +/obj/item/gun/ballistic/automatic/smg/proto{ pixel_y = -7 }, /turf/open/floor/plasteel/tech, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index ad4889732fad..f5ffea852281 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -3232,7 +3232,6 @@ /obj/item/storage/box/handcuffs, /obj/item/storage/box/handcuffs, /obj/item/storage/box/prisoner, -/obj/item/storage/box/firingpins, /obj/item/storage/box/seccarts, /obj/item/storage/box/teargas, /obj/item/storage/box/zipties, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index b597d12f69e0..288fd6235cf8 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -3115,7 +3115,7 @@ /area/ship/engineering) "Ha" = ( /obj/structure/closet/secure_closet/lp/lieutenant, -/obj/item/gun/energy/e_gun/mindshield{ +/obj/item/gun/energy/e_gun{ pixel_y = 1 }, /obj/item/stock_parts/cell/gun, diff --git a/_maps/shuttles/pirate/pirate_ember.dmm b/_maps/shuttles/pirate/pirate_ember.dmm index 93d276197563..6173f14db95b 100644 --- a/_maps/shuttles/pirate/pirate_ember.dmm +++ b/_maps/shuttles/pirate/pirate_ember.dmm @@ -4019,10 +4019,6 @@ pixel_y = 7; pixel_x = 4 }, -/obj/item/storage/box/firingpins{ - pixel_x = -6; - pixel_y = 4 - }, /obj/item/storage/box/syndie_kit/throwing_weapons, /obj/machinery/light/directional/south, /obj/effect/decal/cleanable/dirt, diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm index df346f703dd3..10c591d8f52f 100644 --- a/_maps/shuttles/pirate/pirate_noderider.dmm +++ b/_maps/shuttles/pirate/pirate_noderider.dmm @@ -1039,7 +1039,7 @@ /obj/item/gun/energy/laser/iot, /obj/item/gun/energy/laser/iot, /obj/item/gun/energy/e_gun/smg, -/obj/item/gun/energy/lasercannon/unrestricted, +/obj/item/gun/energy/lasercannon, /obj/item/melee/baton/loaded, /obj/item/melee/baton/loaded, /turf/open/floor/plasteel/tech, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index b0a7e7fc2856..fc7e7a029b82 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -1707,9 +1707,6 @@ }, /obj/machinery/light/directional/north, /obj/machinery/firealarm/directional/east, -/obj/item/storage/box/firingpins{ - pixel_x = -12 - }, /turf/open/floor/pod/dark, /area/ship/security/armory) "qz" = ( @@ -2735,7 +2732,7 @@ }, /obj/structure/guncase, /obj/structure/railing, -/obj/item/gun/ballistic/automatic/smg/c20r/unrestricted, +/obj/item/gun/ballistic/automatic/smg/c20r, /obj/machinery/light/directional/east, /turf/open/floor/pod/dark, /area/ship/security/armory) diff --git a/check_regex.yaml b/check_regex.yaml index dc1d4d05e71a..538d570daea4 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -29,7 +29,7 @@ standards: - exactly: [1, "/area text paths", '"/area'] - exactly: [17, "/datum text paths", '"/datum'] - exactly: [4, "/mob text paths", '"/mob'] - - exactly: [44, "/obj text paths", '"/obj'] + - exactly: [43, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [117, "text2path uses", "text2path"] diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 8f0a0d9b3c43..d9edeb83202c 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -459,8 +459,6 @@ ///From /datum/component/creamed/Initialize() #define COMSIG_MOB_CREAMED "mob_creamed" -///From /obj/item/gun/proc/check_botched() -#define COMSIG_MOB_CLUMSY_SHOOT_FOOT "mob_clumsy_shoot_foot" ///When a carbon mob hugs someone, this is called on the carbon that is hugging. (mob/living/hugger, mob/living/hugged) #define COMSIG_CARBON_HUG "carbon_hug" diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 9167bbe224b4..0aa1a5a1e8cc 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -126,9 +126,6 @@ if(weapon.chambered && weapon.chambered.BB) weapon.chambered.BB.damage *= damage_mult - if(weapon.check_botched(shooter)) - return - weapon.process_fire(target, shooter) qdel(src) diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm index 8dfef21b749d..8a5c32d2e2d1 100644 --- a/code/datums/components/sitcomlaughter.dm +++ b/code/datums/components/sitcomlaughter.dm @@ -1,6 +1,6 @@ /datum/component/wearertargeting/sitcomlaughter valid_slots = list(ITEM_SLOT_HANDS, ITEM_SLOT_BELT, ITEM_SLOT_ID, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_DEX_STORAGE) - signals = list(COMSIG_MOB_CREAMED, COMSIG_ON_CARBON_SLIP, COMSIG_ON_VENDOR_CRUSH, COMSIG_MOB_CLUMSY_SHOOT_FOOT) + signals = list(COMSIG_MOB_CREAMED, COMSIG_ON_CARBON_SLIP, COMSIG_ON_VENDOR_CRUSH) proctype = PROC_REF(EngageInComedy) mobtype = /mob/living ///Sounds used for when user has a sitcom action occur diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 9025f6ec2dcb..74e391ef5510 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -40,7 +40,6 @@ backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/kitchen/knife/combat/survival, /obj/item/dnainjector/clumsymut, //in case you want to be clumsy for the memes - /obj/item/storage/box/syndie_kit/clownpins, //for any guns that you get your grubby little clown op mitts on /obj/item/reagent_containers/spray/waterflower/lube) implants = list(/obj/item/implant/sad_trombone) diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 571d5b090da9..b665a36bcf32 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -93,7 +93,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( visible_message("[src] dispenses.. woah, a gun! Way past cool.", "You hear a chime and a shot.") user.client.give_award(/datum/award/achievement/misc/pulse, user) return - var/prizeselect if(prize_override) prizeselect = pickweight(prize_override) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index ac5b14568dad..e1d8aa7a1f10 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -634,7 +634,7 @@ /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle/PopulateContents() new /obj/item/clothing/shoes/magboots/syndie(src) new /obj/item/storage/firstaid/tactical(src) - new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy(src) + new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/riot(src) new /obj/item/ammo_box/foambox/riot(src) /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle @@ -644,7 +644,7 @@ new /obj/item/reagent_containers/spray/chemsprayer/bioterror(src) new /obj/item/storage/box/syndie_kit/chemical(src) new /obj/item/gun/syringe/syndicate(src) - new /obj/item/gun/ballistic/automatic/smg/c20r/toy(src) + new /obj/item/gun/ballistic/automatic/smg/c20r/toy/riot(src) new /obj/item/storage/box/syringes(src) new /obj/item/ammo_box/foambox/riot(src) new /obj/item/grenade/chem_grenade/bioterrorfoam(src) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index d3b5913bbd86..fb001b2eb56b 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -606,35 +606,6 @@ for(var/i in 1 to 6) new /obj/item/cartridge/security(src) -/obj/item/storage/box/firingpins - name = "box of standard firing pins" - desc = "A box full of standard firing pins, to allow newly-developed firearms to operate." - icon_state = "secbox" - illustration = "firingpin" - -/obj/item/storage/box/firingpins/PopulateContents() - for(var/i in 1 to 5) - new /obj/item/firing_pin(src) - -/obj/item/storage/box/firingpins/paywall - name = "box of paywall firing pins" - desc = "A box full of paywall firing pins, to allow newly-developed firearms to operate behind a custom-set paywall." - illustration = "firingpin" - -/obj/item/storage/box/firingpins/paywall/PopulateContents() - for(var/i in 1 to 5) - new /obj/item/firing_pin/paywall(src) - -/obj/item/storage/box/lasertagpins - name = "box of laser tag firing pins" - desc = "A box full of laser tag firing pins, to allow newly-developed firearms to require wearing brightly coloured plastic armor before being able to be used." - illustration = "firingpin" - -/obj/item/storage/box/lasertagpins/PopulateContents() - for(var/i in 1 to 3) - new /obj/item/firing_pin/tag/red(src) - new /obj/item/firing_pin/tag/blue(src) - /obj/item/storage/box/handcuffs name = "box of spare handcuffs" desc = "A box full of handcuffs." diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 221cdf42d3f3..d91fc622cd56 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -108,7 +108,7 @@ if("metaops") new /obj/item/clothing/suit/space/hardsuit/syndi(src) // 8 tc - new /obj/item/gun/ballistic/shotgun/bulldog/unrestricted(src) // 8 tc + new /obj/item/gun/ballistic/shotgun/bulldog(src) // 8 tc new /obj/item/implanter/explosive(src) // 2 tc new /obj/item/ammo_box/magazine/m12g(src) // 2 tc new /obj/item/ammo_box/magazine/m12g(src) // 2 tc @@ -165,7 +165,7 @@ new /obj/item/assembly/signaler(src) // 0 tc new /obj/item/storage/toolbox/syndicate(src) // 1 tc new /obj/item/pen/edagger(src) - new /obj/item/gun/energy/decloner/unrestricted(src) + new /obj/item/gun/energy/decloner(src) if("bee") new /obj/item/paper/fluff/bee_objectives(src) // 0 tc (motivation) @@ -306,7 +306,7 @@ /obj/item/storage/box/syndie_kit/imp_radio, /obj/item/storage/box/syndie_kit/imp_uplink, /obj/item/clothing/gloves/krav_maga/combatglovesplus, - /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot, + /obj/item/gun/ballistic/automatic/smg/c20r/toy/riot, /obj/item/reagent_containers/hypospray/medipen/stimulants, /obj/item/storage/box/syndie_kit/imp_freedom, /obj/item/toy/eightball/haunted @@ -370,13 +370,6 @@ for(var/i in 1 to 7) new /obj/item/reagent_containers/syringe/bioterror(src) -/obj/item/storage/box/syndie_kit/clownpins - name = "ultra hilarious firing pin box" - -/obj/item/storage/box/syndie_kit/clownpins/PopulateContents() - for(var/i in 1 to 7) - new /obj/item/firing_pin/clown/ultra(src) - /obj/item/storage/box/syndie_kit/imp_adrenal name = "adrenal implant box" @@ -526,9 +519,6 @@ for(var/i in 1 to 3) new/obj/item/grenade/chem_grenade/ez_clean(src) -/obj/item/storage/box/hug/reverse_revolver/PopulateContents() - new /obj/item/gun/ballistic/revolver/reverse(src) - /obj/item/storage/box/syndie_kit/mimery/PopulateContents() new /obj/item/book/granter/spell/mimery_blockade(src) new /obj/item/book/granter/spell/mimery_guns(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index f94a5d5de585..02e75f876d33 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -296,7 +296,6 @@ /obj/structure/closet/secure_closet/armory2/PopulateContents() ..() - new /obj/item/storage/box/firingpins(src) for(var/i in 1 to 3) new /obj/item/storage/box/rubbershot(src) for(var/i in 1 to 3) @@ -309,7 +308,6 @@ /obj/structure/closet/secure_closet/armory3/PopulateContents() ..() - new /obj/item/storage/box/firingpins(src) new /obj/item/gun/energy/ionrifle(src) for(var/i in 1 to 3) new /obj/item/gun/energy/e_gun(src) diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index fa5c49260738..06d59e7390ea 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -577,8 +577,8 @@ ) /obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop loot = list( - /obj/item/gun/energy/lasercannon/unrestricted = 1, - /obj/item/gun/ballistic/automatic/smg/proto/unrestricted = 1, + /obj/item/gun/energy/lasercannon = 1, + /obj/item/gun/ballistic/automatic/smg/proto = 1, /obj/item/gun/energy/temperature/security = 1, ) /obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 9a5b95d21184..5efddfb3cf8c 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -369,21 +369,10 @@ to_chat(user, "You send the message to your target.") log_directed_talk(user, L, message, LOG_SAY, "abductor whisper") - -/obj/item/firing_pin/abductor - name = "alien firing pin" - icon_state = "firing_pin_ayy" - desc = "This firing pin is slimy and warm; you can swear you feel it constantly trying to mentally probe you." - fail_message = "Firing error, please contact Command." - -/obj/item/firing_pin/abductor/pin_auth(mob/living/user) - . = isabductor(user) - /obj/item/gun/energy/alien name = "alien pistol" desc = "A complicated gun that fires bursts of high-intensity radiation." ammo_type = list(/obj/item/ammo_casing/energy/declone) - pin = /obj/item/firing_pin/abductor icon_state = "alienpistol" item_state = "alienpistol" trigger_guard = TRIGGER_GUARD_ALLOW_ALL diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index dec456b8ef2f..c7aa46af728b 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -514,7 +514,7 @@ /obj/item/organ/brain/alien = 17, /obj/item/dualsaber = 15, /obj/item/organ/heart/demon = 7, - /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted = 16, + /obj/item/gun/ballistic/automatic/smg/c20r = 16, /obj/item/gun/magic/wand/resurrection/inert = 15, /obj/item/gun/magic/wand/resurrection = 10, /obj/item/uplink/old = 2, diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 4312d2f89f48..063966c86d63 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -44,7 +44,6 @@ icon_state = "retro" desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." // projectile_type = "/obj/projectile/practice" - clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. /obj/item/gun/ballistic/automatic/smg/c20r/sc_c20r @@ -68,7 +67,6 @@ /obj/item/gun/energy/laser/practice/sc_laser name = "Old laser" desc = "A once potent weapon, years of dust have collected in the chamber and lens of this weapon, weakening the beam significantly." - clumsy_check = 0 /* * Safe code hints diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index 4fdf8c9a2f5b..845ce242272d 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -160,22 +160,3 @@ cost = 5000 contains = list(/obj/item/gun/ballistic/automatic/assault/skm) crate_name = "auto rifle crate" - -/* - Firing pins -*/ - -/datum/supply_pack/gun/firingpins - name = "Standard Firing Pins Crate" - desc = "Upgrade your arsenal with 10 standard firing pins." - cost = 2000 - contains = list(/obj/item/storage/box/firingpins, - /obj/item/storage/box/firingpins) - crate_name = "firing pins crate" - -/datum/supply_pack/gun/lasertag_pins - name = "Laser Tag Firing Pins Crate" - desc = "Three laser tag firing pins used in laser-tag units to ensure users are wearing their vests." - cost = 1500 - contains = list(/obj/item/storage/box/lasertagpins) - crate_name = "laser tag pin crate" diff --git a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm index 36445abcdb5a..a541941208e2 100644 --- a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm +++ b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm @@ -47,7 +47,7 @@ glasses = /obj/item/clothing/glasses/thermal/eyepatch backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/pulse/pistol/loyalpin=1) + /obj/item/gun/energy/pulse/pistol=1) l_pocket = /obj/item/melee/transforming/energy/sword/saber /datum/outfit/centcom/ert/security @@ -77,7 +77,7 @@ /datum/outfit/centcom/ert/security/alert name = "ERT Security - High Alert" - suit_store = /obj/item/gun/energy/pulse/carbine/loyalpin + suit_store = /obj/item/gun/energy/pulse/carbine mask = /obj/item/clothing/mask/gas/sechailer/swat backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ @@ -114,7 +114,7 @@ mask = /obj/item/clothing/mask/gas/sechailer/swat backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ + /obj/item/gun/energy/pulse/pistol=1,\ /obj/item/reagent_containers/hypospray/combat/nanites=1,\ /obj/item/gun/medbeam=1) @@ -150,7 +150,7 @@ mask = /obj/item/clothing/mask/gas/sechailer/swat backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ + /obj/item/gun/energy/pulse/pistol=1,\ /obj/item/construction/rcd/combat=1) // official diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 7a848b9ca330..d039d06dae35 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -169,7 +169,7 @@ r_pocket = /obj/item/shield/energy suit_store = /obj/item/tank/internals/emergency_oxygen/double belt = /obj/item/gun/ballistic/revolver/mateba - r_hand = /obj/item/gun/energy/pulse/loyalpin + r_hand = /obj/item/gun/energy/pulse id = /obj/item/card/id/ert/deathsquad ears = /obj/item/radio/headset/headset_cent/alt diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index e274009d07e0..613a68a2de47 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -227,9 +227,9 @@ for(var/i in 1 to 4) new /obj/item/clothing/mask/balaclava(src) new /obj/item/gun/ballistic/shotgun/toy(src) - new /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted(src) - new /obj/item/gun/ballistic/automatic/toy/unrestricted(src) - new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted(src) + new /obj/item/gun/ballistic/automatic/toy/pistol(src) + new /obj/item/gun/ballistic/automatic/toy(src) + new /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy(src) new /obj/item/ammo_box/foambox(src) if(98) for(var/i in 1 to 3) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 02cb46039076..1cbc7ec58d51 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -747,7 +747,7 @@ else back = pickweight(list( /obj/item/energyhalberd = 5, - /obj/item/gun/ballistic/rocketlauncher/unrestricted = 5 + /obj/item/gun/ballistic/rocketlauncher = 5 ) ) if(prob(25)) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8ca8f0bc05c8..5cd55858537a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,6 +1,5 @@ #define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.6 -#define FIRING_PIN_REMOVAL_DELAY 50 /obj/item/gun name = "gun" @@ -34,7 +33,6 @@ var/suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' var/suppressed_volume = 60 var/can_unsuppress = TRUE - var/clumsy_check = TRUE var/obj/item/ammo_casing/chambered = null trigger_guard = TRIGGER_GUARD_NORMAL //trigger guard on the weapon, hulks can't fire them with their big meaty fingers var/sawn_desc = null //description change if weapon is sawn-off @@ -53,7 +51,6 @@ righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' var/list/attachment_options = list() //This.. works for now.. gun refactor soon - var/obj/item/firing_pin/pin = /obj/item/firing_pin //standard firing pin for most guns var/can_flashlight = FALSE //if a flashlight can be added or removed if it already has one. var/obj/item/flashlight/seclite/gun_light @@ -126,8 +123,6 @@ . = ..() RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) - if(pin) - pin = new pin(src) if(gun_light) alight = new(src) muzzle_flash = new(src, muzzleflash_iconstate) @@ -161,8 +156,6 @@ user.remove_movespeed_modifier(/datum/movespeed_modifier/gun) /obj/item/gun/Destroy() - if(isobj(pin)) //Can still be the initial path, then we skip - QDEL_NULL(pin) if(gun_light) QDEL_NULL(gun_light) if(bayonet) @@ -178,8 +171,6 @@ return ..() /obj/item/gun/handle_atom_del(atom/A) - if(A == pin) - pin = null if(A == chambered) chambered = null update_appearance() @@ -191,12 +182,6 @@ /obj/item/gun/examine(mob/user) . = ..() - if(pin) - . += "It has \a [pin] installed." - . += "[pin] looks like it could be removed with some tools." - else - . += "It doesn't have a firing pin installed, and won't fire." - if(gun_light) . += "It has \a [gun_light] [can_flashlight ? "" : "permanently "]mounted on it." if(can_flashlight) //if it has a light and this is false, the light is permanent. @@ -318,9 +303,6 @@ shoot_with_empty_chamber(user) return - if(check_botched(user)) - return - if(weapon_weight == WEAPON_HEAVY && (!wielded)) to_chat(user, "You need a more secure grip to fire [src]!") return @@ -339,33 +321,6 @@ return process_fire(target, user, TRUE, params, null, bonus_spread) -/obj/item/gun/proc/check_botched(mob/living/user, params) - if(clumsy_check) - if(istype(user)) - if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) - to_chat(user, "You shoot yourself in the foot with [src]!") - var/shot_leg = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - process_fire(user, user, FALSE, params, shot_leg) - SEND_SIGNAL(user, COMSIG_MOB_CLUMSY_SHOOT_FOOT) - user.dropItemToGround(src, TRUE) - return TRUE - -/obj/item/gun/can_trigger_gun(mob/living/user) - . = ..() - if(!handle_pins(user)) - return FALSE - -/obj/item/gun/proc/handle_pins(mob/living/user) - if(pin) - if(pin.pin_auth(user) || (pin.obj_flags & EMAGGED)) - return TRUE - else - pin.auth_fail(user) - return FALSE - else - to_chat(user, "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!") - return FALSE - /obj/item/gun/proc/recharge_newshot() return @@ -562,40 +517,6 @@ else if(picked_option == "Knife") return remove_gun_attachment(user, I, bayonet, "unfix") -/obj/item/gun/welder_act(mob/living/user, obj/item/I) - . = ..() - if(.) - return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - return - if(pin && user.is_holding(src)) - user.visible_message("[user] attempts to remove [pin] from [src] with [I].", - "You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)", null, 3) - if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, 5, volume = 50)) - if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay - return - user.visible_message("[pin] is spliced out of [src] by [user], melting part of the pin in the process.", - "You splice [pin] out of [src] with [I], melting part of the pin in the process.", null, 3) - QDEL_NULL(pin) - return TRUE - -/obj/item/gun/wirecutter_act(mob/living/user, obj/item/I) - . = ..() - if(.) - return - if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - return - if(pin && user.is_holding(src)) - user.visible_message("[user] attempts to remove [pin] from [src] with [I].", - "You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)", null, 3) - if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) - if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay - return - user.visible_message("[pin] is ripped out of [src] by [user], mangling the pin in the process.", - "You rip [pin] out of [src] with [I], mangling the pin in the process.", null, 3) - QDEL_NULL(pin) - return TRUE - /obj/item/gun/proc/remove_gun_attachment(mob/living/user, obj/item/tool_item, obj/item/item_to_remove, removal_verb) if(tool_item) tool_item.play_tool_sound(src) @@ -792,11 +713,6 @@ #undef BRAINS_BLOWN_THROW_RANGE #undef BRAINS_BLOWN_THROW_SPEED -/obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins - if(pin) - qdel(pin) - pin = new /obj/item/firing_pin - //Happens before the actual projectile creation /obj/item/gun/proc/before_firing(atom/target,mob/user) return @@ -970,5 +886,4 @@ azoom = new() azoom.gun = src -#undef FIRING_PIN_REMOVAL_DELAY #undef DUALWIELD_PENALTY_EXTRA_MULTIPLIER diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index ec57fd588021..094ea753af10 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -91,7 +91,6 @@ desc = "A heavily-modified .50 BMG anti-material rifle utilized by Syndicate agents. Requires both hands to fire." can_suppress = TRUE can_unsuppress = TRUE - pin = /obj/item/firing_pin/implant/pindicate // Old Semi-Auto Rifle // diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 614aa7a884c1..01644cd6e9bb 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -10,13 +10,9 @@ mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg' w_class = WEIGHT_CLASS_NORMAL - pin = /obj/item/firing_pin/implant/pindicate bolt_type = BOLT_TYPE_NO_BOLT fire_delay = 10 -/obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/revolver/grenadelauncher/attackby(obj/item/A, mob/user, params) ..() if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing)) @@ -28,7 +24,6 @@ icon = 'icons/mecha/mecha_equipment.dmi' icon_state = "mecha_grenadelnchr" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti - pin = /obj/item/firing_pin /obj/item/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self() return @@ -54,7 +49,6 @@ load_sound = 'sound/weapons/gun/general/rocket_load.ogg' w_class = WEIGHT_CLASS_BULKY can_suppress = FALSE - pin = /obj/item/firing_pin burst_size = 1 fire_delay = 0 casing_ejector = FALSE @@ -66,9 +60,6 @@ tac_reloads = FALSE manufacturer = MANUFACTURER_SCARBOROUGH -/obj/item/gun/ballistic/rocketlauncher/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/rocketlauncher/afterattack() . = ..() magazine.get_round(FALSE) //Hack to clear the mag after it's fired diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index abbf62543f90..f201dfbca548 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -541,7 +541,6 @@ icon_state = "goldrevolver" fire_sound = 'sound/weapons/resonator_blast.ogg' recoil = 8 - pin = /obj/item/firing_pin manufacturer = MANUFACTURER_NONE /obj/item/gun/ballistic/revolver/montagne @@ -670,18 +669,6 @@ return user.visible_message("[user.name]'s soul is captured by \the [src]!", "You've lost the gamble! Your soul is forfeit!") -/obj/item/gun/ballistic/revolver/reverse //Fires directly at its user... unless the user is a clown, of course. - clumsy_check = 0 - -/obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user) - if((HAS_TRAIT(user, TRAIT_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown")) - return ..() - if(process_fire(user, user, FALSE, null, BODY_ZONE_HEAD)) - user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!") - user.emote("scream") - user.drop_all_held_items() - user.Paralyze(80) - /obj/item/gun/ballistic/revolver/firebrand name = "\improper HP Firebrand" desc = "An archaic precursor to revolver-type firearms, this gun was rendered completely obsolete millennia ago. While fast to fire, it is extremely inaccurate. Uses .357 ammo." diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 60aa20ab3a50..9c45ac569da8 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -164,7 +164,6 @@ name = "arcane barrage" desc = "Pew Pew Pew." fire_sound = 'sound/weapons/emitter.ogg' - pin = /obj/item/firing_pin/magic icon = 'icons/obj/guns/projectile.dmi' lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 81344fa5a82a..0b7e526c8a2b 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -163,9 +163,6 @@ var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine semi_auto = TRUE -/obj/item/gun/ballistic/shotgun/automatic/dual_tube/mindshield - pin = /obj/item/firing_pin/implant/mindshield - /obj/item/gun/ballistic/shotgun/automatic/dual_tube/examine(mob/user) . = ..() . += "Alt-click to pump it." @@ -234,16 +231,12 @@ wield_slowdown = 0.6 wield_delay = 0.65 SECONDS -/obj/item/gun/ballistic/shotgun/bulldog/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/shotgun/bulldog/inteq name = "\improper Mastiff Shotgun" desc = "A variation of the Bulldog, seized from Syndicate armories by deserting troopers then modified to IRMG's standards." icon_state = "bulldog-inteq" item_state = "bulldog-inteq" mag_type = /obj/item/ammo_box/magazine/m12g - pin = /obj/item/firing_pin manufacturer = MANUFACTURER_INTEQ /obj/item/gun/ballistic/shotgun/bulldog/suns @@ -259,7 +252,6 @@ mag_type = /obj/item/ammo_box/magazine/cm15_mag icon_state = "cm15" item_state = "cm15" - pin = /obj/item/firing_pin empty_alarm = FALSE empty_indicator = FALSE special_mags = FALSE diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index ce740644d712..23ec4247a5da 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -37,7 +37,6 @@ icon_state = "saber" actions_types = list() mag_type = /obj/item/ammo_box/magazine/smgm9mm - pin = null bolt_type = BOLT_TYPE_LOCKING mag_display = TRUE manufacturer = MANUFACTURER_NANOTRASEN_OLD @@ -46,9 +45,6 @@ . = ..() AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) -/obj/item/gun/ballistic/automatic/smg/proto/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/automatic/smg/c20r name = "\improper C-20r SMG" desc = "A bullpup .45 SMG designated 'C-20r.' Its buttstamp reads 'Scarborough Arms - Per falcis, per pravitas.'" @@ -68,9 +64,6 @@ . = ..() AddComponent(/datum/component/automatic_fire, 0.13 SECONDS) -/obj/item/gun/ballistic/automatic/smg/c20r/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/automatic/smg/c20r/Initialize() . = ..() update_appearance() @@ -160,7 +153,6 @@ var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 fire_delay = 2 - pin = /obj/item/firing_pin/implant/pindicate mag_display = TRUE empty_indicator = TRUE fire_sound = 'sound/weapons/gun/rifle/shot_alt.ogg' @@ -175,14 +167,6 @@ underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher(src) update_appearance() -/obj/item/gun/ballistic/automatic/smg/m90/unrestricted - pin = /obj/item/firing_pin - -/obj/item/gun/ballistic/automatic/smg/m90/unrestricted/Initialize() - . = ..() - underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher/unrestricted(src) - update_appearance() - /obj/item/gun/ballistic/automatic/smg/m90/afterattack(atom/target, mob/living/user, flag, params) if(select == 2) underbarrel.afterattack(target, user, flag, params) diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 4ce2819a902e..95911c9269bc 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -9,7 +9,6 @@ throwforce = 0 burst_size = 3 can_suppress = TRUE - clumsy_check = 0 item_flags = NONE casing_ejector = FALSE manufacturer = MANUFACTURER_NANOTRASEN @@ -20,9 +19,6 @@ . = ..() . += "[icon_state]_toy" -/obj/item/gun/ballistic/automatic/toy/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/automatic/toy/pistol name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." @@ -45,12 +41,6 @@ magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) return ..() -/obj/item/gun/ballistic/automatic/toy/pistol/unrestricted - pin = /obj/item/firing_pin - -/obj/item/gun/ballistic/automatic/toy/pistol/riot/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." @@ -58,7 +48,6 @@ throwforce = 0 mag_type = /obj/item/ammo_box/magazine/internal/shot/toy fire_sound = 'sound/items/syringeproj.ogg' - clumsy_check = FALSE item_flags = NONE casing_ejector = FALSE can_suppress = FALSE @@ -75,9 +64,6 @@ if(chambered && !chambered.BB) qdel(chambered) -/obj/item/gun/ballistic/shotgun/toy/unrestricted - pin = /obj/item/firing_pin - /obj/item/gun/ballistic/shotgun/toy/crossbow name = "foam force crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." @@ -92,48 +78,38 @@ recoil = -10 //its a toy... recoil_unwielded = -10 -/obj/item/gun/ballistic/automatic/smg/c20r/toy //This is the syndicate variant with syndicate firing pin and riot darts. +/obj/item/gun/ballistic/automatic/smg/c20r/toy name = "donksoft SMG" desc = "A bullpup two-round burst toy SMG, designated 'C-20r'. Ages 8 and up." can_suppress = FALSE item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot + mag_type = /obj/item/ammo_box/magazine/toy/smgm45 fire_sound = 'sound/items/syringeproj.ogg' casing_ejector = FALSE - clumsy_check = FALSE manufacturer = MANUFACTURER_DONKCO recoil = -10 //its a toy... recoil_unwielded = -10 -/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted //Use this for actual toys - pin = /obj/item/firing_pin - mag_type = /obj/item/ammo_box/magazine/toy/smgm45 - -/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot +/obj/item/gun/ballistic/automatic/smg/c20r/toy/riot mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot /obj/item/gun/ballistic/automatic/smg/c20r/toy/update_overlays() . = ..() . += "[icon_state]_toy" -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy //This is the syndicate variant with syndicate firing pin and riot darts. +/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy name = "donksoft LMG" desc = "A heavily modified toy light machine gun, designated 'L6 SAW'. Ages 8 and up." fire_sound = 'sound/items/syringeproj.ogg' can_suppress = FALSE item_flags = NONE - mag_type = /obj/item/ammo_box/magazine/toy/m762/riot + mag_type = /obj/item/ammo_box/magazine/toy/m762 casing_ejector = FALSE - clumsy_check = FALSE manufacturer = MANUFACTURER_DONKCO recoil = -10 //its a toy... recoil_unwielded = -10 -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted //Use this for actual toys - pin = /obj/item/firing_pin - mag_type = /obj/item/ammo_box/magazine/toy/m762 - -/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted/riot +/obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/riot mag_type = /obj/item/ammo_box/magazine/toy/m762/riot /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/update_overlays() diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 1423eedf81ba..f2c504f07f84 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -12,9 +12,6 @@ dual_wield_spread = 60 manufacturer = MANUFACTURER_SHARPLITE_NEW -/obj/item/gun/energy/e_gun/mindshield - pin = /obj/item/firing_pin/implant/mindshield - /obj/item/gun/energy/e_gun/mini name = "miniature energy gun" desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: disable and kill." @@ -137,7 +134,6 @@ icon_state = "nucgun" item_state = "nucgun" charge_delay = 5 - pin = null can_charge = FALSE internal_cell = TRUE ammo_x_offset = 2 diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 4c924ef49ccf..31261d31e30c 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -18,7 +18,6 @@ name = "practice laser gun" desc = "A modified version of the L-204 laser gun, this one fires less concentrated energy bolts designed for target practice." ammo_type = list(/obj/item/ammo_casing/energy/laser/practice) - clumsy_check = TRUE item_flags = NONE /obj/item/gun/energy/laser/retro @@ -75,7 +74,6 @@ item_state = "shotgun" desc = "A combat shotgun gutted and refitted with an internal laser system. Can switch between taser and scattered disabler shots." shaded_charge = 0 - pin = /obj/item/firing_pin/implant/mindshield ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter, /obj/item/ammo_casing/energy/electrode) manufacturer = MANUFACTURER_NONE @@ -93,13 +91,9 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/laser/accelerator) - pin = null ammo_x_offset = 3 manufacturer = MANUFACTURER_SHARPLITE -/obj/item/gun/energy/lasercannon/unrestricted - pin = /obj/item/firing_pin - /obj/item/ammo_casing/energy/laser/accelerator projectile_type = /obj/projectile/beam/laser/accelerator select_name = "accelerator" @@ -123,7 +117,6 @@ icon_state = "xray" item_state = null ammo_type = list(/obj/item/ammo_casing/energy/xray) - pin = null ammo_x_offset = 3 ////////Laser Tag//////////////////// @@ -134,8 +127,6 @@ desc = "A retro laser gun modified to fire harmless blue beams of light. Sound effects included!" ammo_type = list(/obj/item/ammo_casing/energy/laser/bluetag) item_flags = NONE - clumsy_check = FALSE - pin = /obj/item/firing_pin/tag/blue ammo_x_offset = 2 selfcharge = TRUE manufacturer = MANUFACTURER_NONE @@ -149,8 +140,6 @@ desc = "A retro laser gun modified to fire harmless beams red of light. Sound effects included!" ammo_type = list(/obj/item/ammo_casing/energy/laser/redtag) item_flags = NONE - clumsy_check = FALSE - pin = /obj/item/firing_pin/tag/red ammo_x_offset = 2 selfcharge = TRUE manufacturer = MANUFACTURER_NONE diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 9ed110dfa041..f16cbbd98e8c 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -24,26 +24,6 @@ /obj/item/gun/energy/pulse/emp_act(severity) return -/obj/item/gun/energy/pulse/prize - pin = /obj/item/firing_pin - -/obj/item/gun/energy/pulse/prize/Initialize() - . = ..() - GLOB.poi_list += src - var/turf/T = get_turf(src) - - message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]") - log_game("A pulse rifle prize has been created at [AREACOORD(T)]") - - notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize") - -/obj/item/gun/energy/pulse/prize/Destroy() - GLOB.poi_list -= src - . = ..() - -/obj/item/gun/energy/pulse/loyalpin - pin = /obj/item/firing_pin - /obj/item/gun/energy/pulse/carbine name = "pulse carbine" desc = "A next-generation pulse weapon for Nanotrasen's security forces. High production costs and logistical issues have limited its deployment to specialist Loss Prevention and Emergency Response units." @@ -61,8 +41,19 @@ ammo_x_offset = 2 charge_sections = 4 -/obj/item/gun/energy/pulse/carbine/loyalpin - pin = /obj/item/firing_pin/implant/mindshield +/obj/item/gun/energy/pulse/prize/Initialize() + . = ..() + GLOB.poi_list += src + var/turf/T = get_turf(src) + + message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]") + log_game("A pulse rifle prize has been created at [AREACOORD(T)]") + + notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize") + +/obj/item/gun/energy/pulse/prize/Destroy() + GLOB.poi_list -= src + . = ..() /obj/item/gun/energy/pulse/pistol name = "pulse pistol" @@ -76,9 +67,6 @@ ammo_x_offset = 2 charge_sections = 4 -/obj/item/gun/energy/pulse/pistol/loyalpin - pin = /obj/item/firing_pin/implant/mindshield - /obj/item/gun/energy/pulse/destroyer name = "pulse destroyer" desc = "A heavy-duty energy rifle built for pure destruction." diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 5a01abfdc0f1..27b7b65b622d 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -25,7 +25,6 @@ slot_flags = ITEM_SLOT_BELT ammo_x_offset = 2 ammo_y_offset = 0 - pin = null can_flashlight = TRUE flight_x_offset = 18 flight_y_offset = 11 @@ -35,7 +34,6 @@ desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." icon_state = "decloner" ammo_type = list(/obj/item/ammo_casing/energy/declone) - pin = null ammo_x_offset = 1 /obj/item/gun/energy/decloner/update_overlays() @@ -44,10 +42,6 @@ if(!QDELETED(cell) && (cell.charge > shot.e_cost)) . += "decloner_spin" -/obj/item/gun/energy/decloner/unrestricted - pin = /obj/item/firing_pin - ammo_type = list(/obj/item/ammo_casing/energy/declone/weak) - /obj/item/gun/energy/floragun name = "floral somatoray" desc = "A tool that discharges controlled radiation which induces mutation in plant cells." @@ -67,7 +61,6 @@ w_class = WEIGHT_CLASS_BULKY ammo_type = list(/obj/item/ammo_casing/energy/meteor) cell_type = /obj/item/stock_parts/cell/potato - clumsy_check = 0 //Admin spawn only, might as well let clowns use it. selfcharge = 1 /obj/item/gun/energy/meteorgun/pen @@ -121,7 +114,6 @@ custom_materials = list(/datum/material/iron=4000) suppressed = null ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) - pin = null manufacturer = MANUFACTURER_NONE @@ -336,12 +328,10 @@ ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) cell_type = /obj/item/stock_parts/cell/gun/upgraded ammo_x_offset = 2 - pin = null /obj/item/gun/energy/temperature/security name = "security temperature gun" desc = "A weapon that can only be used to its full potential by the truly robust." - pin = /obj/item/firing_pin /obj/item/gun/energy/laser/instakill name = "instakill rifle" diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 63c4ef8aa2d0..9360c24be499 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -17,9 +17,7 @@ var/can_charge = TRUE var/ammo_type var/no_den_usage - clumsy_check = 0 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses magic instead - pin = /obj/item/firing_pin/magic /obj/item/gun/magic/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread) if(no_den_usage) diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index fad4f485aa88..8b6626bc5e97 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -32,7 +32,6 @@ big_gun = TRUE cell_type = "/obj/item/stock_parts/cell/gun/large" canMouseDown = TRUE - pin = null var/aiming = FALSE var/aiming_time = 12 var/aiming_time_fire_threshold = 5 @@ -82,7 +81,6 @@ cell_type = /obj/item/stock_parts/cell/infinite aiming_time = 0 recoil = 0 - pin = /obj/item/firing_pin /obj/item/gun/energy/beam_rifle/equipped(mob/user) set_user(user) diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index 888e680479ea..161aa216b866 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -8,7 +8,6 @@ force = 10 fire_sound = 'sound/weapons/blastcannon.ogg' item_flags = NONE - clumsy_check = FALSE randomspread = FALSE var/hugbox = TRUE @@ -26,11 +25,6 @@ debug_power = 80 bombcheck = FALSE -/obj/item/gun/blastcannon/Initialize() - . = ..() - if(!pin) - pin = new - /obj/item/gun/blastcannon/Destroy() QDEL_NULL(bomb) return ..() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index 6d9c5eda699d..fef47121af5f 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -10,7 +10,6 @@ throw_range = 7 force = 4 custom_materials = list(/datum/material/iron=2000) - clumsy_check = FALSE fire_sound = 'sound/items/syringeproj.ogg' var/time_per_syringe = 250 var/syringes_left = 4 diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 34af73b855c6..96927eb91afc 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -8,7 +8,6 @@ throw_range = 7 force = 4 custom_materials = list(/datum/material/iron=2000) - clumsy_check = 0 fire_sound = 'sound/items/syringeproj.ogg' var/list/syringes = list() var/max_syringes = 1 diff --git a/code/modules/projectiles/guns/powered.dm b/code/modules/projectiles/guns/powered.dm index 698826436b18..ac7418748d9b 100644 --- a/code/modules/projectiles/guns/powered.dm +++ b/code/modules/projectiles/guns/powered.dm @@ -52,10 +52,6 @@ /obj/item/gun/ballistic/automatic/powered/get_cell() return cell -/obj/item/gun/ballistic/automatic/powered/nopin - pin = null - spawnwithmagazine = FALSE - //the things below were taken from energy gun code. blame whoever coded this, not me /obj/item/gun/ballistic/automatic/powered/attackby(obj/item/A, mob/user, params) if (!internal_cell && istype(A, /obj/item/stock_parts/cell/gun)) diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm deleted file mode 100644 index 20bcdc4e63d9..000000000000 --- a/code/modules/projectiles/pins.dm +++ /dev/null @@ -1,343 +0,0 @@ -/obj/item/firing_pin - name = "electronic firing pin" - desc = "A small authentication device, to be inserted into a firearm receiver to allow operation. NT safety regulations require all new designs to incorporate one." - icon = 'icons/obj/device.dmi' - icon_state = "firing_pin" - item_state = "pen" - flags_1 = CONDUCT_1 - w_class = WEIGHT_CLASS_TINY - attack_verb = list("poked") - var/fail_message = "INVALID USER." - var/selfdestruct = 0 // Explode when user check is failed. - var/force_replace = 0 // Can forcefully replace other pins. - var/pin_removeable = 0 // Can be replaced by any pin. - var/obj/item/gun/gun - -/obj/item/firing_pin/New(newloc) - ..() - if(istype(newloc, /obj/item/gun)) - gun = newloc - -/obj/item/firing_pin/afterattack(atom/target, mob/user, proximity_flag) - . = ..() - if(proximity_flag) - if(istype(target, /obj/item/gun)) - var/obj/item/gun/G = target - var/obj/item/firing_pin/old_pin = G.pin - if(old_pin && (force_replace || old_pin.pin_removeable)) - to_chat(user, "You remove [old_pin] from [G].") - if(Adjacent(user)) - user.put_in_hands(old_pin) - else - old_pin.forceMove(G.drop_location()) - old_pin.gun_remove(user) - - if(!G.pin) - if(!user.temporarilyRemoveItemFromInventory(src)) - return - gun_insert(user, G) - to_chat(user, "You insert [src] into [G].") - else - to_chat(user, "This firearm already has a firing pin installed.") - -/obj/item/firing_pin/emag_act(mob/user) - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - to_chat(user, "You override the authentication mechanism.") - -/obj/item/firing_pin/proc/gun_insert(mob/living/user, obj/item/gun/G) - gun = G - forceMove(gun) - gun.pin = src - return - -/obj/item/firing_pin/proc/gun_remove(mob/living/user) - gun.pin = null - gun = null - return - -/obj/item/firing_pin/proc/pin_auth(mob/living/user) - return TRUE - -/obj/item/firing_pin/proc/auth_fail(mob/living/user) - if(user) - user.show_message(fail_message, MSG_VISUAL) - if(selfdestruct) - if(user) - user.show_message("SELF-DESTRUCTING...
", MSG_VISUAL) - to_chat(user, "[gun] explodes!") - explosion(get_turf(gun), -1, 0, 2, 3) - if(gun) - qdel(gun) - - -/obj/item/firing_pin/magic - name = "magic crystal shard" - desc = "A small enchanted shard which allows magical weapons to fire." - - -// Test pin, works only near firing range. -/obj/item/firing_pin/test_range - name = "test-range firing pin" - desc = "This safety firing pin allows weapons to be fired within proximity to a firing range." - fail_message = "TEST RANGE CHECK FAILED." - pin_removeable = TRUE - -/obj/item/firing_pin/test_range/pin_auth(mob/living/user) - if(!istype(user)) - return FALSE - if (istype(get_area(user), /area/ship/security/range)) - return TRUE - return FALSE - - -// Implant pin, checks for implant -/obj/item/firing_pin/implant - name = "implant-keyed firing pin" - desc = "This is a security firing pin which only authorizes users who are implanted with a certain device." - fail_message = "IMPLANT CHECK FAILED." - var/obj/item/implant/req_implant = null - -/obj/item/firing_pin/implant/pin_auth(mob/living/user) - if(user) - for(var/obj/item/implant/I in user.implants) - if(req_implant && I.type == req_implant) - return TRUE - return FALSE - -/obj/item/firing_pin/implant/mindshield - name = "mindshield firing pin" - desc = "This Security firing pin authorizes the weapon for only mindshield-implanted users." - icon_state = "firing_pin_loyalty" - req_implant = /obj/item/implant/mindshield - -/obj/item/firing_pin/implant/pindicate - name = "syndicate firing pin" - icon_state = "firing_pin_pindi" - req_implant = /obj/item/implant/weapons_auth - - - -// Honk pin, clown's joke item. -// Can replace other pins. Replace a pin in cap's laser for extra fun! -/obj/item/firing_pin/clown - name = "hilarious firing pin" - desc = "Advanced clowntech that can convert any firearm into a far more useful object." - color = "#FFFF00" - fail_message = "HONK!" - force_replace = TRUE - -/obj/item/firing_pin/clown/pin_auth(mob/living/user) - playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) - return FALSE - -// Ultra-honk pin, clown's deadly joke item. -// A gun with ultra-honk pin is useful for clown and useless for everyone else. -/obj/item/firing_pin/clown/ultra - name = "ultra hilarious firing pin" - -/obj/item/firing_pin/clown/ultra/pin_auth(mob/living/user) - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE) - if(QDELETED(user)) //how the hell...? - stack_trace("/obj/item/firing_pin/clown/ultra/pin_auth called with a [isnull(user) ? "null" : "invalid"] user.") - return TRUE - if(HAS_TRAIT(user, TRAIT_CLUMSY)) //clumsy - return TRUE - if(user.mind) - if(user.mind.assigned_role == "Clown") //traitor clowns can use this, even though they're technically not clumsy - return TRUE - if(user.mind.has_antag_datum(/datum/antagonist/nukeop/clownop)) //clown ops aren't clumsy by default and technically don't have an assigned role of "Clown", but come on, they're basically clowns - return TRUE - if(user.mind.has_antag_datum(/datum/antagonist/nukeop/leader/clownop)) //Wanna hear a funny joke? - return TRUE //The clown op leader antag datum isn't a subtype of the normal clown op antag datum. - return FALSE - -/obj/item/firing_pin/clown/ultra/gun_insert(mob/living/user, obj/item/gun/G) - ..() - G.clumsy_check = FALSE - -/obj/item/firing_pin/clown/ultra/gun_remove(mob/living/user) - gun.clumsy_check = initial(gun.clumsy_check) - ..() - -// Now two times deadlier! -/obj/item/firing_pin/clown/ultra/selfdestruct - name = "super ultra hilarious firing pin" - desc = "Advanced clowntech that can convert any firearm into a far more useful object. It has a small nitrobananium charge on it." - selfdestruct = TRUE - - -// DNA-keyed pin. -// When you want to keep your toys for yourself. -/obj/item/firing_pin/dna - name = "DNA-keyed firing pin" - desc = "This is a DNA-locked firing pin which only authorizes one user. Attempt to fire once to DNA-link." - icon_state = "firing_pin_dna" - fail_message = "DNA CHECK FAILED." - var/unique_enzymes = null - -/obj/item/firing_pin/dna/afterattack(atom/target, mob/user, proximity_flag) - . = ..() - if(proximity_flag && iscarbon(target)) - var/mob/living/carbon/M = target - if(M.dna && M.dna.unique_enzymes) - unique_enzymes = M.dna.unique_enzymes - to_chat(user, "DNA-LOCK SET.") - -/obj/item/firing_pin/dna/pin_auth(mob/living/carbon/user) - if(user && user.dna && user.dna.unique_enzymes) - if(user.dna.unique_enzymes == unique_enzymes) - return TRUE - return FALSE - -/obj/item/firing_pin/dna/auth_fail(mob/living/carbon/user) - if(!unique_enzymes) - if(user && user.dna && user.dna.unique_enzymes) - unique_enzymes = user.dna.unique_enzymes - to_chat(user, "DNA-LOCK SET.") - else - ..() - -/obj/item/firing_pin/dna/dredd - desc = "This is a DNA-locked firing pin which only authorizes one user. Attempt to fire once to DNA-link. It has a small explosive charge on it." - selfdestruct = TRUE - -// Paywall pin, brought to you by ARMA 3 DLC. -// Checks if the user has a valid bank account on an ID and if so attempts to extract a one-time payment to authorize use of the gun. Otherwise fails to shoot. -/obj/item/firing_pin/paywall - name = "paywall firing pin" - desc = "A firing pin with a built-in configurable paywall." - color = "#FFD700" - fail_message = "" - var/list/gun_owners = list() //list of people who've accepted the license prompt. If this is the multi-payment pin, then this means they accepted the waiver that each shot will cost them money - var/payment_amount //how much gets paid out to license yourself to the gun - var/obj/item/card/id/pin_owner - var/multi_payment = FALSE //if true, user has to pay everytime they fire the gun - var/owned = FALSE - var/active_prompt = FALSE //purchase prompt to prevent spamming it - -/obj/item/firing_pin/paywall/attack_self(mob/user) - multi_payment = !multi_payment - to_chat(user, "You set the pin to [(multi_payment) ? "process payment for every shot" : "one-time license payment"].") - -/obj/item/firing_pin/paywall/examine(mob/user) - . = ..() - if(pin_owner) - . += "This firing pin is currently authorized to pay into the account of [pin_owner.registered_name]." - -/obj/item/firing_pin/paywall/gun_insert(mob/living/user, obj/item/gun/G) - if(!pin_owner) - to_chat(user, "ERROR: Please swipe valid identification card before installing firing pin!") - return - gun = G - forceMove(gun) - gun.pin = src - if(multi_payment) - gun.desc += " This [gun.name] has a per-shot cost of [payment_amount] credit[(payment_amount > 1) ? "s" : ""]." - return - gun.desc += " This [gun.name] has a license permit cost of [payment_amount] credit[(payment_amount > 1) ? "s" : ""]." - return - - -/obj/item/firing_pin/paywall/gun_remove(mob/living/user) - gun.desc = initial(desc) - ..() - -/obj/item/firing_pin/paywall/attackby(obj/item/M, mob/user, params) - if(istype(M, /obj/item/card/id)) - var/obj/item/card/id/id = M - if(!id.registered_account) - to_chat(user, "ERROR: Identification card lacks registered bank account!") - return - if(id != pin_owner && owned) - to_chat(user, "ERROR: This firing pin has already been authorized!") - return - if(id == pin_owner) - to_chat(user, "You unlink the card from the firing pin.") - gun_owners -= user - pin_owner = null - owned = FALSE - return - var/transaction_amount = input(user, "Insert valid deposit amount for gun purchase", "Money Deposit") as null|num - if(transaction_amount < 1) - to_chat(user, "ERROR: Invalid amount designated.") - return - if(!transaction_amount) - return - pin_owner = id - owned = TRUE - payment_amount = transaction_amount - gun_owners += user - to_chat(user, "You link the card to the firing pin.") - -/obj/item/firing_pin/paywall/pin_auth(mob/living/user) - if(!istype(user))//nice try commie - return FALSE - if(ishuman(user)) - var/datum/bank_account/credit_card_details - var/mob/living/carbon/human/H = user - if(H.get_bank_account()) - credit_card_details = H.get_bank_account() - if(H in gun_owners) - if(multi_payment && credit_card_details) - if(credit_card_details.has_money(payment_amount)) - pin_owner.registered_account.transfer_money(credit_card_details, payment_amount) - return TRUE - to_chat(user, "ERROR: User balance insufficent for successful transaction!") - return FALSE - return TRUE - if(credit_card_details && !active_prompt) - var/license_request = alert(usr, "Do you wish to pay [payment_amount] credit[(payment_amount > 1) ? "s" : ""] for [(multi_payment) ? "each shot of [gun.name]" : "usage license of [gun.name]"]?", "Weapon Purchase", "Yes", "No") - active_prompt = TRUE - if(!user.canUseTopic(src, BE_CLOSE)) - active_prompt = FALSE - return FALSE - switch(license_request) - if("Yes") - if(credit_card_details.has_money(payment_amount)) - pin_owner.registered_account.transfer_money(credit_card_details, payment_amount) - gun_owners += H - to_chat(user, "Gun license purchased, have a secure day!") - active_prompt = FALSE - return FALSE //we return false here so you don't click initially to fire, get the prompt, accept the prompt, and THEN the gun - to_chat(user, "ERROR: User balance insufficent for successful transaction!") - return FALSE - if("No") - to_chat(user, "ERROR: User has declined to purchase gun license!") - return FALSE - to_chat(user, "ERROR: User has no valid bank account to substract neccesary funds from!") - return FALSE - -// Laser tag pins -/obj/item/firing_pin/tag - name = "laser tag firing pin" - desc = "A recreational firing pin, used in laser tag units to ensure users have their vests on." - fail_message = "SUIT CHECK FAILED." - var/obj/item/clothing/suit/suit_requirement = null - var/tagcolor = "" - -/obj/item/firing_pin/tag/pin_auth(mob/living/user) - if(ishuman(user)) - var/mob/living/carbon/human/M = user - if(istype(M.wear_suit, suit_requirement)) - return TRUE - to_chat(user, "You need to be wearing [tagcolor] laser tag armor!") - return FALSE - -/obj/item/firing_pin/tag/red - name = "red laser tag firing pin" - icon_state = "firing_pin_red" - suit_requirement = /obj/item/clothing/suit/redtag - tagcolor = "red" - -/obj/item/firing_pin/tag/blue - name = "blue laser tag firing pin" - icon_state = "firing_pin_blue" - suit_requirement = /obj/item/clothing/suit/bluetag - tagcolor = "blue" - -/obj/item/firing_pin/Destroy() - if(gun) - gun.pin = null - return ..() diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 930cc96be9c8..5edbb4df1158 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -67,36 +67,6 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS -/datum/design/pin_testing - name = "Test-Range Firing Pin" - desc = "This safety firing pin allows firearms to be operated within proximity to a firing range." - id = "pin_testing" - build_type = PROTOLATHE - materials = list(/datum/material/iron = 500, /datum/material/glass = 300) - build_path = /obj/item/firing_pin/test_range - category = list("Firing Pins") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/pin_mindshield - name = "Mindshield Firing Pin" - desc = "This is a security firing pin which only authorizes users who are mindshield-implanted." - id = "pin_loyalty" - build_type = PROTOLATHE - materials = list(/datum/material/silver = 600, /datum/material/diamond = 600, /datum/material/uranium = 200) - build_path = /obj/item/firing_pin/implant/mindshield - category = list("Firing Pins") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/pin - name = "Standard Firing Pin" - desc = "A simple, electronic firing pin which is required in most standardized modern weapons." - id = "pin_standard" - build_type = PROTOLATHE - materials = list(/datum/material/silver = 600, /datum/material/diamond = 600, /datum/material/uranium = 200) - build_path = /obj/item/firing_pin - category = list("Firing Pins") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS - /datum/design/stunrevolver name = "Tesla Canon" desc = "A high-tech cannon that fires internal, reusable bolt cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 33c2ac455475..0b976f694d62 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -632,7 +632,7 @@ display_name = "Weapon Development Technology" description = "Our researchers have found new ways to weaponize just about everything now." prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield","gun_cell") + design_ids = list("tele_shield","gun_cell") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) export_price = 5000 @@ -641,19 +641,10 @@ display_name = "Advanced Weapon Development Technology" description = "Our weapons are breaking the rules of reality by now." prereq_ids = list("adv_engi", "weaponry") - design_ids = list("pin_loyalty", "gun_cell_upgraded", "gun_cell_large") + design_ids = list("gun_cell_upgraded", "gun_cell_large") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000) export_price = 5000 -/datum/techweb_node/firingpin - id = "firingpin" - display_name = "Pin Security Decompilation" - description = "A resource-intensive hacking operation, allowing for the creation of pins without a mindshield brake." - prereq_ids = list("adv_weaponry") - design_ids = list("pin_standard") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 15000) - export_price = 5000 - /datum/techweb_node/electric_weapons id = "electronic_weapons" display_name = "Electric Weapons" diff --git a/code/modules/ruins/spaceruin_code/forgottenship.dm b/code/modules/ruins/spaceruin_code/forgottenship.dm index ece6a7293f03..1ef7212dce93 100644 --- a/code/modules/ruins/spaceruin_code/forgottenship.dm +++ b/code/modules/ruins/spaceruin_code/forgottenship.dm @@ -47,14 +47,6 @@ GLOBAL_VAR_INIT(fscpassword, generate_password()) . = ..() AddComponent(/datum/component/gps, "Old Encrypted Signal") -/obj/item/storage/box/firingpins/syndicate - name = "box of syndicate firing pins" - desc = "A box full of special syndicate firing pins which allow only syndicate operatives to use weapons with those firing pins." - -/obj/item/storage/box/firingpins/syndicate/PopulateContents() - for(var/i in 1 to 5) - new /obj/item/firing_pin/implant/pindicate(src) - /////////// AI Laws /obj/item/aiModule/core/full/cybersun diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm index aae206d6fb0a..e79ffb8a491e 100644 --- a/code/modules/spells/spell_types/rightandwrong.dm +++ b/code/modules/spells/spell_types/rightandwrong.dm @@ -119,8 +119,6 @@ GLOBAL_VAR_INIT(summon_magic_triggered, FALSE) var/gun_type = pick(GLOB.summoned_guns) var/obj/item/gun/G = new gun_type(get_turf(H)) - if (istype(G)) // The list contains some non-gun type guns like the speargun which do not have this proc - G.unlock() playsound(get_turf(H),'sound/magic/summon_guns.ogg', 50, TRUE) var/in_hand = H.put_in_hands(G) // not always successful diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 48c79382444e..f58f94df84dd 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -365,22 +365,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) surplus = 0 include_modes = list(/datum/game_mode/nuclear/clown_ops) -/datum/uplink_item/dangerous/clownoppin - name = "Ultra Hilarious Firing Pin" - desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." - cost = 1 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra - include_modes = list(/datum/game_mode/nuclear/clown_ops) - illegal_tech = FALSE - -/datum/uplink_item/dangerous/clownopsuperpin - name = "Super Ultra Hilarious Firing Pin" - desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." - cost = 4 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra/selfdestruct - include_modes = list(/datum/game_mode/nuclear/clown_ops) - illegal_tech = FALSE - /datum/uplink_item/dangerous/bioterror name = "Biohazardous Chemical Sprayer" desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ @@ -532,7 +516,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/dangerous/foamsmg name = "Toy Submachine Gun" desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/smg/c20r/toy + item = /obj/item/gun/ballistic/automatic/smg/c20r/toy/riot cost = 5 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -541,7 +525,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Toy Machine Gun" desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy + item = /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/riot cost = 10 surplus = 0 include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) @@ -1952,30 +1936,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/reverse_bear_trap restricted_roles = list("Clown") -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/clownpin - name = "Ultra Hilarious Firing Pin" - desc = "A firing pin that, when inserted into a gun, makes that gun only usable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." - cost = 4 - item = /obj/item/firing_pin/clown/ultra - restricted_roles = list("Clown") - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/clownsuperpin - name = "Super Ultra Hilarious Firing Pin" - desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." - cost = 7 - item = /obj/item/firing_pin/clown/ultra/selfdestruct - restricted_roles = list("Clown") - illegal_tech = FALSE - /datum/uplink_item/role_restricted/laser_arm name = "Laser Arm Implant" desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." diff --git a/code/modules/vending/liberation.dm b/code/modules/vending/liberation.dm index ffc1214e6bdf..03d532c804e7 100644 --- a/code/modules/vending/liberation.dm +++ b/code/modules/vending/liberation.dm @@ -13,7 +13,7 @@ /obj/item/gun/ballistic/automatic/pistol/deagle/gold = 2, /obj/item/gun/ballistic/automatic/pistol/deagle/camo = 2, /obj/item/gun/ballistic/automatic/pistol/candor = 2, - /obj/item/gun/ballistic/automatic/smg/proto/unrestricted = 2, + /obj/item/gun/ballistic/automatic/smg/proto = 2, /obj/item/gun/ballistic/shotgun/automatic/combat = 2, /obj/item/gun/ballistic/automatic/gyropistol = 1, /obj/item/gun/ballistic/shotgun = 2) diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm index fd899f251d25..989bd721a79c 100644 --- a/code/modules/vending/liberation_toy.dm +++ b/code/modules/vending/liberation_toy.dm @@ -6,9 +6,9 @@ product_ads = "Feel robust with your toys!;Express your inner child today!;Toy weapons don't kill people, but valid hunters do!;Who needs responsibilities when you have toy weapons?;Make your next murder FUN!" vend_reply = "Come back for more!" circuit = /obj/item/circuitboard/machine/vending/syndicatedonksofttoyvendor - products = list(/obj/item/gun/ballistic/automatic/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = 10, - /obj/item/gun/ballistic/shotgun/toy/unrestricted = 10, + products = list(/obj/item/gun/ballistic/automatic/toy = 10, + /obj/item/gun/ballistic/automatic/toy/pistol = 10, + /obj/item/gun/ballistic/shotgun/toy = 10, /obj/item/toy/sword = 10, /obj/item/ammo_box/foambox = 20, /obj/item/toy/foamblade = 10, @@ -17,8 +17,8 @@ /obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant contraband = list( /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting! - /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot = 10, - /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted/riot = 10, + /obj/item/gun/ballistic/automatic/smg/c20r/toy = 10, + /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 10, /obj/item/ammo_box/foambox/riot = 20, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5, diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 7af332630105..0141967beff3 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -131,10 +131,10 @@ /obj/item/grenade/frag = 1, ) voucher_items = list( - "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/smg/m90/unrestricted, + "M-90gl Carbine" = /obj/item/gun/ballistic/automatic/smg/m90, "sniper rifle" = /obj/item/gun/ballistic/automatic/sniper_rifle, - "C-20r SMG" = /obj/item/gun/ballistic/automatic/smg/c20r/unrestricted, - "Bulldog Shotgun" = /obj/item/gun/ballistic/shotgun/bulldog/unrestricted) + "C-20r SMG" = /obj/item/gun/ballistic/automatic/smg/c20r, + "Bulldog Shotgun" = /obj/item/gun/ballistic/shotgun/bulldog) /obj/machinery/vending/security/marine/nanotrasen icon_state = "nt-marine" diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm index 5f284718b6f3..c86049ab75ef 100644 --- a/code/modules/vending/toys.dm +++ b/code/modules/vending/toys.dm @@ -8,9 +8,9 @@ light_mask = "donksoft-light-mask" circuit = /obj/item/circuitboard/machine/vending/donksofttoyvendor products = list( - /obj/item/gun/ballistic/automatic/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/toy/pistol/unrestricted = 10, - /obj/item/gun/ballistic/shotgun/toy/unrestricted = 10, + /obj/item/gun/ballistic/automatic/toy = 10, + /obj/item/gun/ballistic/automatic/toy/pistol = 10, + /obj/item/gun/ballistic/shotgun/toy = 10, /obj/item/toy/sword = 10, /obj/item/ammo_box/foambox = 20, /obj/item/toy/foamblade = 10, @@ -19,8 +19,8 @@ /obj/item/clothing/head/syndicatefake = 5) contraband = list( /obj/item/gun/ballistic/shotgun/toy/crossbow = 10, - /obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted = 10, - /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy/unrestricted = 10, + /obj/item/gun/ballistic/automatic/smg/c20r/toy = 10, + /obj/item/gun/ballistic/automatic/hmg/l6_saw/toy = 10, /obj/item/toy/katana = 10, /obj/item/dualsaber/toy = 5) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 360e4cd0f3e4..d7a44b667a0c 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 90354fdf41db..03f2163cddce 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/shiptest.dme b/shiptest.dme index f32a5751783e..096edf9342dd 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -2964,7 +2964,6 @@ #include "code\modules\power\tesla\energy_ball.dm" #include "code\modules\power\tesla\generator.dm" #include "code\modules\projectiles\gun.dm" -#include "code\modules\projectiles\pins.dm" #include "code\modules\projectiles\projectile.dm" #include "code\modules\projectiles\ammunition\_ammunition.dm" #include "code\modules\projectiles\ammunition\_firing.dm"