Adds the WT-551, Unskyrats the WT-550 ammo (#655)

## About The Pull Request


## The WT-551

![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/d57f5767-366e-4835-a5bf-d965b6b375a6)

This adds the WT-551. A remade version of the WT-550 that is worse in
every way. Fortunately, that means that it is balanced enough to be put
in NanoTrasen armories.

Compared tot he WT-551, it is bulkier and slightly slower (0.3 second
fire delay compared to 0.2). Additionally, it is commonly used with
rubber-tipped rounds or FlatHead rounds, which are a special surplus of
ammo that deals less damage and has no wounding, embedding, or
penetrative power. Regular ammo can be purchased from cargo or
researched later, with special ammo also being available later.

Note that this does not replace the WT-550.

## FlatHead ammo


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/81de4bdb-6fd6-4f23-a1b1-0af21e924c34)

Flathead ammo deals 18 brute damage (compared to the original 20), and 5
stamina damage per hit. It is extremely weak against armor, has no embed
chance, has virtually no wounding chance. It's perfect for cheap
corporate companies dealing with cheaper personnel. This is the type of
lethal ammo that security will use for the gun, unless someone speedruns
weapon research.


## Research Progression


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/26b72a1c-ebda-439a-98c9-9dc3168e01bd)

### Basic WT-550/WT-551 Ammunition.
Flathead rounds and Rubber rounds for the WT-550/WT-551 can be
researched for 2500 points after unlocking the "Weapon Development
Technology" node.

### Advanced WT-550/WT-551 Ammunition.
Regular rounds and AP rounds for the WT-550/WT-551 can be researched can
be researched for 5000 points after unlocking the "Advanced Weapon
Development Technology" and "Basic WT-550/WT-551 Ammunition" nodes.

### Illegal WT-550/WT-551 Ammunition.
Incendiary rounds for the WT-550/WT-551 can be researched can be
researched for 7500 points after unlocking the "Illegal Technology",
"Exotic Ammo" , and "Advanced WT-550/WT-551 Ammunition" nodes.

### Syndicate Research

Removes the WT-550 ammo from syndicate research since it is now
redundant.

## Cargo


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/a24e9df4-36e3-4368-b77a-cff06a42579f)

WT-551 rifles can be ordered in pairs (2) for the cost of a parrot, a
grilling starter pack, or a crab rocket (1600 credits). This value was
chosen because it is slightly higher than the thermal pistols, and the
traitor-ordered WT-550 rifle pack (which contains lethal ammo + spare
lethal ammo).

Additional FlatHead, Rubber, and Regular ammo can be ordered from cargo
as well.

Cargo techs no longer get WT-550s in the mail, but instead WT-551s (why
was this a thing holy shit).

## Armory


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/e88a37af-2e4f-4b1c-bc25-b9bed9e41b91)

2 WT-551s can be found in the armory.
For balance purposes one (1) laser rifle was removed.

## I hate Skyrat so much holy shit


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/b09eed34-77cd-4f37-8356-93688fec344e)

Unfucks the WT-550 ammo types by removing their dumb names and changed
caliber types.

Unfucks the WT-550 ammo in the ammo printer so that rubber rounds can be
printed at T0 and everything else (except incendiary rounds) can be
printed with the adv munitions disk.

The bullets for the WT-550 have been forcibly changed to /tg/ balance,
which means that any and all future Skyrat PRs cannot touch the damage
values for it (unless some fuckery occurs, idk).

## Why It's Good For The Game


![image](https://github.com/Bubberstation/Bubberstation/assets/8602857/395b9fa5-8380-46bc-96a7-06ce0931d8e7)


Security is in dire need of actual ballistics. /tg/ removed ballistics
from security because of reasons I legitimately don't think are valid.
It's also a huge balance concern for security not to have at least 1
ballistic weapon (other than the shotgun) because it doesn't stop antags
from hoarding laser immunity or meds.

Also guns are cool.

## Changelog

🆑 BurgerBB
add: Adds the WT-551 rifle, a redesign of the WT-550 rifle that is
balanced (citation needed) for security use.
add: Makes WT-550 ammo researchable and orderable from cargo. Removes
WT-550 ammo from syndicate research, and gives them their own
categories.
/🆑

---------

Co-authored-by: StrangeWeirdKitten <95130227+StrangeWeirdKitten@users.noreply.github.com>
Co-authored-by: ReturnToZender <donwest947@gmail.com>
This commit is contained in:
BurgerLUA
2023-11-03 15:32:50 -06:00
committed by GitHub
co-authored by StrangeWeirdKitten ReturnToZender
parent bd19472423
commit 468afa292d
14 changed files with 262 additions and 3 deletions
@@ -41,16 +41,17 @@
/obj/effect/spawner/random/armory/laser_gun
loot = list(
/obj/item/gun/microfusion/mcr01
/obj/item/gun/ballistic/automatic/wt550/security/flathead
)
spawn_loot_count = 3
spawn_loot_count = 2
/obj/effect/spawner/random/armory/e_gun
loot = list(
/obj/item/gun/microfusion/mcr01,
/obj/item/gun/microfusion/mcr01,
/obj/item/gun/energy/e_gun,
/obj/item/gun/energy/e_gun,
/obj/item/gun/energy/laser,
/obj/item/gun/energy/laser,
)
spawn_all_loot = TRUE
@@ -0,0 +1,7 @@
/datum/export/weapon/wt550
exclude_types = list(/obj/item/gun/ballistic/automatic/wt550/security)
/datum/export/weapon/wt551
export_types = list(/obj/item/gun/ballistic/automatic/wt550/security)
cost = CARGO_CRATE_VALUE * 1.25
unit_name = "WT-551 automatic rifle"
@@ -0,0 +1,27 @@
/datum/supply_pack/security/armory/wt551
name = "WT-551 Autorifle Crate"
desc = "Contains a pair of WT-551 Autorifles pre-loaded with less-than-lethal rubber-tipped rounds. Additional ammo sold seperately. Backwards-compatible with WT-550 magazines. NanoTrasen reminds you that the other weapon is for a friend, and not for going guns akimbo."
cost = CARGO_CRATE_VALUE * 8
contains = list(/obj/item/gun/ballistic/automatic/wt550/security/rubber = 2)
crate_name = "wt-550 autorifle crate"
/datum/supply_pack/security/armory/wt550_ammo_rubber
name = "WT-550/WT-551 Autorifle Ammo Crate (Rubber-Tipped)"
desc = "Contains 3 magazines with less than lethal rubber-tipped rounds for the WT-551."
cost = CARGO_CRATE_VALUE * 4
contains = list(/obj/item/ammo_box/magazine/wt550m9/rubber = 3)
crate_name = "wt-550 magazine crate (rubber-tipped)"
/datum/supply_pack/security/armory/wt550_ammo_flat
name = "WT-550/WT-551 Autorifle Ammo Crate (Flat-Tipped)"
desc = "Contains 3 magazines with lethal flat-tipped rounds for the WT-551."
cost = CARGO_CRATE_VALUE * 5
contains = list(/obj/item/ammo_box/magazine/wt550m9/flathead = 3)
crate_name = "wt-550 magazine crate (flat-tipped)"
/datum/supply_pack/security/armory/wt550_ammo_regular
name = "WT-550/WT-551 Autorifle Ammo Crate (Regular)"
desc = "Contains 3 magazines with lethal regular rounds for the WT-551."
cost = CARGO_CRATE_VALUE * 7
contains = list(/obj/item/ammo_box/magazine/wt550m9 = 3)
crate_name = "wt-550 magazine crate (regular)"
@@ -0,0 +1,4 @@
/datum/job/cargo_technician/New()
mail_goodies -= /obj/item/gun/ballistic/automatic/wt550
mail_goodies += /obj/item/gun/ballistic/automatic/wt550/security
. = ..()
@@ -0,0 +1,3 @@
/mob/living/basic/trooper/nanotrasen/ranged/smg
casingtype = /obj/item/ammo_casing/c46x30mm/flathead
r_hand = /obj/item/gun/ballistic/automatic/wt550/security
@@ -0,0 +1,37 @@
/obj/item/ammo_casing/c46x30mm
name = "4.6x30mm bullet casing"
desc = "A 4.6x30mm bullet casing."
can_be_printed = TRUE
advanced_print_req = TRUE
custom_materials = AMMO_MATS_BASIC
/obj/item/ammo_casing/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet casing"
desc = "A 4.6x30mm armor-piercing bullet casing."
can_be_printed = TRUE
advanced_print_req = TRUE
custom_materials = AMMO_MATS_AP
/obj/item/ammo_casing/c46x30mm/inc
name = "4.6x30mm incendiary bullet casing"
desc = "A 4.6x30mm incendiary bullet casing."
can_be_printed = FALSE
advanced_print_req = TRUE
custom_materials = AMMO_MATS_TEMP
/obj/item/ammo_casing/c46x30mm/flathead
name = "4.6x30mm flathead bullet casing"
desc = "A 4.6x30mm flathead bullet casing."
projectile_type = /obj/projectile/bullet/c46x30mm/flathead
can_be_printed = TRUE
advanced_print_req = FALSE
custom_materials = AMMO_MATS_RIPPER
/obj/item/ammo_casing/c46x30mm/rubber
name = "4.6x30mm rubber-tipped bullet casing"
desc = "A 4.6x30mm rubber-tipped bullet casing."
projectile_type = /obj/projectile/bullet/c46x30mm/rubber
can_be_printed = TRUE
advanced_print_req = FALSE
harmful = FALSE
custom_materials = AMMO_MATS_BASIC
@@ -0,0 +1,24 @@
/obj/item/ammo_box/magazine/wt550m9
name = "\improper WT-550 magazine"
/obj/item/ammo_box/magazine/wt550m9/wtap
name = "wt550 AP magazine"
/obj/item/ammo_box/magazine/wt550m9/wtic
name = "wt550 INC magazine"
/obj/item/ammo_box/magazine/wt550m9/flathead
name = "\improper WT-550 FlatHead magazine"
icon_state = "46x30mmt-20"
base_icon_state = "46x30mmt"
ammo_type = /obj/item/ammo_casing/c46x30mm/flathead
caliber = CALIBER_46X30MM
max_ammo = 20
/obj/item/ammo_box/magazine/wt550m9/rubber
name = "\improper WT-550 Rubber magazine"
icon_state = "46x30mmt-20"
base_icon_state = "46x30mmt"
ammo_type = /obj/item/ammo_casing/c46x30mm/rubber
caliber = CALIBER_46X30MM
max_ammo = 20
@@ -0,0 +1,19 @@
/obj/item/gun/ballistic/automatic/wt550
can_bayonet = FALSE
can_suppress = FALSE
/obj/item/gun/ballistic/automatic/wt550/security
name = "\improper WT-551 Autorifle"
desc = "A heavier, bulkier automatic variant of the WT-550, and now with 99% less discombobulation! It's back, baby. Uses 4.6x30mm rounds. Recommended to hold with two hands."
icon = 'modular_zubbers/icons/obj/weapons/guns/wt551.dmi'
fire_sound = 'modular_zubbers/sound/weapons/gun/wt551/shot.ogg'
w_class = WEIGHT_CLASS_BULKY
fire_delay = 3
//18 damage per 0.3 seconds = 60 DPS
//Reference: Laser Gun 22 damage per 0.4 seconds = 55DPS
/obj/item/gun/ballistic/automatic/wt550/security/flathead //What you get in the armory.
spawn_magazine_type = /obj/item/ammo_box/magazine/wt550m9/flathead
/obj/item/gun/ballistic/automatic/wt550/security/rubber //What you get from cargo.
spawn_magazine_type = /obj/item/ammo_box/magazine/wt550m9/rubber
@@ -0,0 +1,49 @@
/obj/projectile/bullet/c46x30mm
name = "4.6x30mm bullet"
damage = 20
wound_bonus = -5
bare_wound_bonus = 5
embed_falloff_tile = -4
/obj/projectile/bullet/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet"
damage = 15
armour_penetration = 40
embedding = null
/obj/projectile/bullet/incendiary/c46x30mm //Not a typo. /obj/projectile/bullet/incendiary is a type.
name = "4.6x30mm incendiary bullet"
damage = 10
fire_stacks = 1
/obj/projectile/bullet/c46x30mm/flathead
name = "4.6x30mm flathead bullet"
damage = 18
stamina = 5 //Knocks the wind out of you.
wound_bonus = CANT_WOUND
bare_wound_bonus = CANT_WOUND
weak_against_armour = TRUE
sharpness = NONE
shrapnel_type = null
embedding = null
/obj/projectile/bullet/c46x30mm/rubber
name = "4.6x30mm rubber-tipped bullet"
damage = 5
stamina = 15
wound_bonus = CANT_WOUND
bare_wound_bonus = CANT_WOUND
weak_against_armour = TRUE
sharpness = NONE
shrapnel_type = null
embedding = null
ricochets_max = 3
ricochet_incidence_leeway = 0
ricochet_chance = 75
ricochet_decay_damage = 0.8
@@ -46,3 +46,23 @@
design_ids += list(
"minesweeper",
)
/datum/techweb_node/weaponry/New()
design_ids += "wt550_ammo_rubber"
design_ids += "wt550_ammo_flathead"
. = ..()
/datum/techweb_node/adv_weaponry/New()
design_ids += "wt550_ammo_normal"
. = ..()
/datum/techweb_node/exotic_ammo/New()
design_ids += "wt550_ammo_ap"
. = ..()
/datum/techweb_node/syndicate_basic/New()
design_ids -= "mag_autorifle"
design_ids -= "mag_autorifle_ap"
design_ids -= "mag_autorifle_ic"
design_ids += "wt550_ammo_incendiary"
. = ..()
Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

@@ -0,0 +1,59 @@
/datum/design/wt550_ammo_rubber
name = "WT-550/WT-551 Magazine (4.6x30mm Rubber-Tipped) (Less-Than_Lethal)"
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains less-than-lethal rubber-tipped ammo."
id = "wt550_ammo_rubber"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 6)
build_path = /obj/item/ammo_box/magazine/wt550m9/rubber
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/wt550_ammo_flat
name = "WT-550/WT-551 Magazine (4.6x30mm FlatHead) (Lethal)"
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains lethal surplus-tier flathead ammo."
id = "wt550_ammo_flathead"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 8)
build_path = /obj/item/ammo_box/magazine/wt550m9/rubber
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/wt550_ammo
name = "WT-550/WT-551 Magazine (4.6x30mm Regular) (Lethal)"
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains lethal regular ammo."
id = "wt550_ammo_normal"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
build_path = /obj/item/ammo_box/magazine/wt550m9
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/wt550_ammo_ap
name = "WT-550/WT-551 Magazine (4.6x30mm Armor-Piercing) (Lethal)"
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains lethal armor-piercing ammo. NanoTrasen prefers you didn't use these on your pressurized space station."
id = "wt550_ammo_ap"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 12, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/wt550_ammo_incendiary
name = "WT-550/WT-551 Magazine (4.6x30mm Incendiary) (Extremely Lethal)"
desc = "A magazine for the WT-550/WT-551 Autorifle. Contains very lethal incendiary ammo. Consult your local laws for warcrime status before use."
id = "wt550_ammo_incendiary"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 2, /datum/material/silver = SHEET_MATERIAL_AMOUNT , /datum/material/glass = SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
Binary file not shown.
+9
View File
@@ -7937,6 +7937,8 @@
#include "modular_zubbers\code\modules\borer_hud\borer.dm"
#include "modular_zubbers\code\modules\bsrpd\code\bsrpd.dm"
#include "modular_zubbers\code\modules\cargo\bounties\blacksmith.dm"
#include "modular_zubbers\code\modules\cargo\exports\weapons.dm"
#include "modular_zubbers\code\modules\cargo\packs\security.dm"
#include "modular_zubbers\code\modules\cargo\packs\service.dm"
#include "modular_zubbers\code\modules\clothing\gloves\syndicate.dm"
#include "modular_zubbers\code\modules\clothing\head\helmet.dm"
@@ -7973,6 +7975,7 @@
#include "modular_zubbers\code\modules\hydroponics\plant_genes.dm"
#include "modular_zubbers\code\modules\jobs\job_types\blacksmith.dm"
#include "modular_zubbers\code\modules\jobs\job_types\blueshield.dm"
#include "modular_zubbers\code\modules\jobs\job_types\cargo_technician.dm"
#include "modular_zubbers\code\modules\jobs\job_types\nanotrasen_consultant.dm"
#include "modular_zubbers\code\modules\loadouts\loadout_items\loadout_datum_glasses.dm"
#include "modular_zubbers\code\modules\loadouts\loadout_items\loadout_datum_gloves.dm"
@@ -7992,6 +7995,7 @@
#include "modular_zubbers\code\modules\mob\dead\new_player\sprite_accessories.dm"
#include "modular_zubbers\code\modules\mob\living\examine.dm"
#include "modular_zubbers\code\modules\mob\living\living.dm"
#include "modular_zubbers\code\modules\mob\living\basic\trooper\nanotrasen.dm"
#include "modular_zubbers\code\modules\mob\living\carbon\human\human.dm"
#include "modular_zubbers\code\modules\mob\living\carbon\human\species_types\shadekin.dm"
#include "modular_zubbers\code\modules\mob\living\silicon\robot\robot_defines.dm"
@@ -8007,7 +8011,11 @@
#include "modular_zubbers\code\modules\pai\ghost_pai.dm"
#include "modular_zubbers\code\modules\paperwork\fax.dm"
#include "modular_zubbers\code\modules\power\supermatter\supermatter_gas.dm"
#include "modular_zubbers\code\modules\projectiles\ammunition\ballistic\smg.dm"
#include "modular_zubbers\code\modules\projectiles\boxes_magazines\external\smg.dm"
#include "modular_zubbers\code\modules\projectiles\guns\ballistic\automatic.dm"
#include "modular_zubbers\code\modules\projectiles\guns\energy\pulse.dm"
#include "modular_zubbers\code\modules\projectiles\projectile\bullets\smg.dm"
#include "modular_zubbers\code\modules\protected_roles\code\antag_restricted_jobs.dm"
#include "modular_zubbers\code\modules\reagents\drink_reagents.dm"
#include "modular_zubbers\code\modules\reagents\reagent_containers\condiment.dm"
@@ -8048,6 +8056,7 @@
#include "modular_zubbers\maps\offstation\dauntless\mob_spawns.dm"
#include "modular_zubbers\master_files\code\modules\client\preferences\obscurity_examine.dm"
#include "modular_zubbers\master_files\code\modules\research\designs\biogenerator_designs.dm"
#include "modular_zubbers\master_files\code\modules\research\designs\weapon_designs.dm"
#include "modular_zubbers\modules\ashwalkers\code\effects\ash_rituals.dm"
#include "modular_zubbers\modules\automapper\code\area_spawn_entries.dm"
#include "modular_zubbers\modules\cargoborg\code\robot_items.dm"