diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 1c076d6776..e5767e48ba 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -21,9 +21,9 @@
attack_verb = list("struck", "hit", "bashed")
var/fire_sound = "gunshot"
- var/suppressed = 0 //whether or not a message is displayed when fired
- var/can_suppress = 0
- var/can_unsuppress = 1
+ var/suppressed = null //whether or not a message is displayed when fired
+ var/can_suppress = FALSE
+ var/can_unsuppress = TRUE
var/recoil = 0 //boom boom shake the room
var/clumsy_check = 1
var/obj/item/ammo_casing/chambered = null
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index d65364c062..a9ea558072 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -4,10 +4,10 @@
icon_state = "pistol"
origin_tech = "combat=2;materials=2"
w_class = WEIGHT_CLASS_NORMAL
- var/spawnwithmagazine = 1
+ var/spawnwithmagazine = TRUE
var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info
var/obj/item/ammo_box/magazine/magazine
- var/casing_ejector = 1 //whether the gun ejects the chambered casing
+ var/casing_ejector = TRUE //whether the gun ejects the chambered casing
/obj/item/gun/ballistic/Initialize()
. = ..()
@@ -70,24 +70,23 @@
to_chat(user, "There's already a magazine in \the [src].")
if(istype(A, /obj/item/suppressor))
var/obj/item/suppressor/S = A
- if(can_suppress)
- if(!suppressed)
- if(!user.transferItemToLoc(A, src))
- return
- to_chat(user, "You screw [S] onto [src].")
- suppressed = A
- S.oldsound = fire_sound
- S.initial_w_class = w_class
- fire_sound = 'sound/weapons/gunshot_silenced.ogg'
- w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed
- update_icon()
- return
- else
- to_chat(user, "[src] already has a suppressor!")
- return
- else
+ if(!can_suppress)
to_chat(user, "You can't seem to figure out how to fit [S] on [src]!")
return
+ if(!user.is_holding(src))
+ to_chat(user, "You need be holding [src] to fit [S] to it!")
+ return
+ if(suppressed)
+ to_chat(user, "[src] already has a suppressor!")
+ return
+ if(user.transferItemToLoc(A, src))
+ to_chat(user, "You screw [S] onto [src].")
+ suppressed = A
+ S.oldsound = fire_sound
+ fire_sound = 'sound/weapons/gunshot_silenced.ogg'
+ w_class += A.w_class //so pistols do not fit in pockets when suppressed
+ update_icon()
+ return
return 0
/obj/item/gun/ballistic/attack_hand(mob/user)
@@ -100,8 +99,8 @@
to_chat(user, "You unscrew [suppressed] from [src].")
user.put_in_hands(suppressed)
fire_sound = S.oldsound
- w_class = S.initial_w_class
- suppressed = 0
+ w_class -= S.w_class
+ suppressed = null
update_icon()
return
..()
@@ -195,9 +194,8 @@
desc = "A universal syndicate small-arms suppressor for maximum espionage."
icon = 'icons/obj/guns/projectile.dmi'
icon_state = "suppressor"
- w_class = WEIGHT_CLASS_SMALL
+ w_class = WEIGHT_CLASS_TINY
var/oldsound = null
- var/initial_w_class = null
/obj/item/suppressor/specialoffer
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index 423cd56202..7fc37b8c56 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -3,7 +3,7 @@
w_class = WEIGHT_CLASS_NORMAL
var/alarmed = 0
var/select = 1
- can_suppress = 1
+ can_suppress = TRUE
burst_size = 3
fire_delay = 2
actions_types = list(/datum/action/item_action/toggle_firemode)
@@ -119,7 +119,7 @@
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/wt550m9
fire_delay = 2
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 0
actions_types = list()
@@ -143,7 +143,7 @@
origin_tech = "combat=5;materials=2;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m556
fire_sound = 'sound/weapons/gunshot_smg.ogg'
- can_suppress = 0
+ can_suppress = FALSE
var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel
burst_size = 3
fire_delay = 2
@@ -217,7 +217,7 @@
origin_tech = "combat=5;materials=1;syndicate=3"
mag_type = /obj/item/ammo_box/magazine/tommygunm45
fire_sound = 'sound/weapons/gunshot_smg.ogg'
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 4
fire_delay = 1
@@ -230,7 +230,7 @@
origin_tech = "combat=6;engineering=4"
mag_type = /obj/item/ammo_box/magazine/m556
fire_sound = 'sound/weapons/gunshot_smg.ogg'
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 3
fire_delay = 1
@@ -246,7 +246,7 @@
origin_tech = "combat=6;materials=4;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m12g
fire_sound = 'sound/weapons/gunshot.ogg'
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 1
fire_delay = 0
pin = /obj/item/device/firing_pin/implant/pindicate
@@ -286,7 +286,7 @@
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/weapons/gunshot_smg.ogg'
var/cover_open = FALSE
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 3
fire_delay = 1
pin = /obj/item/device/firing_pin/implant/pindicate
@@ -362,8 +362,8 @@
fire_delay = 40
burst_size = 1
origin_tech = "combat=7"
- can_unsuppress = 1
- can_suppress = 1
+ can_unsuppress = TRUE
+ can_suppress = TRUE
w_class = WEIGHT_CLASS_NORMAL
zoomable = TRUE
zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you.
@@ -396,8 +396,8 @@
mag_type = /obj/item/ammo_box/magazine/m10mm/rifle
fire_delay = 30
burst_size = 1
- can_unsuppress = 1
- can_suppress = 1
+ can_unsuppress = TRUE
+ can_suppress = TRUE
w_class = WEIGHT_CLASS_HUGE
slot_flags = SLOT_BACK
actions_types = list()
@@ -418,11 +418,11 @@
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/recharge
fire_delay = 2
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 0
actions_types = list()
fire_sound = 'sound/weapons/laser.ogg'
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/laser/update_icon()
..()
diff --git a/code/modules/projectiles/guns/ballistic/laser_gatling.dm b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
index 64db8737cf..9621c5294d 100644
--- a/code/modules/projectiles/guns/ballistic/laser_gatling.dm
+++ b/code/modules/projectiles/guns/ballistic/laser_gatling.dm
@@ -109,7 +109,7 @@
weapon_weight = WEAPON_HEAVY
fire_sound = 'sound/weapons/laser.ogg'
mag_type = /obj/item/ammo_box/magazine/internal/minigun
- casing_ejector = 0
+ casing_ejector = FALSE
flags_2 = SLOWS_WHILE_IN_HAND_2
var/obj/item/minigunpack/ammo_pack
diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm
index 6d700e4307..a32d78bb2e 100644
--- a/code/modules/projectiles/guns/ballistic/launchers.dm
+++ b/code/modules/projectiles/guns/ballistic/launchers.dm
@@ -40,7 +40,7 @@
burst_size = 1
fire_delay = 0
actions_types = list()
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/gyropistol/update_icon()
..()
@@ -54,14 +54,14 @@
w_class = WEIGHT_CLASS_BULKY
origin_tech = "combat=4;engineering=4"
force = 10
- can_suppress = 0
+ can_suppress = FALSE
mag_type = /obj/item/ammo_box/magazine/internal/speargun
fire_sound = 'sound/weapons/grenadelaunch.ogg'
burst_size = 1
fire_delay = 0
select = 0
actions_types = list()
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/speargun/update_icon()
return
@@ -84,12 +84,12 @@
mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher
fire_sound = 'sound/weapons/rocketlaunch.ogg'
w_class = WEIGHT_CLASS_BULKY
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 1
fire_delay = 0
select = 0
actions_types = list()
- casing_ejector = 0
+ casing_ejector = FALSE
weapon_weight = WEAPON_HEAVY
/obj/item/gun/ballistic/automatic/atlauncher/attack_self()
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index c460a24fcf..06bb452b0b 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -5,7 +5,7 @@
w_class = WEIGHT_CLASS_SMALL
origin_tech = "combat=3;materials=2;syndicate=4"
mag_type = /obj/item/ammo_box/magazine/m10mm
- can_suppress = 1
+ can_suppress = TRUE
burst_size = 1
fire_delay = 0
actions_types = list()
@@ -21,7 +21,7 @@
icon_state = "m1911"
w_class = WEIGHT_CLASS_NORMAL
mag_type = /obj/item/ammo_box/magazine/m45
- can_suppress = 0
+ can_suppress = FALSE
/obj/item/gun/ballistic/automatic/pistol/deagle
name = "desert eagle"
@@ -29,7 +29,7 @@
icon_state = "deagle"
force = 14
mag_type = /obj/item/ammo_box/magazine/m50
- can_suppress = 0
+ can_suppress = FALSE
/obj/item/gun/ballistic/automatic/pistol/deagle/update_icon()
..()
@@ -57,7 +57,7 @@
w_class = WEIGHT_CLASS_SMALL
origin_tech = "combat=3;materials=2;syndicate=3"
mag_type = /obj/item/ammo_box/magazine/pistolm9mm
- can_suppress = 0
+ can_suppress = FALSE
burst_size = 3
fire_delay = 2
actions_types = list(/datum/action/item_action/toggle_firemode)
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index c97d3db5d3..44bada2771 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -4,7 +4,7 @@
icon_state = "revolver"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder
origin_tech = "combat=3;materials=2"
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/revolver/Initialize()
. = ..()
@@ -159,7 +159,7 @@
desc = "An old model of revolver that originated in Russia. Able to be suppressed. Uses 7.62x38mmR ammo."
icon_state = "nagant"
origin_tech = "combat=3"
- can_suppress = 1
+ can_suppress = TRUE
mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 9e220b12b8..71bdce7f28 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -9,7 +9,7 @@
slot_flags = SLOT_BACK
origin_tech = "combat=4;materials=2"
mag_type = /obj/item/ammo_box/magazine/internal/shot
- casing_ejector = 0
+ casing_ejector = FALSE
var/recentpump = 0 // to prevent spammage
weapon_weight = WEAPON_MEDIUM
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 3ddd6375b2..c251a791d0 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -12,7 +12,7 @@
can_suppress = TRUE
clumsy_check = 0
needs_permit = 0
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/toy/unrestricted
pin = /obj/item/device/firing_pin
@@ -55,7 +55,7 @@
mag_type = /obj/item/ammo_box/magazine/internal/shot/toy
clumsy_check = 0
needs_permit = 0
- casing_ejector = 0
+ casing_ejector = FALSE
can_suppress = FALSE
/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0)
@@ -84,7 +84,7 @@
can_suppress = TRUE
needs_permit = 0
mag_type = /obj/item/ammo_box/magazine/toy/smgm45/riot
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted //Use this for actual toys
pin = /obj/item/device/firing_pin
@@ -100,7 +100,7 @@
can_suppress = FALSE
needs_permit = 0
mag_type = /obj/item/ammo_box/magazine/toy/m762/riot
- casing_ejector = 0
+ casing_ejector = FALSE
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted //Use this for actual toys
pin = /obj/item/device/firing_pin
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index fa7540315e..9e91275c4f 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -90,7 +90,7 @@
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL=2000)
origin_tech = "combat=4;magnets=4;syndicate=5"
- suppressed = 1
+ suppressed = TRUE
ammo_type = list(/obj/item/ammo_casing/energy/bolt)
weapon_weight = WEAPON_LIGHT
unique_rename = 0
@@ -115,7 +115,7 @@
w_class = WEIGHT_CLASS_NORMAL
materials = list(MAT_METAL=4000)
origin_tech = "combat=4;magnets=4;syndicate=2"
- suppressed = 0
+ suppressed = null
ammo_type = list(/obj/item/ammo_casing/energy/bolt/large)
pin = null
diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm
index 0d0cbeae10..f79b59fe7d 100644
--- a/code/modules/projectiles/guns/syringe_gun.dm
+++ b/code/modules/projectiles/guns/syringe_gun.dm
@@ -76,8 +76,8 @@
w_class = WEIGHT_CLASS_SMALL
origin_tech = "combat=2;syndicate=2;biotech=3"
force = 2 //Also very weak because it's smaller
- suppressed = 1 //Softer fire sound
- can_unsuppress = 0 //Permanently silenced
+ suppressed = TRUE //Softer fire sound
+ can_unsuppress = FALSE //Permanently silenced
/obj/item/gun/syringe/dna
name = "modified syringe gun"
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index a0f4712471..e18ac0ab5c 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -13,7 +13,7 @@
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/def_zone = "" //Aiming at
var/mob/firer = null//Who shot it
- var/suppressed = 0 //Attack message
+ var/suppressed = FALSE //Attack message
var/yo = null
var/xo = null
var/current = null