Files
Bubberstation/code/modules/research/techweb/nodes/security_nodes.dm
necromanceranne e9471b00b0 Adds the NT BR-38 Battle Rifle. A sci-fi hybrid gun, but better than the last attempt. Only SOMETIMES fails at existence. (#88095)
## About The Pull Request

A repeat of the first half of
https://github.com/tgstation/tgstation/pull/86853

The NT BR-38 Battle Rifle is a semi-automatic
railgun...marksman...carbine...rifle...thingy that uses .38 ammunition
and is magazine fed from a 15 round magazine. It comes with a scope, and
is bulky.


![image](https://github.com/user-attachments/assets/456aba07-ba0a-4ad3-993c-7fc2bc1395d6)

Sprites by OrcaCora.

### Some of its features

The gun shoots at a higher than normal velocity for .38. This means it
hits harder (30 damage compared to the standard 25), and flies faster
through the air.

The gun, however, suffers from degradation as it is used. It has a 10
shot buffer before suffering degradation. After the 10 shot buffer, it
has a 10% chance each shot to increase in degradation stage. From stage
1 to stage 5 (the maximum stage), it begins to lose fire rate and
projectile flight speed.

To recalibrate the gun, you can do one of two things; 
A) Use a multitool on the gun. This completely resets the gun, but its
pretty slow.
B) Insert it into a weapon recharger to recharge its buffer and reduce
its degradation stages.

### Some of its downsides

The weapon is EMP vulnerable. If it gets EMP'd, it immediately degrades
and loses any buffer it has. While EMP'd, there is a 75% chance it
doesn't fire when you pull the trigger. This is also true if the gun has
hit maximum degradation. Keep your guns in good shape.

It can be emagged. While emagged, the gun has increased damage (40 for
standard ammunition), but once it hits maximum degradation, it
immediately begins to catastrophically fail. It also degrades
significantly faster while emagged. There is no way to reverse this
effect, and the explosion is extremely lethal.

### Where can I find it? What about ammo?

You can purchase the gun from cargo at a significant premium, as well as
some additional magazines of some basic ammo types.

There is exactly one of these in the armory, and you can print more
magazines from the security protolathe. As research progresses, you can
print different, specialized ammunition for the rifle. (and also the
detective .38 revolver, obviously)

### New .38 ammunition types

True Strike bounces accurately between targets, but deals significantly
less damage than other ammo types (15 base, 18 in this rifle).

It is printed once the station gets Exotic Ammo.

## Why It's Good For The Game

This is a followup on my previous PR, where I tested this weapon and
gathered a whole bunch of feedback on it. Most people quite liked it.
but had some concerns that I feel this addresses.

Much of the justifications given there apply here. Obviously ignoring
anything to do with the combat shotgun removal.

Some stuff obviously has not come back from the original test. Notably,
the TRAC changes were probably a little too powerful. As much as I liked
a default entirely nonlethal ammunition type, TRAC itself is better left
as a late research goal.

In addition, I moved the explosion part to an emag effect. It's funny,
and lends itself to the original intention of the weapon; a callback to
the WT-550 incident. But it isn't a standard part of the guns mechanics.
2024-12-13 19:46:24 +00:00

123 lines
3.5 KiB
Plaintext

/datum/techweb_node/basic_arms
id = TECHWEB_NODE_BASIC_ARMS
starting_node = TRUE
display_name = "Basic Arms"
description = "Ballistics can be unpredictable in space."
design_ids = list(
"toy_armblade",
"toygun",
"c38_rubber",
"c38_rubber_mag",
"c38_sec",
"c38_mag",
"capbox",
"foam_dart",
"sec_beanbag_slug",
"sec_dart",
"sec_Islug",
"sec_rshot",
)
/datum/techweb_node/sec_equip
id = TECHWEB_NODE_SEC_EQUIP
display_name = "Security Equipment"
description = "All the essentials to subdue a mime."
prereq_ids = list(TECHWEB_NODE_BASIC_ARMS)
design_ids = list(
"secdata",
"mining",
"prisonmanage",
"rdcamera",
"seccamera",
"security_photobooth",
"photobooth",
"scanner_gate",
"pepperspray",
"dragnet_beacon",
"inspector",
"evidencebag",
"zipties",
"seclite",
"electropack",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)
/datum/techweb_node/riot_supression
id = TECHWEB_NODE_RIOT_SUPRESSION
display_name = "Riot Supression"
description = "When you are on the opposing side of a revolutionary movement."
prereq_ids = list(TECHWEB_NODE_SEC_EQUIP)
design_ids = list(
"clown_firing_pin",
"pin_testing",
"pin_loyalty",
"tele_shield",
"ballistic_shield",
"handcuffs_s",
"bola_energy",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)
/datum/techweb_node/explosives
id = TECHWEB_NODE_EXPLOSIVES
display_name = "Explosives"
description = "For once, intentional explosions."
prereq_ids = list(TECHWEB_NODE_RIOT_SUPRESSION)
design_ids = list(
"large_grenade",
"adv_grenade",
"pyro_grenade",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
required_experiments = list(/datum/experiment/ordnance/explosive/lowyieldbomb)
announce_channels = list(RADIO_CHANNEL_SECURITY, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/exotic_ammo
id = TECHWEB_NODE_EXOTIC_AMMO
display_name = "Exotic Ammunition"
description = "Specialized bullets designed to ignite, freeze, and inflict various other effects on targets, expanding combat capabilities."
prereq_ids = list(TECHWEB_NODE_EXPLOSIVES)
design_ids = list(
"c38_hotshot",
"c38_hotshot_mag",
"c38_iceblox",
"c38_iceblox_mag",
"c38_trac",
"c38_trac_mag",
"c38_true_strike",
"c38_true_strike_mag",
"techshotshell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
discount_experiments = list(/datum/experiment/ordnance/explosive/highyieldbomb = TECHWEB_TIER_4_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)
/datum/techweb_node/electric_weapons
id = TECHWEB_NODE_ELECTRIC_WEAPONS
display_name = "Electric Weaponry"
description = "Energy-based weaponry designed for both lethal and non-lethal applications."
prereq_ids = list(TECHWEB_NODE_RIOT_SUPRESSION)
design_ids = list(
"stunrevolver",
"ioncarbine",
"temp_gun",
"lasershell",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)
/datum/techweb_node/beam_weapons
id = TECHWEB_NODE_BEAM_WEAPONS
display_name = "Advanced Beam Weaponry"
description = "So advanced, even engineers are baffled by its operational principles."
prereq_ids = list(TECHWEB_NODE_ELECTRIC_WEAPONS)
design_ids = list(
"xray_laser",
"nuclear_gun",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
announce_channels = list(RADIO_CHANNEL_SECURITY)