Reworks flechette into a AP pellet round that does mostly wounds. Adds the Donk Co. 'Donk Spike' flechette round as a surplus round. (#89972)

## About The Pull Request


![image](https://github.com/user-attachments/assets/a9932294-5355-4a75-b64d-cd8350092c21)

Reworks flechette shells from... whatever it was that they were supposed
to be before into an AP pellet round that primarily focuses on wounding
power and embedding power over specifically dealing direct damage (16 as
opposed to buckshot's 30). Useful if you want to maim as a priority.

You can print flechette once science researches Exotic Ammunition.
Nuclear Operatives also get flechette rounds as a Bulldog Shotgun
magazine choice priced as a basic ammunition type.

In addition, you can also acquire Donk Co. 'Donk Spike' flechette
shells. These shells fire plastic darts! They can be purchased by
Nuclear Operatives as a surplus option for Bulldog shotguns. 7 magazines
for the price of one.

Donk Co. 'Donk Spike' flechette was intended to be an alternative to the
standard flechette but failed spectacularly once it hit the market. Due
to a lack of confidence in the product, Donk Co. 'Donk Spike' flechette
now appears in maintenance loot as potential trash, as Donk Co. dumped
it in the millions into various landfills across the sector.

You can also print it if you find the tech in a BEPIS tech disk. 

Does it work? Why don't you take a chance on Donk and find out?

## Why It's Good For The Game

I'm not sure if the person who made the original flechette actually
understood what each of the variables was supposed to be doing or how
they actually worked. A bullet with an excessively negative standard
wound power (for a pellet projectile) and low damage, but then an
excessively high bare wound bonus (for a pellet projectile). But then
some ricochet variables without ricochet being assigned to the bullet...
and a demolition mod on a round meant to be weak against armor?

Nonsensical.

So I've reworked it into two unique rounds. The first serving a
practical purpose and becoming an AP option when the crew typically
begins seeing those options open up (such as x-ray lasers). The same can
be said for nukies, who love AP options, but one focused on lasting
wounds is handy too for keeping someone down. There isn't a milspec
option; so for nukies, this isn't doing nearly as much upfront damage as
buckshot or slugs. You buy this when you want someone not to be
recovered with a LOT of medical attention.

The second being more tongue in cheek, but also giving a surplus option
for Bulldog shotguns, which I think are having ammunition problems even
still. Surplus ammunition might slowly roll out for all the guns, but
I'm mostly focusing on the ones that have some slight price disparity
for total shots compared to other weapons. Also, shooting people full of
plastic is kind of funny.

## Changelog
🆑
balance: Flechette has been reworked into an AP pellet round that embeds
and wounds, but has less actual damage to buckshot. You can print it
once Exotic Ammunition has been researched. Also available to Nuclear
Operatives.
add: Donk Co. 'Donk Spike' flechette rounds. No longer offered by Donk
Co. It can sometimes shows up in trashbins and dumpsters. And operatives
can buy it in bulk if they really feel like it.
/🆑

---------

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
This commit is contained in:
necromanceranne
2025-03-19 18:01:22 +11:00
committed by GitHub
parent 5039c5bb41
commit df3d6a31ca
18 changed files with 166 additions and 23 deletions

View File

@@ -809,10 +809,10 @@
/area/ruin/syndielab)
"Wo" = (
/obj/structure/table/wood,
/obj/item/ammo_casing/shotgun/fletchette{
/obj/item/ammo_casing/shotgun/flechette/donk{
pixel_y = 6
},
/obj/item/ammo_casing/shotgun/fletchette{
/obj/item/ammo_casing/shotgun/flechette/donk{
pixel_x = 8;
pixel_y = 6
},

View File

@@ -4042,15 +4042,15 @@
},
/obj/effect/decal/cleanable/oil/slippery,
/obj/item/trash/popcorn/salty,
/obj/item/ammo_casing/shotgun/fletchette{
/obj/item/ammo_casing/shotgun/flechette/donk{
pixel_x = 8;
pixel_y = 4
},
/obj/item/ammo_casing/shotgun/fletchette{
/obj/item/ammo_casing/shotgun/flechette/donk{
pixel_x = -2;
pixel_y = -7
},
/obj/item/ammo_casing/shotgun/fletchette{
/obj/item/ammo_casing/shotgun/flechette/donk{
pixel_x = -4;
pixel_y = 6
},

View File

@@ -36,6 +36,7 @@
#define TECHWEB_NODE_CYBER_ORGANS_UPGRADED "cyber_organs_upgraded"
#define TECHWEB_NODE_CYBERNETICS "cybernetics"
#define TECHWEB_NODE_CYTOLOGY "cytology"
#define TECHWEB_NODE_DONK_PRODUCTS "donk_products"
#define TECHWEB_NODE_ELECTRIC_WEAPONS "electric_weapons"
#define TECHWEB_NODE_ENERGY_MANIPULATION "energy_manipulation"
#define TECHWEB_NODE_EXODRONE "exodrone"

View File

@@ -256,6 +256,10 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/food/monkeycube = 1,
) = 8,
list(//Donk Co. 'Donk Spike' flechette shells, these things show up everywhere in donkpocket boxes
/obj/item/storage/box/donkpockets/donkpocketshell = 1,
) = 8,
list(//computer disks
/obj/item/computer_disk/maintenance/scanner = 1,
/obj/item/computer_disk/maintenance/camera = 1,

View File

@@ -46,6 +46,12 @@
icon_state = "donkpocketboxbanana"
donktype = /obj/item/food/donkpocket/honk
/obj/item/storage/box/donkpockets/donkpocketshell
name = "box of Donk Co. 'Donk Spike' flechette shells"
desc = "Instructions: DO NOT heat in microwave. Product will remove all hostile threats with cutting edge Donk Co. technology."
icon_state = "donkpocketboxshell"
donktype = /obj/item/ammo_casing/shotgun/flechette/donk
/obj/item/storage/box/papersack
name = "paper sack"
desc = "A sack neatly crafted out of paper."

View File

@@ -674,6 +674,17 @@
for(var/i in 1 to 7)
new /obj/item/ammo_box/magazine/sniper_rounds/surplus(src)
/obj/item/storage/box/syndie_kit/shotgun_surplus
name = "\improper Donk Co. 'Donk Spike' flechette 12g Bulldog magazine box"
desc = "A shoddy box full of Donk Co. 'Donk Spike' flechette 12g. It is debatable whether or not these are actually \
better or worse than standard flechette. Donk Co. did genuinely believe in this product being the future of military \
ammunition production. The only reason it didn't see wider adoption was a lack of faith in the product. Do you \
believe in Donk? Time to put that to the test."
/obj/item/storage/box/syndie_kit/sniper_surplus/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/ammo_box/magazine/m12g/donk(src)
///Subtype for the sabotage bundle. Contains three C4, two X4 and 6 signalers
/obj/item/storage/backpack/duffelbag/syndie/sabotage

View File

@@ -131,15 +131,26 @@
variance = 25
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2)
/obj/item/ammo_casing/shotgun/fletchette
name = "\improper Donk Co Flechette Shell"
desc = "A shotgun casing filled with small metal darts. Has poor armor penetration and velocity, but is good at destroying most electronic devices and injuring unarmored humanoids."
icon_state = "fletchette"
/obj/item/ammo_casing/shotgun/flechette
name = "flechette shell"
desc = "A shotgun casing filled with small metal darts. Pokes many tiny holes into meat and kevlar alike. Useful for turning someones insides \
into outsides."
icon_state = "flechette"
projectile_type = /obj/projectile/bullet/pellet/flechette
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2, /datum/material/glass=SMALL_MATERIAL_AMOUNT*1)
pellets = 6
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
pellets = 8
variance = 10
randomspread = TRUE
/obj/item/ammo_casing/shotgun/flechette/donk
name = "\improper Donk Co. 'Donk Spike' Shell"
desc = "Donk Co., looking to create a new and exciting shell to move onto the open market, invented what they call the 'Donk Spike'. \
A flechette not made from standard ferrous metals. But...plastic. It was a financial failure due to a complete lack of \
confidence in the product. Now there are millions of these things in landfills across the sector. This is one such example. \
Looks like a donk-pocket! Tastes like death!"
icon_state = "flechette_donk"
projectile_type = /obj/projectile/bullet/pellet/flechette/donk
custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = SMALL_MATERIAL_AMOUNT * 2)
pellets = 5
/obj/item/ammo_casing/shotgun/ion
name = "ion shell"

View File

@@ -41,3 +41,29 @@
icon_state = "m12gbc"
base_icon_state = "m12gbc"
ammo_type = /obj/item/ammo_casing/shotgun/meteorslug
/obj/item/ammo_box/magazine/m12g/flechette
name = "shotgun magazine (12g flechette)"
icon_state = "m12gfl"
base_icon_state = "m12gfl"
ammo_type = /obj/item/ammo_casing/shotgun/flechette
/obj/item/ammo_box/magazine/m12g/donk
name = "shotgun magazine (12g Donk Co. 'Donk Spike' flechette)"
desc = "A drum magazine of shotgun shells, suitable for the Bulldog combat shotgun. It is covered in Donk Co. scratch-and-sniff \
stickers. You're not sure you want to try and get a whiff..."
icon_state = "m12gd"
base_icon_state = "m12gd"
ammo_type = /obj/item/ammo_casing/shotgun/flechette/donk
/obj/item/ammo_box/magazine/m12g/donk/examine_more(mob/user)
. = ..()
if(ishuman(user))
return
var/mob/living/carbon/human/human_sniffer = user
if(!HAS_TRAIT(human_sniffer, TRAIT_ANOSMIA) && human_sniffer.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS|ALLOW_RESTING|FORBID_TELEKINESIS_REACH))
. += span_notice("You scratch and sniff the stickers.")
. += span_warning("<i>Oh god, where did they pull this from, a landfill?</i>")
human_sniffer.add_mood_event("stink-pocket", /datum/mood_event/disgusted)

View File

@@ -58,5 +58,5 @@
max_ammo = 1
/obj/item/ammo_box/magazine/internal/shot/single/musket
name = "donk co musket internal magazine"
ammo_type = /obj/item/ammo_casing/shotgun/fletchette
name = "\improper Donk Co. musket internal magazine"
ammo_type = /obj/item/ammo_casing/shotgun/flechette/donk

View File

@@ -133,17 +133,46 @@
/obj/projectile/bullet/pellet/flechette
name = "flechette"
icon_state = "flechette"
damage = 3
wound_bonus = -25
bare_wound_bonus = 50
damage_falloff_tile = 0.1
wound_falloff_tile = -10
damage = 2
wound_bonus = 5
bare_wound_bonus = 5
armour_penetration = 30
damage_falloff_tile = -0.2
wound_falloff_tile = -0.5
speed = 1.2
ricochet_decay_chance = 0.6
ricochet_decay_damage = 0.3
demolition_mod = 10
sharpness = SHARP_POINTY
weak_against_armour = TRUE
embed_type = /datum/embedding/bullet/flechette
/datum/embedding/bullet/flechette
embed_chance = 100
fall_chance = 0
jostle_chance = 20
ignore_throwspeed_threshold = TRUE
pain_stam_pct = 0.1
pain_mult = 0.5
jostle_pain_mult = 1.5
rip_time = 1 SECONDS
/obj/projectile/bullet/pellet/flechette/donk
name = "\improper Donk Co. 'Donk Spike' flechette"
desc = "Your internal evisceration! As sponsored by the Donk Corporation!"
icon_state = "flechette_plastic"
damage = 1 // good god its awful
wound_bonus = 20 // but it WILL mulch you if you don't have armor.
bare_wound_bonus = 20
armour_penetration = 0
damage_falloff_tile = -0.1
wound_falloff_tile = -2
embed_type = /datum/embedding/bullet/flechette_donk // the true power of the donk spike.
/datum/embedding/bullet/flechette_donk
embed_chance = 100
fall_chance = 0
jostle_chance = 50
ignore_throwspeed_threshold = TRUE
pain_mult = 1
jostle_pain_mult = 1
rip_time = 0.5 SECONDS
// Mech Scattershot

View File

@@ -514,6 +514,32 @@
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/flechette
name = "Flechette Shotgun Shell (Lethal)"
desc = "A shotgun casing filled with small metal darts. Pokes many tiny holes into meat and kevlar alike. Useful for turning someone's insides \
into outsides."
id = "flechetteshell"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2)
build_path = /obj/item/ammo_casing/shotgun/flechette
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/donkflechette
name = "Donk Co. 'Donk Spike' Flechette Shotgun Shell (Lethal)"
desc = "A shotgun casing filled with small plastic darts. That's right, plastic. Do you really think plastic is that scary? Sure, it would hurt to be \
shot by this, but is it really going to do that much damage? You decide, pal, I'm not your mother. I'm just a computer."
id = "donkshell"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = SMALL_MATERIAL_AMOUNT * 2)
build_path = /obj/item/ammo_casing/shotgun/flechette/donk
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
)
departmental_flags = DEPARTMENT_BITFLAG_SECURITY
/datum/design/suppressor
name = "Suppressor"
desc = "A reverse-engineered suppressor that fits on most small arms with threaded barrels."

View File

@@ -119,3 +119,16 @@
hidden = TRUE
experimental = TRUE
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/donk_shell
id = TECHWEB_NODE_DONK_PRODUCTS
display_name = "Donk Co. Failed Products Schematics"
description = "We don't want to know why you're filling up your databanks with known failed products from an enemy corporation. That's your choice. I'm just saying, don't come crying to us\
when it turns out you've downloaded some kind of horrible donk-pocket related malware that steals your Starscape password. Those bastards over at Donk Co. WILL delete your character."
design_ids = list(
"donkshell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
hidden = TRUE
experimental = TRUE
announce_channels = list(RADIO_CHANNEL_SECURITY)

View File

@@ -90,6 +90,7 @@
"c38_true_strike",
"c38_true_strike_mag",
"techshotshell",
"flechetteshell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_4_POINTS)

View File

@@ -86,6 +86,21 @@
item = /obj/item/ammo_box/magazine/m12g/slug
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
/datum/uplink_item/ammo_nuclear/basic/flechette
name = "12g Flechette Shells (Bulldog)"
desc = "An alternative 8-round flechette magazine for use in the Bulldog shotgun. \
Getting stopped by armor? Why not flechette? Turn meat and kevlar to tatters!"
item = /obj/item/ammo_box/magazine/m12g/flechette
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
/datum/uplink_item/ammo_nuclear/basic/donk
name = "12g Donk Co. 'Donk Spike' Flechette Magazine Box (Bulldog)"
desc = "A whole box of 8-round Donk Co. 'Donk Spike' flechette magazines for use in the \
Bulldog shotgun. Sponsored by the Donk Corporation! A whole box of these magazines for \
the price of one purchase! WARNING: DO NOT SNIFF THE MAGAZINES!"
item = /obj/item/storage/box/syndie_kit/shotgun_surplus
purchasable_from = parent_type::purchasable_from | UPLINK_SPY
/datum/uplink_item/ammo_nuclear/incendiary/dragon
name = "12g Dragon's Breath Drum (Bulldog)"
desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 143 KiB