diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm
index 9fc411443aa..389d8771a9f 100644
--- a/code/datums/components/gunpoint.dm
+++ b/code/datums/components/gunpoint.dm
@@ -135,21 +135,21 @@
qdel(src)
return
- if(weapon.chambered && weapon.chambered.BB)
- weapon.chambered.BB.damage *= damage_mult
- if(weapon.chambered.BB.wound_bonus != CANT_WOUND)
- weapon.chambered.BB.wound_bonus += damage_mult * GUNPOINT_BASE_WOUND_BONUS
- weapon.chambered.BB.bare_wound_bonus += damage_mult * GUNPOINT_BASE_WOUND_BONUS
+ if(weapon.chambered && weapon.chambered.loaded_projectile)
+ weapon.chambered.loaded_projectile.damage *= damage_mult
+ if(weapon.chambered.loaded_projectile.wound_bonus != CANT_WOUND)
+ weapon.chambered.loaded_projectile.wound_bonus += damage_mult * GUNPOINT_BASE_WOUND_BONUS
+ weapon.chambered.loaded_projectile.bare_wound_bonus += damage_mult * GUNPOINT_BASE_WOUND_BONUS
if(weapon.check_botched(shooter))
return
var/fired = weapon.process_fire(target, shooter)
- if(!fired && weapon.chambered?.BB)
- weapon.chambered.BB.damage /= damage_mult
- if(weapon.chambered.BB.wound_bonus != CANT_WOUND)
- weapon.chambered.BB.wound_bonus -= damage_mult * GUNPOINT_BASE_WOUND_BONUS
- weapon.chambered.BB.bare_wound_bonus -= damage_mult * GUNPOINT_BASE_WOUND_BONUS
+ if(!fired && weapon.chambered?.loaded_projectile)
+ weapon.chambered.loaded_projectile.damage /= damage_mult
+ if(weapon.chambered.loaded_projectile.wound_bonus != CANT_WOUND)
+ weapon.chambered.loaded_projectile.wound_bonus -= damage_mult * GUNPOINT_BASE_WOUND_BONUS
+ weapon.chambered.loaded_projectile.bare_wound_bonus -= damage_mult * GUNPOINT_BASE_WOUND_BONUS
qdel(src)
diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm
index 9ed2b2726e0..0b4cd788334 100644
--- a/code/datums/components/pellet_cloud.dm
+++ b/code/datums/components/pellet_cloud.dm
@@ -106,9 +106,9 @@
zone_override = shooter.zone_selected
// things like mouth executions and gunpoints can multiply the damage and wounds of projectiles, so this makes sure those effects are applied to each pellet instead of just one
- var/original_damage = shell.BB.damage
- var/original_wb = shell.BB.wound_bonus
- var/original_bwb = shell.BB.bare_wound_bonus
+ var/original_damage = shell.loaded_projectile.damage
+ var/original_wb = shell.loaded_projectile.wound_bonus
+ var/original_bwb = shell.loaded_projectile.bare_wound_bonus
for(var/i in 1 to num_pellets)
shell.ready_proj(target, user, SUPPRESSED_VERY, zone_override, fired_from)
@@ -118,12 +118,12 @@
else //Smart spread
spread = round((i / num_pellets - 0.5) * distro)
- RegisterSignal(shell.BB, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit)
- RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range)
- shell.BB.damage = original_damage
- shell.BB.wound_bonus = original_wb
- shell.BB.bare_wound_bonus = original_bwb
- pellets += shell.BB
+ RegisterSignal(shell.loaded_projectile, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/pellet_hit)
+ RegisterSignal(shell.loaded_projectile, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), .proc/pellet_range)
+ shell.loaded_projectile.damage = original_damage
+ shell.loaded_projectile.wound_bonus = original_wb
+ shell.loaded_projectile.bare_wound_bonus = original_bwb
+ pellets += shell.loaded_projectile
if(!shell.throw_proj(target, targloc, shooter, params, spread))
return
if(i != num_pellets)
diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm
index be160105967..c6e155960f8 100644
--- a/code/datums/wounds/slash.dm
+++ b/code/datums/wounds/slash.dm
@@ -203,9 +203,9 @@
user.visible_message("[user] begins aiming [lasgun] directly at [victim]'s [limb.name]...", "You begin aiming [lasgun] directly at [user == victim ? "your" : "[victim]'s"] [limb.name]...")
if(!do_after(user, base_treat_time * self_penalty_mult, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
return
- var/damage = lasgun.chambered.BB.damage
- lasgun.chambered.BB.wound_bonus -= 30
- lasgun.chambered.BB.damage *= self_penalty_mult
+ var/damage = lasgun.chambered.loaded_projectile.damage
+ lasgun.chambered.loaded_projectile.wound_bonus -= 30
+ lasgun.chambered.loaded_projectile.damage *= self_penalty_mult
if(!lasgun.process_fire(victim, victim, TRUE, null, limb.body_zone))
return
victim.emote("scream")
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index bf212d5285d..737cbf4f859 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -443,7 +443,7 @@
else
A = new /obj/item/ammo_casing/caseless/gumball(src)
- A.BB.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
+ A.loaded_projectile.color = rgb(rand(0, 255), rand(0, 255), rand(0, 255))
playsound(src.loc, 'sound/weapons/bulletflyby3.ogg', 50, TRUE)
A.fire_casing(target, user, params, 0, 0, null, 0, src)
user.visible_message("[user] shoots a high-velocity gumball at [target]!")
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index df654003ea7..bc3481691a2 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -267,7 +267,7 @@
to_chat(user, "The [name] is not ready yet.")
/obj/item/gun/magic/tentacle/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread)
- var/obj/projectile/tentacle/tentacle_shot = chambered.BB //Gets the actual projectile we will fire
+ var/obj/projectile/tentacle/tentacle_shot = chambered.loaded_projectile //Gets the actual projectile we will fire
tentacle_shot.fire_modifiers = params2list(params)
. = ..()
if(charges == 0)
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index b59dd0993cd..4d3035444e0 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -252,9 +252,9 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
..()
else if(Pewgun)
if(Pewgun.chambered)
- if(Pewgun.chambered.BB)
- qdel(Pewgun.chambered.BB)
- Pewgun.chambered.BB = null //because qdel takes too long, ensures icon update
+ if(Pewgun.chambered.loaded_projectile)
+ qdel(Pewgun.chambered.loaded_projectile)
+ Pewgun.chambered.loaded_projectile = null //because qdel takes too long, ensures icon update
Pewgun.chambered.update_icon()
..()
else
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
index a65a2217593..b8d7b3a0bdb 100644
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ b/code/modules/projectiles/ammunition/_ammunition.dm
@@ -16,7 +16,7 @@
///The bullet type to create when New() is called
var/projectile_type = null
///the loaded projectile in this ammo casing
- var/obj/projectile/BB = null
+ var/obj/projectile/loaded_projectile = null
///Pellets for spreadshot
var/pellets = 1
///Variance for inaccuracy fundamental to the casing
@@ -35,12 +35,12 @@
/obj/item/ammo_casing/spent
name = "spent bullet casing"
- BB = null
+ loaded_projectile = null
/obj/item/ammo_casing/Initialize()
. = ..()
if(projectile_type)
- BB = new projectile_type(src)
+ loaded_projectile = new projectile_type(src)
pixel_x = base_pixel_x + rand(-10, 10)
pixel_y = base_pixel_y + rand(-10, 10)
setDir(pick(GLOB.alldirs))
@@ -50,21 +50,21 @@
. = ..()
var/turf/T = get_turf(src)
- if(T && !BB && is_station_level(T.z))
+ if(T && !loaded_projectile && is_station_level(T.z))
SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name)
- QDEL_NULL(BB)
+ QDEL_NULL(loaded_projectile)
/obj/item/ammo_casing/update_icon()
. = ..()
- icon_state = "[initial(icon_state)][BB ? "-live" : ""]"
- desc = "[initial(desc)][BB ? "" : " This one is spent."]"
+ icon_state = "[initial(icon_state)][loaded_projectile ? "-live" : ""]"
+ desc = "[initial(desc)][loaded_projectile ? "" : " This one is spent."]"
/*
* On accidental consumption, 'spend' the ammo, and add in some gunpowder
*/
/obj/item/ammo_casing/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
- if(BB)
- BB = null
+ if(loaded_projectile)
+ loaded_projectile = null
update_icon()
victim.reagents?.add_reagent(/datum/reagent/gunpowder, 3)
source_item?.reagents?.add_reagent(/datum/reagent/gunpowder, source_item.reagents.total_volume*(2/3))
@@ -73,8 +73,8 @@
//proc to magically refill a casing with a new projectile
/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!).
- if(!BB)
- BB = new projectile_type(src, src)
+ if(!loaded_projectile)
+ loaded_projectile = new projectile_type(src, src)
/obj/item/ammo_casing/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/ammo_box))
@@ -84,7 +84,7 @@
for(var/obj/item/ammo_casing/bullet in loc)
if (box.stored_ammo.len >= box.max_ammo)
break
- if (bullet.BB)
+ if (bullet.loaded_projectile)
if (box.give_round(bullet, 0))
boolets++
else
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index 546c0e5549d..489769c5e09 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -11,7 +11,7 @@
if(!throw_proj(target, targloc, user, params, spread))
return FALSE
else
- if(isnull(BB))
+ if(isnull(loaded_projectile))
return FALSE
AddComponent(/datum/component/pellet_cloud, projectile_type, pellets)
SEND_SIGNAL(src, COMSIG_PELLET_CLOUD_INIT, target, user, fired_from, randomspread, spread, zone_override, params, distro)
@@ -28,34 +28,34 @@
return TRUE
/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", atom/fired_from)
- if (!BB)
+ if (!loaded_projectile)
return
- BB.original = target
- BB.firer = user
- BB.fired_from = fired_from
+ loaded_projectile.original = target
+ loaded_projectile.firer = user
+ loaded_projectile.fired_from = fired_from
if (zone_override)
- BB.def_zone = zone_override
+ loaded_projectile.def_zone = zone_override
else
- BB.def_zone = user.zone_selected
- BB.suppressed = quiet
+ loaded_projectile.def_zone = user.zone_selected
+ loaded_projectile.suppressed = quiet
if(isgun(fired_from))
var/obj/item/gun/G = fired_from
- BB.damage *= G.projectile_damage_multiplier
+ loaded_projectile.damage *= G.projectile_damage_multiplier
- if(reagents && BB.reagents)
- reagents.trans_to(BB, reagents.total_volume, transfered_by = user) //For chemical darts/bullets
+ if(reagents && loaded_projectile.reagents)
+ reagents.trans_to(loaded_projectile, reagents.total_volume, transfered_by = user) //For chemical darts/bullets
qdel(reagents)
/obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread)
var/turf/curloc = get_turf(user)
- if (!istype(targloc) || !istype(curloc) || !BB)
+ if (!istype(targloc) || !istype(curloc) || !loaded_projectile)
return FALSE
var/firing_dir
- if(BB.firer)
- firing_dir = BB.firer.dir
- if(!BB.suppressed && firing_effect_type)
+ if(loaded_projectile.firer)
+ firing_dir = loaded_projectile.firer.dir
+ if(!loaded_projectile.suppressed && firing_effect_type)
new firing_effect_type(get_turf(src), firing_dir)
var/direct_target
@@ -63,9 +63,9 @@
if(target) //if the target is right on our location we'll skip the travelling code in the proj's fire()
direct_target = target
if(!direct_target)
- BB.preparePixelProjectile(target, user, params, spread)
- BB.fire(null, direct_target)
- BB = null
+ loaded_projectile.preparePixelProjectile(target, user, params, spread)
+ loaded_projectile.fire(null, direct_target)
+ loaded_projectile = null
return TRUE
/obj/item/ammo_casing/proc/spread(turf/target, turf/current, distro)
diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm
index 0f3cb1901c4..f36fccfe353 100644
--- a/code/modules/projectiles/ammunition/caseless/foam.dm
+++ b/code/modules/projectiles/ammunition/caseless/foam.dm
@@ -14,17 +14,17 @@
if (modified)
icon_state = "foamdart_empty"
desc = "It's Donk or Don't! ... Although, this one doesn't look too safe."
- if(BB)
- BB.icon_state = "foamdart_empty"
+ if(loaded_projectile)
+ loaded_projectile.icon_state = "foamdart_empty"
else
icon_state = initial(icon_state)
desc = "It's Donk or Don't! Ages 8 and up."
- if(BB)
- BB.icon_state = initial(BB.icon_state)
+ if(loaded_projectile)
+ loaded_projectile.icon_state = initial(loaded_projectile.icon_state)
/obj/item/ammo_casing/caseless/foam_dart/attackby(obj/item/A, mob/user, params)
- var/obj/projectile/bullet/reusable/foam_dart/FD = BB
+ var/obj/projectile/bullet/reusable/foam_dart/FD = loaded_projectile
if (A.tool_behaviour == TOOL_SCREWDRIVER && !modified)
modified = TRUE
FD.modified = TRUE
@@ -49,7 +49,7 @@
return ..()
/obj/item/ammo_casing/caseless/foam_dart/attack_self(mob/living/user)
- var/obj/projectile/bullet/reusable/foam_dart/FD = BB
+ var/obj/projectile/bullet/reusable/foam_dart/FD = loaded_projectile
if(FD.pen)
FD.damage = initial(FD.damage)
FD.nodamage = initial(FD.nodamage)
diff --git a/code/modules/projectiles/ammunition/energy/portal.dm b/code/modules/projectiles/ammunition/energy/portal.dm
index 6f2b0264464..63c86df0122 100644
--- a/code/modules/projectiles/ammunition/energy/portal.dm
+++ b/code/modules/projectiles/ammunition/energy/portal.dm
@@ -16,6 +16,6 @@
/obj/item/ammo_casing/energy/wormhole/throw_proj()
. = ..()
- if(istype(BB, /obj/projectile/beam/wormhole))
- var/obj/projectile/beam/wormhole/WH = BB
+ if(istype(loaded_projectile, /obj/projectile/beam/wormhole))
+ var/obj/projectile/beam/wormhole/WH = loaded_projectile
WH.gun = gun
diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm
index d67202b0504..529609efe17 100644
--- a/code/modules/projectiles/ammunition/special/syringe.dm
+++ b/code/modules/projectiles/ammunition/special/syringe.dm
@@ -6,7 +6,7 @@
firing_effect_type = null
/obj/item/ammo_casing/syringegun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
- if(!BB)
+ if(!loaded_projectile)
return
if(istype(loc, /obj/item/gun/syringe))
var/obj/item/gun/syringe/SG = loc
@@ -15,16 +15,16 @@
var/obj/item/reagent_containers/syringe/S = SG.syringes[1]
- S.reagents.trans_to(BB, S.reagents.total_volume, transfered_by = user)
- BB.name = S.name
- var/obj/projectile/bullet/dart/D = BB
+ S.reagents.trans_to(loaded_projectile, S.reagents.total_volume, transfered_by = user)
+ loaded_projectile.name = S.name
+ var/obj/projectile/bullet/dart/D = loaded_projectile
D.piercing = S.proj_piercing
SG.syringes.Remove(S)
qdel(S)
else if(istype(loc, /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun))
var/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/syringe_gun = loc
var/obj/item/reagent_containers/syringe/loaded_syringe = syringe_gun.syringes[1]
- var/obj/projectile/bullet/dart/shot_dart = BB
+ var/obj/projectile/bullet/dart/shot_dart = loaded_projectile
syringe_gun.reagents.trans_to(shot_dart, min(loaded_syringe.volume, syringe_gun.reagents.total_volume), transfered_by = user)
shot_dart.name = loaded_syringe.name
shot_dart.piercing = loaded_syringe.proj_piercing
@@ -39,14 +39,14 @@
firing_effect_type = null
/obj/item/ammo_casing/chemgun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
- if(!BB)
+ if(!loaded_projectile)
return
if(istype(loc, /obj/item/gun/chem))
var/obj/item/gun/chem/CG = loc
if(CG.syringes_left <= 0)
return
- CG.reagents.trans_to(BB, 15, transfered_by = user)
- BB.name = "piercing chemical dart"
+ CG.reagents.trans_to(loaded_projectile, 15, transfered_by = user)
+ loaded_projectile.name = "piercing chemical dart"
CG.syringes_left--
return ..()
@@ -57,7 +57,7 @@
firing_effect_type = null
/obj/item/ammo_casing/dnainjector/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
- if(!BB)
+ if(!loaded_projectile)
return
if(istype(loc, /obj/item/gun/syringe/dna))
var/obj/item/gun/syringe/dna/SG = loc
@@ -65,7 +65,7 @@
return
var/obj/item/dnainjector/S = popleft(SG.syringes)
- var/obj/projectile/bullet/dnainjector/D = BB
+ var/obj/projectile/bullet/dnainjector/D = loaded_projectile
S.forceMove(D)
D.injector = S
return ..()
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index a40667b0736..15f63bc01fd 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -87,7 +87,7 @@
//for accessibles magazines (e.g internal ones) when full, start replacing spent ammo
else if(replace_spent)
for(var/obj/item/ammo_casing/AC in stored_ammo)
- if(!AC.BB)//found a spent ammo
+ if(!AC.loaded_projectile)//found a spent ammo
stored_ammo -= AC
AC.forceMove(get_turf(src.loc))
@@ -161,7 +161,7 @@
/obj/item/ammo_box/magazine/proc/ammo_count(countempties = TRUE)
var/boolets = 0
for(var/obj/item/ammo_casing/bullet in stored_ammo)
- if(bullet && (bullet.BB || countempties))
+ if(bullet && (bullet.loaded_projectile || countempties))
boolets++
return boolets
diff --git a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
index 177aea74ac3..59d6519ec22 100644
--- a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
+++ b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm
@@ -38,7 +38,7 @@
for(var/i in 1 to stored_ammo.len)
var/obj/item/ammo_casing/bullet = stored_ammo[i]
- if(!bullet || !bullet.BB) // found a spent ammo
+ if(!bullet || !bullet.loaded_projectile) // found a spent ammo
stored_ammo[i] = R
R.forceMove(src)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index f9f95f3cfa2..88ecbf092bb 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -299,7 +299,7 @@
if(iteration > 1 && !(user.is_holding(src))) //for burst firing
firing_burst = FALSE
return FALSE
- if(chambered?.BB)
+ if(chambered?.loaded_projectile)
if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal.
if(chambered.harmful) // Is the bullet chambered harmful?
to_chat(user, "[src] is lethally chambered! You don't want to risk harming anyone...")
@@ -643,16 +643,16 @@
target.visible_message("[user] pulls the trigger!", "[(user == target) ? "You pull" : "[user] pulls"] the trigger!")
- if(chambered?.BB)
- chambered.BB.damage *= 5
- if(chambered.BB.wound_bonus != CANT_WOUND)
- chambered.BB.wound_bonus += 5 // much more dramatic on multiple pellet'd projectiles really
+ if(chambered?.loaded_projectile)
+ chambered.loaded_projectile.damage *= 5
+ if(chambered.loaded_projectile.wound_bonus != CANT_WOUND)
+ chambered.loaded_projectile.wound_bonus += 5 // much more dramatic on multiple pellet'd projectiles really
var/fired = process_fire(target, user, TRUE, params, BODY_ZONE_HEAD)
- if(!fired && chambered?.BB)
- chambered.BB.damage /= 5
- if(chambered.BB.wound_bonus != CANT_WOUND)
- chambered.BB.wound_bonus -= 5
+ if(!fired && chambered?.loaded_projectile)
+ chambered.loaded_projectile.damage /= 5
+ if(chambered.loaded_projectile.wound_bonus != CANT_WOUND)
+ chambered.loaded_projectile.wound_bonus -= 5
/obj/item/gun/proc/unlock() //used in summon guns and as a convience for admins
if(pin)
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index e05099c8456..b4f868abf82 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -91,7 +91,7 @@
var/suppressor_y_offset ///pixel offset for the suppressor overlay on the y axis.
///Gun internal magazine modification and misfiring
-
+
///Can we modify our ammo type in this gun's internal magazine?
var/can_modify_ammo = FALSE
///our initial ammo type. Should match initial caliber, but a bit of redundency doesn't hurt.
@@ -106,7 +106,7 @@
var/alternative_ammo_misfires = FALSE
/// Whether our ammo misfires now or when it's set by the wrench_act. TRUE means it misfires.
var/can_misfire = FALSE
- ///How likely is our gun to misfire?
+ ///How likely is our gun to misfire?
var/misfire_probability = 0
///How much does shooting the gun increment the misfire probability?
var/misfire_percentage_increment = 0
@@ -153,7 +153,7 @@
. += MA
if(!chambered && empty_indicator) //this is duplicated in c20's update_overlayss due to a layering issue with the select fire icon.
. += "[icon_state]_empty"
-
+
if(gun_flags & TOY_FIREARM_OVERLAY)
. += "[icon_state]_toy"
@@ -296,7 +296,7 @@
return
if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box))
if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine)
- if (chambered && !chambered.BB)
+ if (chambered && !chambered.loaded_projectile)
chambered.forceMove(drop_location())
chambered = null
var/num_loaded = magazine?.attackby(A, user, params, TRUE)
@@ -326,16 +326,16 @@
if (can_be_sawn_off)
if (sawoff(user, A))
return
-
+
if(can_misfire && istype(A, /obj/item/stack/sheet/cloth))
if(guncleaning(user, A))
return
-
+
return FALSE
/obj/item/gun/ballistic/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- if(magazine && chambered.BB && can_misfire && misfire_probability > 0)
+ if(magazine && chambered.loaded_projectile && can_misfire && misfire_probability > 0)
if(prob(misfire_probability))
if(blow_up(user))
to_chat(user, "[src] misfires!")
@@ -347,7 +347,7 @@
/obj/item/gun/ballistic/shoot_live_shot(mob/living/user, pointblank = 0, atom/pbtarget = null, message = 1)
if(can_misfire)
misfire_probability += misfire_percentage_increment
-
+
. = ..()
///Installs a new suppressor, assumes that the suppressor is already in the contents of src
@@ -490,7 +490,7 @@
#define BRAINS_BLOWN_THROW_SPEED 1
/obj/item/gun/ballistic/suicide_act(mob/user)
var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN)
- if (B && chambered && chambered.BB && can_trigger_gun(user) && !chambered.BB.nodamage)
+ if (B && chambered && chambered.loaded_projectile && can_trigger_gun(user) && !chambered.loaded_projectile.nodamage)
user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!")
sleep(25)
if(user.is_holding(src))
@@ -557,10 +557,10 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
if(misfire_probability == 0)
to_chat(user, "\The [src] seems to be already clean of fouling.")
return
-
+
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("[user] begins to cleaning \the [src].", "You begin to clean the internals of \the [src].")
-
+
if(do_after(user, 100, target = src))
var/original_misfire_value = initial(misfire_probability)
if(misfire_probability > original_misfire_value)
@@ -572,15 +572,15 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
if(!user.is_holding(src))
to_chat(user, "You need to hold [src] to modify it.")
return TRUE
-
+
if(!can_modify_ammo)
return
-
+
if(bolt_type == BOLT_TYPE_STANDARD)
- if(get_ammo())
+ if(get_ammo())
to_chat(user, "You can't get at the internals while the gun has a bullet in it!")
return
-
+
else if(!bolt_locked)
to_chat(user, "You can't get at the internals while the bolt is down!")
return
@@ -589,7 +589,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
I.play_tool_sound(src)
if(!I.use_tool(src, user, 3 SECONDS))
return TRUE
-
+
if(blow_up(user))
user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!")
return
@@ -612,7 +612,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
/obj/item/gun/ballistic/proc/blow_up(mob/user)
. = FALSE
for(var/obj/item/ammo_casing/AC in magazine.stored_ammo)
- if(AC.BB)
+ if(AC.loaded_projectile)
process_fire(user, user, FALSE)
. = TRUE
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index 7bcb8561cc1..ddca6c51197 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -105,7 +105,7 @@
var/skip_357_missfire_check = FALSE
/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- if(magazine && magazine.caliber != initial(magazine.caliber) && chambered.BB && !skip_357_missfire_check)
+ if(magazine && magazine.caliber != initial(magazine.caliber) && chambered.loaded_projectile && !skip_357_missfire_check)
if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60
to_chat(user, "[src] misfires!")
if(user.get_item_for_held_index(1) == src)
@@ -126,7 +126,7 @@
return TRUE
if(magazine.ammo_count()) //If it has any ammo inside....
user.visible_message("[src]'s hammer drops while you're handling it!") //...you learn an important lesson about firearms safety.
- var/drop_the_gun_it_actually_fired = chambered.BB ? TRUE : FALSE //Is a live round chambered?
+ var/drop_the_gun_it_actually_fired = chambered.loaded_projectile ? TRUE : FALSE //Is a live round chambered?
skip_357_missfire_check = TRUE //We set this true, then back to false after process_fire, to reduce redundacy of a round "misfiring" when it's already misfiring from wrench_act
process_fire(user, user, FALSE)
skip_357_missfire_check = FALSE
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index 7379e5664f2..dfcdd96fe8f 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -72,9 +72,43 @@
can_bayonet = FALSE
update_icon()
+/* - SKYRAT EDIT REMOVAL
+/obj/item/gun/ballistic/rifle/boltaction/attack_self(mob/user)
+ if(can_jam)
+ if(jammed)
+ if(prob(unjam_chance))
+ jammed = FALSE
+ unjam_chance = 10
+ else
+ unjam_chance += 10
+ to_chat(user, "[src] is jammed!")
+ playsound(user,'sound/weapons/jammed.ogg', 75, TRUE)
+ return FALSE
+ ..()
+
+/obj/item/gun/ballistic/rifle/boltaction/process_fire(mob/user)
+ if(can_jam)
+ if(chambered.loaded_projectile)
+ if(prob(jamming_chance))
+ jammed = TRUE
+ jamming_chance += jamming_increment
+ jamming_chance = clamp (jamming_chance, 0, 100)
+ return ..()
+
+/obj/item/gun/ballistic/rifle/boltaction/attackby(obj/item/item, mob/user, params)
+ . = ..()
+ if(can_jam)
+ if(bolt_locked)
+ if(istype(item, /obj/item/gun_maintenance_supplies))
+ if(do_after(user, 10 SECONDS, target = src))
+ user.visible_message("[user] finishes maintenance of [src].")
+ jamming_chance = 10
+ qdel(item)
+*/ //SKYRAT EDIT END
+
/obj/item/gun/ballistic/rifle/boltaction/blow_up(mob/user)
. = FALSE
- if(chambered?.BB)
+ if(chambered?.loaded_projectile)
process_fire(user, user, FALSE)
. = TRUE
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 637cf9ce941..80c0138a3b0 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -30,7 +30,7 @@
/obj/item/gun/ballistic/shotgun/blow_up(mob/user)
. = 0
- if(chambered?.BB)
+ if(chambered?.loaded_projectile)
process_fire(user, user, FALSE)
. = 1
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index dcf96f1687b..192ee873800 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -48,7 +48,7 @@
/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0)
..()
- if(chambered && !chambered.BB)
+ if(chambered && !chambered.loaded_projectile)
qdel(chambered)
/obj/item/gun/ballistic/shotgun/toy/unrestricted
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 26fcd52d535..0a9202b7376 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -106,11 +106,11 @@
var/obj/item/ammo_casing/energy/AC = ammo_type[select]
if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell...
chambered = AC //...prepare a new shot based on the current ammo type selected
- if(!chambered.BB)
+ if(!chambered.loaded_projectile)
chambered.newshot()
/obj/item/gun/energy/process_chamber()
- if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired...
+ if(chambered && !chambered.loaded_projectile) //if loaded_projectile is null, i.e the shot has been fired...
var/obj/item/ammo_casing/energy/shot = chambered
cell.use(shot.e_cost)//... drain the cell cell
chambered = null //either way, released the prepared shot
@@ -223,25 +223,25 @@
. = ""
else
var/obj/item/ammo_casing/energy/E = ammo_type[select]
- var/obj/projectile/energy/BB = E.BB
- if(!BB)
+ var/obj/projectile/energy/loaded_projectile = E.loaded_projectile
+ if(!loaded_projectile)
. = ""
- else if(BB.nodamage || !BB.damage || BB.damage_type == STAMINA)
+ else if(loaded_projectile.nodamage || !loaded_projectile.damage || loaded_projectile.damage_type == STAMINA)
user.visible_message("[user] tries to light [A.loc == user ? "[user.p_their()] [A.name]" : A] with [src], but it doesn't do anything. Dumbass.")
playsound(user, E.fire_sound, 50, TRUE)
- playsound(user, BB.hitsound, 50, TRUE)
+ playsound(user, loaded_projectile.hitsound, 50, TRUE)
cell.use(E.e_cost)
. = ""
- else if(BB.damage_type != BURN)
+ else if(loaded_projectile.damage_type != BURN)
user.visible_message("[user] tries to light [A.loc == user ? "[user.p_their()] [A.name]" : A] with [src], but only succeeds in utterly destroying it. Dumbass.")
playsound(user, E.fire_sound, 50, TRUE)
- playsound(user, BB.hitsound, 50, TRUE)
+ playsound(user, loaded_projectile.hitsound, 50, TRUE)
cell.use(E.e_cost)
qdel(A)
. = ""
else
playsound(user, E.fire_sound, 50, TRUE)
- playsound(user, BB.hitsound, 50, TRUE)
+ playsound(user, loaded_projectile.hitsound, 50, TRUE)
cell.use(E.e_cost)
. = "[user] casually lights [A.loc == user ? "[user.p_their()] [A.name]" : A] with [src]. Damn."
diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm
index 9f3cf7141b0..bd466ce41c1 100644
--- a/code/modules/projectiles/guns/energy/dueling.dm
+++ b/code/modules/projectiles/guns/energy/dueling.dm
@@ -248,7 +248,7 @@
/obj/item/ammo_casing/energy/duel/ready_proj(atom/target, mob/living/user, quiet, zone_override)
. = ..()
- var/obj/projectile/energy/duel/D = BB
+ var/obj/projectile/energy/duel/D = loaded_projectile
D.setting = setting
D.update_icon()
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index b77a34de101..748ec85d871 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -166,7 +166,7 @@
..()
if(loc && istype(loc, /obj/item/gun/energy/kinetic_accelerator))
var/obj/item/gun/energy/kinetic_accelerator/KA = loc
- KA.modify_projectile(BB)
+ KA.modify_projectile(loaded_projectile)
//Projectiles
/obj/projectile/kinetic
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 10aa4f65de9..16bdf841757 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -232,7 +232,7 @@
var/obj/item/ammo_casing/energy/wormhole/W = ammo_type[i]
if(istype(W))
W.gun = src
- var/obj/projectile/beam/wormhole/WH = W.BB
+ var/obj/projectile/beam/wormhole/WH = W.loaded_projectile
if(istype(WH))
WH.gun = src
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index fdff86776af..e501112d6d1 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -40,11 +40,11 @@
return charges
/obj/item/gun/magic/recharge_newshot()
- if (charges && chambered && !chambered.BB)
+ if (charges && chambered && !chambered.loaded_projectile)
chambered.newshot()
/obj/item/gun/magic/process_chamber()
- if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired...
+ if(chambered && !chambered.loaded_projectile) //if BB is null, i.e the shot has been fired...
charges--//... drain a charge
recharge_newshot()
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index c01b8b9ea63..4581d83a31b 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -361,7 +361,7 @@
/obj/item/ammo_casing/energy/beam_rifle/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
. = ..()
- var/obj/projectile/beam/beam_rifle/hitscan/HS_BB = BB
+ var/obj/projectile/beam/beam_rifle/hitscan/HS_BB = loaded_projectile
if(!istype(HS_BB))
return
HS_BB.impact_direct_damage = projectile_damage
@@ -382,7 +382,7 @@
/obj/item/ammo_casing/energy/beam_rifle/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread)
var/turf/curloc = get_turf(user)
- if(!istype(curloc) || !BB)
+ if(!istype(curloc) || !loaded_projectile)
return FALSE
var/obj/item/gun/energy/beam_rifle/gun = loc
if(!targloc && gun)
@@ -390,13 +390,13 @@
else if(!targloc)
return FALSE
var/firing_dir
- if(BB.firer)
- firing_dir = BB.firer.dir
- if(!BB.suppressed && firing_effect_type)
+ if(loaded_projectile.firer)
+ firing_dir = loaded_projectile.firer.dir
+ if(!loaded_projectile.suppressed && firing_effect_type)
new firing_effect_type(get_turf(src), firing_dir)
- BB.preparePixelProjectile(target, user, params, spread)
- BB.fire(gun? gun.lastangle : null, null)
- BB = null
+ loaded_projectile.preparePixelProjectile(target, user, params, spread)
+ loaded_projectile.fire(gun? gun.lastangle : null, null)
+ loaded_projectile = null
return TRUE
/obj/item/ammo_casing/energy/beam_rifle/hitscan
diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm
index 5ee41da6b0c..c25dbde0df3 100644
--- a/code/modules/projectiles/guns/misc/chem_gun.dm
+++ b/code/modules/projectiles/guns/misc/chem_gun.dm
@@ -31,7 +31,7 @@
return syringes_left
/obj/item/gun/chem/process_chamber()
- if(chambered && !chambered.BB && syringes_left)
+ if(chambered && !chambered.loaded_projectile && syringes_left)
chambered.newshot()
/obj/item/gun/chem/process()
@@ -41,6 +41,6 @@
return
to_chat(loc, "You hear a click as [src] synthesizes a new dart.")
syringes_left++
- if(chambered && !chambered.BB)
+ if(chambered && !chambered.loaded_projectile)
chambered.newshot()
last_synth = world.time
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index a12d1464b79..18d8ceed1ea 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -34,7 +34,7 @@
return syringes.len
/obj/item/gun/syringe/process_chamber()
- if(chambered && !chambered.BB) //we just fired
+ if(chambered && !chambered.loaded_projectile) //we just fired
recharge_newshot()
update_icon()
diff --git a/code/modules/projectiles/projectile/reusable/foam_dart.dm b/code/modules/projectiles/projectile/reusable/foam_dart.dm
index 29c8281ef60..c944741b4dd 100644
--- a/code/modules/projectiles/projectile/reusable/foam_dart.dm
+++ b/code/modules/projectiles/projectile/reusable/foam_dart.dm
@@ -18,7 +18,7 @@
dropped = 1
var/obj/item/ammo_casing/caseless/foam_dart/newcasing = new ammo_type(T)
newcasing.modified = modified
- var/obj/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB
+ var/obj/projectile/bullet/reusable/foam_dart/newdart = newcasing.loaded_projectile
newdart.modified = modified
if(modified)
newdart.damage = 5
diff --git a/modular_skyrat/modules/medical/code/wounds/slash.dm b/modular_skyrat/modules/medical/code/wounds/slash.dm
index bd43307e453..6d910156f05 100644
--- a/modular_skyrat/modules/medical/code/wounds/slash.dm
+++ b/modular_skyrat/modules/medical/code/wounds/slash.dm
@@ -216,9 +216,9 @@
user.visible_message("[user] begins aiming [lasgun] directly at [victim]'s [limb.name]...", "You begin aiming [lasgun] directly at [user == victim ? "your" : "[victim]'s"] [limb.name]...")
if(!do_after(user, base_treat_time * self_penalty_mult, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
return
- var/damage = lasgun.chambered.BB.damage
- lasgun.chambered.BB.wound_bonus -= 30
- lasgun.chambered.BB.damage *= self_penalty_mult
+ var/damage = lasgun.chambered.loaded_projectile.damage
+ lasgun.chambered.loaded_projectile.wound_bonus -= 30
+ lasgun.chambered.loaded_projectile.damage *= self_penalty_mult
if(!lasgun.process_fire(victim, victim, TRUE, null, limb.body_zone))
return
victim.emote("scream")
diff --git a/modular_skyrat/modules/sec_haul/code/misc/bullet_drive.dm b/modular_skyrat/modules/sec_haul/code/misc/bullet_drive.dm
index cedf2e14ec2..ddf1a5a3ce3 100644
--- a/modular_skyrat/modules/sec_haul/code/misc/bullet_drive.dm
+++ b/modular_skyrat/modules/sec_haul/code/misc/bullet_drive.dm
@@ -32,7 +32,7 @@
return
var/disposed = 0
for(var/obj/item/ammo_casing/A in dish_drive_contents)
- if(!A.BB)
+ if(!A.loaded_projectile)
LAZYREMOVE(dish_drive_contents, A)
qdel(A)
use_power(active_power_usage)