Buckshot whee!

This commit is contained in:
ZomgPonies
2013-12-12 22:10:33 -05:00
parent 1507239e82
commit d4055a89af
18 changed files with 192 additions and 136 deletions
+2 -3
View File
@@ -10,10 +10,9 @@
w_class = 3.0
m_amt = 1000
recoil = 1
var/ammo_type = "/obj/item/ammo_casing/c10mm"
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/obj/item/ammo_casing/chambered = null // The round (not bullet) that is in the chamber.
// var/obj/item/ammo_casing/chambered = null // The round (not bullet) that is in the chamber.
@@ -59,7 +58,7 @@
user.remove_from_mob(AM)
magazine = AM
magazine.loc = src
user << "<span class='notice'>You load a new magazine into \the [src]!</span>"
user << "<span class='notice'>You load a new magazine into \the [src].</span>"
chamber_round()
A.update_icon()
update_icon()
@@ -4,7 +4,6 @@
icon_state = "saber" //ugly
w_class = 3.0
origin_tech = "combat=4;materials=2"
ammo_type = "/obj/item/ammo_casing/c9mm"
automatic = 1
mag_type = "/obj/item/ammo_box/magazine/msmg9mm"
var/alarmed = 0
@@ -30,7 +29,6 @@
w_class = 3.0
origin_tech = "combat=5;materials=2;syndicate=8"
ammo_type = "/obj/item/ammo_casing/c45"
mag_type = "/obj/item/ammo_box/magazine/uzim45"
isHandgun()
@@ -44,20 +42,13 @@
item_state = "c20r"
w_class = 3.0
origin_tech = "combat=5;materials=2;syndicate=8"
ammo_type = "/obj/item/ammo_casing/a12mm"
mag_type = "/obj/item/ammo_box/magazine/m12mm"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
/obj/item/weapon/gun/projectile/automatic/c20r/New()
..()
update_icon()
return
/obj/item/weapon/gun/projectile/automatic/c20r/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
..()
if(!chambered && !get_ammo() && !alarmed)
playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
update_icon()
alarmed = 1
return
@@ -69,13 +60,12 @@
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "\improper L6 SAW"
desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever"
desc = "A rather traditionally made medium machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever"
icon_state = "l6closed100"
item_state = "l6closedmag"
w_class = 4
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
ammo_type = "/obj/item/ammo_casing/a762"
mag_type = "/obj/item/ammo_box/magazine/m762"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
@@ -118,7 +108,7 @@
/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(var/obj/item/A as obj, mob/user as mob)
if(!cover_open)
if(!cover_open && istype(A, mag_type))
user << "<span class='notice'>[src]'s cover is closed! You can't insert a new mag!</span>"
return
..()
@@ -1,16 +1,15 @@
/obj/item/weapon/gun/projectile/automatic/silenced
name = "silenced pistol"
desc = "A small, quiet, easily concealable gun. Uses .45 rounds."
icon_state = "silenced_pistol"
/obj/item/weapon/gun/projectile/automatic/m2411
name = "M2411"
desc = "John Browning's classic updated for the modern day. Uses .45 rounds. Has 'VADS' engraved on the grip."
icon_state = "m2411"
w_class = 3.0
silenced = 1
origin_tech = "combat=2;materials=2;syndicate=8"
ammo_type = "/obj/item/ammo_casing/c45"
mag_type = "/obj/item/ammo_box/magazine/sm45"
origin_tech = "combat=3;materials=2"
mag_type = /obj/item/ammo_box/magazine/m45
/obj/item/weapon/gun/projectile/automatic/silenced/update_icon()
/obj/item/weapon/gun/projectile/automatic/m2411/update_icon()
..()
icon_state = "[initial(icon_state)]"
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
return
@@ -20,7 +19,6 @@
desc = "A robust handgun that uses .50 AE ammo"
icon_state = "deagle"
force = 14.0
ammo_type = "/obj/item/ammo_casing/a50"
mag_type = "/obj/item/ammo_box/magazine/m50"
/obj/item/weapon/gun/projectile/automatic/deagle/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
@@ -55,7 +53,6 @@
icon_state = "gyropistol"
fire_sound = 'sound/effects/Explosion1.ogg'
origin_tech = "combat=3"
ammo_type = "/obj/item/ammo_casing/a75"
mag_type = "/obj/item/ammo_box/magazine/m75"
/obj/item/weapon/gun/projectile/automatic/gyropistol/New()
@@ -83,18 +80,8 @@
w_class = 2
silenced = 0
origin_tech = "combat=2;materials=2;syndicate=2"
ammo_type = "/obj/item/ammo_casing/c9mm"
mag_type = "/obj/item/ammo_box/magazine/m10mm"
/obj/item/weapon/gun/projectile/automatic/pistol/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
..()
if(magazine)
if(!chambered && !magazine.ammo_count())
magazine.update_icon()
magazine.loc = get_turf(src.loc)
magazine = null
return
/obj/item/weapon/gun/projectile/automatic/pistol/attack_hand(mob/user as mob)
if(loc == user)
if(silenced)
@@ -2,7 +2,6 @@
desc = "A classic revolver. Uses 357 ammo"
name = "revolver"
icon_state = "revolver"
ammo_type = "/obj/item/ammo_casing/a357"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder"
/obj/item/weapon/gun/projectile/revolver/chamber_round()
@@ -31,10 +30,11 @@
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
if(magazine.give_round(AC))
var/didload = magazine.give_round(AC)
if(didload)
AM.stored_ammo -= AC
num_loaded++
else
if(!didload || !magazine.multiload)
break
if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/AC = A
@@ -79,7 +79,6 @@
name = "revolver"
icon_state = "detective"
origin_tech = "combat=2;materials=2"
ammo_type = "/obj/item/ammo_casing/c38"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/rev38"
@@ -87,7 +86,7 @@
if(magazine.caliber == initial(magazine.caliber))
return 1
if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60
M << "<span class='danger'>[src] blows up in your face.</span>"
M << "<span class='danger'>[src] blows up in your face!</span>"
M.take_organ_damage(0,20)
M.drop_item()
del(src)
@@ -140,7 +139,7 @@
user << "<span class='notice'>You can't modify it!</span>"
return
magazine.caliber = "357"
desc = "The barrel and chamber assembly seems to have been modified."
desc = "[initial(desc)] The barrel and chamber assembly seems to have been modified."
user << "<span class='warning'>You reinforce the barrel of [src]! Now it will fire .357 rounds.</span>"
else
user << "<span class='notice'>You begin to revert the modifications to [src].</span>"
@@ -170,7 +169,7 @@
/obj/item/weapon/gun/projectile/revolver/russian
name = "Russian Revolver"
desc = "A Russian made revolver. Uses .357 ammo. It has a single slot in it's chamber for a bullet."
desc = "A Russian made revolver. Uses .357 ammo."
origin_tech = "combat=2;materials=2"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/rus357"
var/spun = 0
@@ -188,26 +187,8 @@
spun = 1
/obj/item/weapon/gun/projectile/revolver/russian/attackby(var/obj/item/A as obj, mob/user as mob)
var/num_loaded = 0
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
if(get_ammo() <= 1)
if(magazine.give_round(AC))
AM.stored_ammo -= AC
num_loaded++
break
if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/AC = A
if(get_ammo() <= 1)
magazine.give_round(AC)
user.drop_item()
AC.loc = src
num_loaded++
if(num_loaded)
user.visible_message("<span class='warning'>[user] loads a single bullet into the revolver and spins the chamber.</span>", "<span class='warning'>You load a single bullet into the chamber and spin it.</span>")
else
user.visible_message("<span class='warning'>[user] spins the chamber of the revolver.</span>", "<span class='warning'>You spin the revolver's chamber.</span>")
..()
user.visible_message("<span class='warning'>[user] spins the chamber of the revolver.</span>", "<span class='warning'>You spin the revolver's chamber.</span>")
if(get_ammo() > 0)
Spin()
update_icon()
@@ -219,26 +200,19 @@
user.visible_message("<span class='warning'>[user] spins the chamber of the revolver.</span>", "<span class='warning'>You spin the revolver's chamber.</span>")
Spin()
else
var/num_unloaded = 0
while (get_ammo() > 0)
var/obj/item/ammo_casing/CB
CB = magazine.get_round()
chambered = null
CB.loc = get_turf(src.loc)
CB.update_icon()
num_unloaded++
if (num_unloaded)
user << "<span class = 'notice'>You unload [num_unloaded] shell\s from [src]!</span>"
else
user << "<span class='notice'>[src] is empty.</span>"
..()
/obj/item/weapon/gun/projectile/revolver/russian/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params)
if (!spun)
Spin()
return
..()
spun = 0
/obj/item/weapon/gun/projectile/revolver/russian/attack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj)
if(!chambered)
if(!chambered && target == user)
user.visible_message("\red *click*", "\red *click*")
return
@@ -8,7 +8,6 @@
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BACK
origin_tech = "combat=4;materials=2"
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
var/recentpump = 0 // to prevent spammage
var/pumped = 0
@@ -18,10 +17,11 @@
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
if(magazine && magazine.give_round(AC))
var/didload = magazine.give_round(AC)
if(didload)
AM.stored_ammo -= AC
num_loaded++
else
if(!didload || !magazine.multiload)
break
if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/AC = A
@@ -84,7 +84,6 @@
name = "combat shotgun"
icon_state = "cshotgun"
origin_tech = "combat=5;materials=2"
ammo_type = "/obj/item/ammo_casing/shotgun"
mag_type = "/obj/item/ammo_box/magazine/internal/shotcom"
w_class = 5
@@ -98,20 +97,17 @@
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BACK
origin_tech = "combat=3;materials=1"
ammo_type = "/obj/item/ammo_casing/shotgun/beanbag"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/dualshot"
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob)
..()
if (istype(A,/obj/item/ammo_box) || istype(A,/obj/item/ammo_casing))
chamber_round()
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
user << "<span class='notice'>You begin to shorten the barrel of \the [src].</span>"
if(get_ammo())
afterattack(user, user) //will this work?
afterattack(user, user) //it will. we call it twice, for twice the FUN
playsound(user, fire_sound, 50, 1)
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
user.visible_message("<span class='danger'>\The [src] goes off!</span>", "<span class='danger'>\The [src] goes off in your face!</span>")
return
if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY
icon_state = "sawnshotgun"
@@ -124,15 +120,5 @@
desc = "Omar's coming!"
/obj/item/weapon/gun/projectile/revolver/doublebarrel/attack_self(mob/living/user as mob)
var/num_unloaded = 0
while (get_ammo() > 0)
var/obj/item/ammo_casing/CB
CB = magazine.get_round(0)
chambered = null
CB.loc = get_turf(src.loc)
CB.update_icon()
num_unloaded++
if (num_unloaded)
user << "<span class = 'notice'>You break open \the [src] and unload [num_unloaded] shell\s.</span>"
else
user << "<span class='notice'>[src] is empty.</span>"
user << "<span class = 'notice'>You break open \the [src].</span>"
..()