Revolver caliber changes; .357 revolvers can now also load .38 but not vice-versa.

Effectively it means you can load .38 rubber into a .357 revolver to make it less than lethal, or use the various different .38 ammo types.
This commit is contained in:
Chayse Ramsay
2020-01-21 22:29:15 +00:00
parent 86c5d43a1b
commit 5e5d80238b
5 changed files with 10 additions and 10 deletions
@@ -9,7 +9,7 @@
w_class = WEIGHT_CLASS_TINY
materials = list(MAT_METAL = 500)
var/fire_sound = null //What sound should play when this ammo is fired
var/caliber = null //Which kind of guns it can be loaded into
var/caliber = list() //Which kind of guns it can be loaded into
var/projectile_type = null //The bullet type to create when New() is called
var/obj/item/projectile/BB = null //The loaded bullet
var/pellets = 1 //Pellets for spreadshot
@@ -1,7 +1,7 @@
/obj/item/ammo_box/magazine/internal/cylinder
name = "revolver cylinder"
ammo_type = /obj/item/ammo_casing/a357
caliber = "357"
caliber = list("357","38")
max_ammo = 7
/obj/item/ammo_box/magazine/internal/cylinder/ammo_count(countempties = 1)
@@ -31,7 +31,7 @@
rotate()
/obj/item/ammo_box/magazine/internal/cylinder/give_round(obj/item/ammo_casing/R, replace_spent = 0)
if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type))
if(!R || (caliber && !(R.caliber in caliber)) || (!caliber && R.type != ammo_type))
return FALSE
for(var/i in 1 to stored_ammo.len)
@@ -1,7 +1,7 @@
/obj/item/ammo_box/magazine/internal/cylinder/grenademulti
name = "grenade launcher internal magazine"
ammo_type = /obj/item/ammo_casing/a40mm
caliber = "40mm"
caliber = list("40mm")
max_ammo = 6
/obj/item/ammo_box/magazine/internal/grenadelauncher
@@ -1,19 +1,19 @@
/obj/item/ammo_box/magazine/internal/cylinder/rev38
name = "detective revolver cylinder"
ammo_type = /obj/item/ammo_casing/c38
caliber = "38"
caliber = list("38")
max_ammo = 6
/obj/item/ammo_box/magazine/internal/cylinder/rev762
name = "\improper Nagant revolver cylinder"
ammo_type = /obj/item/ammo_casing/n762
caliber = "n762"
caliber = list("n762")
max_ammo = 7
/obj/item/ammo_box/magazine/internal/cylinder/rus357
name = "\improper Russian revolver cylinder"
ammo_type = /obj/item/ammo_casing/a357
caliber = "357"
caliber = list("357")
max_ammo = 6
multiload = 0
@@ -110,7 +110,7 @@
/obj/item/gun/ballistic/revolver/detective/screwdriver_act(mob/living/user, obj/item/I)
if(..())
return TRUE
if(magazine.caliber == "38")
if("38" in magazine.caliber)
to_chat(user, "<span class='notice'>You begin to reinforce the barrel of [src]...</span>")
if(magazine.ammo_count())
afterattack(user, user) //you know the drill
@@ -120,7 +120,7 @@
if(magazine.ammo_count())
to_chat(user, "<span class='warning'>You can't modify it!</span>")
return TRUE
magazine.caliber = "357"
magazine.caliber = list("357")
desc = "The barrel and chamber assembly seems to have been modified."
to_chat(user, "<span class='notice'>You reinforce the barrel of [src]. Now it will fire .357 rounds.</span>")
else
@@ -133,7 +133,7 @@
if(magazine.ammo_count())
to_chat(user, "<span class='warning'>You can't modify it!</span>")
return
magazine.caliber = "38"
magazine.caliber = list("38")
desc = initial(desc)
to_chat(user, "<span class='notice'>You remove the modifications on [src]. Now it will fire .38 rounds.</span>")
return TRUE