Commit Graph
168 Commits
Author SHA1 Message Date
+37 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00
nevimer 00ccf0c6b5 Merge remote-tracking branch 'tgstation/master' into upstream-feb12-2026
# Conflicts:
#	.github/CODEOWNERS
#	.github/workflows/compile_changelogs.yml
#	.github/workflows/stale.yml
#	SQL/database_changelog.md
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/__DEFINES/atom_hud.dm
#	code/__DEFINES/inventory.dm
#	code/__DEFINES/mobs.dm
#	code/__DEFINES/species_clothing_paths.dm
#	code/__DEFINES/subsystems.dm
#	code/__DEFINES/surgery.dm
#	code/__HELPERS/global_lists.dm
#	code/_globalvars/lists/maintenance_loot.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/minor_mapping.dm
#	code/controllers/subsystem/processing/quirks.dm
#	code/controllers/subsystem/shuttle.dm
#	code/datums/components/palette.dm
#	code/datums/components/surgery_initiator.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/hud.dm
#	code/datums/mood.dm
#	code/datums/mutations/chameleon.dm
#	code/datums/quirks/negative_quirks/nyctophobia.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/slime/slime_leech.dm
#	code/datums/weather/weather.dm
#	code/game/data_huds.dm
#	code/game/objects/items.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/frog_statue.dm
#	code/game/objects/items/rcd/RLD.dm
#	code/game/objects/items/robot/items/hypo.dm
#	code/game/objects/items/stacks/medical.dm
#	code/game/objects/items/stacks/wrap.dm
#	code/game/objects/items/storage/garment.dm
#	code/game/objects/items/tools/medical/defib.dm
#	code/game/objects/items/weaponry.dm
#	code/game/objects/items/weaponry/melee/misc.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/game/objects/structures/curtains.dm
#	code/game/objects/structures/dresser.dm
#	code/game/objects/structures/girders.dm
#	code/game/objects/structures/maintenance.dm
#	code/game/objects/structures/mirror.dm
#	code/modules/admin/greyscale_modify_menu.dm
#	code/modules/admin/verbs/light_debug.dm
#	code/modules/antagonists/ashwalker/ashwalker.dm
#	code/modules/antagonists/heretic/knowledge/starting_lore.dm
#	code/modules/antagonists/ninja/ninjaDrainAct.dm
#	code/modules/art/paintings.dm
#	code/modules/client/preferences.dm
#	code/modules/client/verbs/ooc.dm
#	code/modules/clothing/head/wig.dm
#	code/modules/events/disease_outbreak.dm
#	code/modules/holodeck/holo_effect.dm
#	code/modules/jobs/job_types/head_of_security.dm
#	code/modules/jobs/job_types/security_officer.dm
#	code/modules/library/skill_learning/generic_skillchips/point.dm
#	code/modules/mining/lavaland/ash_flora.dm
#	code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/basic/guardian/guardian.dm
#	code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm
#	code/modules/mob/living/carbon/carbon.dm
#	code/modules/mob/living/carbon/human/human.dm
#	code/modules/mob/living/carbon/human/human_defines.dm
#	code/modules/mob/living/carbon/life.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob/living/living_defines.dm
#	code/modules/mob/mob.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mod/mod_control.dm
#	code/modules/mod/modules/modules_general.dm
#	code/modules/modular_computers/computers/item/computer_ui.dm
#	code/modules/paperwork/paper.dm
#	code/modules/paperwork/paperbin.dm
#	code/modules/power/lighting/light.dm
#	code/modules/projectiles/guns/energy/kinetic_accelerator.dm
#	code/modules/projectiles/projectile.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/food_reagents.dm
#	code/modules/reagents/chemistry/reagents/other_reagents.dm
#	code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
#	code/modules/research/xenobiology/crossbreeding/_clothing.dm
#	code/modules/research/xenobiology/crossbreeding/prismatic.dm
#	code/modules/surgery/advanced/brainwashing.dm
#	code/modules/surgery/advanced/lobotomy.dm
#	code/modules/surgery/amputation.dm
#	code/modules/surgery/blood_filter.dm
#	code/modules/surgery/bodyparts/_bodyparts.dm
#	code/modules/surgery/brain_surgery.dm
#	code/modules/surgery/cavity_implant.dm
#	code/modules/surgery/coronary_bypass.dm
#	code/modules/surgery/gastrectomy.dm
#	code/modules/surgery/healing.dm
#	code/modules/surgery/limb_augmentation.dm
#	code/modules/surgery/organ_manipulation.dm
#	code/modules/surgery/revival.dm
#	code/modules/surgery/sleeper_protocol.dm
#	code/modules/surgery/surgery_helpers.dm
#	code/modules/surgery/surgery_step.dm
#	code/modules/unit_tests/_unit_tests.dm
#	code/modules/unit_tests/designs.dm
#	code/modules/unit_tests/icon_state_worn.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body.png
#	code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png
#	icons/map_icons/clothing/head/_head.dmi
#	icons/map_icons/clothing/shoes.dmi
#	icons/map_icons/items/_item.dmi
#	icons/mob/huds/hud.dmi
#	icons/mob/inhands/64x64_lefthand.dmi
#	icons/mob/inhands/64x64_righthand.dmi
#	icons/obj/machines/computer.dmi
#	tgui/packages/tgui/interfaces/OperatingComputer.jsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx
#	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
#	tgui/packages/tgui/interfaces/SurgeryInitiator.tsx
#	tools/icon_cutter/check.py
2026-02-12 23:50:09 -05:00
6916730eca Ballista adjustments (#94724)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2026-01-15 20:45:43 +00:00
47606e453e Siege Warfare: Adds two new craftable emplaced guns, a bigger laser musket, and a new spear for crew-sided mining. (#94102)
<img width="517" height="305" alt="image"
src="https://github.com/user-attachments/assets/e8cd8bcd-dd3c-4733-99fe-0cdfb9799182"
/>

So, been a while, hasn't it? This PR adds three things. First Up: The
Ratvarian Repeater.


![side](https://github.com/user-attachments/assets/cdbadfad-29a9-4e32-b1b6-85872db94143)

The Ratvarian repeater is a mounted gun made from bronze, stock parts,
and some drinking glasses. it is the emplaced counterpart to the laser
musket, as the pipe organ gun is to the crossbow. Being a laser musket
derivative, this means it has the benefit of _infinite ammo._ However,
this also means to reload it, you turn the crank on the back. My
personal headcanon was it works via a spring mechanism not unlike a
watch, so naturally, it turned into a clock-cult flavored weapon. Each
individual volley per winding shoots 12 laser musket shots in bursts of
two.


https://github.com/user-attachments/assets/152c3ce8-3560-4c8a-b618-7f2d81fb75a0

However, this isnt the only thing it's capable of. If you prefer your
weapons more iconoclastic, you can take a welder to the stand, and carry
it around, for the ability to shoot two laser musket shots instead of
one per trigger pull... with the price being a decreased movespeed, and
the second shot having random spread. Also you cant redeploy the stand,
because iconoclasm. Still, the power is there, if you desire it.

Overall, the repeater is the "Expensive but reliable" option of the
three craftable gun emplacements. It has the most work to get, but once
you have it, theres no need for ammo.


On the complete opposite side of the coin, we have the Improvised
Ballista.


https://github.com/user-attachments/assets/16262965-a860-4205-bc3e-eeb8ec593647

This thing is as cheap as it gets - taking iron and wire to make (plus
tools), and fires the classic spears greytiders love for 80 damage. This
sounds like a lot (and it is), but once the ballista has fired - that's
it, and reloading a second spear takes a full six seconds. Of the four
emplaced guns, it has the least damage per firing sequence, but has all
that damage in one big projectile. The ballista overall is designed to
be dirt cheap to make and generally useful, but requiring a lot of work
to keep running.



And lastly, we have the Giant-killer spear. 
<img width="417" height="287" alt="image"
src="https://github.com/user-attachments/assets/613379aa-379c-40b3-b4fc-ccdaa5ea4678"
/>

Crafted from titanium, plasteel and seven knives, and then forged by
throwing it into lava this monstrously oversized spear is designed to
fight monstrously oversized... monsters. While only doing 21 damage when
wielded, this damage is multiplied by 3.5 against lavaland fauna,
dealing damage equal to a crusher mark detonation. However, despite the
ease of use, it lacks the ability to mount trophies like the crusher, so
is much more suited to killing basic enemies like legions or goliaths,
rather than megafauna. (It still does decently versus them, but youre
prone to just dying.) Additionally, due to lacking the requirements of
mining access or lavaland monsters, it can be made by the crew at large,
providing them a meaningful defense on lavaland/icemoon. It can also be
loaded into the ballista, so you can, if you desire, show those
ashwalkers how the dark ages were REALLY fought.

<img width="202" height="236" alt="image"
src="https://github.com/user-attachments/assets/d21a7275-3d9e-427b-ac14-fee080541fb5"
/>

This PR has been six months in the making, so it feels good to finally
get it out.

Why its good for the game: Similar logic to my previous improvised
weapon prs; I feel the dichotomy of "High tech laser rifle" and "Gun
made from stuff lying around" is an interesting one. Of the damage
values, the only one that has the potential for a balance issue is the
spear, but due to being basically a plastitanium spear that does better
versus mining mobs, I don't forsee this becoming a weapon that you can
arm an entire revolution with.

## Changelog

🆑 Webcomicartist
add: Added the ratvarian repeater, a craftable emplaced crank laser
weapon that can be carried by hand, themed after clock cult.
add: Added the improvised ballista, the rebar crossbow's bigger brother,
that fires spears. Huge damage, terrible fire rate.
add: Added the giant-slayer spear, a spear made at a necropolis tendril
that does extra damage to lavaland creatures. (Ballista compatible)
image: added sprites for the above.
qol: The pipe organ gun should be easier to light now.
fix: Fixed Pipe Organ Gun firing sprites not always going back to normal
after finishing firing.
refactor: Mounted guns are now EVEN MORE flexible codewise, now
supporting secondary ammo types.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2025-12-21 03:03:54 +00:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
Joshua KidderandGitHub 7a3ad79506 All camelCase (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case. UNDERSCORES RULE! (#94111)
## About The Pull Request
It's just a partial cleanup of
anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md)
code from /tg/'s ancient history. I compiled & tested with my helpful
assistant and damage is still working.

<img width="1920" height="1040" alt="image"
src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3"
/>


I'll upload the .cs script I used to do it shortly.

## Why It's Good For The Game
Just minor code cleanup.

Script used is located at https://metek.tech/camelTo-Snake.7z

EDIT 11/23/25: Updated the script to use multithreading and sequential
scan so it works a hell of a lot faster
```
/*
//
Copyright 2025 Joshua 'Joan Metekillot' Kidder

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
//
*/
using System.Text.RegularExpressions;
class Program
{
    static async Task Main(string[] args)
    {
        var readFile = new FileStreamOptions
        {
            Access = FileAccess.Read,
            Share = FileShare.ReadWrite,
            Options = FileOptions.Asynchronous | FileOptions.SequentialScan
        };
        FileStreamOptions writeFile = new FileStreamOptions
        {
            Share = FileShare.ReadWrite,
            Access = FileAccess.ReadWrite,
            Mode = FileMode.Truncate,
            Options = FileOptions.Asynchronous
        };
        RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled;
        Dictionary<string, int> changedProcs = new();
        string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*";
        Regex camelCaseProcRegex = new(regexPattern, regexOptions);

        string snakeify(Match matchingRegex)
        {
            var vals =
            matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray();
            var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower();
            string logString = $"{vals[0]} => {newVal}";
            if (changedProcs.TryGetValue(logString, out int value))
            {
                changedProcs[logString] = value + 1;
            }
            else
            {
                changedProcs.Add(logString, 1);
            }
            return newVal;
        }
        var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>();

        // uses default ParallelOptions
        // https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main
        await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) =>
        {
            var reader = new StreamReader(filePath, readFile);
            string oldContent = await reader.ReadToEndAsync();
            string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify));
            if (oldContent != newContent)
            {
                var writer = new StreamWriter(filePath, writeFile);
                await writer.WriteAsync(newContent);
                await writer.DisposeAsync();
            }
            reader.Dispose();
        });
        var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList();
        foreach (var pair in logToList)
        {
            Console.WriteLine($"{pair.Key}: {pair.Value} locations");
        }
    }
}

```

## Changelog
🆑 Bisar
code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use
snake_case, in-line with the STYLE guide. Underscores rule!
/🆑
2025-11-27 15:50:23 -05:00
Roxy 71faa643bf Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-12 2025-11-12 16:44:13 -05:00
Aliceee2chandGitHub 8ee1cd2474 Makes EMP logs less bad (#93841)
## About The Pull Request

closes #93805

## Why It's Good For The Game

we actually have almost no emp logging at all lol, not even emp chem
reaction, so you barely can track potential griefer?

## Changelog

🆑
admin: EMP logs are improved, additionally chemical EMP reactions are
now logged.
/🆑
2025-11-09 14:46:10 +01:00
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
EspeciallyStrangeandGitHub cc3bcde1c9 True Strike is now also an armour piercing munition (#93642)
## About The Pull Request
So it dawned on me for awhile, we did get true strike and I got to use
it way more, not necessarily after it is available as speedloader but
I've used it for atleast a bit, realized just buying the match mag was
better anyway.

so, true strike sucks for actually bouncing and killing people. and
while 15 damage is nothing to scoff at because any damage is better than
doing no damage at all. It's already well outclassed by it's actual
roundstart counterpart. This fix that, the truestrike ammo is researched
fairly late into the round. Giving it AP make it more useful
## Why It's Good For The Game

I think it make senses we'd want a researched ammo type more effective
than something you can just. Buy? It's not like we don't have tech laser
that are more effective than buckshot for raw damage. This is similar to
that idea
## Changelog
🆑
add: True Strike is also now AP, making detective more scary and BR-38
much more effective against highly armoured target
/🆑
2025-10-29 16:48:48 +01:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
YobrocharlieandGitHub e90c61a00b Lahti l39 (#92812)
## About The Pull Request

A new admin only weapon to kill people.
Scriptis told me he wanted this weapon upstream and mothblocks was like
"sure whatever"
see
https://discord.com/channels/326822144233439242/326831214667235328/1410700500550291619

## Why It's Good For The Game

Lets admins hit people with a gun that shoots a really big bullet, its
therapeutic
<img width="270" height="148" alt="image"
src="https://github.com/user-attachments/assets/020e2bc2-2d96-44eb-bafe-d34b82f71e93"
/>
<img width="205" height="150" alt="image"
src="https://github.com/user-attachments/assets/2c550ca5-7d5c-4fe2-a483-c4b229a2c31f"
/>
IRL comparison taken from some guys YT video
<img width="259" height="194" alt="image"
src="https://github.com/user-attachments/assets/4a536c4d-15ad-4ba4-9137-c2d5e106445e"
/>


## Changelog

3 new files and one dependent new sniper rifle which is worse than the
other sniper rifle and one new lahti-l39

🆑
add: Added the Lahti-L39 rifle
/🆑
2025-09-21 14:38:32 +02:00
61031f6cfb Skyrat gun removal (#3697)
## About The Pull Request
HackMD: https://hackmd.io/@Ssalty/r1wjAgSxll
Ammo removals:
IHDF
Rubber (non-.38, non-shotgun, nukie ones stay since it'd require
overrides. They were never purchasable to begin with.)
Stardust
Magnum
Express
.460 Rowland
.457 Government
MCR magazines
.40 Sol
Hornet's nest


Gun removals:
MCR's
.457 revolver
M4A5
.460 Rowland revolver
CCK
GP-7
R10 revolver

Guns made inaccessible:
NRI guns (including derringer, bobr, plasmas, Miecz)
Sol35 (Tarkon, sol ERT, gateway, adminspawn)
Sol40 (Tarkon, sol ERT, gateway, adminspawn)
Trappiste caliber (wespe, some already adminspawn weapons)


Turret adjustments:
Twin Fang - 4.6x30mm, 2 Second burst delay (40 dmg every 2 seconds vs 30
dmg every 1.5 seconds (old))
Stinger - 4.6x30mm instead of .35, matching damage
Colonist - .45 added instead of sol40, matching damage
Hoplite - Same as above

Armoury:
Armoury spawned MCRs replaced with laser guns and energy guns
SMG's and rifles with WT
If there would be a case with two separate spawns of a WT, the other is
gone.
Breaching shell boxes do not spawn in the armoury (they were capable of
1 shotting a dark mauler I wish I was kidding)

Lathe:
9mm stendo's, AP, HP, INC magazines not availible for print - the 9mm
murphy magazine is. It fits in 9mm firing turrets and the murphy.


## Why It's Good For The Game

Give me like a couple days and I'll fill this out. I doubt anyone who is
already pro-skyrat-gun will change their mind but it's good to
rationalize the decision regardless.

Find this out as in lay it out on paper. 

EDIT 1:  Adding the first part

# Foreword
This PR is a *draft*. That means a lot of things are subject to change,
a lot of things can be disorganized and a lot of things will be done
unoptimally. Going forwards, do keep in mind, the decision-making
process behind "remove entirely" and "virtually remove" will not be
dependant on us going forwards, as the decision on this matter requires
maintainer input more than any other.

Next, the delay. 
I simply am not a machine, neither are other people onboard this
project. With different timezones, it was important to find what isn't
working so I can relay it to people in working hours.

Without further ado,

## The case of the ammo types and workbench

The ammunitions workbench is a machine that provides ammunition into
clips, refilling them. The ammunition workbench is also the source of a
multitude of alternate ammunition types. It has with itself brought
several issues that at least would warrant a rework or heavy
adjustments:

1. Contraband ammunitions. There is no real reason that the entire
security department, or even a single crewmember should be accessing
phasic weapons in the form of printable ammotypes. The argument of "the
pipegun having it" doesn't do it favours, as the way you get it is an 8%
chance on crafting a junk round for a bulky gun and the only way to find
out if you actually have it is checking each shell individually with a
bandolier.

2. Complimentary with the removals. Most use cases for this machine are
refilling the magazines you can order or get alongside your weapons.
This collides with the protolathe, which sources most of our
upstream-based ammunition instead. With the skyrat weapons gone, this
machine becomes redundant. You may claim that it's still useful in
saving on materials, where you would be right! However is it worth to
have and maintain an entirely separate structure, with it's own
mechanics, map placements, etc. to get a benefit equal to 1.6x more bang
for the buck? At the end of the day, splitting ways of getting ammo
across a single room for something so miniscule compared to the bloat it
adds is pointless.



# The weapons, why should they go, one by one. 

### RomTech Flechette rifles
Compared to a standard laser gun, which is in all means our baseline of
ranged damage in ss13 - being the default armoury weapon, the default
laser for turrets and default laser for mobs. Better yet, let's compare
it to that and the default ballistic option that we have from TG.

What turns out, is that not only is the romtech carbine faster at
killing than the laser, but also rivals the WT with a split second of
difference in ttk in the favour of the romtech. Let's assume it's human
error and the WT is better TTK wise, just as an experiment. Clearly,
there must be a tradeoff, somewhere, right? One that balances them all
out to be equal weapons in the grand scale of things, contemporaries!
Well, no, not really. Not even close.

The carbine can be folded to fit in bags, that's one thing. The carbine
has more ammo, that's another thing. Bursts are harder to dodge than
series shots since they cover more perpendicular ground when attempting
to dodge projectiles, as is staple for ss13 combat. Burst weapons are
advantageous in applying more damage quicker, as you can see on the
videos - and initial damage, an alpha strike, applies movement slowdown,
ensuring future projectiles connect easier and the target cannot run.

It might be a coincidence that the only /tg/ derived weapons that fire
burst are adminspawn ERT or the Nukie weapons.

But it doesn't end here, no, the RomTech's ammunition alone would
warrant a complete overhaul if not a removal.

**steel ball**
<p>
Takes 9 shots to stamcrit, deals mixed damage - further increasing the
amount of slowdown applied, and not only is it MUCH faster at
stamcritting than a disabler is, it also leaves the target with 70
damage. Over half their healthbar. Severely overtuned with little
counterplay availible, alpha strike monster that is better at disabling
than disablers and better at stopping people dead in their tracks than
rifles, and if you look at our anti-stun, we have less than ever on
antagonists with Adrenal implants gone, Adreanaline Glands reworked,
etc, etc...
</p>

**Penetrator**

NT's answer to armour! 
The penetrator has 60 AP and otherwise the same damage as the AP WT
rifle. Meaning it's a straight upgrade. Meaning this weapon invalidates
it's predecessor whilst being orderable roundstart, and not only that,
but it can fully ignore elite modsuits on nukeops. Not every mechanic
has to have a counter, there's no direct counter to someone healing
after a fight, there is no direct counter to having multiple shots, and
there shouldn't be a full nullification of armour for such a low cost.
There shouldn't be one for a crew that can mass produce these, ever.

**Magnesium**

Arguably fine, 12 firestacks per shot is still quite insane for a lower
chance of friendly fire compared to original incediary hot turfs,

**Ripper**

Steel ball, but even worse. They don't embed a single time, ***this
embeds every time***. It takes several seconds to take out. Actually,
let's compare this gun's bullets to ninja stars.

- 2 times the embed chance at 200 vs 100
- 8 times the jostle chance at 80 vs 10
- Comparable fall chance, at 1 vs 0
- More pain stam pct, at 0.9 vs 0.8, meaning more stamina damage
- More pain chance, at 70 vs 15
- Less pain modifier, at 2 vs 5
- Takes longer to take out, 5 seconds vs 3
- Jostling pain is the same

### One problem. There's three of those fired per burst, cannot be
caught either. And the armour pen is the same.

in conclusion, every aspect of this gun is unhealthy for the game, from
it's gimmick, to it's execution, to it's stats, to it's ammo, to it's
consistency, to it's firing mode, to it being able to be currently worn
on sec belts along disablers - up to 4, if I remember correct.

No reworks. It has to go.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>

## Changelog
🆑
del: Removed breaching slugs from crew (not to be confused with
frangible. These ones 1 shot mechs)
del: Removed MCR, .457 revolver, .460 Rowland revolver, GP-7, R10
revolver, M4A5, and their associated ammo types.
del: Removed ammunition types: IHDF, rubber variants excluding
.38/shotgun/nukie, stardust, magnum, express, hornet's nest
del: Made most NRI guns (Miecz, plasma pistol, plasma thrower, bobr,
derringer) and Sol 35/40 (Tarkon, ERT, gateway, adminspawn) inaccessible
to crew, kept for ERT/Gateway/Flavour/Admin reasons
balance: Turrets which use a removed calibre have been adjusted into
either that of the WT's, Ceres (still printable) or 9mm.
balance: WT's replace missing sindanos across armouries, laser guns and
eguns replace the missing MCR's.
/🆑

---------

Co-authored-by: Artur Lang <24881678+Arturlang@users.noreply.github.com>
2025-08-23 20:38:07 +03:00
SmArtKarandRoxy 3992434cb8 Healium bolts now embed and heal/knock out passively over time instead of being instant and unblockable (#91481)
## About The Pull Request

Healium bolts now heal you for 5 of each damage per second for 6 seconds
before falling out, while applying 2 seconds of drowsiness. If you have
at least 5 seconds of drowsiness (after 4 seconds of processing, because
we add 2 and it gets deducted by 1 afterwards) you get knocked out for 3
seconds (similarly to how it worked before, but with 1 additional second
left of processing if you were only shot by one bolt, you end up knocked
out for 4 seconds). It takes 1.5 seconds to rip one out, so you should
be able to react to being shot by one unless the attacker follows it up
with a melee distruption. Bolts that fall out restore their charges, but
only one bolt at a time can be putting the target to sleep.

https://github.com/user-attachments/assets/7936895e-f4dc-4bd6-847f-495c7f1202db

Video is a bit outdated, delay before knockout been bumped by a second.

###### This is a commission for Ezel/Improvedname

## Why It's Good For The Game

Healium bolts are an instant knockout that could be mass-produced to
either instantly win fights, or thrown at medbay to quickly hit corpses
by poking them over and over again as bolts didn't even embed, so
players can instantly reload and shoot them again. It was either making
them harder to produce, or reducing the effects, and former wouldn't
solve the knockout issue.
They also didn't care about block values, so even if you blocked or
reflected one you'd still get knocked out. lol

## Changelog

🆑
balance: Healium bolts now heal and knock out overtime while being
embedded instead of being instant.
balance: Healium bolts dissolve after being embedded for 6 seconds and
don't work on corpses
fix: Healium bolts no longer ignore being blocked/parried/reflected
/🆑
2025-07-04 16:33:02 -04:00
SmArtKarandGitHub c108ef79ac Healium bolts now embed and heal/knock out passively over time instead of being instant and unblockable (#91481)
## About The Pull Request

Healium bolts now heal you for 5 of each damage per second for 6 seconds
before falling out, while applying 2 seconds of drowsiness. If you have
at least 5 seconds of drowsiness (after 4 seconds of processing, because
we add 2 and it gets deducted by 1 afterwards) you get knocked out for 3
seconds (similarly to how it worked before, but with 1 additional second
left of processing if you were only shot by one bolt, you end up knocked
out for 4 seconds). It takes 1.5 seconds to rip one out, so you should
be able to react to being shot by one unless the attacker follows it up
with a melee distruption. Bolts that fall out restore their charges, but
only one bolt at a time can be putting the target to sleep.

https://github.com/user-attachments/assets/7936895e-f4dc-4bd6-847f-495c7f1202db

Video is a bit outdated, delay before knockout been bumped by a second.

###### This is a commission for Ezel/Improvedname

## Why It's Good For The Game

Healium bolts are an instant knockout that could be mass-produced to
either instantly win fights, or thrown at medbay to quickly hit corpses
by poking them over and over again as bolts didn't even embed, so
players can instantly reload and shoot them again. It was either making
them harder to produce, or reducing the effects, and former wouldn't
solve the knockout issue.
They also didn't care about block values, so even if you blocked or
reflected one you'd still get knocked out. lol

## Changelog

🆑
balance: Healium bolts now heal and knock out overtime while being
embedded instead of being instant.
balance: Healium bolts dissolve after being embedded for 6 seconds and
don't work on corpses
fix: Healium bolts no longer ignore being blocked/parried/reflected
/🆑
2025-06-29 13:47:00 +10:00
690bfc04b4 Rebalances wound determination values, wounding escalation and wound armor to hopefully be less explosive (#91099)
This is a big one so please bear with me, wounds are complicated

We've decreased the max contributed damage to wound rolls from 35 to 25.
This results, after the exponent, a max possible wound roll of 1 to 91
before any modifiers (assuming the attack, after armor, is 25 or above).

The minimum value to wound is still 5.

Most wounds were contributing significant numbers per wound type to the
potential for a new wound to occur. Getting wounded once meant you were
getting wound a lot, but actually getting past that first wounding may
be the tricky part.

We have significantly reigned in the wound penalty that having a wound
contributes, and instead utilize the series wound penalty to allow same
type wounds to escalate themselves faster as a priority. Having wounds
still makes you more wound vulnerable, just not to such an extreme
degree.

The priority here for what wounds matter most for contributing to
overall wounding vulnerability is ``Infected BURNS > BURNS >
SLASH|PIERCE > BLUNT.``

Wound armor, unlike all other kinds of armor, was used as a additive
value to the wound roll modifiers rather than a multiplicative value.

We have reworked how wound armor is determined by changing how wound
modifiers are calculated.

Firstly, we're passing our entire injury roll into the
``check_woundings_mod()`` proc, as we're not treating this as a proc
that just adds values anymore.

Secondly, bare wound bonus only applies if there is no potential wound
protection from any source, as expected. But it comes last in the
calculations.

Thirdly, wound protection is applied to the injury roll last, after
wound bonuses from the attack, wound bonuses from other wounds and wound
bonuses from a disabled limb are applied. This does not include serial
wound bonuses, which are determined outside of this proc.

Wound protection comes from two sources. Clothing and limb wound
resistance. Your chest and head have an amount of wound resistance so
long as they are not mangled in any fashion. Being mangled means having
either a hairline fracture or a weeping avulsion wound.

Wound protection reduces the final injury roll by a percentage. Say our
roll is 50, and we have effectively 50% wound protection. The final roll
would be 25.

~~Most clothing have had their wound armor values changed. As a loose
rule, I used the highest of melee or bomb armor, except where that value
was 100, in which case I used the lowest instead. I'm basing this
decision on how embeds are calculated, which is attack type agnostic.~~

~~Some armor have inconsistent values because they are alternative
armors to an existing armor type or are hyperspecialized armor.
Ablative, bulletproof and security vests all share a value of 35,
despite the former two not having decent melee or bomb armor.~~

~~Some clothing missing wound armor that should have had them now have
wound armor.~~

~~This may need a bit of scrutiny in case one or two seem weirdly high.
Some have maybe become too low. Its a bit hard to say.~~

I changed it to ``exposed_wound_bonus`` to better represent when it
applies. You can be naked and still not be affected by this bonus if the
limb has wound resistance.

I'm not promising anything with this PR, but this is an attempt to
sanity check the values on wounds so that we're not seeing what the data
that determined the removal of beheading presented. An extreme
over-representation of tier 3 wounds. ~~And, from that, maybe I can
argue for beheadings coming back. That's my goal. I think beheadings
happened so much because the numbers were in need of work.~~ Well okay I
just wanna make wounds a bit more workable actually more than I want
beheadings.

Why is it that tier 3 wounds were so over-represented? Because wounds
will often force more severe wounds of other types by merit of any
wounds existing at all on a limb. Having **_a_** wound makes you more
wound prone for any kind of wound, and not just making you more likely
to suffer a more severe type of the same wound.

The threshold mechanic was intended to simulate making a wound worse,
but oddly just made a limb broadly more prone to getting worse from any
kind of attack to such a degree that future wound rolls of different
types were often going to start at the threshold necessary to be a tier
3 wound.

Dismemberment, mind you, requires you to suffer a flesh wound while you
have a bone wound of tier 2 or higher (with tier 3 giving a bonus to
this). You can do this readily via just a sharp weapon, because having a
mangled limb causes the wound to turn into a bone wound. Technically,
this is meant to be less likely as the effective damage for this wound
is halved. But the wound bonus from having a flesh wound was almost
always significant enough to kick your new bone wound up to a tier 3.

In other words; its not surprising that you saw so many beheadings,
because the system wanted to behead you as fast as it possibly can
thanks to all these escalating values.

Wound armor was only applied as a flat reduction on the roll. The
average for wound armor was 10. After receiving a single wound, you can
expect wound rolls to reach upwards of 100, even if the actual damage
roll was not particularly high, due to wound stacking bonuses form being
wounded.

This meant that wounds, if they happened, came thick and fast after the
first, regardless of what your protection might be to wounds. It was
just a matter of getting past the initial bump.

This is why effects that forced wounds were so powerful. They basically
made a given limb more prone to taking a wound without having to deal
with the protection problem first.

Finally, this is just a broad flaw with the system that is not its
fault. It is actually a problem that isn't a problem. Most people in the
game are not wearing helmets that protect their head. So most people are
going to suffer from a higher proclivity of being wounded if people are
aiming for the head. There is this...kind of cargo cult belief that
aiming for the head means you do more damage, or can stun someone if
you're lucky or what have you. It's entirely nonsense, but it has a
grain of truth in that people rarely wear, or even have access too,
headwear that provides wound protection or any protection at all. People
have jumpsuits, which are universally wound protected, but that isn't
true of the head. Look, the point is, they're not aiming at the head
because it is usually less armored, its for other reasons but it just so
happens to become true due to wounds and how wounds roll their type.

To soften this issue, I've decided to treat wound resistance as armor
until the limb suffers a tier 3 wound. This way, hits to the head MAY
not necessarily escalate to tier 3 instantly as they would on live even
from relatively low power weapons. Some weapons have very low force, but
have extreme bare wound bonuses. This should be less likely after this
change. I doubt this will necessarily make high damage high wound
weapons like energy swords any less prone to cutting you clean open, but
it might thanks to the reduction to contributed damage to the injury
roll. The system is now _a bit more random_.

🆑
balance: Wounds do not make you as vulnerable to suffering wounds of all
types as before. Instead, wounds make you more vulnerable to suffering
worse versions of themselves as a priority.
balance: Wound armor is now more impactful when protecting you from
wounds when you have already been wounded.
balance: Your head and chest are more difficult to wound until they have
been mangled; either from suffering from a weeping avulsion or a
hairline fracture.
code: Changed the variable for bare_wound_bonus to exposed_wound_bonus
to better explain what that variable is doing.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2025-06-21 22:32:18 -04:00
57624ca1e2 Rebalances wound determination values, wounding escalation and wound armor to hopefully be less explosive (#91099)
## About The Pull Request

This is a big one so please bear with me, wounds are complicated

### Max Potential Wound Rolls

We've decreased the max contributed damage to wound rolls from 35 to 25.
This results, after the exponent, a max possible wound roll of 1 to 91
before any modifiers (assuming the attack, after armor, is 25 or above).

The minimum value to wound is still 5.

### Wound Escalation Penalties

Most wounds were contributing significant numbers per wound type to the
potential for a new wound to occur. Getting wounded once meant you were
getting wound a lot, but actually getting past that first wounding may
be the tricky part.

We have significantly reigned in the wound penalty that having a wound
contributes, and instead utilize the series wound penalty to allow same
type wounds to escalate themselves faster as a priority. Having wounds
still makes you more wound vulnerable, just not to such an extreme
degree.

The priority here for what wounds matter most for contributing to
overall wounding vulnerability is ``Infected BURNS > BURNS >
SLASH|PIERCE > BLUNT.``

### Wound Armor

Wound armor, unlike all other kinds of armor, was used as a additive
value to the wound roll modifiers rather than a multiplicative value.

We have reworked how wound armor is determined by changing how wound
modifiers are calculated.

Firstly, we're passing our entire injury roll into the
``check_woundings_mod()`` proc, as we're not treating this as a proc
that just adds values anymore.

Secondly, bare wound bonus only applies if there is no potential wound
protection from any source, as expected. But it comes last in the
calculations.

Thirdly, wound protection is applied to the injury roll last, after
wound bonuses from the attack, wound bonuses from other wounds and wound
bonuses from a disabled limb are applied. This does not include serial
wound bonuses, which are determined outside of this proc.

Wound protection comes from two sources. Clothing and limb wound
resistance. Your chest and head have an amount of wound resistance so
long as they are not mangled in any fashion. Being mangled means having
either a hairline fracture or a weeping avulsion wound.

Wound protection reduces the final injury roll by a percentage. Say our
roll is 50, and we have effectively 50% wound protection. The final roll
would be 25.

### ~~Wound Armor on Clothing~~ Reverted

~~Most clothing have had their wound armor values changed. As a loose
rule, I used the highest of melee or bomb armor, except where that value
was 100, in which case I used the lowest instead. I'm basing this
decision on how embeds are calculated, which is attack type agnostic.~~

~~Some armor have inconsistent values because they are alternative
armors to an existing armor type or are hyperspecialized armor.
Ablative, bulletproof and security vests all share a value of 35,
despite the former two not having decent melee or bomb armor.~~

~~Some clothing missing wound armor that should have had them now have
wound armor.~~

~~This may need a bit of scrutiny in case one or two seem weirdly high.
Some have maybe become too low. Its a bit hard to say.~~

### The ``bare_wound_bonus`` variable

I changed it to ``exposed_wound_bonus`` to better represent when it
applies. You can be naked and still not be affected by this bonus if the
limb has wound resistance.

## Why It's Good For The Game

I'm not promising anything with this PR, but this is an attempt to
sanity check the values on wounds so that we're not seeing what the data
that determined the removal of beheading presented. An extreme
over-representation of tier 3 wounds. ~~And, from that, maybe I can
argue for beheadings coming back. That's my goal. I think beheadings
happened so much because the numbers were in need of work.~~ Well okay I
just wanna make wounds a bit more workable actually more than I want
beheadings.

Why is it that tier 3 wounds were so over-represented? Because wounds
will often force more severe wounds of other types by merit of any
wounds existing at all on a limb. Having **_a_** wound makes you more
wound prone for any kind of wound, and not just making you more likely
to suffer a more severe type of the same wound.

The threshold mechanic was intended to simulate making a wound worse,
but oddly just made a limb broadly more prone to getting worse from any
kind of attack to such a degree that future wound rolls of different
types were often going to start at the threshold necessary to be a tier
3 wound.

Dismemberment, mind you, requires you to suffer a flesh wound while you
have a bone wound of tier 2 or higher (with tier 3 giving a bonus to
this). You can do this readily via just a sharp weapon, because having a
mangled limb causes the wound to turn into a bone wound. Technically,
this is meant to be less likely as the effective damage for this wound
is halved. But the wound bonus from having a flesh wound was almost
always significant enough to kick your new bone wound up to a tier 3.

In other words; its not surprising that you saw so many beheadings,
because the system wanted to behead you as fast as it possibly can
thanks to all these escalating values.

Wound armor was only applied as a flat reduction on the roll. The
average for wound armor was 10. After receiving a single wound, you can
expect wound rolls to reach upwards of 100, even if the actual damage
roll was not particularly high, due to wound stacking bonuses form being
wounded.

This meant that wounds, if they happened, came thick and fast after the
first, regardless of what your protection might be to wounds. It was
just a matter of getting past the initial bump.

This is why effects that forced wounds were so powerful. They basically
made a given limb more prone to taking a wound without having to deal
with the protection problem first.

Finally, this is just a broad flaw with the system that is not its
fault. It is actually a problem that isn't a problem. Most people in the
game are not wearing helmets that protect their head. So most people are
going to suffer from a higher proclivity of being wounded if people are
aiming for the head. There is this...kind of cargo cult belief that
aiming for the head means you do more damage, or can stun someone if
you're lucky or what have you. It's entirely nonsense, but it has a
grain of truth in that people rarely wear, or even have access too,
headwear that provides wound protection or any protection at all. People
have jumpsuits, which are universally wound protected, but that isn't
true of the head. Look, the point is, they're not aiming at the head
because it is usually less armored, its for other reasons but it just so
happens to become true due to wounds and how wounds roll their type.

To soften this issue, I've decided to treat wound resistance as armor
until the limb suffers a tier 3 wound. This way, hits to the head MAY
not necessarily escalate to tier 3 instantly as they would on live even
from relatively low power weapons. Some weapons have very low force, but
have extreme bare wound bonuses. This should be less likely after this
change. I doubt this will necessarily make high damage high wound
weapons like energy swords any less prone to cutting you clean open, but
it might thanks to the reduction to contributed damage to the injury
roll. The system is now _a bit more random_.

## Changelog
🆑
balance: Wounds do not make you as vulnerable to suffering wounds of all
types as before. Instead, wounds make you more vulnerable to suffering
worse versions of themselves as a priority.
balance: Wound armor is now more impactful when protecting you from
wounds when you have already been wounded.
balance: Your head and chest are more difficult to wound until they have
been mangled; either from suffering from a weeping avulsion or a
hairline fracture.
code: Changed the variable for bare_wound_bonus to exposed_wound_bonus
to better explain what that variable is doing.
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2025-06-19 17:49:59 +02:00
necromanceranneandRoxy 01037d0838 {NO GBP} Reduces stamina damage from rubbershot by a single point per pellet. (#91119)
## About The Pull Request

Reduces rubbershot pellets from 11 stamina damage to 10 stamina damage.

## Why It's Good For The Game

So fun fact. Stamina crit threshold is particularly generous about when
it tips you over into stamina crit.

Fired from a combat shotgun, rubbershot would deal 99 stamina damage at
point blank. Resulting in you entering stamina crit if you didn't have
any armor at all.

By reducing this by exactly one point, this no longer happens. 

This is another PR I was reluctant to do but honestly, this change was
recent enough that I frankly do hold a lot more of the blame for it. A
few steps back isn't going to hurt anyone. These things still spew
damage at whatever you point them at.

"But Anne, what about rubbershot in riot shotguns!"

It did 66 stamina damage total. At 60 damage, you can still slow down
someone in a sec vest with a point blank shot. For the most part, it
will probably be completely unnoticeable for the riot shotgun. I don't
even know why it was an uneven number to be completely honest with you.
2025-05-22 21:17:01 -04:00
necromanceranneandGitHub 2f415a5735 {NO GBP} Reduces stamina damage from rubbershot by a single point per pellet. (#91119)
## About The Pull Request

Reduces rubbershot pellets from 11 stamina damage to 10 stamina damage.

## Why It's Good For The Game

So fun fact. Stamina crit threshold is particularly generous about when
it tips you over into stamina crit.

Fired from a combat shotgun, rubbershot would deal 99 stamina damage at
point blank. Resulting in you entering stamina crit if you didn't have
any armor at all.

By reducing this by exactly one point, this no longer happens. 

This is another PR I was reluctant to do but honestly, this change was
recent enough that I frankly do hold a lot more of the blame for it. A
few steps back isn't going to hurt anyone. These things still spew
damage at whatever you point them at.

"But Anne, what about rubbershot in riot shotguns!"

It did 66 stamina damage total. At 60 damage, you can still slow down
someone in a sec vest with a point blank shot. For the most part, it
will probably be completely unnoticeable for the riot shotgun. I don't
even know why it was an uneven number to be completely honest with you.
2025-05-16 16:52:07 -05:00
necromanceranneandShadow-Quill 0dec947cf0 Significantly tones down the embed probability of flechette rounds (#90784) 2025-04-29 18:33:35 -06:00
necromanceranneandGitHub c1c6c5d5b9 Significantly tones down the embed probability of flechette rounds (#90784) 2025-04-29 13:53:27 +02:00
Roxy b905c4e81a Fix runtime related to pea bullets (#90862)
## About The Pull Request

The peashooter and probably gatfruit runtimes every time a bullet hits
because it tries to `&` a datum and a number

## Why It's Good For The Game

Bug fix

## Changelog

🆑
fix: fixed a runtime related to pea bullet impacts
/🆑
2025-04-28 18:53:43 -04:00
RoxyandGitHub 66be0ce547 Fix runtime related to pea bullets (#90862)
## About The Pull Request

The peashooter and probably gatfruit runtimes every time a bullet hits
because it tries to `&` a datum and a number

## Why It's Good For The Game

Bug fix

## Changelog

🆑
fix: fixed a runtime related to pea bullet impacts
/🆑
2025-04-28 18:01:08 +02:00
MrMelbertandGitHub d8455d6636 Makes some bullet embeds bullet embeds (#90104)
## About The Pull Request

Subtyping bullet for futureproofing.

(These specific bullets didn't get `stealthy_embed`)

## Changelog

🆑 Melbert
fix: Some niche bullets are now hidden when embedded
/🆑
2025-03-19 19:41:09 +00:00
df3d6a31ca 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>
2025-03-19 08:01:22 +01:00
SmArtKarandGitHub 50ed8cbb52 Fixes most mining mobs being unaffected by additional damage against them (#89682)
## About The Pull Request

#89619 introduced a MOB_MINING biotype which allows us to get rid of
jank that the ismining() macro was. This fixes soulscythes, cursed
katanas, mining bombs, strongarm implants and junk hunter bullets not
getting their buffs against a good chunk of mining fauna.

Closes #89597

## Why It's Good For The Game

You'd expect items explicitly designed against fauna to actually fare
well against it.

## Changelog
🆑
fix: Fixed most mining mobs being unaffected by additional damage
against them
/🆑
2025-03-07 19:20:17 -08:00
SmArtKarandGitHub 7f15e11993 Adds a new syringe gun mode and improves foam darts. (#89510)
## About The Pull Request

This PR implements multiple new features:

Foam darts now can stick to people as long as their cap isn't removed.
Riot foam darts have a chance to jostle when you move with one stuck
inside of you, dealing a bit of stamina damage from the weight stuck to
your limbs.

Syringe guns received a second "low power" mode, toggleable with in-hand
right click. In this mode, syringes fired will embed into their target
and slowly leak their reagents instead of instantly delivering them.
Thankfully, they can be plucked out pretty quickly.

You can also insert syringes into uncapped (screwdriver-ed) foam darts
(similarly to pens) to achieve the same result, allowing you to get a
bootleg low-efficiency syringe gun.

Additionally, I fixed/cleaned up some embedding issues/code which I
found while coding this.

## Why It's Good For The Game

This allows players to explore new funny interactions between items and
chems, as we don't have a reliable slow release mechanism aside from IV
drips currently. And foam darts embedding it just (mostly) harmless
fluff, if someone figures out a way to cause havoc with it then I'll be
very proud of them (someone totally will).

## Changelog
🆑
add: Foam darts now stick to people when they have their cap on, riot
foam darts also can passively deal a bit of stamina damage when you move
with one.
add: Syringes can be inserted into foam darts, making them embed and
slowly leak their reagents into their victim.
add: Syringe guns can be toggled (with right click) between high power
and low power modes, former being their normal functionality and latter
making syringes embed and slowly leak their contents.
fix: Fixed projectiles sometimes not embedding when they should've
code: Cleaned embedding code up
/🆑
2025-03-01 22:52:19 +11:00
SmArtKarandGitHub 894d21e64f Improves hitscan projectile chunking (#89616)
## About The Pull Request

Hitscan projectiles that run out of dedicated tick time before they hit
anything abort their movement, ensuring that firing an emitter beam into
space won't cause horrible lag. However, most hitscans also have icons
and have visible (albeit unanimated) movement in such a case, making it
look like projectile code is exploding as tracers appear only after a
rather visible and tangible projectile hits its target.

This PR resolves the issue by making hitscans "chunk" their trails in
such cases, ensuring that they always look like actual hitscans. Video
below has an artificial speed cap on hitscans, to showcase how it'd look
during extreme lag.


https://github.com/user-attachments/assets/eeac034d-d08e-45b0-b7d2-8589376f1c7d

Also some minor hitscan code improvements because I can.

## Changelog
🆑
fix: Hitscan projectiles like emitter beams should look less weird
during extreme lag spikes
/🆑
2025-02-23 10:14:24 +01:00
d7130a4598 Make slips eligible for shove stuns (#89313)
## About The Pull Request

Adds slips to the list of existing shove stun methods originally set in
https://github.com/tgstation/tgstation/pull/84640 (wall shoves,
telebaton, mansus grasp), and also reifies this concept as the "dazed"
status effect.

This makes it so that being knocked down from a slip from any source
(e.g. wet floor, clown stuff, lube, foam, oil, butterdog) gives the
dazed visual effect and makes you eligible for being shove stunned. The
status always lasts for 3 seconds even if e.g. slipping on lube knocks
you down for 15, but this can be customized per slip.

## Why It's Good For The Game

Further rewards environmental play and provides another feasible means
of fighting back against better equipped opponents, both in line with
the original PR. Also the visual cue fits well as an immediate signal
that you're dazed and can't get up.

## Changelog
🆑
balance: slips now make you eligible for being shove stunned
/🆑

---------

Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
2025-02-06 15:37:22 +11:00
necromanceranneandGitHub 85707b3459 Cargo can source lethal shotgun shells at a premium via Imports. Rebalances shotgun shells. (#89125) 2025-01-24 22:03:59 +00:00
SmArtKarandGitHub 3499727a6d Implements datumized embedding handlers in place of element-component-datum triad (#88511)
## About The Pull Request

This PR completely rewrites our embedding system in favor of embedding
datum handlers which acts as containers for all embedding-related data
and logic.

Currently embedding logic relies on an element-component-datum triad,
where elements on the items handle embedding logic, singleton datums
store embedding data and components (which get assigned to ***mobs*** in
whom the item embedded) handle pain and the item being ripped out. How
do we access all the procs? By using comsigs as procs, which is really
bad. This code was written back in 2020 when DCS was hot stuff but in
hindsight this implementation was a mistake, as it heavily restricts
custom embedding behaviors unless you're willing to constantly run
GetComponent (bad, ugly, incarnation of evil)

This PR rewrites all that logic to be handled by lazyloaded
``/datum/embedding``, which is stored similarly to current
``/datum/embed_data``. Upon being requested, it is initialized and
assigned to a parent from whom all the logic is handled, from being
embedded to pain and having the item ripped out. On projectiles this
only handles one proc, after which it copies itself down to the shrapnel
item instead and runs the chain further from there.
Ideally, most embedding-related logic now should be handled purely
datum-side - in most cases items should not be hooking up to themselves
like they did before (unless said logic is for when the item is made
sticky or smth) and instead the code should be handled by the embedding
datum (see sholean grapes implementation in this PR). This should allow
us to do fancy stuff like syringe guns embedding syringes into targets
and injecting them that way, and fix some bugs along the way.

Closes #88115
Closes #87946

Also fixed a bug with scars not displaying when examined closely from
#86506 because i was in the area anyways
2025-01-02 23:18:27 +00:00
42d80a5963 Fixes .357 Heartseeker not homing in on people (#88696)
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2024-12-24 23:05:29 +00:00
necromanceranneandGitHub 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
560d849e04 gatfruit shoots peas (#88051)
## About The Pull Request
basically #64128 slightly redone (with permission)

gatfruit now shoots peas; 
(injects assuming hit zone is unblocked and this assumes you havent
modified the plants reagent genes)
at 0 potency to god knows what potency a single pea (bullet) deals 5
brute and injects 1u of phytotoxins
at 50 potency it fires 10 brute and injects 15u of phytotoxin
at 100 potency it fires 15 brute and injects 30u of phytotoxin
phytotoxin is the Toxin chemical but with no liver damage, it is not
particularly strong but serves to recreate the original PRs 5 tox with
possibility of actually modifying that

![2024-11-20
17_04_00-Window](https://github.com/user-attachments/assets/4803f02a-d8a5-4acd-bc49-fd50959b4794)

upon peeling the fruit its reagents are spread among the revolvers 7
casings

also i attempted to make the revolver look more plant-like but im pretty
sure i screwed up

![image](https://github.com/user-attachments/assets/0e1b374d-0b8a-441c-b359-6c94298c6ad1)


## Why It's Good For The Game

a bullet of 357 deals 60 brute (not counting falloff (which i dont think
it gets) and armor)
there are 7 bullets of 357 in a revolver so 420 brute in 1 revolver, and
it basically takes 200 brute to kill someone outright if oxygen and
other damage doesnt do it first
at 10 yield (or whatever max yield is i cant really remember) thats 10
revolvers, so 10 x 420 so 4200 in a bag brute per harvest (again 200
brute if you decide to shoot until something dies so you can kill like
21 people if you dont miss in a single yield 10 harvest)
thats pretty busted for something you can achieve fast by making REALLY
easy chems after getting the seeds from exodrones or lavaland

with this change its still a viable weapon but not a supremely lethal
traitor weapon, and also enables some botany gaming if you make it
contain felinid mutation toxin or something

## Changelog
🆑
balance: A mutation in gatfruit seeds has led to a drastic alteration in
the observable traits of the plant, which now fires hardened peas that
deal less damage, but poison the target. Additionally, its poison can
be, with some botanical engineering, replaced with whatever you wish.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-12-06 23:18:55 +01:00
SmArtKarandGitHub bbb7a41743 Guncode Agony 4: The Great Projectile Purge (#87740)
## About The Pull Request
~~Kept you waitin huh!~~
The projectile refactor is finally here, 4 years later. This PR (almost)
completely rewrites projectile logic to be more maintainable and
performant.

### Key changes:
* Instead of moving by a fixed amount of pixels, potentially skipping
tile corners and being performance-heavy, projectiles now use
raymarching in order to teleport through tiles and only visually animate
themselves. This allows us to do custom per-projectile animations and
makes the code much more reliable, sane and maintainable. You (did not)
serve us well, pixel_move.
* Speed variable now measures how many tiles (if SSprojectiles has
default values) a projectile passes in a tick instead of being a magical
Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired
because it never had a right to exist in the first place. __This means
that downstreams will need to set all of their custom projectiles' speed
values to ``pixel_speed_multiplier / speed``__ in order to prevent
projectiles from inverting their speed.
* Hitscans no longer operate with spartial vectors and instead only
store key points in which the projectile impacted something or changed
its angle. This should similarly make the code much easier to work with,
as well as fixing some visual jank due to incorrect calculations.
* Projectiles only delete themselves the ***next*** tick after impacting
something or reaching their maximum range. Doing so allows them to
finish their impact animation and hide themselves between ticks via
animation chains. This means that projectiles no longer disappear ~a
tile before hitting their target, and that we can finally make impact
markers be consistent with where the projectile actually landed instead
of being entirely random.

<details>

<summary>Here is an example of how this affects our slowest-moving
projectile: Magic Missiles.</summary>


Before:


https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e

After:


https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915

</details>


<details>

<summary>And here is a much faster, and currently jankier, disabler
SMG.</summary>


Before:


https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348

After:


https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238

</details>

### But how will this affect the ~~trout population~~ gameplay?

Beyond improved visuals, smoother movement and a few minor bugfixes,
this should not have a major gameplay impact. If something changed its
behavior in an unexpected way or started looking odd, please make an
issue report.
Projectile impacts should now be consistent with their visual position,
so hitting and dodging shots should be slightly easier and more
intuitive.

This PR should be testmerged extensively due to the amount of changes it
brings and considerable difficulty in reviewing them. Please contact me
to ensure its good to merge.

Closes #71822
Closes #78547
Closes #78871
Closes #83901
Closes #87802
Closes #88073

## Why It's Good For The Game

Our core projectile code is an ungodly abomination that nobody except
me, Kapu and Potato dared to poke in the past months (potentially
longer). It is laggy, overcomplicated and absolutely unmaintaineable -
while a lot of decisions made sense 4 years ago when we were attempting
to introduce pixel movement, nowadays they are only acting as major
roadblocks for any contributor who is attempting to make projectile
behavior that differs from normal in any way.

Huge thanks to Kapu and Potato (Lemon) on the discord for providing
insights, ideas and advice throughout the past months regarding
potential improvements to projectile code, almost all of which made it
in.

## Changelog
🆑
qol: Projectiles now visually impact their targets instead of
disappearing about a tile short of it.
fix: Fixed multiple minor issues with projectile behavior
refactor: Completely rewrote almost all of our projectile code - if
anything broke or started looking/behaving oddly, make an issue report!
/🆑
2024-11-23 04:02:35 -08:00
SmArtKarandGitHub 0b99107cc2 Guncode Agony 3: Projectile code cleanup (#87628)
## About The Pull Request

Massive cleanup/pseudo-refactor of projectile and projectile-adjacent
code. One letter variables, weird logic, some runtimes, all of that.
Atomized in a separate PR from the actual refactor so we don't end up
with a 5k line PR.

## Why It's Good For The Game

Makes the code possible to work with before I nuke pixel_move and kevinz
units™️
2024-11-03 21:46:13 +00:00
BloopandGitHub 241514f520 Fixes improper static list declarations + adds grep for it (#87207)
## About The Pull Request

I randomly came across a `var/list/static` in the code, which does not
actually do what was intended, and thought it was silly. A ctrl+f
revealed that this was a fairly common mistake, so I went and fixed all
the instances of it I could find.

~~Including one in lighting code, which it looked like they were trying
to create a global list to cache generated lighting sheet values for
speed, but it was just a normal list that got created each time
pointlessly. Now those values are actually being cached (using a global
var, because a `static` list was not the right thing to use there in the
first place).~~

Nevermind, it seems that this was in fact being cached even if it
shouldn't have been, because byond. Just rearranged it there seeing as
it works either way.


## Why It's Good For The Game

Code that does what it's supposed to

## Changelog

🆑
fix: fixes a bunch of improper static list declarations
/🆑
2024-10-14 22:36:41 -06:00
grungussussandGitHub 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
RedbertandGitHub ff87c71689 Various syndicate crossbow adjustments (#86781)
## About The Pull Request
Adjustments have been made to the Syndicate Crossbow to address its
current strength and balance issues. The weapon is being heavily abused
due to its overpowering combination of damage and utility. These changes
aim to reduce its effectiveness while maintaining its role in the game.

List of Changes:
    Syndicate Rebar Bolt Damage: Reduced to 45 from 55.
    Hydrogen Bolt Damage: Reduced 35 from 55.
    Hydrogen Bolt Wound chance: reduced to 0 to prevent delimbing.
    Quiver Reload: Reload is now interrupted by movement.
    Quiver Reload: Reload increased 1.2 seconds from 0.8 seconds.
    Crossbow TC Cost Increased to 12 from 10.
    Quiver size: Increased to normal from small.

Edit : after some more thought and looking at the original creator's
ideal, i've made some more changes. I've adjusted damage slightly to
still fit in damage breakpoints but not rely on mood. Syndicate crossbow
was meant to be a sidegrade to the syndicate revolver, it is currently
an upgrade, even with these changes.

## Why It's Good For The Game
The Syndicate Crossbow’s high damage output, especially with hydrogen
bolts, makes it overly powerful, leading to imbalanced gameplay.
Reducing the damage brings it more in line with other weapons like the
syndicate revolver while ensuring it still remains useful in certain
situations.

We should consider this weapon as a sidegrade to the syndicate revolver,
we should look at what armor does to the damage. With these changes, we
kill both a security officer and an unarmored crew member in 3 shots.
The revolver kills an unarmored crew member in 2 shots but an armored
security officer in 3 or 4, depending on their mood.

Comparing the Syndicate crossbow to the Syndicate Revolver, it is easier
to find ammo for, has higher armor pen, is easier to store ammo for,
easier to reload, has a scope, and the ammo is reusable. The crossbow
needs a bit more of a trade-off than some reduced ammo capacity.

Metal hydrogen bolts fill a niche for silently killing pets across the
map, not killing the entire station from a 1x1 hole in maintenance. They
have no reason to be doing as much damage as syndicate rebar bolt damage
or close to zaukerite bolts which are significantly more difficult to
make.

With the introduction of the syndicate quiver, the syndicate crossbow
has gotten significantly more powerful. Much of the clunkiness that made
it 'worse' than the syndicate revolver has been removed (similar TC
cost, damage, utility. 13 TC for revolver, 10 TC for crossbow). The
increase in power deserves an increase in TC cost. The syndicate
crossbow was meant to be a sidegrade to the syndicate revolver, we can
adjust the price so balance between them is more cut and dry.

The ability to reload the crossbow with the quiver while moving is also
a bit too strong. It effectively gives you a magazine of 20 shots while
in active combat. You can spam your reload keybind and left mouse button
while moving to continue firing at a rate of one shot per 0.8 seconds. I
feel like this kind of defeats the entire idea behind the crossbow.
Edit : I found while testing that I could still reload while moving at
0.8 second reload if i stutter step, I could still reload during combat.
I've increased it to 1.2 seconds.

Quiver size was increased because it's silly for a quiver with 20 bolts
to be able to fit in a box

## Changelog
🆑
balance: Syndicate Rebar Bolt damage reduced to 45 from 55.
balance: Hydrogen Bolt damage reduced to 35 from 55.
balance: Syndicate Quiver reload is now interrupted by movement.
balance: Syndicate Quiver reload increased to 1.2 seconds from 0.8
seconds.
balance: Crossbow TC cost increased to 12 from 10.
balance: Quiver size increased to normal from small.
/🆑
2024-09-21 00:07:04 +02:00
8436d3e0de Adds a Quiver to the Syndie rebar + various rebar and bolt improvements. (#86116)
## About The Pull Request

Adds a quiver to the traitor "Syndicate Rebar" kit, can be used to store
rods and reload the Rebar more efficiently.


![image](https://github.com/user-attachments/assets/bedc98d5-4b2d-4a68-b598-0853c17d73cb)


Fixes Rebar bows having more ammo than intended.

Rebar bows will now draw their string with left click instead of just
the use button.

Quivers are now a neck storage item.

Hydrogen bolts have lost their ability to embed and pierce an infinite
number of targets in exchange for a small damage buff , increased
accuracy on bodyparts and the ability to pierce walls.

## Why It's Good For The Game

This PR is the fruit of a discussion spanned over the course of several
months between me and KingKumaArt (the creator of the rebar bows.), He's
now busy abroad, so I'm pushing these changes in his stead.

**Changes to the syndie rebar and quivers**

The syndicate rebar bow is a fun albeit slightly underwhelming weapon,
at least compared to its direct competitor, the revolver.

The numbers prove this, as according to the charts it's very rarely
bought on LRP and doesn't even show on the MRP charts.


https://superset.moth.fans/superset/dashboard/4/?native_filters_key=cBYTbRt2At8pt1VkwV8O7NEZZZeDiIQ5fZgSMfjoICB0yow1BWJXDG5SyV9MJKTf

I think most of the issues with the weapon can be attributed to the
horrible jank that surrounds it.

Reloading and storing ammunition for this weapon is a management
nightmare, as the rods cannot be stacked and have to be manually loaded
by hand, making it horrendous to use in combat.

While that's fine for the makeshift crew version, Traitor weapons should
be more realiable in a combat scenario.

**So i'm squashing both problems by introducing a traitor version of the
quiver.**

It comes packed with the box you get the crossbow from, can be worn on
the neck, stacks up to 20 rods, and features an action button that
allows you to slowly chamber your rods into the rebar.

Video demonstration: https://www.youtube.com/watch?v=nG9efFOyauw

The crew version has also been moved to a neck storage item, but has
half the capacity and lacks the ability to quick reload.

I've also made the firing process slightly less annoying by having left
click draw and undraw the string; as it stands, you have to alternate
left click and use on hand after each shot, which is just jarring.

Created 2 new variables to replace the ALWAYS_HIT_TRAIT, so we don't
have to slap a new trait every time we want to dictate how accurate a
gun or projectile should be at range.

Lastly, I fixed an issue that allowed the bow to fit 1 extra bolt than
its intended capacity. if you were to chamber your last rod, it does end
up nerfing the burst of the syndie variant, as it drops down from 4 to
3, but the smoother reload should make up for it.

**Hydrogen bolts**

As it stands, all the atmosian bolt variants occupy different niches and
they are more or less balanced.

Except for the hydrogen bolts.

With zauker bolts doing 60 toxin damage, guaranteed embed, and Syndie
bolts doing 55 brute + the high delimb chance, Hydrogen bolts just don't
have any real purpose to exist with their lower damage and lack of the
ability to delimb.

Metallic hydrogen in general doesn't have any good applications, the
armor is weaker than your run of the mill sec vest, the axe is a
downgrade over the roundstarting one....; I could go on, point being
that something that requires in depth atmos knowledge and 30-40 minutes
of hard work shouldn't be outclassed by what's readily available at the
start of the shift.

So what if we made the hydrogen bolts go through walls?

Long range weaponry is a niche that remains mostly unfilled in the
traitor arsenal.

The syndicate rebar technically does have a scope, but requiring direct
line of sight makes it unreliable and far too risky to use, since you
could be jumped at any times while you are zoomed in.

So i've made the hydrogen bolts a weaker version of the nukie penetrator
rounds, with slightly lower damage, no infinite pierce and inability to
damage the AI core.

I've also improved their long range accuracy, as these bolts are meant
to be accurate at longer ranges, (they drop off massively past the 15
tiles)

Now yes, the bolts will be accessible to the crew as well, so why am I
discussing this as if it were a traitor change?

Well for starters, the actual applications of a crew atmos tech using
these are fairly limited.

Regular rebar bows can only fire 1 shot at a time, don't have a scope,
and you won't get much mileage out of the wall piercing component unless
you get thermals or x-rays, which are very much a stretch to acquire as
an atmos tech.

In the hands of a traitor, however, I can see it as a potential use for
a long-range sniping tool, if you are willing to commit half of your
round to make the bolts that is.

## Changelog

🆑
add: A Syndicate Rebar Quiver has been added to the uplink
qol: Left clicking with a rebar crossbow will now draw/undraw the
string.
balance: Rebar quivers are now a neck slot item.
balance: Hydrogen bolts damage has been upped to 55 brute and can now
pierce through walls, they no longer have infinite piercing and can no
longer embed however.
code: removed the TRAIT_ALWAYS_HIT_ZONE, replaced with 2 new variables.
fix: fixes rebar crossbows having a higher capacity than intended if a
bolt had already been chambered.
/🆑

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
2024-09-04 12:59:08 +02:00
GhomandGitHub 11fce492bb Jarvis, add buckshot to the blackmarket. (#85470)
## About The Pull Request

![immagine](https://github.com/user-attachments/assets/82a41ea7-9951-43d5-a553-7c9884058bf2)

~discord light-theme big L.~

By the by, these are slightly nerfed buckshots, create big puffs of
powder smoke when fired, damage your gun, and MIGHT blow you up in the
same style of using a detective revolver loaded with .357 if you fire
too many.

Also, the integrity of the firearm now counts towards the damage of
bullets it's fired from.

## Why It's Good For The Game
The blackmarket is a place where you can find illegally illegal, evil
items, along with other trinkets. I thought it'd be a nice place to
reintroduce buckshot with a little downgrading twist after it has been
nerfed (it used to do 60 damage without falloff) AFTER it was removed
from the lathes and the station.

## Changelog

🆑
add: Buckshot is back on the menu, on the blackmarket.
balance: the integrity of firearms now counts toward projectile damage.
A gun that's on the very verge of breaking down will deal half as much
damage.
/🆑
2024-08-21 16:27:18 +01:00
PaxilmaniacandGitHub b98afcd140 Replaces my old and crusty pp-95 with the cool new nukeops tech on the block, smart SMGs (#85211)
## About The Pull Request


![image](https://github.com/user-attachments/assets/c399db0d-c8b8-4f0e-b20d-e81e153a4fac)

![smart
bullet](https://github.com/user-attachments/assets/02af6174-f967-487c-b5ee-90c73300d179)

Adds the Abielle Smart-SMG to replace the pp-95 entirely.

The Abielle performs nearly identically to the pp-95 in nearly all
aspects, doing 0.5 less damage because it's not a projectile modifier on
9mm anymore.

What the Abielle does do majorly differently, is give it's bullets a
slight homing ability VS whatever you clicked on. This keeps the weapon
equally useless to it's predecessor at spraying blindly down hallways,
while rewarding careful aim with bullets that slightly track the target.

## Why It's Good For The Game

The surplus smg sucks, and I don't mean performance-wise (although it
certainly does, that's the idea). The surplus smg sucks because
typically you would be better suited using it as a melee weapon due to
the inaccuracy and low damage. Making the cheapo "I forgot to buy a
weapon" gun practically useless is super punishing especially for newer
ops who might not remember to buy a weapon first. The smartgun makes the
surplus smg still pretty shit compared to the other nukeops guns that
can down a man nearly instantly, but means that reinforcements or broke
ass nukeops can still be relatively effective so long as they can click
on a spaceman across the screen.

## Changelog
🆑
balance: The nukeops surplus smg, the pp-95, has been reworked into the
Abielle Smart-SMG. It performs nearly identically to the pp-95, however
it's projectiles get a slight homing ability towards whatever you click
on.
sound: New firing sounds for the surplus smg, credit to the m41 sound
effects from tgmc
image: New sprites for the surplus smg, made by me
/🆑
2024-07-29 17:31:18 +01:00
b748c455df Donk Co Interstellar Trading Post 6016 (#83075)
## About The Pull Request
Adds a new space ruin to the pool. It's the haunted trading post. It is
a whiteship dock with a large (safe) common area. The back rooms contain
loot and danger. Here are a few 'teaser' images.

https://i.imgur.com/M1te9Ha.png https://i.imgur.com/SF3bJ62.png
https://i.imgur.com/i9xeUFP.png https://i.imgur.com/UBwpJAM.png

Notable treasures: Cash, Donk Co merch, Donk Co guns, Donk Co Donk
Pockets, Donk Co vendors, Donk Co ID Cards, and the Donk Co Secret
Recipe.

Oh yeah the secret documents teach you how to make three prototype
variants of Donk Pockets. There is no limit to the amount of times it
can be read, so if you want to corner the market remember to lock up the
documents. Or you can share them with your friends.

**Now COMPLETE!**

![proof i ran this at least once
locally](https://i.imgur.com/39kvyqd.png)

## Why It's Good For The Game
This ruin is a multi-room dungeon with multiple solutions to each room.
It has plenty of action from mobs, traps and hazards. Each room has some
form of treasure or unique item in it. There's a boss at the end with
great rewards for fighting it, including a cool gun (slightly worse
variant of laser carbine).

This ruin is also a whiteship dock and space base. The public area is
entirely safe: stick to the well lit sector and don't trespass in the
employees only areas and you won't be harmed. There is a variety of
vendors to resupply at (including a brand new Donk Co snack vendor) but
unlike most other space ruins you do have to pay. A whiteship can dock
at this ruin if you have one, so you can bring groups of people to party
or attack the dungeon together.
## Changelog
🆑
add: Adds the Haunted Trading Post space ruin.
add: Adds 10+ unique items for the Haunted Trading Post
add: Adds 5 dangerous mobs for the Haunted Trading Post
add: Adds 4 new types of hazardous traps for the Haunted Trading Post.
/🆑

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-07-23 04:46:29 +02:00
necromanceranneandGitHub 8ef3c0c04d Improves pipe pistols, changes their bane effect to an on-hit effect of the projectile, fixes a mild bug with bayonets on pipe pistols (#84960)
## About The Pull Request

Pipeguns and all subtypes have a 3 tiles knockback when fired
pointblank, much like shotguns.

Pipe pistols unload the entire magazine in a single rapid burst. This
feature extends to the (otherwise unobtainable) regal pipe pistol.

Fixes pipe pistols being able to be bayoneted.

Junk rounds have their on-hit effects with regards to particular mob
biotype effects.

## Why It's Good For The Game

Pipe pistols aren't quite as useful as their pipegun counterparts. While
every shot together would outdamage the pipegun, the pipegun is just
generally more reliable and accurate, even at close range. People prefer
to use the pipegun's dependable functionality than gamble with trying to
land three shots with the pistol in a melee.

So, to encourage the use of pipe pistols up close where they are
strongest and make them less of a gamble, the pipe pistol has a much
deadlier close range potency while still suffering at long range, which
is what the pipegun rifle excels at while having slightly lower damage
overall. Also it makes the gun feel more like its a duckfoot gun or
something, which is fun.

The knockback effect was something lost from when they were a shotgun
subtype. I just never got around to re-adding it to any of the
iterations of pipeguns. It's a cool feature that is a bit of a shame to
lose.

It has been a few months with no fix in sight for the element, and I'm
not particularly hopeful about it either. It's easier to just have this
effect baked into the bullets themselves.

## Changelog
🆑
add: Pipe pistols now magdump their entire magazine when fired.
add: Pipeguns and their subtypes have a knockback effect.
fix: Pipe pistols cannot be bayoneted, as intended.
fix: Junk rounds now actually do their extra damage effects against
certain mob types. Borgs across the Spinward tremble at the knowledge
that these junk weapons can obliterate them with ease.
/🆑
2024-07-15 15:09:48 +01:00
SmArtKarandGitHub b6c84135c3 Refactors embedding to use datums instead of storing data in bespoke elements (#84599)
## About The Pull Request

This refactors embedding elements to make them use singleton datums
(similarly to armor) instead being bespoke and creating a new element
every time armor values are supposed to be adjusted.
Default values have been removed from defines due to now being declared
in base class itself.
Additionally fixes vending machines and tackling gloves setting
generated shards (which they instantly embed into their victim) embed
properties to null after running the embedding code, despite said shards
having non-null embedding values by default, making them not be able to
embed into anyone else, also potentially breaking the pain/jostling code
if they somehow get updated.

## Why It's Good For The Game

Current embedding system is an unnecessarily complicated mess as bespoke
elements are hard to work with, and creating a new element every time
you change values is hacky at best. This change should make it easier to
read and work with.

## Changelog
🆑
fix: Fixed glass shards generated from falling vending machines or
tackling windows not being able to embed into anyone.
refactor: Refactored embedding code to use datums instead of bespoke
elements and ugly associated lists.
/🆑
2024-07-07 23:20:07 +02:00
3c4444b1c4 Adds additional equipment for Silverscales. (#84257)
## About The Pull Request

This PR adds a few notable changes to the Silverscale pirates:

- Replaces the old nanotrasen branded hardsuit with the designer EVA
suit, an armored hardsuit equivalent in protection to that of the
standard pirates.

![silverscale](https://github.com/tgstation/tgstation/assets/63932673/85ba8b9c-307d-4800-a876-c0470e9ef0ab)

- Silverscales all start with satchels

- The airlocks on the shuttle can now be locked from the inside

- The shuttle now has a robot butler (medibot) named Mortimer, along
with a burn kit.

- Increased the amount of C4 on the shuttle to 3, and added a 1.30
damage modifier paywalled laser gun to justify having the recharger, the
silverscales will need to supply the card themselves

- Adds explosive implants to the Silverscales' outfit. They're greedy
lizards, did you think they'd let their gear fall into the hands of the
poors so easily?

- The mosins now get phasic rounds to offset the disadvantages of low
DPS compared to lasers.

## Why It's Good For The Game

As it stands, it can be argued that the Silverscales are the weakest
pirate faction, On paper, they sound as though they would be
well-equipped elites, but are left with clunky, unarmored space suits, a
bright dead-giveaway glow, and single shot guns that leave them
extremely vulnerable to being rushed and stunned. As such, they've
become somewhat of a joke amongst players for the past few years.

This pr doesn't necessarily aim to negate their weakness, but I'd like
to give them more of a safety net that puts them on equal to slightly
better footing with standard pirates in terms of their access to armor,
healing, and options.

The addition of the explosive implant also serves to reinforce their
theming of being rich, evil lizards, but is mostly meant to make them
more entertaining.
## Changelog
🆑
add: Added the designer EVA suit, a unique pirate hardsuit for
Silverscales.
balance: Increased the equipment available to Silverscales
image: Sprites for the designer EVA suit
/🆑

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
2024-07-07 15:13:26 -04:00
KingkumaArtandGitHub 8511a3aa5f Fixes crossbow healium bolt sleeping silicons! Oops! (#83966)
## Why It's Good For The Game

I thought I had this in the pr itself, with the check_bodytype code in
the healium bolt, but I was wrong.
Turns out the check statement only effected the healing but the sleep
portion was left out of it by mistake. During testing I never thought to
spawn in a borg.
2024-06-15 12:08:37 -05:00
ed4ba0d227 Adds Atmos-themed Rebar Crossbow Ammo Types (and minor balance changes) (#83310)
## About The Pull Request

So this PR comes in two basic parts: the new ammo types and the minor
balance changes. I'll go over each separately.

**--- NEW AMMO TYPES ---** 


![image](https://github.com/tgstation/tgstation/assets/69398298/c031cf87-7bde-4a67-b5fc-109bedcece88)

-- Metallic Hydrogen Ammo: Made from Metallic Hydrogen, obviously. Has
middling damage and no dismemberment chance, but pierces through armor
and enemies like they weren't even there.

-- Zaukerite Slivers: Made from a zaukerite crystal. Does high toxic
damage, and has excellent wounding and embed chances, but lacking in
armor penetration. Also gives 1 second of blurry vision if it hits you!

-- Paper balls: Crafted from a sheet of paper. Mostly just a throwing
joke item, and 99% nonlethal like donksoft. Can be fired from a
crossbow, but also could be used if you wanted to have a snowball fight
on metastation.

-- Healium Crystal Bolts! Crafted (using menu) from the healium grenade
item. Heals 30 of brute/tox/burn, but puts who is hit by it to sleep for
three seconds, limiting its use in actual combat.

-- Supermatter Bolts: Dusts whoever you shoot it at! Absurdly
overpowered! Admin only!

-- A makeshift quiver, made from cutting a o2 tank in half, to store all
the ammo in.

**MINOR BALANCE CHANGES**

-- For some reason I thought the 357, which the traitor crossbow is a
direct competitor to, did 40 damage when making the first version of the
PR, instead of the reality of it doing 60. It's been buffed to 55
damage. (The basic engi one still does 35.)

-- I've been informed that generally, the stressed rebar crossbow isn't
ever used, as the misfire chance isnt worth the extra shot. As such, I
felt it was thematic to say that the stressing procedure involves
messing with the draw system in the fluff, and the stressed one now
takes half as long to rack.

**OTHER CRAP**

-- The rods now drop themselves if you shoot them at a wall. Hopefully.
-- Fixed the the non-bare wound chance on the traitor crossbow not being
increased from the base version.
-- Has a nice electronic discharge noise on firing.

## Why It's Good For The Game

I'm very happy with the reception of the rebar crossbow, and felt that
given it was an engi weapon at heart, giving it some engi-related
ammunition would fit it very well (and also have a good reason for
making zaukerite besides selling it.) The paper balls were more just so
the crew could able to shoot their buddies with it and not maim them.

As for the balance, I feel the tot crossbow being department restricted
is already a strong factor in it being infrequently seen, and if someone
is lucky enough to roll traitor in a job slot, it's a shame if their
job's items aren't worth it. The stressed variant is a similar case, and
I hope it's enough of a buff to encourage its use.

## Changelog
🆑 WebcomicArtist
add: Added zaukerite (high damage/embed, low AP) and metallic hydrogen
(High AP and piercing, but low embed) crossbow ammo for the rebar
crossbows
add: Added healium crystal ammo for the crossbow as well, which heals
whomever you shoot it at.
add: Added admin-only supermatter crossbow bolts that dust you, because
why the hell not.
add: Added non-harmful paper balls. Can be shot from a crossbow, or
thrown at co-workers.
add: Added a quiver made from cutting an o2 tank in half, to hold it
all.
image: added sprites for all the above.
balance: Traitor Engineer Crossbow ammo now does 55 damage instead of
45, to make it compete with revolver.
balance: Stressed Rebar Crossbow now has a shorter delay required to
rack it, but can shoot you in the face on misfire.
fix: fixed rebar crossbow shots not dropping items on hitting walls
fix: fixed traitor crossbow having worse wound chance than the base one
sound: added new crossbow firing sound effect

/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-06-09 02:06:26 +00:00
Da Cool BossandGitHub c31c364e3a Fully deletes improvised shotgun shells from the game. (#83436)
## About The Pull Request
For whatever reason, these were partially deleted but the projectile was
left in. Since the thing that spawns these projectiles is 100% gone from
the game and can't even be spawned by admins there's no reason to keep
this vestigial code.
## Why It's Good For The Game
Why waste lines of code and storage space on something that is now gone?
It's just clutter.
## Changelog
🆑
no player facing change
/🆑
2024-05-26 10:02:01 +12:00
c3ff3e06c3 Auto-aim in combat mode at mobs on the floor is disabled after 10 tiles. (#83270)
## About The Pull Request
As stated in the title, auto-aiming at prone targets is disabled after
the projectile passed more than 10 tiles (the limit of vision of an
ordinary spaceman is 9 tiles). Within 10 tiles, shooting in combat mode
remains unchanged. This also does not apply to sniper rifles.
Here's a preview of how it works:


https://github.com/tgstation/tgstation/assets/126676387/d62fbb03-9f63-4a73-a32a-62b4d11e4515
## Why It's Good For The Game
The main problem of shooting in combat mode is shooting in busy
corridors. Often, you are unwilling to become a participant in the
security's pursuit of the antagonist, and receive unintended
projectiles. You will be lucky if the projectile turns out to be
non-lethal, but if it is a laser, you can get a second-degree burn or
even a catastrophic one from just one shot. (depending on which laser
was fired and where you were hit), which is not very pleasant. To stay
unharmed and simplify the work of security, it is logical to lie down on
the floor.
This will not revive the lie-down meta to dodge projectiles, because
within sight of the spaceman and even a little further, lying targets
will still be hit by projectiles. And if you decide to lie down during
the chase to dodge the projectiles, then the pursuers will quickly catch
up with you and shoot you in combat mode.
## Changelog
🆑
balance: Auto-aim in combat mode at mobs on the floor is disabled after
the projectile passes 10 tiles.
/🆑

---------

Co-authored-by: paganiy <leunscrupuloustrolle@gmail.com>
2024-05-22 13:31:42 +01:00