195 Commits

Author SHA1 Message Date
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 Kidder 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
Aliceee2ch 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 e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
Ghom 38bebeaf47 Prosthetic Item arms no longer prevent ventcrawling: the remake (#93499)
## About The Pull Request
This is me picking up #93077 but with code changes relative to the two
new flags that Krysonism added in his PR, which unfortunately he never
finished.

## Why It's Good For The Game
Monkeys should be able to ventcrawl even if their left or right arm is
actually a chainsaw or armblade or whatever. See #93077

## Changelog
🆑 Krysonism
balance: prosthetic item limbs are no longer considered equipped items
for some purposes such as ventcrawling.
/🆑

---------

Co-authored-by: Krysonism <robustness13@hotmail.com>
2025-10-23 11:13:18 -04:00
xPokee 9b282a850e Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-17 11:45:44 -04:00
Aliceee2ch 0918437d53 BORGENING! Borg changes and QOLs (#92303)
## About The Pull Request

Adds a few new items and upgrades for different cyborg modules or
reworks some of them.

<p align="center">
<img width="608" height="199" alt="image"
src="https://github.com/user-attachments/assets/ba44742f-984b-4988-af4d-e06cf66d3296"
/>
</p>
pic unrelated :)

### Main changes:

### Medical model
**Medical cyborg** gets chembag by default and a new bluespace syringe
upgrade!
<p align="center">
<img width="267" height="83" alt="image"
src="https://github.com/user-attachments/assets/4636688f-a3bf-4db8-b0c7-75089aeb4f54"
/>
</p>

### Engineering model
**Engineering cyborg** recieved a few new features. Now you can put your
regular RPED inside of a cyborg, but mind that it has way less storage,
than RPED upgrade from robotics. Robotics RPED upgrade were renamed into
expanded RPED and now cost the same amount of material to produce it as
BS RPED.
<p align="center">
<img width="198" height="117" alt="image"
src="https://github.com/user-attachments/assets/e614a9b0-41ad-4815-8eb6-f627c2bf77cc"
/>
</p>

Worth to mention adding decal painter with own sprite (yes it uses cell
instead of regular toner)
<p align="center">
<img width="827" height="498" alt="image"
src="https://github.com/user-attachments/assets/2eb36651-0ee2-4c9b-81ef-f8c3a96966a8"
/>
</p>

<p align="left">
Circuit manipulator was renamed to engineering apparatus, as its can no
longer hold only circuits. Additionally, it can also hold tubes/bulbs
now.
</p>

### Mining model
**Mining cyborg** now has mesons removed and remade into a new toggle
button, you dont need to use one of your modules just to be able to see
through darkness of lavaland caves.
<p align="center">
<img width="248" height="173" alt="image"
src="https://github.com/user-attachments/assets/e85a00ec-f373-43d0-9ce9-7ec573029af3"
/>
</p>

**Mining cyborg** got a new shield module. It helps you fighting
lavaland fauna (..or annoying humans, if youre evil) in low pressure by
absorbing 50% of incoming damage when activated. Takes some amount of
your charge per absorbed hit.
Example:
![2025-07-30
15-05-38](https://github.com/user-attachments/assets/0337a3b2-b9ef-4e27-a464-e3bc0a6a77d8)

## Why It's Good For The Game

I feel big lack of some cyborg modules or even features. This PR is
supposed to fix missing gap, aswell as rebalance some of existing
models.

## Changelog


🆑
qol: Added new helpful modules, such as decal painter for engineering
and chembag for medical borg.
add: Added miner cyborg shield module. In lavaland (low) pressure, it
protects you from 50% of incoming damage in exchange of your cell
charge.
add: Added BS syringe upgrade for medical cyborg.

/🆑
2025-09-16 04:12:27 -07:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
necromanceranne 8df0c5851d Partially reverts #89619, where I partially reverted #87936; Puts back the mining and damage AOE damage on Mech PKA, but improves the standard modkits as well (#89993)
## About The Pull Request

In #89619, I removed the mech PKA's mining AOE and reduced the damaging
AOE to a fraction of the damage.

I have restored both of these aspects, but I have also applied this
change to the standard PKA's mining and damage AOE. I have also included
the mob biotype limitations as well.

AOE modkits take 10% capacity, now allowing miners to use them in more
setups. However, they conflict with one another. You can only have one
AOE mod until you can get the dual AOE mod from tendrils.

The AOE damage/mining effect is now a 2 tile effect rather than 1 tile
effect.

## Why It's Good For The Game

My intent in the previous PR was to bring mech PKA's down to standard
mining limitations. So, why not improve those standards for everyone
instead? The new state of mining expects you to be dealing with a lot of
mobs at once. Even small vents can, on occasion, decide to spit out
several goliaths back to back. That's a lot of mobs with a lot of
health.

Miners need AOE options more than ever. They have very little that are
actually meaningful, sadly. So my intent here is that this should be an
expectation for our miners to be seeking out and can fit into their
current, standard gameplay.

Certainly I've only felt like shit having to sacrifice a damage or
cooldown mod for an AOE mod, only to get a very minor amount of damage
splash for my efforts. That, and the radius doesn't usually impact most
mobs as they spawn and attack from awkward angles or distances from one
another where they are JUST out of reach of one another. Trying to use
the splash to hit multiple enemies is often not worth it compared to
just hitting one enemy at a time with a lot of damage.

So, let's just go with the standard of 'Good AOE is fundamentally needed
now' and worth from that premise.

## Changelog
🆑
balance: Mech PKA now once again mines turfs and does full damage on its
AOE explosion (still only hitting mining mobs).
balance: The standard PKA AOE mods are now by default 10% capacity. But
they cannot be used with one another.
balance: The standard PKA offensive AOE mod now does the PKA's full
damage in its AOE.
balance: Mining AOEs will affect everything within a 2 tile radius
around the point of impact, up from a 1 tile radius.
/🆑

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-03-19 07:57:52 +01:00
SmArtKar d7ed479374 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-03-12 16:46:40 -04:00
SmArtKar 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
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
Ghom bfb5fea278 Nerfs fish infusion slipperiness and make them slightly more susceptible to fire and heat. (#88065) 2024-11-24 20:35:50 +01:00
SmArtKar 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
Majkl-J e59d8ba64b Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b 2024-10-23 23:27:16 -07:00
Ghom 96c0c0b12c Fish infusion (#87030)
## About The Pull Request
I'm adding a new infusion ~~(actually four, but two of them are just
holders for specific organs tied to a couple fish traits)~~ to the game.
As the title says, it's about fish.

The infusion is composed of three primary organs, plus another few that
can be gotten from fish with specific traits.

The primary organs are:
- Gills (lungs): Instead of breathing oxygen, you now need to stay wet
or breathe water vapor.
- fish-DNA infused stomach: Can safely eat raw fish.
- fish tail: On its own, it only speeds you up on water turfs, but it
has another effect once past the organ set threshold. It also makes you
waddle and flop like a fish while crawling (I still gotta finish sprites
on this one)

Other organs are:
- semi-aquatic lungs: A subtype of gills from fish with the 'amphibious'
trait, falls back on oxygen if there's no water. Can also be gotten from
frogs, axolotl and crabs.
- fish-DNA infused liver: From fish with the 'toxic' trait. Uses
tetrodotoxin as a healing chem instead of a toxin. Also better tolerance
to alcohol if you want to drink like a fish (ba dum tsh).
- inky tongue: From fish with the 'ink production' trait. Gives mobs the
ability to spit ink on a cooldown, blinding and confusion foes
temporarily.

The main gimmick of this infusion revolves around being drenched in
water to benefit from it, In the case you get the gills organ, this also
becomes a necessity, to not suffocate to death (alternatively, you can
breathe water vapor, without any benefit). To enable the bonus of the
organs set, three organs need to be infused. They can be gills, stomach,
tail and/or liver, while the inky tongue doesn't count towards it.

Once the threshold is reached, the following bonus are enabled:
- Wetness decays a lot slower and resists fire a bit more.
- Ink spit becomes stronger, allowing it to very briefly knock down
foes.
- Fishing bonuses and experience
- Resistance to high pressures
- Slightly expanded FOV
- drinking water and showers mildly heal you over time.
- for felinids: You won't hate getting sprayed by water or taking a
shower.
- While wet:
- - If the fish tail is implanted, crawling speed is boosted.
- - You no longer slip on wet tiles.
- - You also become slippery when lying on the floor.
- - You get a very mild damage resistance and passive stamina
regeneration, and cool down faster.
- - You resist grabs better.
- - get a very weak positive moodlet.
- However, being dry will make you quite squisher, especially against
fire damage, slower and give you a modest negative moodlet.

While working on it, I've also noticed a few things that explained why
tetrodotoxin (TTX) did jackshit at low doses, because livers have a set
toxin tolerance value, below which, any amount of toxin does nothing.
Also I've felt like reagents like multiver & co were a bit too strong
against a reagent that's supposed to work at very low doses, with slow
metabolization, so I've added a couple variables to buff TTX a bit,
making it harder to purge and resistant to liver toxin tolerance (also
added a bit of lungs damage).



## Why It's Good For The Game
I wanted to take a shot at coding a DNA infusion and see how chock-full
I could make it. DNA infusions are like a middle point between "aha,
small visual trinket" and organs with generally ok effects. I seek to
make something a bit more complex ~~(also tied to fishing ofc because
that's more or less the recurrent gag of my recent features)~~ primaly
focused around the unique theme of being strong when wet and weaker when
dry.

EDIT: The PR is now ready, have a set of screenshots of the (fairly mid)
fish tails (and gills, barely visible) on randomly generated spessman
and one consistent joe:

![immagine](https://github.com/user-attachments/assets/a4965508-22e2-4d3a-8523-29fec6bce91e)


## Changelog

🆑
add: Added a new infusion to the game: Fish. Its main gimmick revolves
around being stronger and slippery when wet while weaker when dry.
balance: Buffed tetrodotoxin a little against liver tolerance and
purging reagents.
/🆑
2024-10-09 02:03:50 +02:00
grungussuss 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
EnterTheJake e61afc4318 New Syndicate Stealth MODule: Wraith. (#86449)
## About The Pull Request

Introduces a new MODule in the uplink, makes the user transperent and
grants the ability to siphon light sources to recharge your suit.

Ingame demonstration: https://www.youtube.com/watch?v=bhXNOAMDy4U

## Why It's Good For The Game

I've been playing a ton of Splinter Cell and Intravenous recently and
this random idea popped in my head.

"Wouldn't it be cool if traitors could blend in the darkness to get a
jump on their opponents?"

Also unrelated

"Wouldn't it be cool if tots had a tool to recharge their suit that
didn't involve sitting in a pod for 10 minutes?"

This PR introduces a new module to the uplink, the Wraith.

It comes with a passive and active component.

Passively it works exactly like the crew version of the cloaking module
with just a couple of differences.

1) Doesn't need to be manually activated, if you lose the cloak it's
regained after 5 seconds.

2) Lower stealth alpha value( how trasperent you are basically),
slightly less visible than the crew version, not as good the ninja
module however , I tuned it just enough so that you are more or less
undetectable in the dark.

The active component of the module lets you destroy stationary lights to
recharge your suit power, if used on handheld or borg lights it turns
them off for a minute.

**Why do we need this module when we already have the stealth implant
and the chameleon projector?**

I can think of a few reasons.

1) MODsuits were designed to be customizible, traitor suits range
between 6 to 16 TC, having to invest in a 7-8 TC item after you already
bought a suit is fairly expensive.

2) This MODule would be a better fit for ambushes, as it doesn't have
the *uncloaking* delay of its counterparts.

It is however considerably worse if you get caught, as the cloak is
disrupted on bump or damage.

3) It has better interactions with the sandbox.

Lights can go out for many reasons, maybe it’s just a power outage, or
some assistant broke it, or maybe it was anightmare.

 It leaves room for plausible deniability, adding to the paranoia.

It's also not complete invisibility, if you want to stay undetected you
need to lurk in the darkness, you might expand your domain, at the cost
of the crew eventually wising up to your shaeneningans.

Lastly, since the active component of the module uses the same proc of
the saboteur handgun, I've updated the code to be a generic proc rather
than a signal, to make it easier to reuse in the future.

Item desc provided by NecromancerAnne.

Module sprite made by Orcacora.

## Changelog

🆑
add: The Wraith Cloaking Module is now available in the uplink, costs 3
TC.
code: the saboteur handgun now uses a  generic proc rather than a signal
/🆑

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-12 17:51:09 +00:00
SkyratBot 32714950c9 [MIRROR] Pyro and cryo beams (the genetics powers) adjust temperature more severely, additional effects to make them more meaningfully interact with the world (#28799)
* Pyro and cryo beams (the genetics powers) adjust temperature more severely, additional effects to make them more meaningfully interact with the world (#84628)

## About The Pull Request

Pyro and cryo beams now adjust temperature by a much larger margin. This
is to help them remain useful against....humans. Just straight up naked
humans.

Pyro beams can ignite objects and heat reagents within an object. Cryo
beams freeze reagents in an object.

Cryo beams directly inflict the freezing blast status effect so that you
absolutely will slow someone down on hit. No more fucking around with
temp to MAYBE get some kind of effect.

## Why It's Good For The Game

There was a point where cryokinesis was actually fairly good at slowing
people down. Unfortunately, the same person who last touched temperature
code also made it nearly unusable against regular human targets due to
the rapid pace at which humans normalize their temperature. It takes a
good while before temperature slowdown starts to take effect.

Pyro beams have additional on-hit effects, which cryobeam does not.
Cryobeams only have the temperature adjustment and as noted, it is quite
weak. Being on fire starts to damage equipment and present a more
tangible danger in some environments, such as plasma floods or having
just been hit with an accelerant such as alcohol.

By including a status effect onto the cryo beam that forces the target
to slow down, we avoid the issue of people ignoring the effect of the
cryobeam entirely as a meaningful attack compared to being shot by a
pryro beam, which will usually cause people to start panicking or moving
to remove the fire in some way.

I also think by adding some additional interactions to the beam to make
them meaningfully affect some world objects, like flammable objects,
helps to realizes the idea a bit better of them being blasters of
temperature rather than just being bullets. It means it goes a little
beyond just being a weapon and potentially now a tool. (It was thinking
of Bioshock's plasmid advertising when I made this, like lighting
cigarettes.)

## Changelog
🆑
balance: Cryokinesis and pyrokinesis more severely adjust temperature.
balance: Cryokinesis forces a target to slow down on hit for a few
seconds.
balance: Pyrokinesis can ignite objects.
balance: Temperature projectiles change the temperature of the target's
contained reagents.
/🆑

* Pyro and cryo beams (the genetics powers) adjust temperature more severely, additional effects to make them more meaningfully interact with the world

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2024-07-12 18:24:59 +05:30
necromanceranne 1343bcb1ae Pyro and cryo beams (the genetics powers) adjust temperature more severely, additional effects to make them more meaningfully interact with the world (#84628)
## About The Pull Request

Pyro and cryo beams now adjust temperature by a much larger margin. This
is to help them remain useful against....humans. Just straight up naked
humans.

Pyro beams can ignite objects and heat reagents within an object. Cryo
beams freeze reagents in an object.

Cryo beams directly inflict the freezing blast status effect so that you
absolutely will slow someone down on hit. No more fucking around with
temp to MAYBE get some kind of effect.

## Why It's Good For The Game

There was a point where cryokinesis was actually fairly good at slowing
people down. Unfortunately, the same person who last touched temperature
code also made it nearly unusable against regular human targets due to
the rapid pace at which humans normalize their temperature. It takes a
good while before temperature slowdown starts to take effect.

Pyro beams have additional on-hit effects, which cryobeam does not.
Cryobeams only have the temperature adjustment and as noted, it is quite
weak. Being on fire starts to damage equipment and present a more
tangible danger in some environments, such as plasma floods or having
just been hit with an accelerant such as alcohol.

By including a status effect onto the cryo beam that forces the target
to slow down, we avoid the issue of people ignoring the effect of the
cryobeam entirely as a meaningful attack compared to being shot by a
pryro beam, which will usually cause people to start panicking or moving
to remove the fire in some way.

I also think by adding some additional interactions to the beam to make
them meaningfully affect some world objects, like flammable objects,
helps to realizes the idea a bit better of them being blasters of
temperature rather than just being bullets. It means it goes a little
beyond just being a weapon and potentially now a tool. (It was thinking
of Bioshock's plasmid advertising when I made this, like lighting
cigarettes.)

## Changelog
🆑
balance: Cryokinesis and pyrokinesis more severely adjust temperature.
balance: Cryokinesis forces a target to slow down on hit for a few
seconds.
balance: Pyrokinesis can ignite objects.
balance: Temperature projectiles change the temperature of the target's
contained reagents.
/🆑
2024-07-12 00:39:06 +02:00
SkyratBot f4e244fb49 [MIRROR] Refactors embedding to use datums instead of storing data in bespoke elements (#28699)
* 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.
/🆑

* Refactors embedding to use datums instead of storing data in bespoke elements

* modular fixes

* fix c14

* paint -> pain ugggh

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-08 14:50:05 +05:30
SmArtKar 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
SkyratBot e39d05b259 [MIRROR] Pyrokinesis bolts no longer have infinite range and hotspots (#28518)
* Pyrokinesis bolts no longer have infinite range and hotspots (#84484)

## About The Pull Request

Closes #84483
Original author forgot to call the parent proc which was supposed to
send a comsig and delete the projectile.

## Changelog
🆑
fix: Pyrokinesis bolts no longer have infinite range and create trails
of fiery doom.
/🆑

* Pyrokinesis bolts no longer have infinite range and hotspots

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2024-07-01 19:35:25 +05:30
SmArtKar a093deee76 Pyrokinesis bolts no longer have infinite range and hotspots (#84484)
## About The Pull Request

Closes #84483
Original author forgot to call the parent proc which was supposed to
send a comsig and delete the projectile.

## Changelog
🆑
fix: Pyrokinesis bolts no longer have infinite range and create trails
of fiery doom.
/🆑
2024-07-01 00:43:27 +02:00
SkyratBot d13ba21201 [MIRROR] First Genetics Content in 5 Years (Adds new positive mutations!) (#28449)
* First Genetics Content in 5 Years (Adds new positive mutations!)

* Update reach.dm

* delete

* Update adaptation.dm

* Update reach.dm

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-30 16:30:13 +05:30
carlarctg ff836e10be First Genetics Content in 5 Years (Adds new positive mutations!) (#83652)
## About The Pull Request

Sister PR to #83439, that needs to be merged before this.

Adds a plethora of new positive mutations to the game!

Mutations now have a variable that directly adds and removes traits
instead of manually doing so for idk

Tripled cryobeam range.

Made the mushroom hallucinogen's code more readable.

- Adrenaline Rush
Trigger your body's adrenaline response, granting you 10 * P units of
pump-up, synaptizine, and determination. After 25 seconds, you crash,
recieving 7 * S units of tiring and dizzying solution. Can be Energized,
Powered, and Synchronized.
- Mending Touch
Transfer injuries from the target to yourself! Heal 35 * P damage,
recieving up to 35 * S damage in turn. Transfers moderate wounds, fire
stacks, and attempts to parallel limb-to-limb damage. Has bonuses for
pacifist players. Can be Energized, Powered, and Synchronized.
- Elastic Arms
Your arms become floppy and you can interact with things as if you were
adjacent to them from one tile further! Does not work through walls or
dense objects, and you become unable to lift huge items, pull large
corpses, and you get chunky fingers.

Split temperature adaptation into three:
- Cold Adaptation
Gain cold immunity, gain ice slip immunity!
- Heat Adaptation
Gain heat and ash storm immunity 
- Thermal Adaptation
Resist both cold and heat, but no extra fancies. The sprite is green
now!
Pressure Adapt has a purple sprite.

You can mix the cold mutations with Fiery Sweat to make these new ones:

- Cindikinesis
Instead of summoning snow, you can now summon... ash. Wow. Very cool.
- Pyrokinesis
You can fire fire now! Fires beams of heat that, unlike the temperature
gun, actually ignite on hit. Higher instability cost than its sister
mutation.

The changes have been themed primarily around classic superhero
gimmicks. Genetics feels like a natural spawning point for superheroes,
and its mutations show this via the good ol' 'radiation made me fire eye
lasers' hero backstory. Adding more ways to be a superhero is fun.

Also, added two new speech mutations:
- Trichromatic Larynx
Every word you say is now either red, green, or blue!
- Heckacious Larynx (Trichromatic Larynx x Wacky)
You sound, well. Absolutely ridiculous. Spectacularly silly. Profoundly
wacky. Don't give it to the clown.
Unlocked the Elvis mutation as well.

## Why It's Good For The Game

> Adds a plethora of new positive mutations to the game!

Genetics is in desperate need of new content, all it's had for years is
a slow gutting and removal of the few things it does have. Hulk is,
being real, stupid, dumb, stagnated, and overpowered, but it's been
begrudgingly accepted because genetics is quite literally just, nothing
without it. I'm here to add the somethings to genetics and add some more
variety (and no i'm not touching hulk)

> Mutations now have a variable that directly adds and removes traits
instead of manually doing so for every mutation.

Less stupid

> Tripled cryobeam range.

Shit joke mutation is now long-range shit joke mutation!

> Made the mushroom hallucinogen's code more readable.

Slightly OOS because I was going to add color blind mutations but
decided not to creep. This piece o shit code has been hurting my head
for years and now that I've finally understood it I want to make sure
others don't go through that pani.

> - Adrenaline Rush
A quick burst of some mild chemicals at the cost of eventual nausea,
sounds like a fair trade to me! If you're already on the ground, this
isn't going to do anything.
> - Mending Touch
Healing is something that's lacking from the mutations, and this puts a
fun spin on it, making the caster a damage pincushion as they heal and
absorb damage.
> - Elastic Arms
Classic superhero power, very funny, lots of silly and sandbox
potential. Has innate drawbacks because 1. thematic and 2. it's pretty
strong

> Split temperature adaptation into three:
They combine into the same thing it used to be, so don't freak out. This
just adds some separation between the immune types, for things like
themed superheroes.

> - Cold Adaptation
Perhaps mildly concerning, but I think this might be a fun spin on it?
TODO: make hiking boots effect?
> - Heat Adaptation
Nothing to say. It's cool.
> - Thermal Adaptation
Nothing wrong with this mutation so it stays in

> You can mix the cold mutations with Fiery Sweat to make these new
ones:
How can we have frozone and not, uh human torch or something. why are
there no heavy hitter fire superheroes in marvel or dc???
> - Cindikinesis
Can't really summon an equivalent to snow that's actually useful, so
here's this instead. Clown might like it, or maybe the chemist.
> - Pyrokinesis
The ignition effect is fairly weak and mostly a deterrent. I think this
is the most dangerous ranged mutation in the game, which is kinda sad.

> - Trichromatic Larynx
Colors are fun! We have speech mutations that change words but none that
change their color. Though, to be fair, this was mostly added for the
mutation below's combination.
> - Heckacious Larynx (Trichromatic Larynx x Wacky)
I felt that Wacky wasn't nearly wacky enough. It just made your speech
comic sans. That's great and all, but. It's not much? This will be a
truly clownly mutation, the Genetics equivalent of a HONK mech. I made
it a combination mutation specifically to restrain its power level.
> Unlocked the Elvis mutation as well.
Was there a reason to lock this?

## Changelog

🆑
add: Added tons of new mutations to Genetics, alongside some recipes!
add: Thermal Adaptation has been made a combination mutation from the
stronger but narrower Cold and Heat adaptations.
balance: Cryobeams have 9 tile range, and fiery sweat doesn't cause
spread on contact.
image: Added some neat new sprites for the new mutations, and added a
greyscale version of the magic hand sprites.
code: Infinitesmally improved mutation code.
/🆑
2024-06-28 17:52:09 -04:00
SkyratBot 813591ad15 [MIRROR] Small playsound audit, particularly involving portal sounds (#28170)
* Small playsound audit, particularly involving portal sounds

* wew

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2024-06-15 18:42:58 +01:00
SkyratBot 9efdb4f8bb [MIRROR] Wawastation (#27992)
* Wawastation

* Update _basemap.dm

* Update gateway.dm

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-15 17:23:24 +01:00
MrMelbert 6fea9d999d Small playsound audit, particularly involving portal sounds (#83893)
## About The Pull Request

I was looking at sounds (as you do) and I noticed this


![image](https://github.com/tgstation/tgstation/assets/51863163/25b298ca-31ac-48a0-9f86-c65a8becd532)

These sounds don't exist

We have `portal_open_1`, not `portal_open1`. 
This wasn't caught on compile because they used `""` and not `''`.

So I went through and audited a bunch of playsound uses that don't use
`''`. Only one error, fortunately

Likewise there was a ton of places running `get_sfx` pointlessly
(because `playsound` does it for you) so I clened that up.

However while auditing the portal stuff I noticed a few oddities, so I
cleaned it up a bit.

Also also I added the portal sounds to the wormholes event and gave it a
free ™️ optimization because it was an in-world loop

## Changelog

🆑 Melbert
sound: Portals made by portal guns now make sounds as expected
sound: Wormholes from the wormhole event now make sounds when formed
/🆑
2024-06-13 23:47:37 -06:00
jimmyl c57afc4689 Wawastation (#82298)
- [x] #82282
- [x] map in aux base how the hell did i forget it
- [x] fill out maints
- [x] properly test the goddamn thing
- [x] fix major cameranets
- [ ] fix any issues
- [x] write a proper pr body

## About The Pull Request

adds this map to the map rotation

bottom level (24.5.2024)
![StrongDMM-2024-05-24 06 59
36](https://github.com/tgstation/tgstation/assets/70376633/6ca7cbef-88cb-4225-9814-8e521447a7f2)


upper level (24.5.2024)

![image](https://github.com/tgstation/tgstation/assets/70376633/8de5e61d-73a8-453d-8b87-025e5ab0b26a)





## general map details and department stuff
- the station is more focused on the bottom level, so falling in doesnt
roundremove you
- this is an asteroid station, so assistants can larp as dorfs and mine
towards the sweet loot
- there is plenty multiz usage
- service is the center of the station

**Service** - Is the center of the station. Arrivals docks directly in
the middle of the station next to Upper Service, so bar might get more
traffic. Not much different than normal Service, but janitors closet is
also present here, he sleeps on the floor. We do not talk about the
janitor. Above Bar is Library and Hydroponics with an overlook to look
at bar. The Theater has a big curtain and a podium directly in the bar.

29.3.2024

![ezgif-1-4549df2db8](https://github.com/tgstation/tgstation/assets/70376633/eb0d7b41-3bd9-444d-b74a-ec99ac6be649)


**Civilian** - Also in the center of the station, next to bar. There
isnt much to talk about dorms, its pretty normal.

**Cargo** - Absence of chutes that go to departments, reminder that mail
sorting is a thing. Cargo bay is a big open area with a boutique/shop
facing primary hall that starts closed, and Cargo has its own crate
elevator. Theres upper Cargo where mining, bitrunning and a secure
warehouse is located (There may be a murder scene). The quartermasters
office spans two z-levels and is relatively compact. Not much else
different from regular cargo. ~~Oh also the QM starts with an empty
PML-9 and a mostly functional rocket~~

29.3.2024

![ezgif-1-4d6bfe6c07](https://github.com/tgstation/tgstation/assets/70376633/cdac216c-2587-41d8-8ffd-5064378347eb)


**Medical** - Large centralized medbay, also two z-levels. There is a
public waiting room with triage and a reception. There is also an inner
elevator for the crippled. There are two medbay-access patient rooms
that are unrestricted from the inside, and two operating rooms. Medbay
has its own rad shelter. The virologist does not get their own
satellite, but is still relatively secure.

29.3.2024
https://i.ibb.co/hs9kKbV/ezgif-1-f7b697b067.gif (large gif)

**Command** - AI Sat transit tube access is here. HoP has an open stall
facing primary hall, ~~and maybe a piano trapdoor~~ pretty classic
bridge, Captain does not get his own office but gets a really
comfortable quarters with his own emergency mass ejection for abandoning
ship. The council meeting room is present above bridge, with ERT Ferry
dock docking inside adjacent to the council room.

**Security** - Mostly bottom z level security. Very compact brig cells,
and a meeting room that everyone that is related to security may spawn
in if youre lucky. Warden has a weapon handout point facing the inner
security hall and the equipment room. Reeducation chamber has a shocked
grille treadmill. HoS and Warden Room and armory are on the upper
z-level, and warden has a VERY good overlook over permabrig. Armory is
seperated into nonlethal to mostly nonlethal and lethal.

29.3.2024

![ezgif-1-d833de73fc](https://github.com/tgstation/tgstation/assets/70376633/860d4d7e-c250-4ad2-a2d6-4ae126defab5)


**Science** - Also pretty centralized, breakroom with a smoking corner,
two z levels and a big overlook. RD office overlooks toxins and bomb
site. Genetics and RD Office is on the upper floor, with a science
exclusive monkey exhibit. Xenobio is thick due to proximity to bomb
site, otherwise normal.

29.3.2024

![ezgif-1-4f8814ece9-1](https://github.com/tgstation/tgstation/assets/70376633/73afd9da-f37b-402b-aead-84f81c13cf7b)


**AI Sat** - Okay at this point assume any department is multiz. The
antechamber is an elevator and the turrets are on said elevator. The
elevator may be sent to the top level by engineers, where the AI core
is. Telecomms is on the bottom level, and AI core is above it. Contains
a borg entertainment room, and also the upload. The elevator being
raised is necessary to properly enter AI Room.

**Engineering** - Contains a less stale but still average and less than
optimal SM setup. Prone to catastrophic disaster. The SM Room is two
levels and very open, and CE has a trapdoor directly into the shard.
Turbine is above atmospherics, so is the crystallizer. The HFR and main
atmos and distribution room are on the bottom level. Piped by **Kendra
Hunter**. Contains a built in electrolyzer corner so atmos mains stop
gutting the aesthetics to place down some dumb machine.

## Why It's Good For The Game

another interesting map into the roster, different from the other multiz
maps in the form that you dont get stuck in hell by falling down a hole

todo write better section

## Changelog
🆑
add: wawastation, the station map
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2024-06-04 07:11:13 -07:00
SkyratBot 3949817e33 [MIRROR] allows the SC/FISHER to shoot floor lights (#27703)
* allows the SC/FISHER to shoot floor lights (#83182)

## About The Pull Request
Lowers the hit threshold layer of SC/FISHER bolts from
`PROJECTILE_HIT_THRESHHOLD_LAYER` (2.75) to `LOW_OBJ_LAYER` (2.5),
allowing you to shoot floor lights with it.

## Why It's Good For The Game
floor lights count as lightbulbs and therefore you should be able to
explode them with the gun that explodes lightbulbs

## Changelog

🆑
fix: The SC/FISHER can now shoot floor lights.
/🆑

Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>

* allows the SC/FISHER to shoot floor lights

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
2024-05-16 06:27:04 +02:00
SkyratBot 1cfd96c899 [MIRROR] Portals now make sounds (#27701)
* Portals now make sounds (#83166)

## About The Pull Request
### New sounds:

https://drive.google.com/drive/folders/1vLoyxY93Qfe_GtCnetkEHLrkGYZ8S7nD?usp=sharing

Demo:

https://github.com/tgstation/tgstation/assets/96586172/2c468ab8-deea-4151-8d66-167b63fdda39

Changes teleporter,gulag teleporter, hand tele, bluespace teleport gun,
cultist teleport, experimental syndicate teleporter teleport sounds.
## Why It's Good For The Game
I think sounds are an integral part of immersion and having no cool
sci-fi noises for portals really spoils it.
## Changelog
🆑 grungussuss and Virgilcore
sound: portals now have a unique sound to them
/🆑

* Portals now make sounds

---------

Co-authored-by: Sadboysuss <96586172+Sadboysuss@users.noreply.github.com>
2024-05-15 22:28:47 -04:00
Hatterhat 3f73d00482 allows the SC/FISHER to shoot floor lights (#83182)
## About The Pull Request
Lowers the hit threshold layer of SC/FISHER bolts from
`PROJECTILE_HIT_THRESHHOLD_LAYER` (2.75) to `LOW_OBJ_LAYER` (2.5),
allowing you to shoot floor lights with it.

## Why It's Good For The Game
floor lights count as lightbulbs and therefore you should be able to
explode them with the gun that explodes lightbulbs

## Changelog

🆑
fix: The SC/FISHER can now shoot floor lights.
/🆑

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2024-05-15 02:37:21 +02:00
Sadboysuss 8b8934c700 Portals now make sounds (#83166)
## About The Pull Request
### New sounds:

https://drive.google.com/drive/folders/1vLoyxY93Qfe_GtCnetkEHLrkGYZ8S7nD?usp=sharing

Demo:


https://github.com/tgstation/tgstation/assets/96586172/2c468ab8-deea-4151-8d66-167b63fdda39



Changes teleporter,gulag teleporter, hand tele, bluespace teleport gun,
cultist teleport, experimental syndicate teleporter teleport sounds.
## Why It's Good For The Game
I think sounds are an integral part of immersion and having no cool
sci-fi noises for portals really spoils it.
## Changelog
🆑 grungussuss and Virgilcore
sound: portals now have a unique sound to them
/🆑
2024-05-15 02:32:01 +02:00
SkyratBot 06f045f781 [MIRROR] Makes the rocket launcher epic ( Giant RPG Buff ) (#27047)
* Makes the rocket launcher epic ( Giant RPG Buff ) (#82212)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/82386923/79927d3a-8e5a-4330-92de-5542f4503dba)

![image](https://github.com/tgstation/tgstation/assets/82386923/9b8220ed-24f1-4a8a-b5f0-ff3886a32b9e)

The sprites of rocket launchers, rockets, and their projectiles have
been updated.

The name of the rocket launcher has been changed from "PML-9" to
"Dardo-RE Rocket Launcher".

Rocket launchers can be worn in suit slots as well as on your back if
you really wanted.

## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/82386923/09148ac9-6902-403c-a169-5fe7da1d8214)

The PML sprite is nearly like seven years old at this point I think.
This is something a little less ancient and a little more cool looking.

Speaking of cool. Weapon names that are just a bunch of random letters
and numbers together suck, especially with TTS around making some of
these abbreviated names pronounce really weird. The new one should roll
off the ai generated tongue a little easier if someone mentions it by
name.
## Changelog
🆑
add: The PML-9's name has been changed to something that's a little less
boring random numbers and letters, and something that TTS can likely
pronounce much nicer than before. Get blown up by a Dardo rocket
launcher today.
image: Sprites for rocket launchers, rockets, and rocket projectiles
have been changed to something fresher looking.
balance: Rocket launchers can be worn on your back or armor vest.
/🆑

* Makes the rocket launcher epic ( Giant RPG Buff )

---------

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
2024-04-04 13:37:55 -04:00
SkyratBot 37bc259bb0 [MIRROR] Refactor removing unused defines. (#26998)
* Refactor removing unused defines. (#82115)

Refactors a lot of the unused defines.

Refactors a lot of the unused defines.

Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>

* Oh well. I hope this works fine.

---------

Co-authored-by: Bilbo367 <163439532+Bilbo367@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2024-04-03 03:39:46 +02:00
Paxilmaniac 929a713b3e Makes the rocket launcher epic ( Giant RPG Buff ) (#82212)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/82386923/79927d3a-8e5a-4330-92de-5542f4503dba)

![image](https://github.com/tgstation/tgstation/assets/82386923/9b8220ed-24f1-4a8a-b5f0-ff3886a32b9e)

The sprites of rocket launchers, rockets, and their projectiles have
been updated.

The name of the rocket launcher has been changed from "PML-9" to
"Dardo-RE Rocket Launcher".

Rocket launchers can be worn in suit slots as well as on your back if
you really wanted.

## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/82386923/09148ac9-6902-403c-a169-5fe7da1d8214)

The PML sprite is nearly like seven years old at this point I think.
This is something a little less ancient and a little more cool looking.

Speaking of cool. Weapon names that are just a bunch of random letters
and numbers together suck, especially with TTS around making some of
these abbreviated names pronounce really weird. The new one should roll
off the ai generated tongue a little easier if someone mentions it by
name.
## Changelog
🆑
add: The PML-9's name has been changed to something that's a little less
boring random numbers and letters, and something that TTS can likely
pronounce much nicer than before. Get blown up by a Dardo rocket
launcher today.
image: Sprites for rocket launchers, rockets, and rocket projectiles
have been changed to something fresher looking.
balance: Rocket launchers can be worn on your back or armor vest.
/🆑
2024-03-26 14:53:34 -06:00
Bilbo367 466b3df048 Refactor removing unused defines. (#82115)
## About The Pull Request

Refactors a lot of the unused defines.

## Why It's Good For The Game

Refactors a lot of the unused defines.

## Changelog
Nothing player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-22 21:29:35 -06:00
SkyratBot 8e8cc93958 [MIRROR] Buffs the SC/FISHER Saboteur Handgun. (#26875)
* Buffs the SC/FISHER Saboteur Handgun. (#81553)

## About The Pull Request
The saboteur gun will now silence pAIs, toggle off radio broadcasting
(won't auto-relay nearby speech), disable turrets, chill out secbots a
little, and turn off APCs like power outages do.
The disrupt duration has also been buffed from 10/20 to 15/25 for ranged
and point-blank respectively.
Removed a conspicious chat message from an otherwise inconspicious gun.
Brought the code up to date.

## Why It's Good For The Game
The concept is cool, alas it's also undermined by how much of a joke
it's right now, and the game has plenty already.
The amount of interactions it has with things is underwhelming, so you
could barely consider it a stealth tool. The duration is also quite
scarce, I pointed that out in the original PR too.

Basically, I want to make the item cooler.

## Changelog

🆑
balance: Buffed the duration of the SC/FISHER Saboteur Handgun's
disruption effects. It's also stealthier and it won't conspiciously
alert living mobs hit by it.
add: Added saboteur interactions with radios, pAIs, turrets, secbots and
APCs.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Buffs the SC/FISHER Saboteur Handgun.

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2024-03-13 19:47:45 -04:00
Ghom 9f4a8dfc50 Buffs the SC/FISHER Saboteur Handgun. (#81553)
## About The Pull Request
The saboteur gun will now silence pAIs, toggle off radio broadcasting
(won't auto-relay nearby speech), disable turrets, chill out secbots a
little, and turn off APCs like power outages do.
The disrupt duration has also been buffed from 10/20 to 15/25 for ranged
and point-blank respectively.
Removed a conspicious chat message from an otherwise inconspicious gun.
Brought the code up to date.

## Why It's Good For The Game
The concept is cool, alas it's also undermined by how much of a joke
it's right now, and the game has plenty already.
The amount of interactions it has with things is underwhelming, so you
could barely consider it a stealth tool. The duration is also quite
scarce, I pointed that out in the original PR too.

Basically, I want to make the item cooler.

## Changelog

🆑
balance: Buffed the duration of the SC/FISHER Saboteur Handgun's
disruption effects. It's also stealthier and it won't conspiciously
alert living mobs hit by it.
add: Added saboteur interactions with radios, pAIs, turrets, secbots and
APCs.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-03-13 22:25:29 +00:00
SkyratBot 9a3fb5c5c1 [MIRROR] FOV is Dead (Long Live FOV) [MDB IGNORE] (#25600)
* FOV is Dead (Long Live FOV)

* Update _megafauna.dm

* Update _vehicle.dm

* FOV Hotfix: Actually offsets gameplane render relays

* removes redundant visual_shadow

* removes GAME_PLANE_UPPER references

* Update mob_movement.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-12-23 17:47:07 +00:00
LemonInTheDark f03084c1ca FOV is Dead (Long Live FOV) (#80062)
## About The Pull Request

FOV as it is currently implemented is incompatible* with wallening.
I'm doin wallening, so we gotta redo things here.

The issue is the masking of mobs. Wallening relies on sidemap (layering
based off physical position), which only works on things on the same
plane (because planes are basically sheets we render down onto)
So rather then masking mobs, let's reuse the masking idea from old fov,
and use it to cut out a bit of the game render plane, and
blur/over-saturate the bit that's masked out.

My hope is this makes things visible in light, but not as much in
darkness, alongside making more vivid shit more easily seen (just like
real life)

Here's some videos, what follows after is the commits I care about
(since I had to rip a bunch of planes to nothing, so the files changed
tab might be a bit of a mess)

Oh also I had to remove the darkness pref since the darkness is doing a
lot of the heavy lifting now. I'm sorry.

Edit:
NEW FOV SPRITES! Thanks dongle your aviator glasses will guide us to a
better future.


https://github.com/tgstation/tgstation/assets/58055496/afa9eeb8-8b7b-4364-b0c0-7ac8070b5609


https://github.com/tgstation/tgstation/assets/58055496/0eff040c-8bf1-47e4-a4f3-dac56fb2ccc8

## Commits I Care About

[Implements something like fov, but without the planes as layers
hell](https://github.com/tgstation/tgstation/commit/a604c7b1c8d74cd27af4d806d85892c1f7e35ba8)

Rather then masking out mobs standing behind us, we use a combo color
matrix and blur filter to make the stuff covered by fov harder to see.

We achive this by splitting the game plane into two, masking both by fov
(one normally and one inversely), and then applying effects to one of
the two.

I want to make the fov fullscreens more gradient, but as an effect this
is a good start

[Removes WALL_PLANE_UPPER by adding a WALL_PLANE overlay to material
walls (init cost comes
here)](https://github.com/tgstation/tgstation/commit/25489337392f708cb337fbf05a2329eacdfc5346)

@Mothblocks see this. comment in commit explains further but uh, we need
to draw material walls to the light mask plane so things actually can be
seen on them, but we can't do that and also have them be big, so they
get an overlay. Sorry, slight init time bump, about 0.5 seconds. I can
kill it with wallening.

[Moves SEETHROUGH_PLANE above
ABOVE_GAME_PLANE](https://github.com/tgstation/tgstation/commit/beec4c00e01d34a04fba7c2bb98a9b70d27ead82)

I don't think it actually wants to draw here
@Time-Green I think this was you so pinging for opinion

[Resprites FOV masks to be clean (and more
consistent)](https://github.com/tgstation/tgstation/pull/80062/commits/f02ad13696b3b17658af612c62848b48609d785d)

[f02ad13](https://github.com/tgstation/tgstation/pull/80062/commits/f02ad13696b3b17658af612c62848b48609d785d)

This is 100% donglesplonge's work, he's spent a week or so going back
and forth with me sharpening these to a mirror shine, real chill

## Why It's Good For The Game

Walls are closing in

## Changelog
🆑 LemonInTheDark, Donglesplonge
image: Redoes fov "mask" sprites. They're clean, have a very pleasant
dithering effect, and look real fuckin good!
del: Changed FOV, it no longer hides mobs, instead it blurs the hidden
area, and makes it a bit darker/oversaturated
/🆑

###### * It's technically possible if we start using render targets to
create 2 sets of sources but that's insane and we aren't doing it
2023-12-13 15:52:24 +01:00
SkyratBot 29d5249962 [MIRROR] Makes the SC/FISHER a bit better - more range/accessibility/pacifist-usability [MDB IGNORE] (#25135)
* Makes the SC/FISHER a bit better - more range/accessibility/pacifist-usability (#79835)

## About The Pull Request
- SC/FISHER is now pacifist-usable.
- SC/FISHER black-market availability prob up to 75, from 50.
- SC/FISHER range bumped from 14 to 21.

## Why It's Good For The Game
The SC/FISHER does no damage (except against ethereals, where it does a
grand total of 3 per shot), which I think is negligible but can be
removed if it's that bad to allow pacifists a gimmick method of
murdering another guy, so I think pacifists should be allowed to use it.

The range buff and black-market availability are just because I felt
like it, since I don't think it's available enough, especially for a
doohickey whose sole purpose is "break lightbulbs".

## Changelog

🆑
balance: The SC/FISHER disruptor pistol is now more likely to show up in
black market uplinks.
balance: The SC/FISHER now has more range (21 tiles up from 14), and is
usable by pacifists.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>

* Makes the SC/FISHER a bit better - more range/accessibility/pacifist-usability

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
2023-11-20 09:56:48 -05:00
Hatterhat 6a77a2962a Makes the SC/FISHER a bit better - more range/accessibility/pacifist-usability (#79835)
## About The Pull Request
- SC/FISHER is now pacifist-usable.
- SC/FISHER black-market availability prob up to 75, from 50.
- SC/FISHER range bumped from 14 to 21.

## Why It's Good For The Game
The SC/FISHER does no damage (except against ethereals, where it does a
grand total of 3 per shot), which I think is negligible but can be
removed if it's that bad to allow pacifists a gimmick method of
murdering another guy, so I think pacifists should be allowed to use it.

The range buff and black-market availability are just because I felt
like it, since I don't think it's available enough, especially for a
doohickey whose sole purpose is "break lightbulbs".

## Changelog

🆑
balance: The SC/FISHER disruptor pistol is now more likely to show up in
black market uplinks.
balance: The SC/FISHER now has more range (21 tiles up from 14), and is
usable by pacifists.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-11-19 19:22:40 -05:00
SkyratBot 4b4119e4b6 [MIRROR] New Muzzle Flash + Temperature gun Baking beam change [MDB IGNORE] (#24557)
* New Muzzle Flash + Temperature gun Baking beam change

* Update _energy.dm

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-24 20:06:57 +00:00
DrTuxedo 28559aa7fc New Muzzle Flash + Temperature gun Baking beam change (#79212)
## About The Pull Request
Now there are new muzzle flash sprites for the guns. There are 3 types:

**BALLISTICS**


https://github.com/tgstation/tgstation/assets/42353186/82d7b285-fcf0-4780-8479-143691641e0a

**BLUE**


https://github.com/tgstation/tgstation/assets/42353186/331c926d-8556-4715-ab61-9a4998dd93d2

**RED**


https://github.com/tgstation/tgstation/assets/42353186/c814646d-6d56-4426-bde7-b7a7a06caa39

Also, now temperature gun "BAKE" mode beams have different sprites from
the "FREEZE" beams:


https://github.com/tgstation/tgstation/assets/42353186/c78363ac-ad04-4534-9323-dc13ba017823
## Why It's Good For The Game

Muzzle flashes were one of the most oldest effect sprites in the base,
and are rather bad and bland looking.
This makes them more good-looking. Also gives variety, previously there
only been Ballistic and Energy one, and they weren't even different.

Temperature gun "BAKE" mode beam having a different colour will help
distinguish what the hell you're being shot with.
## Changelog
🆑
image: Muzzle flashes got a new sprite, each direction included!
image: Temperature Gun "BAKE" beams are now lava colored
/🆑
2023-10-24 13:05:34 -04:00
SkyratBot c63f897521 [MIRROR] It is now possible to survive the Mansus [MDB IGNORE] (#24490)
* It is now possible to survive the Mansus  (#79131)

## About The Pull Request

Fixes #79113

There were a handful of bugs with the Mansus realm, this PR fixes them.

Firstly an most importantly, a refactor to damage handling touched the
"unholy determination" effect incorrectly (and I'm not even sure why?),
causing it to damage you instead of healing you most of the time. This
damage was not avoidable, so most people would be crit shortly after
entering the area and stay there.

Secondly, some of the heretic realms were unlit. A change to when
lazyloaded template atmosphere initialises means that the bonfires were
trying to light themselves with no air. Now they do this in
late_initialize instead, giving time for air to arrive.

Thirdly, the spooky hands were runtiming when passing through transit
tiles outside of the bounds of the heretic map. They shouldn't be
effected by shuttle drag anyway, so now they aren't.

Fourthly, I removed a row of empty space at the edge of the heretic map,
just because it annoyed me slightly.

Finally, while I was touching the heretic buff I made it heal you 1/4 as
much as it originally did. This is a balance change rather than a fix,
I'll atomise it out if it is controversial but I don't really expect it
to be.
In the future I would like to come back to these and make each realm
more specific to the path, because I think we could make these both more
exciting and more characterful.

## Why It's Good For The Game

Once it is working properly, the hand dodging minigame is actually
extremely forgiving, even if you don't move very much and get frequently
hit. This means some of those hits might actually add some tension.

## Changelog

🆑
fix: You should be revived properly when entering the mansus realm
following a heretic sacrifice
fix: The buff which is supposed to heal you in the mansus realm will now
do that instead of unavoidably damaging you
balance: The mansus realm's healing buff heals for 25% as much as it did
before it was broken
/🆑

* It is now possible to survive the Mansus

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-10-21 15:12:00 -04:00
Jacquerel 10f194781d It is now possible to survive the Mansus (#79131)
## About The Pull Request

Fixes #79113

There were a handful of bugs with the Mansus realm, this PR fixes them.

Firstly an most importantly, a refactor to damage handling touched the
"unholy determination" effect incorrectly (and I'm not even sure why?),
causing it to damage you instead of healing you most of the time. This
damage was not avoidable, so most people would be crit shortly after
entering the area and stay there.

Secondly, some of the heretic realms were unlit. A change to when
lazyloaded template atmosphere initialises means that the bonfires were
trying to light themselves with no air. Now they do this in
late_initialize instead, giving time for air to arrive.

Thirdly, the spooky hands were runtiming when passing through transit
tiles outside of the bounds of the heretic map. They shouldn't be
effected by shuttle drag anyway, so now they aren't.

Fourthly, I removed a row of empty space at the edge of the heretic map,
just because it annoyed me slightly.

Finally, while I was touching the heretic buff I made it heal you 1/4 as
much as it originally did. This is a balance change rather than a fix,
I'll atomise it out if it is controversial but I don't really expect it
to be.
In the future I would like to come back to these and make each realm
more specific to the path, because I think we could make these both more
exciting and more characterful.

## Why It's Good For The Game

Once it is working properly, the hand dodging minigame is actually
extremely forgiving, even if you don't move very much and get frequently
hit. This means some of those hits might actually add some tension.

## Changelog

🆑
fix: You should be revived properly when entering the mansus realm
following a heretic sacrifice
fix: The buff which is supposed to heal you in the mansus realm will now
do that instead of unavoidably damaging you
balance: The mansus realm's healing buff heals for 25% as much as it did
before it was broken
/🆑
2023-10-21 13:34:57 -04:00
SkyratBot b6da56408e [MIRROR] A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc [MDB IGNORE] (#24430)
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024)

## About The Pull Request

- Refactored `bullet_act`. Adds `should_call_parent` and refactors
associated children to support that.
   - Fixes silicons sparking off when hit by disabler fire.
- Desnowflakes firing range target integrity and cleans up its
bullet-hole code a bit.
- Cleans up changeling tentacle code a fair bit and fixes it not taking
off throw mode if you fail to catch something.
   - The Sleeping Carp deflection is now signalized
- Nightmare projectile dodging is now signalized and sourced from the
Nightmare's brain rather than species
- Refactored how cardboard cutouts get knocked over to be less
snowflaked / use integrity
- Also adds projectile `on_hit` `should_call_parent` and cleans up a bit
of that, particularly their arguments.
- On hit arguments were passed wrong this entire time, it's a good thing
nothing relied on that.

## Why It's Good For The Game

This is cringe.

https://github.com/tgstation/tgstation/blob/1863eb2cd82e7cee4fdfff37b42d3fd0c7edd797/code/modules/mob/living/carbon/human/_species.dm#L1430-L1442

Bullets should overall act more consistent across mob types and objects.

## Changelog

🆑 Melbert
fix: Silicons don't spark when shot by disablers
fix: Changelings who fail to catch something with a tencacle will have
throw mode disabled automatically
fix: Fixes occasions where you can reflect with Sleeping Carp when you
shouldn't be able to
fix: Fixes some projectiles causing like 20x less eye blur than they
should be
refactor: Refactored bullet-mob interactions
refactor: Nightmare "shadow dodge" projectile ability is now sourced
from their brain
/🆑

* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc

* Modular changes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-19 22:18:41 -04:00