Commit Graph

10329 Commits

Author SHA1 Message Date
_0Steven
886cf157bc Allow for placing certain items directly on the floor, with precision (#90805)
## About The Pull Request

So I really wanted to do the stereotypical "really I'm just a
construction worker" break-in bit, but then quickly realized you can't
even place warning cones on the floor! You have to awkwardly drop them,
or put them on a table and move them off!
Thinking about that, I remembered my similar annoyance with candles for
rituals or wet floor signs when playing a janitor.

Initially this was intended to include the ability to stack warning
cones for easy storage and placement, but I realized that was taking a
_lot_ more time than making the other items placeable on the floor.
Because of this, I decided to atomize the much less complex part off
into this pr.

So here, in this pr, we add a simple element
`/datum/element/floor_placeable` and apply it to a list of items for
which I think "placing it on the floor" makes enough sense as an
interaction.

As a side to this, we add the plastic pickup/drop noises to wet floor
signs and warning cones, because they're made of plastic and it's
leagues better than being entirely inaudible.
We remove `var/cooldown = 0` from `/obj/item/toy/cattoy` because it
wasn't used.
## Why It's Good For The Game

Can't do the stereotypical hazard vest break-in in _style_ without the
ability to actually place the cones:

![image](https://github.com/user-attachments/assets/d9e8707b-87a2-4463-8bac-a5d8adf917c7)

Oh man is it so much less of a pain to make fancy schmancy rituals when
you don't have to place candles on tables and drag them off for it to
work:

![image](https://github.com/user-attachments/assets/c8d4966e-29b8-48bc-ac0b-c357157d4ba3)

It's really funny to be able to play with toys on the floor:

![image](https://github.com/user-attachments/assets/d604157e-4a90-4e50-a44f-0e9f2f63aeac)
## Changelog
🆑
add: Certain items can now be placed directly on the floor in the
clicked on location. This currently includes warning cones, wet floor
signs, candles, action figures, plushies, mech toys, and a list of other
toys.
sound: Warning cones now use plastic pickup/drop sounds.
sound: Wet floor signs now use plastic pickup/drop sounds.
/🆑
2025-04-28 15:58:45 +01:00
Bloop
3d01e86e29 There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## About The Pull Request


This PR:

- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.

- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.

- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.

- For the admins: Adds a clown blood smite.

My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.

I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.

This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
2025-04-28 00:57:59 -05:00
Fazzie
b8adf96b37 CatwalkStation (#90532)
## About The Pull Request

Adds CatwalkStation into the game.
Also adds its associated arrival shuttle, cargo shuttle and escape
shuttle.
Also adds a few new floor variants: coldroom openspace and breathable
air shuttle hulls.

Full Catwalk FAQ, Feedback Central and Why It's Good for the Game:
https://hackmd.io/@kNRZ9uxhShS3s2N9scOXxQ/BJgfF0JhR

Also, I added a new tag for maps, so any Multi-Z map can opt out of
having grappling hooks spawn in their bags. Catwalk was designed so the
lower level is of easier access than the more restricted top access, so
the problem of people falling into rooms they can't get out of is fixed,
+ it was giving a bunch of unintended access to places.

## Changelog

![365327162-97242637-002d-42d0-9882-aae73ebfa823](https://github.com/user-attachments/assets/c39068ee-9b41-43d4-b56b-dccfb122d8fc)

![365327135-201a800d-6d8b-471b-a73d-698d5d7e67ff](https://github.com/user-attachments/assets/cae0e7bd-7452-45b9-8d34-4228fc89c9c4)

![365327148-b1edf06e-9581-4165-98e7-b728c58a421b](https://github.com/user-attachments/assets/0666b40a-0108-4a80-949b-fb3315fe0472)

![364005220-8d5df862-01fd-4216-86ea-c90b75769e12](https://github.com/user-attachments/assets/ddbb3ab0-973c-44bb-9255-9e5620845239)

![365327156-2396267a-7a0f-4eb8-90c7-c7fa16926b65](https://github.com/user-attachments/assets/a8ef57e6-c779-4eb8-9796-2f63e65c0eb8)



🆑
add: Adds CatwalkStation
code: Multi-Z maps now can toggle on or off having grappling hooks in
people's bags
/🆑

---------

Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com>
Co-authored-by: Ical <wolfsgamingtips@gmail.com>
Co-authored-by: EEASAS <bentoemanuelll@gmail.com>
Co-authored-by: EEASAS <109891564+EEASAS@users.noreply.github.com>
Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com>
Co-authored-by: GremlinSeeker <168238458+GremlinSeeker@users.noreply.github.com>
Co-authored-by: SmArtKar <master.of.bagets@gmail.com>
2025-04-27 13:36:01 -07:00
Jacquerel
527910d845 Fix faulty wielded force checks (#90837)
## About The Pull Request

Fixes #90836
Fixes #90841

In a recent merge some checks in `component/two_handed` were changed
from `if(!value)` to `if(isnull(value))`.
This change was in error because these values are never null, they
default to 0.
I have changed them to more sensible and appropriate numerical checks.

## Changelog

🆑
fix: Holding a two-handed weapon in both hands will now once again
appropriately modify its attack power.
/🆑
2025-04-27 03:26:39 +10:00
SyncIt21
c135b48114 Makes check_teleport_valid pure & signal clean up (#90738)
## About The Pull Request
- Closes #90704

The following changes were implemented for this
- Moved sending signals `COMSIG_MOVABLE_TELEPORTING` &
`COMSIG_ATOM_INTERCEPT_TELEPORTING` from `check_teleport_valid` into
`do_teleport`. These 2 signals were causing all the side effects
- Removed signals `COMSIG_ATOM_INTERCEPT_TELEPORTED` &
`COMSIG_MOVABLE_TELEPORTED` as the above 2 signals can do their jobs &
block the teleport if needed so these signals became obsolete
- Removed define `COMPONENT_BLOCK_TELEPORT` in favour of returning a
positive value if teleport was successfully blocked. Having 2 signals
located in 2 separate files use this same define doesn't look great.


## Changelog
🆑
code: cleans up teleportation code. `check_teleport_valid` is now a pure
function with no side effects
/🆑
2025-04-26 16:37:57 +02:00
LemonInTheDark
a0a07e9f40 Unfucks /datum/browse code (#89994)
## About The Pull Request

What it was doing was by and large fine, HOW it was doing it SUCKED 
I've cleaned it up and the nearby code some, notable hits include: 
- random if check in secrets ui that was totally unused
- proc called add that actually set 
- lists not defined as such
- stupid var names
- proc args which did nothing
- code which did nothing
- oververbose code
- proc/var names with no spacing at all

Note: This might have changed behavior accidentally, I've done my best
to test but we'll need to look out for issue reports in coming days.

## Why It's Good For The Game

I was working on bitflag code and saw red, now it's 2 hours later.

## Changelog
🆑
code: Brought browser code up to standard with the rest of the codebase
admin: Hey lads, I cleaned up how non TGUI windows work on the backend,
please let me know if anything is broken! PING ME MOTHERFUCKER
/🆑
2025-04-25 17:36:34 -04:00
SmArtKar
fdad28e19d Fixes inconsistent PKC descriptions and broken bubblegum/wendigo trophies (#90736)
## About The Pull Request
Bubblegum trophy has attempted to modify its' *own* dual wielding, so if
you attached and detached it you were able to have a tiny 20 force two
handed weapon. Yeah. This PR implements a way for trophies to
consistently modify their damage, and fixes some oversights (values not
being assigned/updating) in two handed component code.

Closes #90731

## Changelog
🆑
fix: Fixed inconsistent proto-kinetic crusher descriptions
fix: Fixed Bubblegum and Wendigo crusher trophies sometimes not working.
/🆑
2025-04-25 15:36:00 +00:00
MrMelbert
19eb41a53c Clear Farsight and Rock Absorber effects on mutation removal (#90787)
## About The Pull Request

Fixes #90637

Adds on remove effects for Farsight and Rock Absorber, because I forgot.

## Changelog

🆑 Melbert
fix: Losing Farsight or Rock Absorber mutations will properly drop their
effects as well
/🆑
2025-04-25 15:17:19 +00:00
Tim
1200c26ce1 Allow boats to travel over water (#90823)
## About The Pull Request
Since we now have deep water that makes people drown, it makes sense to
go the extra mile and incorporate the ability for boats to travel over
water. This should allow some cool mapping stuff where you can make
islands that are only reachable by boat.

## Why It's Good For The Game
Mapping benefits.

## Changelog
🆑
add: Allow boats to travel over water
/🆑
2025-04-25 14:25:32 +00:00
Jacquerel
2e3046d1ae [no gbp] Drowning doesn't make you fitter (#90794)
## About The Pull Request

Fixes #90790

Decreases the exp gain from swimming and only grants it while you
actually have stamina.
Even if it doesn't kill you this shouldn't make you stronger

## Changelog

🆑
fix: Floating motionless and face down in the water doesn't count as a
workout
/🆑
2025-04-24 14:12:17 +00:00
Ghom
339616ae78 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...

...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!

I also tried to replace some of those single letter vars/args but there
are just way too many of them.

## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.

## Changelog

🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
2025-04-23 20:18:26 +00:00
Ghom
32de880995 Fixing two (three?) issues related to fishing. (#90740)
## About The Pull Request
Updating the code, fixing a couple issues steeming from fishing.

## Why It's Good For The Game
This should fix #90594 (I think?!), fix #90712 and fix #88514.

## Changelog

🆑
fix: Fixed moonfish eggs appearing like huge errors inside aquariums.
fix: Fixed starfish suicide sometimes not deleting you.
/🆑
2025-04-23 20:38:58 +01:00
SmArtKar
81a74c88bd Fixes AI not getting creampie face decals (#90762)
## About The Pull Request

Closes #90749 

## Changelog
🆑
fix: Fixed AI not getting creampie face decals
/🆑
2025-04-23 16:03:05 +00:00
Roxy
7f808bcec6 Fix flaky hard delete related to wound-induced brain traumas (#90751)
## About The Pull Request

Brain traumas caused by head wounds are stored as a reference on the
wound, but certain brain traumas (like split personality) `qdel`
themselves in `on_gain()` if conditions aren't valid for them to exist,
`/obj/item/organ/brain/proc/brain_gain_trauma` returns a reference even
if this happens, leading to the ref being stored on the wound and
preventing the trauma from being fully deleted.

## Why It's Good For The Game

Fixes #87752 

## Changelog

No player facing changes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-04-22 16:07:43 +02:00
Goat
9fa83a7701 Fixes megacarp not moving in space while ridden (#90760)
## About The Pull Request
adds a single line (`override_allow_spacemove = TRUE`) to the megacarp
movement datum
## Why It's Good For The Game
it's a big ass fucking shark if the small carp can carry me through
space so can the megacarp. if i remember correctly it used to be able to
so why not. i want to ride my cool ass shark through space
## Changelog
🆑 Goat
fix: The megacarp (shark) will now be able to fly through space when
ridden like its smaller carp siblings.
/🆑
2025-04-22 16:06:35 +02:00
John Willard
380c143431 Adds map feedback thread support (AI stat panel buff) (#90506)
## About The Pull Request

This PR started with the idea of adding support for map feedback
threads, which I added to the roundend report, escape menu, and stat
panel. To do this though I had to make pretty annoying changes to the
stat panel and had to touch every single time something to the stat
panel was added, so since we now have a way to have links in the stat
panel I thought of taking full advantage of it and add some QOL.

AIs can now track their borgs by clicking their status on the stat panel


https://github.com/user-attachments/assets/1789dc46-5d12-48e9-bb8d-d3278aa19639

With Melbert's comment, I added another stat panel entry that directs
you to the Webmap page, which currently seems to be a little messed up
(https://github.com/AffectedArc07/SS13WebMap/issues/41 &
https://github.com/AffectedArc07/SS13WebMap/issues/42) but if they get
fixed this would be a swag asf feature

##### Code bounty for Ezel/Improvedname

## Why It's Good For The Game

Feedback threads was a suggestion from a player and is fully in control
of admins as an optional thing, and while we still have stat panel I
think it's nice to be able to take advantage of its features.

## Changelog

🆑
admin: Admins can now link a URL for maps, used to give feedback on said
maps. Accessible through the roundend report, escape menu, and stat
panel.
qol: AIs can track their borgs by clicking on them in the stat panel.
qol: You can now directly go to the webmap of maps from the stat panel
(assuming it's set in config).
/🆑
2025-04-21 17:20:41 -07:00
Jacquerel
5c08ae27ed Adds "deep water" that you can drown in (#90587) 2025-04-21 08:06:06 -07:00
MrMelbert
32d04164c4 Adds Common Second Language quirk, tweaks to partial understanding (#90614)
## About The Pull Request

- Tweaks partial understanding. 

Paragraphs are now split into sentences first creating more natural
breaks between sentences.

- Adds "Common Second Language" quirk

This quirk changes your default understanding of common (up to) 90%
(your choice), meaning you drop the occasional word.


![image](https://github.com/user-attachments/assets/63e9d67b-7db2-4d23-9d0f-bae175962db4)


![image](https://github.com/user-attachments/assets/840ef391-5126-4ba7-9298-804686bcd6df)

Additionally, when your sanity drops below a threshold, you become
forced to speak your native language, albeit with a partial
understanding applied for everyone else.

Incompatible with similar language quirks + can't be taken by humans
(yet?)

## Why It's Good For The Game

Just a fun way to play around with the new "partial understanding"
system.

## Changelog

🆑 Melbert
add: "Common Second Language" quirk
qol: Language translations chunk sentences together better, making
partial understanding a bit easier to parse.
/🆑
2025-04-21 04:18:05 +01:00
SyncIt21
9bd45e2f3a Part 3: Storage Improvements (#90476)
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-04-20 12:02:29 +00:00
LT3
aada9a56d2 Drinking alcohol cures severe anxiety (#90599) 2025-04-20 13:43:05 +02:00
Jeremiah
47bfab81a6 [no gbp] Fixes tgui say input focus, again (#90608) 2025-04-20 13:41:52 +02:00
John Willard
7e3074a10b Drawing narsie updates your loc (#90727) 2025-04-20 13:32:56 +02:00
Jordan Dominion
ab901d73b0 Fix DMAPI version shown in show server revision (#90714)
It was showing the interop version in use which isn't really helpful
2025-04-20 08:20:55 +02:00
ariaworld
ae774d8dbd [FIX]: Allows surgery initiator items to be used while laying down, not just surgery drapes (#90622) 2025-04-19 12:28:42 +02:00
MrMelbert
69ae433d4e Wearing a human skin suit "fools" analyzers (#90681)
## About The Pull Request

If you have a human skin suit equipped, with its hood up, the health
analyzer will report you are a `"Human"`


![image](https://github.com/user-attachments/assets/bdef377f-6de4-4c36-ab20-343a8f02b51b)

## Why It's Good For The Game

It's the perfect disguise for alien species

## Changelog

🆑 Melbert
add: Human skin suit may trick the health analyzer... sort of
fix: Human skin suit no longer gives a useless action
/🆑
2025-04-18 11:31:23 -04:00
SmArtKar
13a3d24984 Fixes weather getting stuck and not affecting mobs (#90691)
## About The Pull Request

Weather subsystem code mixed up defines and indexes resulting in broken
behavior when you only had mobs and thunder defined in a subsystem.
Solved this by converting currentpart from define to active task index

Closes #90677

## Changelog
🆑
fix: Ash storms do damage again
/🆑
2025-04-18 11:29:53 -04:00
Bloop
3454ef7791 Stops the squeak component from playing step sounds when you are not walking (#90513)
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-04-18 15:40:29 +02:00
Jordan Dominion
d96afec583 [s] Fix a class of secret variable dumping via SDQL by stopping vars from being accessed by can_vv_get() (#90665) 2025-04-18 09:55:21 +02:00
Thunder12345
346297b090 Modular Shuttle Madness (#90412)
## About The Pull Request

Modularises the scrapheap challenge shuttle. Adds support to allow
shuttles to load modularly.

TODO:
- [x] Make it work why does this not load any more I fixed this before
- [x] After above, check if weird airflow issues still persist
~Find a less unusual solution for holding the shuttle back until it
loads?~ Not unless I want to rewrite the entirety of shuttle loading or
something

## Why It's Good For The Game

Modular generation makes the scrapheap challenge feel more "scrappy",
with it being put together of different parts each time you see it.
Added modularisation support allows for more modular shuttle trickery in
future.

## Changelog
🆑
add: Added support for modularly loaded shuttles.
add: The Scrapheap Challenge emergency shuttle now comes in randomly
generated variants.
/🆑
2025-04-17 17:37:11 -07:00
Jacquerel
809eab4258 Replace basic mob attack telegraph with slower reaction times (#90585)
## About The Pull Request

This PR removes the `basic_mob_attack_telegraph` component from all mobs
which were using it and instead implements an attack delay directly into
the basic melee AI behaviour.
This delay simulates "moving your mouse into position", human reaction
times, and the fact that the previous implentation of simple mobs would
only try to melee attack on a predictable timer you could "juke" around.

The way that this delay works is that it starts as soon as the mob
enters melee range and resets if you are ever out of the mob's reach, so
there will be no delay if you are foolish enough (or unfortunately
preventing from doing otherwise) to continue standing next to a mob but
there is enough of a one to duck in and out of melee range with a
goliath while using a crusher without getting hit, although trying to
run past one usually won't work.

This delay defaults to 0.3 seconds which in my testing experience was
roughly enough to dip in and out of range without getting hit but not
enough to run all the way past a mob without getting hit. It can be
overriden via the blackboard, although currently no mob does this.
I _was_ testing this locally with no latency though so I guess we'll
listen out to see if miners start yelling.

## Why It's Good For The Game

The visible attack broadcast is very cool but its visibility made melee
combat with any mob that had it significantly easier to such a degree
that any mob with it on could not really be expected to do melee damage
to any character that wasn't suffering some kind of immobilisation
effect which was never really the intention.

Removing it also removes any additional handicap that was applied to
sapient versions of these mobs, which was never really necessary or
intended in the first place.

I did not remove the component entirely from the game for two reasons:
- Out of the hope that there is some use for it somewhere, because I
think it's cool, but more importantly:
- Because it's still being used by simple mob megafauna as a workaround
for a bug we couldn't figure out.

## Changelog

🆑
balance: Most mobs will now hesitate for a moment before attacking
rather than instantly hitting anything that enters melee range, to
better simulate human behaviour. Please report if this delay seems too
short, or too long.
balance: Most mobs which telegraphed their basic attacks on you now will
not do that
/🆑
2025-04-16 18:03:17 -07:00
MrMelbert
d1d848d83f Fixes Russian Roulette by refactoring the gun to not be an affront to god (#90426)
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-04-15 18:00:43 +00:00
MrMelbert
61801b3d33 You can rotate scanner gates (#90597) 2025-04-15 10:34:12 -07:00
TiviPlus
8ea77e734d Deshittifies looking up/down (#90479)
Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-04-15 19:20:29 +02:00
Jacquerel
2c7cedcbf1 Mice can play synthesisers (#90610)
## About The Pull Request


![image](https://github.com/user-attachments/assets/9d4ce934-bb40-4b05-8d25-5bfb4998c3cd)
This PR allows mice to play synthesisers, which they will prioritise
over running away from people if they see one (but eating cheese is more
important than that).

## Why It's Good For The Game


![85786433-3946-4a94-a863-c12999082023_373x306](https://github.com/user-attachments/assets/f32c2ea3-6a85-4060-9bfb-1d8555feb35b)

## Changelog

🆑
add: Mice can play synthesisers
/🆑
2025-04-15 19:19:06 +02:00
Tim
8aa86fb326 Add wizard event - Magical Rain (#90495)
## About The Pull Request
Adds a new wizard event - Magical Rain

This selects a random reagent from a curtailed list that is rained down
on the station. The only safe spaces are in maintenance and containers
like lockers. Of course the wizard is not directly affected by the
reagent, although side effects may still apply. For example, if it is
raining lube, it will cause turfs to get slippery which can slip the
wizard. You can also collect the rain in containers, which might be
funny or useful depending on what it is. (Alcoholics love booze rain)

I did have to trim down the list of reagents since there are over +700
and most of them do nothing to mobs/turfs when they `TOUCH`. The list is
~50 reagents that are:

```dm
	// most medicine do nothing when it comes into contact with turfs or mobs (via TOUCH) except for a few
	var/list/allowed_medicine = list(
		/datum/reagent/medicine/c2/synthflesh,
		/datum/reagent/medicine/adminordrazine,
		/datum/reagent/medicine/strange_reagent,
		// include a random medicine
		pick(subtypesof(/datum/reagent/medicine)),
	)
	GLOB.wizard_rain_reagents |= allowed_medicine

	// One randomized type is allowed so the whitelist isn't spammed with subtypes
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/glitter))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/carpet))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/mutationtoxin))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/plantnutriment))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/uranium))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/luminescent_fluid))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/impurity))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/drug))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/water))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/fuel))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/colorful_reagent))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/ants))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/lube))
	GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/space_cleaner))

	// lots of toxins do nothing so we need to be picky
	var/list/allowed_toxins = list(
		/datum/reagent/toxin/itching_powder,
		/datum/reagent/toxin/polonium, // radiation
		/datum/reagent/toxin/mutagen,
		// all the acids
		/datum/reagent/toxin/acid,
		/datum/reagent/toxin/acid/fluacid,
		/datum/reagent/toxin/acid/nitracid,
		// include a random toxin
		pick(subtypesof(/datum/reagent/toxin)),
	)
	GLOB.wizard_rain_reagents |= allowed_toxins

	// too many food & drinks so blacklist most of them
	var/list/allowed_food_drinks = list(
		/datum/reagent/consumable/ethanol/wizz_fizz,
		/datum/reagent/consumable/condensedcapsaicin,
		/datum/reagent/consumable/frostoil,
		// include a random food or drink
		pick(subtypesof(/datum/reagent/consumable)),
		// include a random regular drink (vodka, wine, beer, etc.)
		pick(/obj/machinery/chem_dispenser/drinks/beer::beer_dispensable_reagents),
	)
	GLOB.wizard_rain_reagents |= allowed_food_drinks

	var/list/allowed_exotic_reagents = list(
		// fire
		/datum/reagent/clf3,
		/datum/reagent/phlogiston,
		/datum/reagent/napalm,
		// cosmetic
		/datum/reagent/hair_dye,
		/datum/reagent/barbers_aid,
		/datum/reagent/baldium,
		/datum/reagent/mulligan,
		/datum/reagent/growthserum,
		// op shit
		/datum/reagent/romerol,
		/datum/reagent/gondola_mutation_toxin,
		/datum/reagent/metalgen,
		/datum/reagent/flightpotion,
		/datum/reagent/eigenstate,
		/datum/reagent/magillitis,
		/datum/reagent/pax,
		/datum/reagent/gluttonytoxin,
		/datum/reagent/aslimetoxin,
		// misc
		/datum/reagent/blood,
		/datum/reagent/hauntium,
		/datum/reagent/copper,
	)
	GLOB.wizard_rain_reagents |= allowed_exotic_reagents

	// add a few randomized reagents not listed above so they at least have a chance
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
	GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent))
```

## Why It's Good For The Game
More interesting effects for weather. The wizard events are always
supposed to be silly and wacky, so having stuff like raining ants or
booze is hilarious. Several OP chems are included like napalm, strange
reagent, and flight potion which can lead to some chaos.

## Changelog
🆑
add: Add wizard magical rain event. A random reagent is selected to rain
down across the station. The only places to escape are in maintenance
and inside containers such as lockers. The wizard is not directly
affected by the reagent, but the side effects might still apply. (ie.
raining lube, will make the floors slippery, which can slip the wizard)
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2025-04-15 11:36:39 +01:00
Ben10Omintrix
a5b3e64c41 holograms now momentarily glitch out when u interact with them (#89689)
## About The Pull Request
adds a new visual effect for holograms ,such as holosigns and several
holoanimals, where they'll glitch out when walked through, attacked, or
when a thrown object passes through them


https://github.com/user-attachments/assets/5c18e48e-6ea5-4e57-a7d4-6a9323e317f5



## Why It's Good For The Game
i think its good for the sake of immersion. also, if pai players feel
like this might get annoying i have no problems excluding them from this
effect.

## Changelog
🆑
add: adds a new glitch-out effect for holograms when they're interacted
with
/🆑
2025-04-15 11:25:57 +01:00
MrMelbert
49b451e80c Halves Settler quirk nutrition retention bonus (#90596) 2025-04-15 11:22:54 +02:00
John Willard
634fc3170e removes martial art hud as something on base hud (#90589)
## About The Pull Request

https://github.com/tgstation/tgstation/pull/90588 - but for martial
arts. Currently only 3 martial arts has a combo system, yet every single
hud for every living & human has an invisible martial art hud on them
24/7, "just in case".

The HUD in question

![image](https://github.com/user-attachments/assets/a332b406-18bd-4853-b8ce-200342df4093)

## Why It's Good For The Game

Removes having a HUD on every player 24/7 when in most cases it'll never
be used, and removes an unnecessary var on the base hud datum.

## Changelog

Nothing player-facing.
2025-04-14 21:05:04 -07:00
MrMelbert
67dd51be79 Reworks language translations. Add partial language understanding. Bilingual update. (#90252)
## About The Pull Request

Fixes #89445 (well, technically. It fixes the bug associated but these
`say`s should really be emotes.)

Three things:

1. Reworks how language translation works.

Rather than scrambling a sentence into a language entirely, sentences
are now scrambled on a per-word basis.

Additionally, the 1000 most common words of a language are *never*
re-scrambled across the duration of a round. Once it's set it's set in
stone.

Example: (Sample / Old / New)


![image](https://github.com/user-attachments/assets/69be41fa-bc40-45f0-bd80-e24e799c9f38)

This allows for a number of things:

- More consistent translations, making it (more) viable to actually
"teach" someone words for something
- Maintaining emphasis such as caps (but not `||`, `++`, or `__` - at
least not yet)
- The following:

2. Adds partial language understanding

Some languages can understand portions of other languages.


![image](https://github.com/user-attachments/assets/b6eee2c7-f564-437b-8c7a-bd1d88a9b680)

This pr adds the following:
- Those who understand Beachtongue can understand 50% of Common and 33%
of Uncommon words.
- Those who understand Common can understand 33% of Beachtongue and 20%
of Uncommon words.
- Those who understand Uncommon can understand 20% of Common and 20% of
Beachtongue words.

3. Bilingual quirk has been expanded to accomodate these changes.

There are now two more preferences:
- Language Speakable
- You can toggle this, so you only understand the language, rather than
understand AND speak.
- Language Skill
- If you choose to be unable to speak the language, you can set how much
of the language you can understand, down to 10%.

## Why It's Good For The Game

Playing around languages is fun, but due to the way our translation
works, ALL context is immediately lost for what the other person may be
saying.

If the other person is shouting in all caps? Output language is normal
chatting. This is lame!

Even if someone is unable to understand you, there's a LOT you can
convey just by how you speak, and getting that across in game is quite
difficult when all translations get mauled so badly.

So this changes that. 

- Emphasis like caps lock is maintained, so you see someone shouting in
caps in a foreign language you can probably intuit something is wrong
(but not what is wrong!)
- Some languages can gleam bits of other languages, so you MIGHT be able
to pick out context if you pay close attention
- "Brother" languages will now feel more like "brothers" and not
completely divergent
- You can even "teach" someone words in your language - at least the
most common words! (Until next round)

## Changelog

🆑 Melbert
add: Languages can now have partial understanding of other languages.
More common English words are more likely to be mutually understood.
add: Those who understand Beachtongue can understand 50% of Common and
33% of Uncommon words.
add: Those who understand Common can understand 33% of Beachtongue and
20% of Uncommon words.
add: Those who understand Uncommon can understand 20% of Common and 20%
of Beachtongue words.
add: Bilingual quirk: You can now choose between being able to speak or
not speak the language
add: Bilingual quirk: You can now choose to have partial understanding
of your language, rather than full.
qol: If you speak in ALL CAPS in a foreign language, the translated
words will also be ALL CAPS.
qol: Many more forms of punctuation are now conveyed across
translations.
qol: The 1000 most common English words will now never be scrambled when
translating into other languages for the duration of the round. This
means you can actually "learn" some words if you are especially
attentive! (Until the next round at least)
refactor: Refactored language translations. Report if you see any super
odd looking translations.
fix: Force-says forcing you to speak common (such as cult invocations)
will now correctly force you to speak common (even if you don't know
common)
/🆑
2025-04-13 22:01:33 +01:00
OrionTheFox
a2b1854d5e Adds Greyscale Trenchcoats/Blazers (+ toggleable trenchcoats) (#90563) 2025-04-13 08:21:50 -04:00
SmArtKar
dcae40e4e6 Invisible walls can be leaned on (#90564)
By dragging yourself onto a tile with an invisible wall on it, you can
lean on one.
2025-04-13 00:58:43 -04:00
LePiromano
59939e2780 adds 1s of delay to "perish" (#90566)
in the colossus fight, adds 1 second of delay between the telegraph
"Perish." and the actual attack, because it's currently nearly
impossible to react in time if you're within melee range, specially in
high ping
2025-04-13 00:56:12 -04:00
SmArtKar
f00caffd90 Better metalgen logging and some behavior fixes (#90546)
## About The Pull Request

Metalgen imprinting is now logged, foam and smoke have better logging
and so do plasma metalgenned things, metalgen no longer causes a ton of
runtimes on almost everything and foam and smoke no longer affect
abstract objects.
Also ***hopefully*** solves the issue with infinite hotspot loops, but I
don't think anyone knows what exactly occured there.

## Why It's Good For The Game

If servers explode, admins need to know who did it and coders need to
know how they did it.

## Changelog
🆑
fix: Metalgen foam/smoke no longer cause an absurd amount of runtimes
fix: Foam and smoke no longer affect abstract objects like landmarks
admin: Metalgen imprinting is now logged
admin: Improved logging for foam and smoke, and plasma metalgenned
objects
/🆑
2025-04-12 14:57:46 +01:00
MrMelbert
e99048d37f Adds some positive mutations (#90393)
## About The Pull Request

- Hypermetabolic Blood
   - You bleed 1.5x more, but regenerate blood 6x faster. 
- For reference: A moderate slash wound is ~2 blood loss per tick, a
crit slash wound is ~4 blood loss per tick, and you regenerate ~0.25
blood per tick.
- For weak bleed wounds, you will net lose less blood per tick with the
mutation than without.
- However, for strong bleed wounds you will net lose more blood per tick
with the mutation.
- Ultimately, you will (obviously) recover much faster once closing the
wound.
   - Affected by synchronizer and power
- Rock Eater
 	- You can eat materials like a golem.
- Rock Absorber
- You can eat materials like a golem, and you will also gain golem buffs
from them.
	- Combination gene from "Rock Eater" and "Stoner" 
- I didn't (deeply) vet if any of these effects would be OP combined
with other genes, but I'm chalking it up to emergent gameplay if I miss
something
- Farsight
	- Gives you an action button which lets you expand your view range
	- Affected by power
 - Inexorable
- Disables soft crit, but entering the threshold for soft crit will
cause ticking brute/toxin damage and force you to whisper.
       - No slimepeople can't cheese this 
    - Also is an innate "painkiller".
    - Affected by synchronizer

## Why It's Good For The Game

Just some random mutation ideas I had, for more genetics shenanigans.
They're all relatively unobtrusive but have some niche potential
(Bleeding more for Blood Cult? Farsight + Thermals? Inexorable +
Martyrdom?)

## Changelog

🆑 Melbert
add: "Hypermetabolic Blood" Mutation
add: "Rock Eater" Mutation
add: "Rock Absorber" Combination Mutation
add: "Farsight" Mutation
add: "Inexorable" Mutation
/🆑
2025-04-12 14:02:53 +10:00
_0Steven
19b60c9521 Fix deep fryer message timings being off (#90551) 2025-04-11 22:52:21 +02:00
John Willard
3baf4c5213 Fixes roundend report not opening (#90503) 2025-04-10 21:40:12 +02:00
FlufflesTheDog
0df919a642 Fix mining vendors treating ALL items as mining vouchers (#90521)
## About The Pull Request
yeah, fixes that thing
Also shuffles some of this redeem_voucher_async code into multiple
procs, no change in behavior there.
## Why It's Good For The Game
the economy will never recover from this


https://github.com/user-attachments/assets/83a0acef-4de0-42c3-8012-7f5d960de70d
## Changelog
🆑
fix: Mining vendors will no longer mistake non-voucher items as
authentic mining vouchers
/🆑
2025-04-10 20:29:14 +02:00
Ben10Omintrix
bf12b5b55d fixes being able to pull mobs while riding them (#90300) 2025-04-10 20:14:17 +02:00
MrMelbert
0b40a9b343 Fix divine smites (#90511)
## About The Pull Request

Fixes #90510

I added the overlay when only smites that destroyed the body had the
divine smite flag, then I added the flag to a bunch more things. Oops

## Changelog

🆑 Melbert
fix: Fix divine smites making you glow forever
/🆑
2025-04-09 22:35:41 -06:00
SmArtKar
a902b02a37 Fixes burning paper runtimes (#90499)
## About The Pull Request

Closes #90496

## Changelog
🆑
fix: Fixed runtimes caused when touching a non-item object with paper
/🆑
2025-04-09 21:33:16 +02:00