Files
CHOMPStation2/code/modules/projectiles/guns/projectile/automatic.dm
CHOMPStation2StaffMirrorBot 8d0febfbb6 [MIRROR] next grep, no spaces (#10548)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-03-29 22:13:04 +01:00

582 lines
24 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.
/*
* Daka SMG (Code Base)
*/
/obj/item/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.1, 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)))
/*
* Advanced SMG
*/
/obj/item/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"
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)
fire_sound = "sound/weapons/gunshot_pathetic.ogg" //CHOMPedit
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, 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/gun/projectile/automatic/advanced_smg/update_icon()
..()
if(ammo_magazine)
icon_state = "advanced_smg"
else
icon_state = "advanced_smg-e"
/obj/item/gun/projectile/automatic/advanced_smg/loaded
magazine_type = /obj/item/ammo_magazine/m9mmAdvanced
/*
* C-20r
*/
/* CHOMPedit remove: Moved to automatic_ch.dm. *
/obj/item/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' //Chomp Edit
icon_expected_width = 64 //Chomp EDIT
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'
/obj/item/gun/projectile/automatic/c20r/rubber
magazine_type = /obj/item/ammo_magazine/m10mm/rubber
/obj/item/gun/projectile/automatic/c20r/empty
magazine_type = null
/obj/item/gun/projectile/automatic/c20r/update_icon()
..()
if(ammo_magazine)
icon_state = "c20r-[round(ammo_magazine.stored_ammo.len,4)]"
else
icon_state = "c20r"
return
* CHOMPedit remove: Moved to automatic_ch.dm. */
/*
* Assault Carbine (STS-35)
*/
/obj/item/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
fire_sound = "sound/weapons/ballistics/a762.ogg" //CHOMPedit
one_handed_penalty = 30
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, 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))
)
/obj/item/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()
/*
* X-9mm (PDW)
*/
/obj/item/gun/projectile/automatic/pdw
name = "personal defense weapon"
desc = "The X-9mm is a select-fire personal defense weapon designed in-house by Xing Private Security. It was made to compete with the WT550 Saber, \
but never caught on with NanoTrasen. Uses 9mm rounds."
icon_state = "pdw"
item_state = "c20r"
w_class = ITEMSIZE_NORMAL
caliber = "9mm"
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
slot_flags = SLOT_BELT
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m9mmAdvanced
allowed_magazines = list(/obj/item/ammo_magazine/m9mmAdvanced)
fire_sound = "sound/weapons/gunshot_pathetic.ogg" //CHOMPedit
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, 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))
)
/obj/item/gun/projectile/automatic/pdw/update_icon(var/ignore_inhands)
..()
if(ammo_magazine)
icon_state = "pdw"
else
icon_state = "pdw-e"
return
/*
* Machine Pistol (WT550)
*/
/obj/item/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' //Chomp EDIT
icon_expected_width = 64 //Chomp EDIT
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
fire_sound = "sound/weapons/gunshot_pathetic.ogg" //CHOMPedit
/obj/item/gun/projectile/automatic/wt550/update_icon()
..()
if(ammo_magazine)
icon_state = "wt550-[round(ammo_magazine.stored_ammo.len,4)]"
else
icon_state = "wt550"
return
/*
* Battle Rifle (Z8)
*/
/obj/item/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' //Chomp EDIT
icon_expected_width = 64 //Chomp EDIT
icon_state = "carbine" // This isn't a carbine. :T
item_state = "z8carbine"
wielded_item_state = "z8bulldog-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'
fire_sound = "sound/weapons/ballistics/a762.ogg" //CHOMPedit
one_handed_penalty = 60
burst_delay = 4
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, 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/gun/launcher/grenade/underslung/launcher
/obj/item/gun/projectile/automatic/z8/Initialize(mapload)
. = ..()
launcher = new(src)
/obj/item/gun/projectile/automatic/z8/attackby(obj/item/I, mob/user)
if((istype(I, /obj/item/grenade)))
launcher.load(I, user)
else
..()
/obj/item/gun/projectile/automatic/z8/attack_hand(mob/user)
if(user.get_inactive_hand() == src && use_launcher)
launcher.unload(user)
else
..()
/obj/item/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/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/gun/projectile/automatic/z8/examine(mob/user)
. = ..()
if(launcher.chambered)
. += "\The [launcher] has \a [launcher.chambered] loaded."
else
. += "\The [launcher] is empty."
/obj/item/gun/projectile/automatic/z8/empty
magazine_type = null
/*
* LMG (L6 SAW)
*/
/obj/item/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' //Chomp EDIT
icon_expected_width = 64 //Chomp EDIT
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
fire_sound = "sound/weapons/Gunshot_light.ogg" //CHOMPedit
one_handed_penalty = 90
var/cover_open = 0
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3,burst_delay=1 ,fire_delay=null, move_delay=4, burst_accuracy=list(0,-15,-15), dispersion=list(0.0, 0.6, 1.0)), //CHOMPedit, firerate buff
list(mode_name="short bursts", burst=5,burst_delay=1 ,move_delay=3, burst_accuracy = list(0,-15,-15,-30,-30), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2)) //CHOMPedit, firerate buff
)
/obj/item/gun/projectile/automatic/l6_saw/special_check(mob/user)
if(cover_open)
to_chat(user, span_warning("[src]'s cover is open! Close it before firing!"))
return 0
return ..()
/obj/item/gun/projectile/automatic/l6_saw/proc/toggle_cover(mob/user)
cover_open = !cover_open
to_chat(user, span_notice("You [cover_open ? "open" : "close"] [src]'s cover."))
update_icon()
update_held_icon()
/obj/item/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/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/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/gun/projectile/automatic/l6_saw/load_ammo(var/obj/item/A, mob/user)
if(!cover_open)
to_chat(user, span_warning("You need to open the cover to load [src]."))
return
..()
/obj/item/gun/projectile/automatic/l6_saw/unload_ammo(mob/user, var/allow_dump=1)
if(!cover_open)
to_chat(user, span_warning("You need to open the cover to unload [src]."))
return
..()
/*
* Automatic Shotgun (AS-24)
*/
/obj/item/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.1),
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/gun/projectile/automatic/as24/update_icon()
..()
if(ammo_magazine)
icon_state = "ashot"
else
icon_state = "ashot-empty"
return
/*
* Uzi
*/
/obj/item/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' //Chomp EDIT
icon_expected_width = 64 //Chomp EDIT
icon_state = "mini-uzi" //Chomp EDIT - uzi --> 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
fire_sound = "sound/weapons/gunshot_pathetic.ogg" //CHOMPedit
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1),
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/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/gun/projectile/automatic/mini_uzi/Initialize(mapload)
. = ..()
if(is64x32)
update_transform()
/obj/item/gun/projectile/automatic/mini_uzi/equipped()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/gun/projectile/automatic/mini_uzi/pickup()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/gun/projectile/automatic/mini_uzi/dropped(mob/living/user)
. = ..()
is_picked_up = FALSE
update_transform()
/obj/item/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
/* CHOMPEDIT Commented out, moved to automatic_ch.dm *
/obj/item/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.1),
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/gun/projectile/automatic/p90/update_icon()
icon_state = "p90smg-[ammo_magazine ? round(ammo_magazine.stored_ammo.len, 6) : "empty"]"
* CHOMPEDIT Commented out, moved to automatic_ch.dm */
/*
* Tommy Gun
*/
/obj/item/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"
item_state = "stg44"
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)
fire_sound = "sound/weapons/Gunshot1.ogg" //CHOMPedit
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1),
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/gun/projectile/automatic/tommygun/update_icon()
if(istype(ammo_magazine,/obj/item/ammo_magazine/m45tommy))
icon_state = "tommygun-mag"
else if(istype(ammo_magazine,/obj/item/ammo_magazine/m45tommydrum))
icon_state = "tommygun-drum"
else
icon_state = "tommygun-empty"
update_held_icon()
/*
* Bullpup Rifle
*/
/obj/item/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
fire_sound = "sound/weapons/ballistics/a762.ogg" //CHOMPedit
one_handed_penalty = 45
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1, 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/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()
/*
* Combat SMG (PP3 Ten)
*/
/obj/item/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)
fire_sound = "sound/weapons/Gunshot1.ogg" //CHOMPedit
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0.1),
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/gun/projectile/automatic/combatsmg/update_icon()
..()
if(ammo_magazine)
icon_state = "combatsmg"
else
icon_state = "combatsmg-empty"