Files
CHOMPStation2/code/modules/projectiles/guns/projectile/automatic.dm
Heroman3003 db38ed93c0 Spell Fixes
2023-06-19 04:40:45 +00:00

512 lines
23 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/obj/item/weapon/gun/projectile/automatic //This should never be spawned in, it is just here because of code necessities.
name = "daka SMG"
desc = "A small SMG. You really shouldn't be able to get this gun. Uses 9mm rounds."
icon_state = "c05r" //Used because it's not used anywhere else
load_method = SPEEDLOADER
ammo_type = /obj/item/ammo_casing/a9mm
projectile_type = /obj/item/projectile/bullet/pistol
//Burst is the number of bullets fired; Fire delay is the time you have to wait to shoot the gun again, Move delay is the same but for moving after shooting. .
//Burst accuracy is the accuracy of each bullet fired in the burst. Dispersion is how much the bullets will 'spread' away from where you aimed.
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)))
/obj/item/weapon/gun/projectile/automatic/advanced_smg
name = "advanced SMG"
desc = "An advanced submachine gun with a reflective laser optic that makes burst fire less inaccurate than other SMGs. Uses 9mm rounds."
icon = 'icons/obj/gun.dmi'
icon_state = "advanced_smg-e" //CHOMPedit
w_class = ITEMSIZE_NORMAL
load_method = MAGAZINE
caliber = "9mm"
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
slot_flags = SLOT_BELT
magazine_type = null // R&D builds this. Starts unloaded.
allowed_magazines = list(/obj/item/ammo_magazine/m9mmAdvanced, /obj/item/ammo_magazine/m9mm)
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-10,-10), dispersion=list(0.0, 0.3, 0.6))
)
/obj/item/weapon/gun/projectile/automatic/advanced_smg/update_icon()
..()
icon_state = (ammo_magazine)? "advanced_smg" : "advanced_smg-e" //CHOMPedit
return
/obj/item/weapon/gun/projectile/automatic/advanced_smg/loaded
magazine_type = /obj/item/ammo_magazine/m9mmAdvanced
/obj/item/weapon/gun/projectile/automatic/c20r
name = "submachine gun"
desc = "The C-20r is a lightweight and rapid firing SMG, for when you REALLY need someone dead. It has 'Scarborough Arms - Per falcis, per pravitas', inscribed on the stock. Uses 10mm rounds."
description_fluff = "The C-20r is produced by Scarborough Arms, a specialist high-end weapons manufacturer based out of Titan, Sol. Scarborough has resisted numerous efforts by Trans-Stellars to acquire the brand since its founding in 2511, and has gained a dedicated following among a certain flavor of private operative."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64
icon_state = "c20r"
item_state = "c20r"
w_class = ITEMSIZE_NORMAL
force = 10
caliber = "10mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
slot_flags = SLOT_BELT|SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m10mm
allowed_magazines = list(/obj/item/ammo_magazine/m10mm)
projectile_type = /obj/item/projectile/bullet/pistol/medium
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
// one_handed_penalty = 15
/obj/item/weapon/gun/projectile/automatic/c20r/empty
magazine_type = null
/obj/item/weapon/gun/projectile/automatic/c20r/update_icon()
..()
if(ammo_magazine)
icon_state = "c20r-[round(ammo_magazine.stored_ammo.len,4)]"
else
icon_state = "c20r"
return
/obj/item/weapon/gun/projectile/automatic/sts35
name = "assault rifle"
desc = "The rugged Jindal Arms STS-35 is a durable automatic weapon of a make popular on the frontier worlds. Uses 5.45mm rounds."
description_fluff = "A subsidiary of Hephaestus Industries, While Jindals rugged, affordable weapons intended for the colonial sector are a major export of Tau Ceti, \
the Jindal Arms company is perhaps best known for its liberal sale of production licenses to just about any fledgling rimworld venture who asks, and has cash to spare. \
While Jindals 'authentic' Binma-built weapons are renowned for their reliability, the same cannot be said for the hundreds of low-grade (But technically legal) \
copies circulating the squalid habitats and smoke-filled junk ships of the frontier."
icon_state = "arifle"
item_state = "arifle"
wielded_item_state = "arifle-wielded"
item_state = null
w_class = ITEMSIZE_HUGE //CHOMP Edit.
force = 10
caliber = "5.45mm"
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m545
allowed_magazines = list(/obj/item/ammo_magazine/m545)
projectile_type = /obj/item/projectile/bullet/rifle/a545
one_handed_penalty = 30
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6))
// list(mode_name="short bursts", burst=5, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15,-30,-30,-45), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2)),
)
/obj/item/weapon/gun/projectile/automatic/sts35/update_icon(var/ignore_inhands)
..()
if(istype(ammo_magazine,/obj/item/ammo_magazine/m545/small))
icon_state = "arifle-small" // If using the small magazines, use the small magazine sprite.
else
icon_state = (ammo_magazine)? "arifle" : "arifle-empty"
if(!ignore_inhands) update_held_icon()
/obj/item/weapon/gun/projectile/automatic/wt550
name = "machine pistol"
desc = "The WT550 Saber is a cheap self-defense weapon mass-produced by Ward-Takahashi for paramilitary and private use. Uses 9mm rounds."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64
icon_state = "wt550"
item_state = "wt550"
w_class = ITEMSIZE_NORMAL
caliber = "9mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
slot_flags = SLOT_BELT
ammo_type = "/obj/item/ammo_casing/a9mmr"
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m9mmt/rubber
allowed_magazines = list(/obj/item/ammo_magazine/m9mmt)
projectile_type = /obj/item/projectile/bullet/pistol/medium
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/automatic/wt550/update_icon()
..()
if(ammo_magazine)
icon_state = "wt550-[round(ammo_magazine.stored_ammo.len,4)]"
else
icon_state = "wt550"
return
/obj/item/weapon/gun/projectile/automatic/z8
name = "battle rifle"
desc = "The Z8 Bulldog is an older model battle rifle, made by the now defunct Zendai Foundries. Makes you feel like an old-school badass when you hold it, even though it can only hold 10 round magazines. Uses 7.62mm rounds and has an under barrel grenade launcher."
description_fluff = "Zendai Foundries was a well-respected mid-sized arms company that operated until 2508, when it was acquired by Hephaestus Industries. \
Plans to integrate the brand into wider corporate operations were brought to an abrupt halt by the SolGov-Hegemony war, and the company was left by the wayside. \
Hephaestus still produces replacement parts for many of Zendai's most popular weapons, including the Z8 Bulldog, and a great detail remain in service."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64
icon_state = "carbine" // This isn't a carbine. :T
item_state = "z8carbine"
wielded_item_state = "z8carbine-wielded"
w_class = ITEMSIZE_HUGE //CHOMP Edit.
force = 10
caliber = "7.62mm"
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 3)
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m762
allowed_magazines = list(/obj/item/ammo_magazine/m762)
projectile_type = /obj/item/projectile/bullet/rifle/a762
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
one_handed_penalty = 60
burst_delay = 4
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, use_launcher=null, burst_accuracy=null, dispersion=null),
list(mode_name="2-round bursts", burst=2, fire_delay=null, move_delay=6, use_launcher=null, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6)),
list(mode_name="fire grenades", burst=null, fire_delay=null, move_delay=null, use_launcher=1, burst_accuracy=null, dispersion=null)
)
var/use_launcher = 0
var/obj/item/weapon/gun/launcher/grenade/underslung/launcher
/obj/item/weapon/gun/projectile/automatic/z8/New()
..()
launcher = new(src)
/obj/item/weapon/gun/projectile/automatic/z8/attackby(obj/item/I, mob/user)
if((istype(I, /obj/item/weapon/grenade)))
launcher.load(I, user)
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/attack_hand(mob/user)
if(user.get_inactive_hand() == src && use_launcher)
launcher.unload(user)
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0)
if(use_launcher)
launcher.Fire(target, user, params, pointblank, reflex)
if(!launcher.chambered)
switch_firemodes(user) //switch back automatically
else
..()
/obj/item/weapon/gun/projectile/automatic/z8/update_icon(var/ignore_inhands)
..()
if(ammo_magazine)
icon_state = "carbine-[round(ammo_magazine.stored_ammo.len,2)]"
else
icon_state = "carbine"
if(!ignore_inhands) update_held_icon()
return
/obj/item/weapon/gun/projectile/automatic/z8/examine(mob/user)
. = ..()
if(launcher.chambered)
. += "\The [launcher] has \a [launcher.chambered] loaded."
else
. += "\The [launcher] is empty."
/obj/item/weapon/gun/projectile/automatic/z8/empty
magazine_type = null
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "light machine gun"
desc = "A rather sturdily made L6 SAW with a reassuringly ergonomic pistol grip. 'Hephaestus Industries' is engraved on the receiver. Uses 5.45mm rounds. It's also compatible with magazines from STS-35 assault rifles."
description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' branding for its military-grade equipment used by professional armed forces across human space."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64
icon_state = "l6closed100"
item_state = "l6closed"
wielded_item_state = "genericLMG-wielded"
w_class = ITEMSIZE_HUGE //CHOMP Edit.
force = 10
slot_flags = 0
max_shells = 50
caliber = "5.45mm"
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 2)
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m545saw
allowed_magazines = list(/obj/item/ammo_magazine/m545saw, /obj/item/ammo_magazine/m545)
projectile_type = /obj/item/projectile/bullet/rifle/a545
one_handed_penalty = 90
var/cover_open = 0
/* Commented out for quality control and testing.
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null, automatic = 0),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), automatic = 0),
list(mode_name="short bursts", burst=5, move_delay=6, burst_accuracy = list(0,-1,-1,-2,-2), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2), automatic = 0),
list(mode_name="automatic", burst=1, fire_delay=-1, move_delay=null, burst_accuracy=null, dispersion=null, automatic = 1),
)
*/
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="short bursts", burst=5, move_delay=6, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2))
)
/obj/item/weapon/gun/projectile/automatic/l6_saw/special_check(mob/user)
if(cover_open)
to_chat(user, "<span class='warning'>[src]'s cover is open! Close it before firing!</span>")
return 0
return ..()
/obj/item/weapon/gun/projectile/automatic/l6_saw/proc/toggle_cover(mob/user)
cover_open = !cover_open
to_chat(user, "<span class='notice'>You [cover_open ? "open" : "close"] [src]'s cover.</span>")
update_icon()
update_held_icon()
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob)
if(cover_open)
toggle_cover(user) //close the cover
else
return ..() //once closed, behave like normal
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user as mob)
if(!cover_open && user.get_inactive_hand() == src)
toggle_cover(user) //open the cover
else
return ..() //once open, behave like normal
/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
if(istype(ammo_magazine,/obj/item/ammo_magazine/m762))
icon_state = "l6[cover_open ? "open" : "closed"]mag"
item_state = icon_state
else
icon_state = "l6[cover_open ? "open" : "closed"][ammo_magazine ? round(ammo_magazine.stored_ammo.len, 25) : "-empty"]"
item_state = "l6[cover_open ? "open" : "closed"][ammo_magazine ? "" : "-empty"]"
update_held_icon()
/obj/item/weapon/gun/projectile/automatic/l6_saw/load_ammo(var/obj/item/A, mob/user)
if(!cover_open)
to_chat(user, "<span class='warning'>You need to open the cover to load [src].</span>")
return
..()
/obj/item/weapon/gun/projectile/automatic/l6_saw/unload_ammo(mob/user, var/allow_dump=1)
if(!cover_open)
to_chat(user, "<span class='warning'>You need to open the cover to unload [src].</span>")
return
..()
/*
* Automatic Shotgun
*/
/obj/item/weapon/gun/projectile/automatic/as24
name = "automatic shotgun"
desc = "The AS-24 is a rugged looking automatic shotgun produced exclusively for the SCG Fleet by Hephaestus \
Industries. For very obvious reasons, it's illegal to own in many juristictions. Uses 12g rounds."
description_fluff = "The leading arms producer in the SCG, Hephaestus typically only uses its 'top level' \
branding for its military-grade equipment used by professional armed forces across human space."
icon_state = "ashot"
item_state = "ashot"
wielded_item_state = "ashot-wielded"
w_class = ITEMSIZE_HUGE //CHOMP Edit.
force = 10
caliber = "12g"
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m12gdrum
allowed_magazines = list(/obj/item/ammo_magazine/m12gdrum)
projectile_type = /obj/item/projectile/bullet/shotgun
one_handed_penalty = 60
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0),
list(mode_name="3-round bursts", burst=3, move_delay=6, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.0, 0.6, 0.6))
)
/obj/item/weapon/gun/projectile/automatic/as24/update_icon()
..()
if(ammo_magazine)
icon_state = "ashot"
else
icon_state = "ashot-empty"
return
/obj/item/weapon/gun/projectile/automatic/mini_uzi
name = "micro-smg"
desc = "The infamous ProTek Spitz is a lightweight, compact, fast firing machine pistol. Cheaply produced under the ProTek consumer brand, the Spitz seems to find its way into every corner of the galaxy. Uses .45 rounds."
description_fluff = "Budget-grade weapons for the budget-grade consumer! Hephaestus low-end brand of cheaply made, low-maintenance personal defense weapons for those who just need a handgun with absolutely no frills. \
Early ProTek weapons were notoriously unsafe and unreliable, though more recent designs have improved somewhat - they still arent very good. \
Though sold for a pittance, the profit margin is too irresistible for Hephaestus to discontinue the brand."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_expected_width = 64
icon_state = "mini-uzi"
w_class = ITEMSIZE_NORMAL
load_method = MAGAZINE
caliber = ".45"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
magazine_type = /obj/item/ammo_magazine/m45uzi
allowed_magazines = list(/obj/item/ammo_magazine/m45uzi)
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
var/is64x32 = TRUE
var/is_picked_up = FALSE
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0),
list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, move_delay=4, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0))
)
/obj/item/weapon/gun/projectile/automatic/mini_uzi/update_icon()
..()
if(ammo_magazine)
icon_state = "mini-uzi"
else
icon_state = "mini-uzi-empty"
// CHOMPEdit: Uzi tilting
/obj/item/weapon/gun/projectile/automatic/mini_uzi/Initialize()
. = ..()
if(is64x32)
update_transform()
/obj/item/weapon/gun/projectile/automatic/mini_uzi/equipped()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/weapon/gun/projectile/automatic/mini_uzi/pickup()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/weapon/gun/projectile/automatic/mini_uzi/dropped()
. = ..()
is_picked_up = FALSE
update_transform()
/obj/item/weapon/gun/projectile/automatic/mini_uzi/update_transform()
. = ..()
if(is64x32)
if(is_picked_up)
transform = transform.Turn(-45)
transform = transform.Translate(-16,0)
// CHOMPEdit end: Uzi tilting
/obj/item/weapon/gun/projectile/automatic/p90
name = "personal defense weapon"
desc = "The H90K is a compact, large capacity submachine gun produced by MarsTech. Despite its fierce reputation, it still manages to feel like a toy. Uses 9mm rounds."
description_fluff = "The leading civilian-sector high-quality small arms brand of Hephaestus Industries, MarsTech has been the provider of choice for law enforcement and security forces for over 300 years."
icon_state = "p90smg"
item_state = "p90"
w_class = ITEMSIZE_NORMAL
caliber = "9mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
slot_flags = SLOT_BELT // ToDo: Belt sprite.
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m9mmp90
allowed_magazines = list(/obj/item/ammo_magazine/m9mmp90, /obj/item/ammo_magazine/m9mmt) // ToDo: New sprite for the different mag.
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0))
)
/obj/item/weapon/gun/projectile/automatic/p90/update_icon()
icon_state = "p90smg-[ammo_magazine ? round(ammo_magazine.stored_ammo.len, 6) : "empty"]"
/obj/item/weapon/gun/projectile/automatic/tommygun
name = "\improper Tommy Gun"
desc = "This weapon was made famous by gangsters in the 20th century. Cybersun Industries is currently reproducing these for a target market of historic gun collectors and classy criminals. Uses .45 rounds."
description_fluff = "Cybersun Industries is a minor arms manufacturer specialising in replica firearms from eras past. Though they offer a wide selection of made-to-order models, their products are seen as little more than novelty items to most serious collectors."
icon_state = "tommygun"
w_class = ITEMSIZE_NORMAL
caliber = ".45"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
slot_flags = SLOT_BELT // ToDo: Belt sprite.
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m45tommy
allowed_magazines = list(/obj/item/ammo_magazine/m45tommy, /obj/item/ammo_magazine/m45tommydrum)
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0),
list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0))
)
/obj/item/weapon/gun/projectile/automatic/tommygun/update_icon()
//VOREStation Edit Start - vr sprite
if(istype(ammo_magazine,/obj/item/ammo_magazine/m45tommy))
icon_state = "tommygun-mag"
item_state = icon_state
else if(istype(ammo_magazine,/obj/item/ammo_magazine/m45tommydrum))
icon_state = "tommygun-drum"
item_state = icon_state
else
icon_state = "tommygun-empty"
item_state = icon_state
update_held_icon()
//VOREStation Edit End
/obj/item/weapon/gun/projectile/automatic/bullpup // Admin abuse assault rifle. ToDo: Make this less shit. Maybe remove its autofire, and make it spawn with only 10 rounds at start.
name = "bullpup rifle"
desc = "The bullpup configured GP3000 is a battle rifle produced by Gurov Projectile Weapons LLC. It is sold almost exclusively to standing armies. Uses 7.62mm rounds."
icon_state = "bullpup-small"
item_state = "bullpup"
wielded_item_state = "sexyrifle-wielded" //Placeholder, this is a bullpup at least
w_class = ITEMSIZE_LARGE
force = 10
caliber = "7.62mm"
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 1, TECH_ILLEGAL = 4)
slot_flags = SLOT_BACK
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m762
allowed_magazines = list(/obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762/ext)
projectile_type = /obj/item/projectile/bullet/rifle/a762
one_handed_penalty = 45
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="2-round bursts", burst=2, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15), dispersion=list(0.0, 0.6))
)
/obj/item/weapon/gun/projectile/automatic/bullpup/update_icon(var/ignore_inhands)
..()
if(istype(ammo_magazine,/obj/item/ammo_magazine/m762))
icon_state = "bullpup-small"
else if(istype(ammo_magazine,/obj/item/ammo_magazine/m762/ext))
icon_state = "bullpup"
else
item_state = "bullpup-empty"
if(!ignore_inhands)
update_held_icon()
//Functionally a mini-uzi with slightly less terrible burst spread.
/obj/item/weapon/gun/projectile/automatic/combatsmg
name = "\improper PP3 Ten"
desc = "The Bishamonten PP3 Ten personal defense weapon is a rare design much sought after - though more for its looks than its functionality. Uses 9mm rounds."
description_fluff = "The Bishamonten Company operated from roughly 2150-2280 - the height of the first extrasolar colonisation boom - before filing for bankruptcy and selling off its assets to various companies that would go on to become todays TSCs. \
Focused on sleek futurist designs which have largely fallen out of fashion but remain popular with collectors and people hoping to make some quick thalers from replica weapons. \
Bishamonten weapons tended to be form over function - despite their flashy looks, most were completely unremarkable one way or another as weapons and used very standard firing mechanisms."
icon_state = "combatsmg"
w_class = ITEMSIZE_NORMAL
load_method = MAGAZINE
caliber = "9mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4)
magazine_type = /obj/item/ammo_magazine/m9mmt
allowed_magazines = list(/obj/item/ammo_magazine/m9mmt)
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0),
list(mode_name="3-round bursts", burst=3, burst_delay=1, fire_delay=4, move_delay=4, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6))
)
/obj/item/weapon/gun/projectile/automatic/combatsmg/update_icon()
..()
if(ammo_magazine)
icon_state = "combatsmg"
else
icon_state = "combatsmg-empty"