WIP new guns

This commit is contained in:
Cadyn Bombaci
2021-09-26 10:28:09 -07:00
parent 5ab51812da
commit 4b5d036662
12 changed files with 633 additions and 28 deletions

View File

@@ -6,6 +6,8 @@
/obj/item/ammo_magazine/m762svd //You are now being converted to 7.62x54mmR :3
name = "\improper SVD magazine (7.62x54mmR)"
icon = 'icons/obj/ammo_ch.dmi'
icon_state = "svd"
caliber = "7.62x54mmR"
ammo_type = /obj/item/ammo_casing/a762x54
@@ -62,10 +64,21 @@
name = "mp5 magazine(9x19mm rubber)"
ammo_type = /obj/item/ammo_casing/a9mm/rubber
/obj/item/ammo_magazine/pitchmag
name = "pitchgun magazine(.44 magnum standard)"
icon = 'icons/obj/ammo_ch.dmi'
icon_state = "pitchmag"
max_ammo = 30
mag_type = MAGAZINE
caliber = ".44"
matter = list(DEFAULT_WALL_MATERIAL = 800)
multiple_sprites = 1
ammo_type = /obj/item/ammo_casing/a44
/obj/item/ammo_magazine/asval
name = "AS-Val magazine(9x39mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
icon_state = "sts35"
icon_state = "asval"
max_ammo = 20
mag_type = MAGAZINE
caliber = "9x39mm"
@@ -99,6 +112,30 @@
matter = list(DEFAULT_WALL_MATERIAL = 2000)
ammo_type = /obj/item/ammo_casing/a762x39/hp
/obj/item/ammo_magazine/ak74
name = "AK74 magazine (5.45mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
icon_state = "545bake"
max_ammo = 30
mag_type = MAGAZINE
caliber = "5.45mm"
matter = list(DEFAULT_WALL_MATERIAL = 1400)
multiple_sprites = 1
ammo_type = /obj/item/ammo_casing/a545
/obj/item/ammo_magazine/ak74/ap
name = "AK74 magazine (5.45mm armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 1800)
ammo_type = /obj/item/ammo_casing/a545/ap
/obj/item/ammo_magazine/ak74/hp
name = "AK74 magazine (5.45mm hollow-point)"
matter = list(DEFAULT_WALL_MATERIAL = 1800)
ammo_type = /obj/item/ammo_casing/a545/hp
/obj/item/ammo_magazine/ak74/plum
icon_state = "545plum"
/obj/item/ammo_magazine/m16
name = "M16 magazine (5.56x45mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
@@ -181,6 +218,38 @@
matter = list(DEFAULT_WALL_MATERIAL = 3000)
ammo_type = /obj/item/ammo_casing/a762/ap
/obj/item/ammo_magazine/ar10
name = "AR-10 magazine(7.62x51mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
caliber = "7.62mm"
icon_state = "m41mag" //This just looks the closest IMO
max_ammo = 20
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 1800)
ammo_type = /obj/item/ammo_casing/a762
/obj/item/ammo_magazine/ar10/ap
name = "AR-10 magazine(7.62x51mm armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 2400)
ammo_type = /obj/item/ammo_casing/a762/ap
/obj/item/ammo_magazine/fal
name = "FAL magazine(7.62x51mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
caliber = "7.62mm"
icon_state = "m41mag" //This just looks the closest IMO
max_ammo = 20
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 1800)
ammo_type = /obj/item/ammo_casing/a762
/obj/item/ammo_magazine/fal/ap
name = "FAL magazine(7.62x51mm armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 2400)
ammo_type = /obj/item/ammo_casing/a762/ap
/obj/item/ammo_magazine/awp
name = "AWP magazine(.338 Lapua standard)"
icon = 'icons/obj/ammo_ch.dmi'
@@ -271,6 +340,65 @@
matter = list(DEFAULT_WALL_MATERIAL = 10000)
ammo_type = /obj/item/ammo_casing/a762/ap
/obj/item/ammo_magazine/kord
name = "Kord magazine box(12.7x108mm standard)"
icon = 'icons/obj/ammo_ch.dmi'
caliber = "12.7x108mm"
icon_state = "kordmag"
max_ammo = 100
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 20000)
ammo_type = /obj/item/ammo_casing/a127x108
/obj/item/ammo_magazine/pkm
name = "PKM magazine box(7.62x54mmR standard)"
icon = 'icons/obj/ammo_ch.dmi'
caliber = "7.62x54mmR"
icon_state = "molniyamag"
max_ammo = 100
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 8000)
ammo_type = /obj/item/ammo_casing/a762x54
/obj/item/ammo_magazine/pkm/ap
name = "PKM magazine box(7.62x54mmR armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 10000)
ammo_type = /obj/item/ammo_casing/a762x54/ap
/obj/item/ammo_magazine/rpd
name = "RPD Drum magazine(7.62x39mm standard)" //Lil side note. These mags don't work with the AK, because the rounds inside are actually on a belt, but they might still fit inside an AK and just break it? Couldn't find any more details on what happens if you try.
icon = 'icons/obj/ammo_ch.dmi'
caliber = "7.62x39mm"
icon_state = "rpdmag"
max_ammo = 100
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 8000)
ammo_type = /obj/item/ammo_casing/a762x39
/obj/item/ammo_magazine/rpd/ap
name = "PKM magazine box(7.62x39mm armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 10000)
ammo_type = /obj/item/ammo_casing/a762x39/ap
/obj/item/ammo_magazine/akm/drum
name = "RPK Drum magazine(7.62x39mm standard)" //These ARE interchangeable with AK magazines in the same caliber
icon = 'icons/obj/ammo_ch.dmi'
caliber = "7.62x39mm"
icon_state = "rpdmag"
max_ammo = 75
mag_type = MAGAZINE
multiple_sprites = 1
matter = list(DEFAULT_WALL_MATERIAL = 6000)
ammo_type = /obj/item/ammo_casing/a762x39
/obj/item/ammo_magazine/akm/drum/ap
name = "PKM magazine box(7.62x39mm armor-piercing)"
matter = list(DEFAULT_WALL_MATERIAL = 7500)
ammo_type = /obj/item/ammo_casing/a762x39/ap
/obj/item/ammo_magazine/ssp4
name = "SSP4 magazine(10mm standard)"
icon = 'icons/obj/ammo_ch.dmi'

View File

@@ -74,6 +74,11 @@
desc = "An armor piercing .50 BMG round"
projectile_type = /obj/item/projectile/bullet/rifle/a50bmg/ap
/obj/item/ammo_casing/a127x108
desc = "A standard 12.7x108mm round"
caliber = "12.7x108mm"
projectile_type = /obj/item/projectile/bullet/rifle/a127x108
/obj/item/ammo_casing/a9x39
desc = "A standard 9x39mm round"
caliber = "9x39mm"

View File

@@ -74,6 +74,7 @@
/obj/item/weapon/gun/projectile/automatic/serdy/Initialize()
. = ..()
update_transform()
update_icon()
/obj/item/weapon/gun/projectile/automatic/serdy/update_transform()
. = ..()
@@ -119,7 +120,7 @@
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 295
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
@@ -138,7 +139,7 @@
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 680
is_long = FALSE
fire_sound = "sound/weapons/serdy/ak74.ogg"
@@ -156,7 +157,7 @@
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 715
w_class = ITEMSIZE_HUGE
one_handed_penalty = 60
@@ -175,12 +176,88 @@
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 700
w_class = ITEMSIZE_HUGE
one_handed_penalty = 70
fire_sound = "sound/weapons/serdy/ak74.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/ak74
name = "AK-74"
desc = "The tried and true, old fashioned chatterbox. Ivan's favorite. Best used while at least somewhat inebriated. Chambered in 5.45x39mm."
caliber = "5.45mm"
magazine_type = /obj/item/ammo_magazine/ak74
allowed_magazines = list(/obj/item/ammo_magazine/ak74)
icon_state = "ak74"
projectile_type = /obj/item/projectile/bullet/rifle/a545
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 880
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
fire_sound = "sound/weapons/serdy/ak74.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/ak74/update_icon()
. = ..()
if(ammo_magazine)
icon_state = istype(ammo_magazine,/obj/item/ammo_magazine/ak74/plum) ? "[initial(icon_state)]plum" : "[initial(icon_state)]"
/obj/item/weapon/gun/projectile/automatic/serdy/ak74/variantu
name = "AKS-74U"
desc = "A shorter version of the classic AK-74, the AKS-74U. The same reliability of the AK platform, in a smaller package. Chambered in 5.45x39mm."
icon_state = "aks74u"
w_class = ITEMSIZE_LARGE
one_handed_penalty = 25
muzzle_velocity = 790
/obj/item/weapon/gun/projectile/automatic/serdy/ak74/variantun
name = "AKS-74UN"
desc = "A shorter version of the classic AK-74, the AKS-74UN. The same reliability of the AK platform, in a smaller package. Now with a classic triangle side folder. Chambered in 5.45x39mm."
icon_state = "aks74un"
one_handed_penalty = 35
muzzle_velocity = 790
/obj/item/weapon/gun/projectile/automatic/serdy/ak74/variantm
name = "AK-74M"
desc = "A modernized AK-74, lightweight, with very nice plum furniture. Perfect for the modern ICCG soldier, or Pan-slav PMC. Chambered in 5.45x39mm."
one_handed_penalty = 40
icon_state = "ak74m"
magazine_type = /obj/item/ammo_magazine/ak74/plum
// These are more of AK Pattern rifles than AK Variants.
/obj/item/weapon/gun/projectile/automatic/serdy/hunter
name = "SOK-94"
desc = "Otherwise known as a Vepr Super. An AK pattern rifle, based on the beefier RPK chassis, to handle larger caliber rounds. Like an SVD but cooler. Chambered in 7.62x54mmR."
caliber = "7.62x54mmR"
magazine_type = /obj/item/ammo_magazine/m762svd
allowed_magazines = list(/obj/item/ammo_magazine/m762svd)
icon_state = "hunter"
projectile_type = /obj/item/projectile/bullet/rifle/a762x54
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 810
w_class = ITEMSIZE_HUGE
action_button_name = "Use Scope"
accuracy = -30
scoped_accuracy = 50
one_handed_penalty = 70
fire_sound = "sound/weapons/serdy/sks.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/hunter/ui_action_click()
scope()
/obj/item/weapon/gun/projectile/automatic/serdy/hunter/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
toggle_scope(2.0)
// AR Variants
/obj/item/weapon/gun/projectile/automatic/serdy/m16a2
@@ -237,6 +314,21 @@
w_class = ITEMSIZE_HUGE
one_handed_penalty = 40
/obj/item/weapon/gun/projectile/automatic/serdy/ar10
name = "AR-10"
desc = "A semi-auto replica of an original AR-10. The precursor to the M16 and the M4 that everyone loves. Chambered in 7.62x51mm."
caliber = "7.62mm"
magazine_type = /obj/item/ammo_magazine/ar10
allowed_magazines = list(/obj/item/ammo_magazine/ar10)
icon_state = "ar10"
projectile_type = /obj/item/projectile/bullet/rifle/a762
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 820
w_class = ITEMSIZE_HUGE
one_handed_penalty = 60
fire_sound = "sound/weapons/serdy/sks.ogg"
//Other rifles
/obj/item/weapon/gun/projectile/automatic/serdy/m41ab //This gun is pretty overpowered. Leaving it as an admin spawn. Might even interfere with lore.
@@ -273,6 +365,69 @@
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
/obj/item/weapon/gun/projectile/automatic/serdy/t12 //This gun is pretty overpowered. Leaving it as an admin spawn.
name = "T-12"
desc = "The standard issue rifle of both the SGC and the USDF nowadays, alongside the newer versions of the M41A/2. A caseless version of the classic G36E. Some folk call it the lego gun because of how light it is, even when loaded. Chambered in 10x24mm Caseless."
caliber = "10x24mm caseless"
magazine_type = /obj/item/ammo_magazine/m41
allowed_magazines = list(/obj/item/ammo_magazine/m41)
icon_state="t12"
projectile_type = /obj/item/projectile/bullet/rifle/a10x24
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))
)
load_method = MAGAZINE
muzzle_velocity = 840
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
/obj/item/weapon/gun/projectile/automatic/serdy/fal
name = "FAL"
desc = "The right arm of the free galaxy. Chambered in 7.62x51mm."
caliber = "5.56x45mm"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/fal
allowed_magazines = list(/obj/item/ammo_magazine/fal)
icon_state = "fal"
projectile_type = /obj/item/projectile/bullet/rifle/a762x39
muzzle_velocity = 840
w_class = ITEMSIZE_HUGE
one_handed_penalty = 40
fire_sound = "sound/weapons/serdy/sks.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/keltec
name = "RDB-S"
desc = "A snazzy survival rifle, small enough to fit into a backpack. Despite it's odd shape, it's pretty comfortable in the hands. This one is OD green. Chambered in 5.56x45mm."
caliber = "5.56x45mm"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m16
allowed_magazines = list(/obj/item/ammo_magazine/m16)
icon_state = "keltecG"
projectile_type = /obj/item/projectile/bullet/rifle/a762x39
muzzle_velocity = 950
w_class = ITEMSIZE_HUGE
one_handed_penalty = 40
fire_sound = "sound/weapons/serdy/sks.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/keltec/black
icon_state = "keltecB"
desc = "A snazzy survival rifle, small enough to fit into a backpack. Despite it's odd shape, it's pretty comfortable in the hands. This one is black. Chambered in 5.56x45mm."
/obj/item/weapon/gun/projectile/automatic/serdy/keltec/blue
icon_state = "keltecN"
desc = "A snazzy survival rifle, small enough to fit into a backpack. Despite it's odd shape, it's pretty comfortable in the hands. This one is Sif-blue. Chambered in 5.56x45mm."
/obj/item/weapon/gun/projectile/automatic/serdy/keltec/white
icon_state = "keltecW"
desc = "A snazzy survival rifle, small enough to fit into a backpack. Despite it's odd shape, it's pretty comfortable in the hands. This one is snow white. Chambered in 5.56x45mm."
/obj/item/weapon/gun/projectile/automatic/serdy/keltec/tan
icon_state = "keltecD"
desc = "A snazzy survival rifle, small enough to fit into a backpack. Despite it's odd shape, it's pretty comfortable in the hands. This one is coyote tan. Chambered in 5.56x45mm."
/obj/item/weapon/gun/projectile/automatic/serdy/sks //Reminder to myself to make sure this works and also to make sure that people are able to empty the internal mag
name = "SKS"
desc = "Just looking at it makes you want to buy a tacticool turtleneck, go into the woods, and -operate-. Chambered in 7.62x39mm."
@@ -488,6 +643,7 @@
/obj/item/weapon/gun/projectile/automatic/serdy/plamya/mk2
name = "WKHM 'Plamya' Mk. 2"
icon_state = "plamya"
desc = "An old school assault rifle. A favorite on the rimworld for it's blisteringly high rate of fire. One of the best selling products of W-K Heavy Manufacturing. Virtually impossible to break. The gold standard, with a rosewood thumbhole stock, a full length barrel, and an improved heatshield. The most mass produced firearm in WKHM's lineup. This one bears the 'WKHM Adamant' arkship's production stamp. Chambered in 9x39mm."
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
@@ -497,6 +653,7 @@
/obj/item/weapon/gun/projectile/automatic/serdy/plamya/mk3
name = "WKHM 'Plamya' Mk. 3"
icon_state = "plamyab"
desc = "An old school assault rifle with a modern twist. A favorite on the rimworld for it's blisteringly high rate of fire. One of the best selling products of W-K Heavy Manufacturing. Virtually impossible to break. This is a newer variant, with a fully synthetic stock, and a shorter barrel. The serial number and production stamp has been sanded off. Chambered in 9x39mm."
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, burst_accuracy=null, dispersion=null),
@@ -504,7 +661,7 @@
)
muzzle_velocity = 290
//Auto-shotgun, closer to the rifles than anything else though.
//shotguns
/obj/item/weapon/gun/projectile/automatic/serdy/strela
name = "WKHM 'Strela'"
@@ -526,6 +683,29 @@
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
/obj/item/weapon/gun/projectile/automatic/serdy/spas35
name = "Spas-35"
desc = "A complex pump shotgun, modelled after the classic Spas-12. Upgraded with durable parts to fix the flaws of the classic. Also sometimes called the T-35, if you're with the SGC or the USDF. The absolute king of CQC encounters. 8 round capacity, chambered in 12 gauge."
caliber = "12g"
icon_state = "spas12"
ammo__type = /obj/item/ammo_casing/a12g/pellet
projectile_type = /obj/item/projectile/bullet/shotgun
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=3, burst_accuracy=list(0,-5), dispersion=list(0.0, 0.2)),
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))
)
max_shells = 7
bolt_name = "bolt"
bolt_release = null //No bolt release on spas-12
load_method = SINGLE_CASING | SPEEDLOADER
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY | LOCK_MANUAL_LOCK
misc_loading_flags = INTERNAL_MAG_SEPARATE
var/semiauto_mode = TRUE
muzzle_velocity = 470
w_class = ITEMSIZE_HUGE
one_handed_penalty = 50
//SMGs
/obj/item/weapon/gun/projectile/automatic/serdy/ppsh
@@ -559,7 +739,22 @@
load_method = MAGAZINE
muzzle_velocity = 400
is_long = FALSE
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/automatic/serdy/pitchgun
name = "Pitch-gun"
desc = "A home-made submachine gun, affectionately called by those who use it, the 'Pitch-gun.' It's light, it shoots fast, and it's chambered in .44 magnum. The classy killer, or the rim-world tank crewman's weapon of choice. Mind the recoil."
caliber = ".44"
magazine_type = /obj/item/ammo_magazine/pitchmag
allowed_magazines = list(/obj/item/ammo_magazine/pitchmag)
icon_state="pitchgun"
projectile_type = /obj/item/projectile/bullet/pistol/strong
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))
)
load_method = MAGAZINE
muzzle_velocity = 400
is_long = FALSE
/obj/item/weapon/gun/projectile/automatic/serdy/vityaz
name = "WKHM 'Vityaz'"
@@ -603,9 +798,182 @@
one_handed_penalty = 90
fire_sound = "sound/weapons/serdy/molniyab.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/pkm
name = "PKM"
desc = "A traditional russian machinegun. A classic Pan-slav weapon. Chambered in 7.62x54mmR."
caliber = "7.62x54mmR"
magazine_type = /obj/item/ammo_magazine/pkm
allowed_magazines = list(/obj/item/ammo_magazine/pkm)
icon_state = "pkm"
projectile_type = /obj/item/projectile/bullet/rifle/a762x54
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))
)
load_method = MAGAZINE
auto_loading_type = OPEN_BOLT
muzzle_velocity = 825
one_handed_penalty = 90
fire_sound = "sound/weapons/serdy/molniyab.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/rpd
name = "RPDM"
desc = "An unusual LMG that shares similarities with both the AK and the PKM. Perfect for storming the Reichstag. Chambered in 7.62x39mm."
caliber = "7.62x39mm"
magazine_type = /obj/item/ammo_magazine/rpd
allowed_magazines = list(/obj/item/ammo_magazine/rpd)
icon_state = "rpd"
projectile_type = /obj/item/projectile/bullet/rifle/a762x39
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))
)
load_method = MAGAZINE
auto_loading_type = OPEN_BOLT
muzzle_velocity = 735
one_handed_penalty = 90
fire_sound = "sound/weapons/serdy/molniyab.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/rpk //RPK is the imposter of the LMGs, not a true LMG! Close enough to be in this section, though.
name = "RPK"
desc = "The AK's bigger brother, and the PKM's little brother. More of an LSW than an LMG. Chambered in 7.62x39mm."
caliber = "7.62x39mm"
magazine_type = /obj/item/ammo_magazine/akm/drum
allowed_magazines = list(/obj/item/ammo_magazine/akm) //Yes it is intercompatible with AK magazines.
icon_state = "rpk47"
projectile_type = /obj/item/projectile/bullet/rifle/a762x39
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))
)
load_method = MAGAZINE
auto_loading_type = CLOSED_BOLT
muzzle_velocity = 745
one_handed_penalty = 90
fire_sound = "sound/weapons/serdy/molniyab.ogg"
/obj/item/weapon/gun/projectile/automatic/serdy/rpk/update_icon()
. = ..()
if(ammo_magazine)
icon_state = istype(ammo_magazine,/obj/item/ammo_magazine/akm/drum) ? "[initial(icon_state)]drum" : "[initial(icon_state)]"
/obj/item/weapon/gun/projectile/automatic/serdy/kord //ADMINSPAWN ONLY. This gun is-- absurd. BE CAREFUL. IT WILL HURT MICROS.
name = "Kord 6P50"
desc = "This is what Ivan uses when he sees lots of things he doesn't like. This thing belongs on a mount, but some madlad took it off. Capable of causing great harm to anything infront of it, and you, if you're too small. Chambered in 12.7x108mm."
caliber = "12.7x108mm"
magazine_type = /obj/item/ammo_magazine/kord
allowed_magazines = list(/obj/item/ammo_magazine/kord)
icon_state = "kord"
projectile_type = /obj/item/projectile/bullet/rifle/a127x108
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))
)
load_method = MAGAZINE
auto_loading_type = OPEN_BOLT
muzzle_velocity = 860
one_handed_penalty = 90
/obj/item/weapon/gun/projectile/automatic/serdy/kord/afteratt(atom/A, mob/living/user, adjacent, params)
if(user.size_multiplier <= 0.5) //They're 50% or lower. If they fire this gun, they're gonna get obliterated.
to_chat(user,"<span class='warning'>You struggle to reach the trigger. Maybe shooting such a big gun isn't such a good idea...</span>")
if(do_after(user, 5 SECONDS)) //Give them a chance to take it back.
. = ..() //RIP
/obj/item/weapon/gun/projectile/automatic/serdy/kord/handle_post_fire(mob/living/user, atom/target, var/pointblank=0, var/reflex=0)
. = ..()
var/unhappy_factor = 1.3333333*(user.size_multiplier - 0.5) //Unhappy factor based on size. Below 50% is a really bad day, and above 125% is fine, everything inbetween is varying.
if(unhappy_factor >= 1) //They're fine
return
if(unhappy_factor <= 0) //RIP them
var/is_human = FALSE
var/mob/living/carbon/human/H = user
if(istype(H))
is_human = TRUE
var/deafening = FALSE
if(user.get_ear_protection() < 2 && is_human)
deafening = TRUE
if(user.eyecheck() < 1)
user.flash_eyes() //Flashbang effect
user.visible_message(/*What other people experience*/"<span class='notice'>[user] manages to pull the trigger on the [src], causing a large bang and a big flash before [src] recoils backwards, crashing violently into [user] and causing them to go flying!</span>", \
/*What you experience*/ "<span class='warning'>As you pull the trigger, you suddenly see a flash of bright white light and a loud bang which immediately triggers ringing in your ears. Before you can even react, you feel the giant gun crashing into you and propelling you backwards, and then everything goes black!</span>")
if(user.organs && user.organs.len) //You are going to break a lot of bones.
user.apply_damage(15, BRUTE, BP_L_ARM)
user.apply_damage(15, BRUTE, BP_R_ARM)
user.apply_damage(7, BRUTE, BP_L_HAND)
user.apply_damage(8, BRUTE, BP_R_HAND)
user.apply_damage(25, BRUTE, BP_TORSO)
//70 damage total
for(var/def_zone in list(BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_CHEST))
var/obj/item/organ/external/hit_organ = user.get_organ(def_zone)
if(hit_organ)
hit_organ.fracture() //Bone crunching noises intensifies
else
user.apply_damage(80, BRUTE)
user.drop_item() //Yea you're not holding onto it for long
if(deafening) //Very loud, ears go ouch. Should not make you permanently deaf, though.
H.ear_damage += 60
H.ear_deaf += 80
user.apply_damage(150, HALLOSS) //That hurt a lot.
user.AdjustSleeping(50) //Knocked out
var/recoil_dir = turn(user.dir,180)
var/turf/target_turf = get_step(get_step(user,recoil_dir),recoil_dir)
user.throw_at(target_turf,3,3) //Yeet
else //They're not gonna have a fun time, but they'll be fine. For between 50% and 125% size
var/damage_factor = (1 - unhappy_factor) //Unhappy factor is 0 at max unhappiness. Damage_factor is 1 at max unhappiness.
var/prob_to_drop = (33 + damage_facotor*66) //100% if just above 50%, 33% if just below 125%
var/damage_taken = 5 + 10 * factor //15 damage if just above 50%, 5 if just below 125%
var/message_on_fire = "<span class='notice'>As you pull the trigger, you feel the gun painfully slam into your shoulder, leaving a painful bruise!"
var/in_left_hand = TRUE
if(user.r_hand == src)
in_left_hand = FALSE
var/damaged_body_part = in_left_hand ? pick(list(BP_L_ARM,BP_TORSO)) : pick(list(BP_R_ARM,BP_TORSO)) //50/50 whether your arm holding the gun gets damaged, or your chest.
user.apply_damage(damage_taken,BRUTE,damaged_body_part) //Bruise
user.apply_damage(damage_taken * 3,HALLOSS) //Ouchie juice
if(prob(prob_to_drop))
message_on_fire += " The force causes you to stumble backwards, dropping the gun and falling to the ground."
user.drop_item()
user.apply_effect(25,WEAKEN)
//Pistols
/obj/item/weapon/gun/projectile/automatic/serdy/ssp4
/obj/item/weapon/gun/projectile/automatic/serdy/ssp4_silenced
name = "WKHM SSP4-S"
desc = "A unique, high end service pistol carried by W-K security personnel in the outer rim, and various law enforcement agencies across the galaxy. Features a hidden ejector port, and an integral laser sight. Surprisingly reliable despite its unorthodox design. This one is unmarked and is suppressed. Due to the minimal amount of moving parts, this gun is almost completely silent when used with subsonic ammunition. Chambered in 10mm."
caliber = "10mm"
magazine_type = /obj/item/ammo_magazine/ssp4
allowed_magazines = list(/obj/item/ammo_magazine/ssp4)
projectile_type = /obj/item/projectile/bullet/a10mm
load_method = MAGAZINE
bolt_name="slide"
bolt_release = "slide release"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
muzzle_velocity = 405
is_long = FALSE
silenced = 1
icon_state = "ssp4s"
move_delay = 0
/obj/item/weapon/gun/projectile/serdy_pistols
icon = 'icons/obj/gun_ch.dmi'
bolt_name="slide"
bolt_release = "slide release"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
load_method = MAGAZINE
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/serdy_pistols/ssp4
name = "WKHM SSP4"
desc = "A unique, high end service pistol carried by W-K security personnel in the outer rim, and various law enforcement agencies across the galaxy. Features a hidden ejector port, and an integral laser sight. Surprisingly reliable despite its unorthodox design. This one bears the 'WKHM Obsidian' arkship's production stamp. Chambered in 10mm."
description_fluff = "WKHM, is a minor arms company that has been around for quite some time, established in 2408. Known for being one of the many suppliers of weapons to dangerous worlds on the rim, and a part of the FTU. They produce a large variety of firearms, strike craft, and armored vehicles to fufill various their various contracts, and are largely migrant, moving wherever the money is. Found almost entirely on mobile production ships and various escort craft. Identifiable by their logo, a red Omega symbol with a black or white W in the middle. The sheer quantity of their firearms produced ensures they can be found.. just about anywhere, and they are very sought after by pirates for their reliability."
@@ -614,26 +982,7 @@
allowed_magazines = list(/obj/item/ammo_magazine/ssp4)
icon_state = "ssp4"
projectile_type = /obj/item/projectile/bullet/a10mm
load_method = MAGAZINE
bolt_name="slide"
bolt_release = "slide release"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
muzzle_velocity = 405
is_long = FALSE
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/automatic/serdy/ssp4/silenced
name = "WKHM SSP4-S"
desc = "A unique, high end service pistol carried by W-K security personnel in the outer rim, and various law enforcement agencies across the galaxy. Features a hidden ejector port, and an integral laser sight. Surprisingly reliable despite its unorthodox design. This one is unmarked and is suppressed. Due to the minimal amount of moving parts, this gun is almost completely silent when used with subsonic ammunition. Chambered in 10mm."
silenced = 1
icon_state = "ssp4s"
/obj/item/weapon/gun/projectile/serdy_pistols
icon = 'icons/obj/gun_ch.dmi'
bolt_name="slide"
bolt_release = "slide release"
auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY
load_method = MAGAZINE
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/serdy_pistols/makarov
@@ -1017,8 +1366,118 @@
/obj/item/weapon/gun/projectile/shotgun/pump/combat
icon = 'icons/obj/64x32guns_ch.dmi'
/obj/item/weapon/gun/projectile/shotgun/pump/shorty
name = "sawn-off pump shotgun"
desc = "A professionally cut down pump-action shotgun, with a checkered pistol grip, and a 6 round tube. Come with me if you want to live. Chambered in 12 gauge."
icon = 'icons/obj/64x32guns_ch.dmi'
icon_state = "shorty"
pump_animation = "shorty-pump"
/obj/item/weapon/gun/projectile/shotgun/doublebarrel
desc = "A classic, external hammer double barrel shotgun. This one has Sif-blue furniture. Chambered in 12 gauge."
var/sawn_off = FALSE
var/shotgun_variant = "N"
manual_chamber = FALSE
icon = 'icons/obj/64x32guns_ch.dmi'
icon_state = "dshotgunN"
icon_expected_height = 32
icon_expected_width = 64
var/is_picked_up = FALSE
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/process_accuracy(obj/projectile, mob/living/user, atom/target, var/burst, var/held_twohanded)
. = ..()
var/obj/item/projectile/bullet/P = projectile
if(!istype(P))
return
if(sawn_off)
P.submunition_spread_max = 100 //More spread when sawn off
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob)
if(istype(A, /obj/item/weapon/surgical/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
if(sawn_off) //Don't do anything if we were already sawed off.
return
to_chat(user, "<span class='notice'>You begin to shorten the barrel of \the [src].</span>")
if(loaded.len)
var/burstsetting = burst
burst = 2
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
Fire_userless(user)
burst = burstsetting
return
if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY
icon_state = "sawnshotgun"
item_state = "sawnshotgun"
desc = "Omar's coming!"
to_chat(user, "<span class='warning'>You shorten the barrel of \the [src]!</span>")
else
..()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/proc/saw_off()
sawn_off = TRUE
w_class = ITEMSIZE_NORMAL
force = 5
slot_flags &= ~SLOT_BACK //you can't sling it on your back
slot_flags |= (SLOT_BELT|SLOT_HOLSTER) //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - or in a holster, why not.
name = "sawn-off shotgun"
desc += " The barrel seems to be crudely sawn in half."
icon = 'icons/obj/gun_ch.dmi'
icon_state = "sawnshotgun[shotgun_variant]"
icon_expected_width = 32
update_icon()
update_transform()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/Initialize()
. = ..()
update_transform()
update_icon()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/update_transform()
. = ..()
if(!sawn_off)
if(is_picked_up)
transform = transform.Turn(-45)
transform = transform.Translate(-16,0)
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/equipped()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pickup()
. = ..()
is_picked_up = TRUE
update_transform()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/dropped()
. = ..()
is_picked_up = FALSE
update_transform()
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/rosewood
desc = "A classic, external hammer double barrel shotgun. This one has pristine rosewood furniture. Chambered in 12 gauge."
icon_state = "dshotgunR"
shotgun_variant = "R"
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/black
desc = "A classic, external hammer double barrel shotgun. This one has lame polymer black furniture. Chambered in 12 gauge."
icon_state = "dShotgunB"
shotgun_variant = "B"
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/oak
desc = "A classic, external hammer double barrel shotgun. This one has classic oak furniture. Chambered in 12 gauge."
icon_state = "dshotgunW"
shotgun_variant = "W"
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/rosewood_weathered
desc = "A classic, external hammer double barrel shotgun. This one has weathered rosewood furniture. Chambered in 12 gauge."
icon_state = "dshotgunPR"
shotgun_variant = "PR"
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/rosewood_weathered
desc = "A classic, external hammer double barrel shotgun. This one has weathered oak furniture. Chambered in 12 gauge."
icon_state = "dshotgunPW"
shotgun_variant = "PW"
//shotgun_vr.dm
/obj/item/weapon/gun/projectile/shotgun/pump/USDF

View File

@@ -6,6 +6,9 @@
#define LOCK_SLAPPABLE 16
#define CHAMBER_ON_RELOAD 32
#define INTERNAL_MAG_SEPARATE 1
#define IS_PUMP_SHOTGUN 2
#define BOLT_NOEVENT 0
#define BOLT_CLOSED 1
#define BOLT_OPENED 2
@@ -22,6 +25,7 @@
var/manual_chamber = TRUE
var/only_open_load = FALSE
var/auto_loading_type = CLOSED_BOLT | LOCK_MANUAL_LOCK | LOCK_SLAPPABLE
var/misc_loading_flags = 0
var/bolt_name = "bolt"
var/bolt_open = FALSE
var/bolt_locked = FALSE
@@ -318,7 +322,7 @@
var/obj/item/ammo_casing/C = A
if(caliber != C.caliber)
return
if(!(load_method & SINGLE_CASING))
if(!(load_method & SINGLE_CASING) || (misc_loading_flags & INTERNAL_MAG_SEPARATE)) //INTERNAL_MAG_SEPARATE is pretty much exclusively for the SPAS-12
if(manual_chamber)
if(!CHECK_BITFIELD(auto_loading_type,OPEN_BOLT))
if(!chambered)

View File

@@ -359,6 +359,15 @@ only use the hollow_point and armor_penetration values.*/
/obj/item/projectile/bullet/rifle/a50bmg/ap
armor_penetration = 50
/obj/item/projectile/bullet/rifle/a127x108 //Bigass fuckoff LMG round, bigger than 50 BMG
fire_sound = 'sound/weapons/serdy/strela.ogg'
damage = 60
diam = 13
grains = 855
velocity = 820
penetrating = 2
armor_penetration=30
//NOTE: Ammo casings and magazines used to be in this part of the file. They have been moved to respective files in the projectiles/ammunition folder.
//Various "We're not dealing with this shit because of how bad it is" (Some of these may be implemented into the new system with later updates)

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.