mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-05-18 04:41:27 +01:00
d5849910e5
* Begin clickcode attack_self fix Begins the work to make everything call back to parent for attack_self so that signals are sacred. * Makes MORE things call the attack_self() parent Yes, I could make special_handling a var on obj/item HOWEVER i want it to be specific so it can be tracked down later and ONLY the objects that use it can be refactored instead of sitting there literally forever and it just becoming 'a thing'. * Finishes making the rest of attack_self call parent. As mentioned, things such as 'specialty_goggles' 'special_handling' and the such are only there to help with attack_self until the attack_self is recoded for those items. * begone foul demon * some more cleanup * These * GOD this was annoying * yeh * Fix this * fLARES * Thesee too * toys! * Even more! * More fixes * Even more * rest of em * these too * Update syndie.dm * hardref clear * Update code/game/gamemodes/nuclear/pinpointer.dm * Update code/game/objects/effects/mines.dm * Update code/game/objects/items/blueprints_vr.dm * Update code/game/objects/items/blueprints_vr.dm * Update code/game/objects/items/contraband_vr.dm * Update code/game/objects/items/crayons.dm * Update code/game/objects/items/crayons.dm * Update code/game/objects/items/gunbox.dm * Update code/game/objects/items/gunbox.dm * Update code/game/objects/items/gunbox_vr.dm * Update code/game/objects/items/gunbox_vr.dm * Update code/game/objects/items/weapons/gift_wrappaper.dm * Update code/game/objects/items/crayons.dm * Update code/game/objects/items/crayons.dm * Update code/game/objects/items/gunbox.dm * these too * Update maintpanel_stack.dm * angry warning * Fixes packaged snacks. Fixes improper var default. * Special handling for these * proper poly types * Fixes magclaws Makes the 'features' it had just part of base magboots that can be adjusted via varswap. * Fixes jackets Fixes https://github.com/VOREStation/VOREStation/issues/18941 * Small bugfix Makes p_Theyre properly capitialize Makes examine show proper wording * Update gift_wrappaper.dm
529 lines
22 KiB
Plaintext
529 lines
22 KiB
Plaintext
/*
|
||
* 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)
|
||
|
||
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
|
||
*/
|
||
/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 2271, and has gained a dedicated following among a certain flavor of private operative."
|
||
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
|
||
|
||
/*
|
||
* 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 Jindal’s 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 Jindal’s '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_LARGE
|
||
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.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)
|
||
|
||
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_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
|
||
|
||
/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 2187, when it was acquired by Hephaestus Industries. \
|
||
Plans to integrate the brand into wider corporate operations were brought to an abrupt halt by the Commonwealth-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_state = "carbine" // This isn't a carbine. :T
|
||
item_state = "z8carbine"
|
||
wielded_item_state = "z8bulldog-wielded"
|
||
w_class = ITEMSIZE_LARGE
|
||
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.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_state = "l6closed100"
|
||
item_state = "l6closed"
|
||
wielded_item_state = "genericLMG-wielded"
|
||
w_class = ITEMSIZE_LARGE
|
||
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
|
||
|
||
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)),
|
||
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))
|
||
)
|
||
|
||
special_weapon_handling = TRUE
|
||
|
||
/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)
|
||
. = ..(user)
|
||
if(.)
|
||
return TRUE
|
||
if(cover_open)
|
||
toggle_cover(user) //close the cover
|
||
else
|
||
return ..(user, TRUE) //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_LARGE
|
||
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 aren’t very good. \
|
||
Though sold for a pittance, the profit margin is too irresistible for Hephaestus to discontinue the brand."
|
||
icon_state = "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)
|
||
|
||
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 = "uzi"
|
||
else
|
||
icon_state = "uzi-e"
|
||
|
||
/*
|
||
* P90 (H90K)
|
||
*/
|
||
/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"]"
|
||
|
||
/*
|
||
* 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)
|
||
|
||
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
|
||
|
||
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 today’s 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.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"
|