diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0b4f232315d..1c327637ee2 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -94,10 +94,10 @@ if(isnull(scoped_accuracy)) scoped_accuracy = accuracy - - if (mapload && !pin && needspin) + + if (!pin && needspin) pin = /obj/item/device/firing_pin - + if(pin && needspin) pin = new pin(src) @@ -488,9 +488,14 @@ /obj/item/weapon/gun/examine(mob/user) ..() + if(needspin) + if(pin) + to_chat(user, "\The [pin] is installed in the trigger mechanism.") + else + to_chat(user, "It doesn't have a firing pin installed, and won't fire.") if(firemodes.len > 1) var/datum/firemode/current_mode = firemodes[sel_mode] - user << "The fire selector is set to [current_mode.name]." + to_chat(user, "The fire selector is set to [current_mode.name].") /obj/item/weapon/gun/proc/switch_firemodes() if(firemodes.len <= 1) @@ -639,14 +644,6 @@ mob_can_equip(M as mob, slot) return 0 - -/obj/item/weapon/gun/examine(mob/user) - ..() - if(needspin) - if(pin) - user << "There is a \[pin] in the trigger mechanism." - else - user << "It doesn't have a firing pin installed, and won't fire." obj/item/weapon/gun/Destroy() if (istype(pin)) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index fb2a000e82e..0350d4dc714 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -65,7 +65,6 @@ obj/item/weapon/gun/energy/retro charge_cost = 400 max_shots = 5 fire_delay = 20 - pin = null can_turret = 1 turret_sprite_set = "cannon" @@ -87,7 +86,6 @@ obj/item/weapon/gun/energy/retro charge_cost = 100 max_shots = 20 fire_delay = 1 - pin = null can_turret = 1 turret_sprite_set = "xray" @@ -160,7 +158,6 @@ obj/item/weapon/gun/energy/retro move_delay = 0 fire_delay = 2 dispersion = list(1.0, -1.0, 2.0, -2.0) - pin = null can_turret = 1 turret_sprite_set = "laser" diff --git a/code/modules/projectiles/guns/energy/lawgiver.dm b/code/modules/projectiles/guns/energy/lawgiver.dm index 1d6309d81f1..5cde1a75730 100644 --- a/code/modules/projectiles/guns/energy/lawgiver.dm +++ b/code/modules/projectiles/guns/energy/lawgiver.dm @@ -14,7 +14,6 @@ var/message_enabled = 0 //If playing the message should be enabled var/message_disable = 0 //If the loop should be stopped var/default_desc = "A highly advanced firearm for the modern police force. It has multiple voice-activated firing modes." - pin = null firemodes = list( list( diff --git a/code/modules/projectiles/guns/energy/modular.dm b/code/modules/projectiles/guns/energy/modular.dm index 473a99c40ed..d8669109026 100644 --- a/code/modules/projectiles/guns/energy/modular.dm +++ b/code/modules/projectiles/guns/energy/modular.dm @@ -13,6 +13,7 @@ zoomdevicename = null max_shots = 0 burst_delay = 0 + pin = null var/origin_chassis var/gun_type var/list/gun_mods = list() diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 1461dbb04e5..bef654a4492 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -6,7 +6,6 @@ fire_sound = 'sound/weapons/Taser.ogg' slot_flags = SLOT_BELT max_shots = 10 - pin = null can_turret = 1 secondary_projectile_type = /obj/item/projectile/beam secondary_fire_sound = 'sound/weapons/Laser.ogg' @@ -39,7 +38,6 @@ force = 8 //looks heavier than a pistol self_recharge = 1 modifystate = null - pin = null reliability = 95 turret_sprite_set = "nuclear" charge_failure_message = "'s charging socket was removed to make room for a minaturized reactor." diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index cc71bf1b51b..d4411fd39e8 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -9,7 +9,6 @@ projectile_type = /obj/item/projectile/beam sel_mode = 2 max_shots = 10 - pin = null can_turret = 1 secondary_projectile_type = /obj/item/projectile/beam/pulse secondary_fire_sound = 'sound/weapons/pulse.ogg' @@ -38,4 +37,3 @@ icon_state = "pulse_pistol" item_state = "pulse_pistol" max_shots = 5 - pin = null \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 1249710720b..1a6b87e0f43 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -41,7 +41,6 @@ origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_POWER = 3) max_shots = 10 projectile_type = /obj/item/projectile/energy/declone - pin = null /obj/item/weapon/gun/energy/floragun name = "floral somatoray" @@ -112,9 +111,8 @@ w_class = 3.0 origin_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4) projectile_type = /obj/item/projectile/energy/phoron - pin = null - can_turret = 1 - turret_is_lethal = 0 + can_turret = 1 + turret_is_lethal = 0 turret_sprite_set = "net" /obj/item/weapon/gun/energy/beegun @@ -135,7 +133,6 @@ move_delay = 3 fire_delay = 0 dispersion = list(0.0, 0.2, -0.2) - pin = null /obj/item/weapon/gun/energy/mousegun name = "\improper NT \"Arodentia\" Exterminator ray" @@ -226,7 +223,6 @@ burst_delay = 1 fire_delay = 10 dispersion = list(0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9) - pin = null firemodes = list( list(mode_name="concentrated burst", burst=10, burst_delay = 1, fire_delay = 10, dispersion = list(0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)), @@ -289,7 +285,6 @@ burst = 1 burst_delay = 1 fire_delay = 0 - pin = null can_turret = 1 turret_sprite_set = "laser" firemodes = list( diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index cc94466045b..b5b08f50c1b 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -31,7 +31,6 @@ origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) projectile_type = /obj/item/projectile/energy/electrode max_shots = 8 - pin = null /obj/item/weapon/gun/energy/crossbow @@ -69,4 +68,4 @@ item_state = "crossbow" matter = list(DEFAULT_WALL_MATERIAL = 200000) projectile_type = /obj/item/projectile/energy/bolt/large - + diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index bde122b56eb..e4bbf7ec724 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -12,7 +12,6 @@ multi_aim = 1 burst_delay = 2 sel_mode = 1 - pin = null firemodes = list( list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), @@ -322,7 +321,6 @@ allowed_magazines = list(/obj/item/ammo_magazine/trodpack) auto_eject = 1 auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' - pin = null firemodes = list( list(mode_name="single coil", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null), diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index c02eb847df5..7b2e6802ce1 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -13,6 +13,14 @@ desc = initial(I.desc) ..() +/datum/design/item/weapon/gun/Fabricate() + var/obj/item/weapon/gun/C = ..() + if (SSATOMS_IS_PROBABLY_DONE) + qdel(C.pin) + else + C.pin = null + return C + /datum/design/item/weapon/flora_gun id = "flora_gun" req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3) @@ -20,14 +28,14 @@ build_path = /obj/item/weapon/gun/energy/floragun sort_string = "TBAAA" -/datum/design/item/weapon/phoronpistol +/datum/design/item/weapon/gun/phoronpistol id = "ppistol" req_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4) materials = list(DEFAULT_WALL_MATERIAL = 5000, "glass" = 1000, "phoron" = 3000) build_path = /obj/item/weapon/gun/energy/toxgun sort_string = "TAAAD" -/datum/design/item/weapon/smg +/datum/design/item/weapon/gun/smg id = "smg" req_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3) materials = list(DEFAULT_WALL_MATERIAL = 8000, "silver" = 2000, "diamond" = 1000) @@ -88,7 +96,7 @@ build_path = /obj/item/weapon/melee/energy/glaive sort_string = "TVAAA" -/datum/design/item/weapon/railgun +/datum/design/item/weapon/gun/railgun id = "railgun" name = "railgun" desc = "An advanced rifle that magnetically propels hyperdense rods at breakneck speeds to devastating effect." @@ -97,7 +105,7 @@ build_path = /obj/item/weapon/gun/projectile/automatic/railgun sort_string = "TVCAA" -/datum/design/item/weapon/lawgiver +/datum/design/item/weapon/gun/lawgiver name = "Lawgiver" desc = "A highly advanced firearm for the modern police force. It has multiple voice-activated firing modes." id = "lawgiver" @@ -129,7 +137,7 @@ category = "Weapons" sort_string = "TVHAA" -/datum/design/item/weapon/beegun +/datum/design/item/weapon/gun/beegun id = "beegun" req_tech = list(TECH_MATERIAL = 6, TECH_BIO = 4, TECH_POWER = 4, TECH_COMBAT = 6, TECH_MAGNET = 4) materials = list(DEFAULT_WALL_MATERIAL = 2000, "glass" = 2000, "silver" = 500, "diamond" = 3000)