From 468afa292dfaef7bcbc6df7b55cd0380582533a6 Mon Sep 17 00:00:00 2001 From: BurgerLUA <8602857+BurgerLUA@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:32:50 -0700 Subject: [PATCH] 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 :cl: 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. /:cl: --------- Co-authored-by: StrangeWeirdKitten <95130227+StrangeWeirdKitten@users.noreply.github.com> Co-authored-by: ReturnToZender --- .../objects/effects/spawners/random/armory.dm | 7 ++- .../code/modules/cargo/exports/weapons.dm | 7 +++ .../code/modules/cargo/packs/security.dm | 27 ++++++++ .../jobs/job_types/cargo_technician.dm | 4 ++ .../mob/living/basic/trooper/nanotrasen.dm | 3 + .../projectiles/ammunition/ballistic/smg.dm | 37 +++++++++++ .../boxes_magazines/external/smg.dm | 24 +++++++ .../projectiles/guns/ballistic/automatic.dm | 19 ++++++ .../projectiles/projectile/bullets/smg.dm | 49 +++++++++++++++ .../modules/research/techweb/all_nodes.dm | 20 ++++++ .../icons/obj/weapons/guns/wt551.dmi | Bin 0 -> 616 bytes .../research/designs/weapon_designs.dm | 59 ++++++++++++++++++ .../sound/weapons/gun/wt551/shot.ogg | Bin 0 -> 10271 bytes tgstation.dme | 9 +++ 14 files changed, 262 insertions(+), 3 deletions(-) create mode 100644 modular_zubbers/code/modules/cargo/exports/weapons.dm create mode 100644 modular_zubbers/code/modules/cargo/packs/security.dm create mode 100644 modular_zubbers/code/modules/jobs/job_types/cargo_technician.dm create mode 100644 modular_zubbers/code/modules/mob/living/basic/trooper/nanotrasen.dm create mode 100644 modular_zubbers/code/modules/projectiles/ammunition/ballistic/smg.dm create mode 100644 modular_zubbers/code/modules/projectiles/boxes_magazines/external/smg.dm create mode 100644 modular_zubbers/code/modules/projectiles/guns/ballistic/automatic.dm create mode 100644 modular_zubbers/code/modules/projectiles/projectile/bullets/smg.dm create mode 100644 modular_zubbers/icons/obj/weapons/guns/wt551.dmi create mode 100644 modular_zubbers/master_files/code/modules/research/designs/weapon_designs.dm create mode 100644 modular_zubbers/sound/weapons/gun/wt551/shot.ogg diff --git a/modular_zubbers/code/game/objects/effects/spawners/random/armory.dm b/modular_zubbers/code/game/objects/effects/spawners/random/armory.dm index 9f1d3845f2f..ebdb22a1d86 100644 --- a/modular_zubbers/code/game/objects/effects/spawners/random/armory.dm +++ b/modular_zubbers/code/game/objects/effects/spawners/random/armory.dm @@ -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 diff --git a/modular_zubbers/code/modules/cargo/exports/weapons.dm b/modular_zubbers/code/modules/cargo/exports/weapons.dm new file mode 100644 index 00000000000..2bab3c4775e --- /dev/null +++ b/modular_zubbers/code/modules/cargo/exports/weapons.dm @@ -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" \ No newline at end of file diff --git a/modular_zubbers/code/modules/cargo/packs/security.dm b/modular_zubbers/code/modules/cargo/packs/security.dm new file mode 100644 index 00000000000..a91550bdb3b --- /dev/null +++ b/modular_zubbers/code/modules/cargo/packs/security.dm @@ -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)" diff --git a/modular_zubbers/code/modules/jobs/job_types/cargo_technician.dm b/modular_zubbers/code/modules/jobs/job_types/cargo_technician.dm new file mode 100644 index 00000000000..8eb12d250ea --- /dev/null +++ b/modular_zubbers/code/modules/jobs/job_types/cargo_technician.dm @@ -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 + . = ..() \ No newline at end of file diff --git a/modular_zubbers/code/modules/mob/living/basic/trooper/nanotrasen.dm b/modular_zubbers/code/modules/mob/living/basic/trooper/nanotrasen.dm new file mode 100644 index 00000000000..afa0f8a5af2 --- /dev/null +++ b/modular_zubbers/code/modules/mob/living/basic/trooper/nanotrasen.dm @@ -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 \ No newline at end of file diff --git a/modular_zubbers/code/modules/projectiles/ammunition/ballistic/smg.dm b/modular_zubbers/code/modules/projectiles/ammunition/ballistic/smg.dm new file mode 100644 index 00000000000..5fce7c34253 --- /dev/null +++ b/modular_zubbers/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -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 \ No newline at end of file diff --git a/modular_zubbers/code/modules/projectiles/boxes_magazines/external/smg.dm b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/smg.dm new file mode 100644 index 00000000000..b99817eb85c --- /dev/null +++ b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -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 diff --git a/modular_zubbers/code/modules/projectiles/guns/ballistic/automatic.dm b/modular_zubbers/code/modules/projectiles/guns/ballistic/automatic.dm new file mode 100644 index 00000000000..6416ea3b945 --- /dev/null +++ b/modular_zubbers/code/modules/projectiles/guns/ballistic/automatic.dm @@ -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 \ No newline at end of file diff --git a/modular_zubbers/code/modules/projectiles/projectile/bullets/smg.dm b/modular_zubbers/code/modules/projectiles/projectile/bullets/smg.dm new file mode 100644 index 00000000000..b52a3913b88 --- /dev/null +++ b/modular_zubbers/code/modules/projectiles/projectile/bullets/smg.dm @@ -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 \ No newline at end of file diff --git a/modular_zubbers/code/modules/research/techweb/all_nodes.dm b/modular_zubbers/code/modules/research/techweb/all_nodes.dm index 67072dc4526..f4416b8f3ff 100644 --- a/modular_zubbers/code/modules/research/techweb/all_nodes.dm +++ b/modular_zubbers/code/modules/research/techweb/all_nodes.dm @@ -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" + . = ..() \ No newline at end of file diff --git a/modular_zubbers/icons/obj/weapons/guns/wt551.dmi b/modular_zubbers/icons/obj/weapons/guns/wt551.dmi new file mode 100644 index 0000000000000000000000000000000000000000..62215f4de756d64d4342b4b8bb8599cdb0ffa8e8 GIT binary patch literal 616 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 14fdd3a648f..0617c75eeeb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -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"