mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2025-12-10 03:36:08 +00:00
692 lines
28 KiB
Plaintext
692 lines
28 KiB
Plaintext
/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
|
|
mag_insert_sound = 'sound/weapons/guns/interaction/smg_magin.ogg'
|
|
mag_remove_sound = 'sound/weapons/guns/interaction/smg_magout.ogg'
|
|
//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(60,30,0), dispersion=list(0.0, 0.6, 1.0)))
|
|
|
|
/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_state = "advanced_smg-empty"
|
|
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(60,30,20), dispersion=list(0.0, 0.3, 0.6))
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/update_icon()
|
|
..()
|
|
icon_state = (ammo_magazine)? "advanced_smg" : "advanced_smg-empty"
|
|
return
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/loaded
|
|
magazine_type = /obj/item/ammo_magazine/m9mmAdvanced
|
|
|
|
/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."
|
|
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/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/gun/projectile/automatic/sts35
|
|
name = "assault rifle"
|
|
desc = "The rugged STS-35 is a durable automatic weapon of a make popular on the frontier worlds. Uses 5.45mm rounds."
|
|
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
|
|
mag_insert_sound = 'sound/weapons/guns/interaction/ltrifle_magin.ogg'
|
|
mag_remove_sound = 'sound/weapons/guns/interaction/ltrifle_magout.ogg'
|
|
heavy = TRUE
|
|
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(60,50,45), 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/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/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
|
|
|
|
/obj/item/gun/projectile/automatic/wt550/lethal
|
|
magazine_type = /obj/item/ammo_magazine/m9mmt
|
|
|
|
/obj/item/gun/projectile/automatic/z8
|
|
name = "designated marksman rifle"
|
|
desc = "The Z8 Bulldog is an older model designated marksman rifle, made by the now defunct Zendai Foundries. Makes you feel like a space marine when you hold it, even though it can only hold 10 round magazines. Uses 7.62mm rounds and has an under barrel grenade launcher."
|
|
icon_state = "carbine" // This isn't a carbine. :T
|
|
item_state = "z8carbine"
|
|
wielded_item_state = "z8carbine-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'
|
|
mag_insert_sound = 'sound/weapons/guns/interaction/batrifle_magin.ogg'
|
|
mag_remove_sound = 'sound/weapons/guns/interaction/batrifle_magout.ogg'
|
|
heavy = TRUE
|
|
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(60,45), 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/l6_saw
|
|
name = "light machine gun"
|
|
desc = "A rather traditionally made L6 SAW with a pleasantly lacquered wooden pistol grip. 'Aussec Armoury-2531' is engraved on the reciever. Uses 5.45mm rounds. It's also compatible with magazines from STS-35 assault rifles."
|
|
icon_state = "l6closed100"
|
|
item_state = "l6closed"
|
|
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
|
|
mag_insert_sound = 'sound/weapons/guns/interaction/lmg_magin.ogg'
|
|
mag_remove_sound = 'sound/weapons/guns/interaction/lmg_magout.ogg'
|
|
can_special_reload = FALSE
|
|
heavy = TRUE
|
|
one_handed_penalty = 90
|
|
|
|
var/cover_open = 0
|
|
|
|
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(60,30,0), dispersion=list(0.0, 0.6, 1.0)),
|
|
list(mode_name="short bursts", burst=5, move_delay=6, burst_accuracy = list(60,50,45,40,35), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2))
|
|
)
|
|
*/
|
|
|
|
/obj/item/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/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/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 class='warning'>You need to open the cover to load [src].</span>")
|
|
return
|
|
..()
|
|
|
|
/obj/item/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
|
|
..()
|
|
|
|
/obj/item/gun/projectile/automatic/as24
|
|
name = "automatic shotgun"
|
|
desc = "The AS-24 is a rugged looking automatic shotgun produced for the military by Gurov Projectile Weapons LLC. For very obvious reasons, it's illegal to own in many juristictions. Uses 12g rounds."
|
|
icon_state = "ashot"
|
|
item_state = null
|
|
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
|
|
heavy = TRUE
|
|
one_handed_penalty = 30 //The AA12 can be fired one-handed fairly easily.
|
|
mag_insert_sound = 'sound/weapons/guns/interaction/lmg_magin.ogg'
|
|
mag_remove_sound = 'sound/weapons/guns/interaction/lmg_magout.ogg'
|
|
|
|
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(60,40,30,25,15), dispersion = list(0.0, 0.6, 0.6))
|
|
// list(mode_name="6-round bursts", burst=6, move_delay=6, burst_accuracy = list(0,-15,-15,-30,-30, -30), dispersion = list(0.6, 1.0, 1.0, 1.0, 1.2, 1.2)),
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/as24/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "ashot"
|
|
else
|
|
icon_state = "ashot-empty"
|
|
return
|
|
|
|
/obj/item/gun/projectile/automatic/mini_uzi
|
|
name = "\improper Uzi"
|
|
desc = "The iconic Uzi is a lightweight, compact, fast firing machine pistol. Cybersun Industries were the last major manufacturer of these designs, which have changed little since the 20th century. Uses .45 rounds."
|
|
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)
|
|
|
|
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(60,40,30,20,15), 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"
|
|
|
|
/obj/item/gun/projectile/automatic/mini_uzi/custom
|
|
name = "\improper custom Uzi"
|
|
desc = "The iconic Uzi is a lightweight, compact, fast firing machine pistol. These traits make it a popular holdout option for Pathfinders assigned to hazardous expeditions. Uses .45 rounds."
|
|
icon_state = "mini-uzi-custom"
|
|
pin = /obj/item/firing_pin/explorer
|
|
|
|
/obj/item/gun/projectile/automatic/mini_uzi/custom/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "mini-uzi-custom"
|
|
else
|
|
icon_state = "mini-uzi-custom-empty"
|
|
|
|
/obj/item/gun/projectile/automatic/mini_uzi/taj
|
|
name = "\improper Adhomai Uzi"
|
|
desc = "The Hotak's Arms machine pistol has developed a fierce reputation for its use by guerillas of the Democratic People's Republic of Adhomai. Its top loading magazine allows one to go completely prone in the deep snow banks of Adhomai while maintaining good weapon stability."
|
|
icon_state = "mini-uzi-taj"
|
|
item_state = "mini-uzi-taj"
|
|
|
|
/obj/item/gun/projectile/automatic/mini_uzi/taj/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "mini-uzi-taj"
|
|
item_state = "mini-uzi-taj"
|
|
else
|
|
icon_state = "mini-uzi-taj-empty"
|
|
item_state = "mini-uzi-taj-empty"
|
|
|
|
/obj/item/gun/projectile/automatic/p90
|
|
name = "personal defense weapon"
|
|
desc = "The H90K is a compact, large capacity submachine gun produced by Hephaestus Industries. Despite its fierce reputation, it still manages to feel like a toy. Uses 5.7x28mm rounds."
|
|
icon_state = "p90smg"
|
|
item_state = "p90"
|
|
w_class = ITEMSIZE_NORMAL
|
|
caliber = "5.7x28mm"
|
|
fire_sound = 'sound/weapons/gunshot/gunshot_uzi.wav'
|
|
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/m57x28mmp90
|
|
allowed_magazines = list(/obj/item/ammo_magazine/m57x28mmp90) // 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(60,30,30), 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"]"
|
|
|
|
/obj/item/gun/projectile/automatic/p90/custom
|
|
name = "custom personal defense weapon"
|
|
desc = "An H90K from Hephaestus Industries. This one has a different colored receiver and a sling."
|
|
icon_state = "p90smgC"
|
|
magazine_type = /obj/item/ammo_magazine/m57x28mmp90/hunter
|
|
slot_flags = SLOT_BELT|SLOT_BACK
|
|
pin = /obj/item/firing_pin/explorer
|
|
|
|
/obj/item/gun/projectile/automatic/p90/custom/update_icon()
|
|
icon_state = "p90smgC-[ammo_magazine ? round(ammo_magazine.stored_ammo.len, 6) : "empty"]"
|
|
|
|
/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."
|
|
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(60,30,25), dispersion=list(0.0, 0.6, 1.0))
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/tommygun/update_icon()
|
|
..()
|
|
icon_state = (ammo_magazine)? "tommygun" : "tommygun-empty"
|
|
// update_held_icon()
|
|
|
|
/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"
|
|
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/m762m)
|
|
projectile_type = /obj/item/projectile/bullet/rifle/a762
|
|
heavy = TRUE
|
|
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(60,45), 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/m762m))
|
|
icon_state = "bullpup"
|
|
else
|
|
item_state = "bullpup-empty"
|
|
if(!ignore_inhands)
|
|
update_held_icon()
|
|
|
|
obj/item/gun/projectile/automatic/fal
|
|
name = "FN-FAL"
|
|
desc = "A 20th century Assault Rifle originally designed by Fabrique National. Famous for its use by mercs in grinding proxy wars in backwater nations. This reproduction was probably made for similar purposes."
|
|
icon_state = "fal"
|
|
item_state = "fal"
|
|
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/m762m
|
|
allowed_magazines = list(/obj/item/ammo_magazine/m762, /obj/item/ammo_magazine/m762m)
|
|
heavy = TRUE
|
|
projectile_type = /obj/item/projectile/bullet/rifle/a762
|
|
|
|
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(60,35), dispersion=list(0.0, 0.6))
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/fal/update_icon(var/ignore_inhands)
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = initial(icon_state)
|
|
else
|
|
icon_state = "[initial(icon_state)]-empty"
|
|
|
|
obj/item/gun/projectile/automatic/automat
|
|
name = "Avtomat Rifle"
|
|
desc = " A Bolt Action Rifle taken apart and retooled into a primitive machine gun. Bulky and obtuse, it still capable of unleashing devastating firepower with its 15 round internal drum magazine. Loads with 7.62 stripper clips."
|
|
icon_state = "automat"
|
|
item_state = "automat"
|
|
fire_anim = "automat_fire"
|
|
w_class = ITEMSIZE_LARGE
|
|
force = 10
|
|
caliber = "7.62mm"
|
|
heavy = TRUE
|
|
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3) //A real work around to a automatic rifle.
|
|
slot_flags = SLOT_BACK
|
|
load_method = SPEEDLOADER
|
|
ammo_type = /obj/item/ammo_casing/a762
|
|
slowdown = 0.5
|
|
max_shells = 15
|
|
burst = 3
|
|
fire_delay = 7.2
|
|
move_delay = 6
|
|
burst_accuracy = list(60,30,15)
|
|
dispersion = list(0.0, 0.6,1.0)
|
|
|
|
obj/item/gun/projectile/automatic/automat/holy
|
|
ammo_type = /obj/item/ammo_casing/a762/silver
|
|
holy = TRUE
|
|
|
|
obj/item/gun/projectile/automatic/automat/taj
|
|
name = "Adhomai automat"
|
|
desc = "The Hadii-Wrack Avtomat, is an aging internal magazine automatic rifle of the People's Republic of Adhomai's Grand People's Army whose long and storied service life is coming to an end as it is phased out in favor of more modern automatics."
|
|
icon_state = "automat-taj"
|
|
item_state = "automat-taj"
|
|
wielded_item_state = "automat-taj-wielded"
|
|
fire_anim = ""
|
|
|
|
/obj/item/gun/projectile/automatic/holyshot
|
|
name = "Holy automatic shotgun"
|
|
desc = "Based off of an ancient design, this hand crafted weapon has been gilded with the gold of melted icons and inscribed with sacred runes and hexagrammic wards. Works best with blessed 12g rounds."
|
|
icon_state = "holyshotgun"
|
|
item_state = null
|
|
w_class = ITEMSIZE_LARGE
|
|
heavy = TRUE
|
|
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/holyshot_mag
|
|
allowed_magazines = list(/obj/item/ammo_magazine/holyshot_mag, /obj/item/ammo_magazine/holyshot_mag/stake)
|
|
projectile_type = /obj/item/projectile/bullet/shotgun
|
|
|
|
one_handed_penalty = 40
|
|
|
|
firemodes = list(
|
|
list(mode_name="semiauto", burst=1, fire_delay=0),
|
|
list(mode_name="2-round burst", burst=2, move_delay=6, burst_accuracy = list(60,50,40,30,25), dispersion = list(0.0, 0.6, 0.6))
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/holyshot/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "holyshotgun"
|
|
else
|
|
icon_state = "holyshotgun_empty"
|
|
return
|
|
|
|
//Clown Rifle
|
|
/obj/item/gun/projectile/automatic/clown_rifle
|
|
name = "clown assault rifle"
|
|
desc = "The WSS-29m6 is the latest version of the standard Columbina service rifle. Originally a cheap knock-off of the STS-35, the m6 now matches its inspiration in durability. Utilizing a proprietary ROF system, the m6 is able to fire unorthodox, yet effective, weaponry."
|
|
icon_state = "clownrifle"
|
|
item_state = "clownrifle"
|
|
wielded_item_state = "clownrifle_wielded"
|
|
w_class = ITEMSIZE_LARGE
|
|
heavy = TRUE
|
|
force = 10
|
|
caliber = "organic"
|
|
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/mcompressedbio/large/banana
|
|
allowed_magazines = list(/obj/item/ammo_magazine/mcompressedbio/large/banana)
|
|
projectile_type = /obj/item/projectile/bullet/organic
|
|
|
|
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(60,50,45), 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/gun/projectile/automatic/clown_rifle/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "[initial(icon_state)]"
|
|
else
|
|
icon_state = "[initial(icon_state)]-empty"
|
|
|
|
//Muh Alternator
|
|
/obj/item/gun/projectile/automatic/wt274
|
|
name = "alternating barrel SMG"
|
|
desc = "Although it experienced an initially successful production run, the WT274 AB-SMG was discontinued in favor of the more reliable WT550. Utilizing a twin-linked barrel assembly, the WT274's ammo consumption was a major factor in its retirement."
|
|
icon_state = "wt274"
|
|
item_state = "gun"
|
|
load_method = MAGAZINE
|
|
caliber = ".45"
|
|
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2, TECH_ILLEGAL = 5)
|
|
magazine_type = /obj/item/ammo_magazine/m45uzi/wt274
|
|
allowed_magazines = list(/obj/item/ammo_magazine/m45uzi/wt274)
|
|
one_handed_penalty = 10
|
|
|
|
firemodes = list(
|
|
list(mode_name="standard fire", burst=2, fire_delay=0),
|
|
list(mode_name="double tap", burst=4, burst_delay=1, fire_delay=4, move_delay=2, burst_accuracy = list(40,30,20,15), dispersion = list(0.6, 0.6, 1.0, 1.0))
|
|
)
|
|
|
|
/obj/item/gun/projectile/automatic/wt274/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "[initial(icon_state)]"
|
|
else
|
|
icon_state = "[initial(icon_state)]-empty"
|
|
|
|
//Foam Weapons
|
|
/obj/item/gun/projectile/automatic/advanced_smg/foam
|
|
name = "toy submachine gun"
|
|
desc = "The existence of this DONKsoft toy has instigated allegations of corporate espionage from NanoTrasen."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "toy_smg"
|
|
caliber = "foamdart"
|
|
magazine_type = /obj/item/ammo_magazine/mfoam/smg
|
|
allowed_magazines = list(/obj/item/ammo_magazine/mfoam/smg)
|
|
fire_sound = 'sound/items/syringeproj.ogg'
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/foam/update_icon()
|
|
..()
|
|
icon_state = (ammo_magazine)? "toy_smg" : "toy_smg-empty"
|
|
return
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/foam/handle_suicide(mob/living/user)
|
|
user.show_message("<span class = 'warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
|
|
mouthshoot = 0
|
|
return
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/foam/blue
|
|
icon_state = "toy_smg_blue"
|
|
|
|
/obj/item/gun/projectile/automatic/advanced_smg/foam/blue/update_icon()
|
|
..()
|
|
icon_state = (ammo_magazine)? "toy_smg_blue" : "toy_smg_blue-empty"
|
|
return
|
|
|
|
//Foam c20r
|
|
/obj/item/gun/projectile/automatic/c20r/foam
|
|
name = "toy submachine gun"
|
|
desc = "A DONKsoft rendition of an infamous submachine gun."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "toy_c20"
|
|
force = 5
|
|
caliber = "foamdart"
|
|
magazine_type = /obj/item/ammo_magazine/mfoam/c20
|
|
allowed_magazines = list(/obj/item/ammo_magazine/mfoam/c20)
|
|
projectile_type = /obj/item/projectile/bullet/reusable/foam
|
|
one_handed_penalty = 5
|
|
fire_sound = 'sound/items/syringeproj.ogg'
|
|
|
|
/obj/item/gun/projectile/automatic/c20r/foam/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "toy_c20r-[round(ammo_magazine.stored_ammo.len,4)]"
|
|
else
|
|
icon_state = "toy_c20r"
|
|
return
|
|
|
|
/obj/item/gun/projectile/automatic/c20r/foam/handle_suicide(mob/living/user)
|
|
user.show_message("<span class = 'warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
|
|
mouthshoot = 0
|
|
return
|
|
|
|
//Foam LMG
|
|
/obj/item/gun/projectile/automatic/l6_saw/foam
|
|
name = "toy light machine gun"
|
|
desc = "This plastic replica of a common light machine gun weighs about half as much. It's still pretty bulky, but nothing lays down suppressive fire like this bad boy. The bane of schoolyards across the galaxy."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "toy_lmgclosed100"
|
|
force = 5
|
|
caliber = "foamdart"
|
|
magazine_type = /obj/item/ammo_magazine/mfoam/lmg
|
|
allowed_magazines = list(/obj/item/ammo_magazine/mfoam/lmg)
|
|
projectile_type = /obj/item/projectile/bullet/reusable/foam
|
|
one_handed_penalty = 45 //It's plastic.
|
|
fire_sound = 'sound/items/syringeproj.ogg'
|
|
|
|
/obj/item/gun/projectile/automatic/l6_saw/foam/update_icon()
|
|
if(istype(ammo_magazine,/obj/item/ammo_magazine/m762))
|
|
icon_state = "toy_lmg[cover_open ? "open" : "closed"]mag"
|
|
item_state = icon_state
|
|
else
|
|
icon_state = "toy_lmg[cover_open ? "open" : "closed"][ammo_magazine ? round(ammo_magazine.stored_ammo.len, 25) : "-empty"]"
|
|
item_state = "toy_lmg[cover_open ? "open" : "closed"][ammo_magazine ? "" : "-empty"]"
|
|
update_held_icon()
|
|
|
|
/obj/item/gun/projectile/automatic/l6_saw/foam/handle_suicide(mob/living/user)
|
|
user.show_message("<span class = 'warning'>You feel rather silly, trying to commit suicide with a toy.</span>")
|
|
mouthshoot = 0
|
|
return
|