Commit Graph

42990 Commits

Author SHA1 Message Date
jimmyl
4bf208a0c0 trainship hijack deathmatch map (#82933)
adds the Trainship Hijack deathmatch map

it is a few flying trains in Tizira being boarded and stuff by cowboys
its pretty cool i think

also allows changing turf reservation type of lazy templates
2024-04-30 07:34:53 +00:00
Mothblocks
bc4e7d3b4e Remove data systems in favor of global datums (#82943) 2024-04-29 22:47:36 -07:00
Joshua Kidder
2d7c027e25 Fixes broken malf AI APC hacking NO-GBP (#82962)
I made a mistake in checking the return on malf_status for APCs and
added an unnecessary ||; this amends that
2024-04-30 02:48:28 +00:00
larentoun
7e944021b1 Use defines for spellbook categories (#82938)
## About The Pull Request
Spellbook entries' categories now use defines

## Why It's Good For The Game
Prettier
Less of a chance for misspelling a category
Renaming a category is easier (for localized downstreams especially less
strain)
2024-04-29 19:42:41 +02:00
SyncIt21
c7617381b0 Eigenstasium Fix (#82930)
## About The Pull Request
- Fixes #82921. Closets that are not linked by the closet anomaly
station trait will be tainted blue, show sparks & do all that jazz once
again. In other words they are not subtle
- Closes #82353. Duplicate of the above. Sprays work since the above
issue is fixed

## Changelog
🆑
fix: Eigenstasium exposed & Anomaly station trait affected closets work
again. Eigenstasium closets are tainted blue
/🆑
2024-04-29 13:45:15 +02:00
Jacquerel
46861e4831 Netguardian darkvision & visual tweaks (#82919)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/7483112/730a8d16-6489-4c7f-8c82-ae0d07598913)

This gives the Netguardian Prime mob a little bit of darkvision.
Reasoning: Some of these netrunning maps (like the alien hive) are very
dark, and this is a robot.

At the same time I added some emissives to its glowing eye and thrusters
to make them appear to emit light, and I removed the bobbing animation
we automate on flying mobs because its icon state has one already.

## Why It's Good For The Game

If we're going to spawn a mob in the dark it should probably be able to
see where it is.

## Changelog

🆑
balance: Netguardian Prime can see in the dark.
image: You can see Netguardian Prime in the dark.
/🆑
2024-04-29 04:29:57 +02:00
Interception&?
1fb8ac678f Adds a funny scene when getting Sisyphus achievement (#82897)
## About The Pull Request


https://github.com/tgstation/tgstation/assets/137328283/979231c3-70cd-49dd-8d4d-2a8554adfbb3

## Why It's Good For The Game

This PR makes getting the “Ordeal of Sisyphus” extremely pointless by
teleporting carried boulder and spessman back to the Lavaland. In my
opinion, this feature is funny and suits the spirit of this achievement.

## Changelog

🆑
add: Added a short scene when getting an Ordeal of Sisyphus achievement.
/🆑
2024-04-29 02:45:15 +02:00
13spacemen
cdd7665bc6 Unarmed Attacks Support Multiple Verbs (#82876)
## About The Pull Request
Unarmed attacks, aka punching people, now is a list and supports having
multiple verbs
## Why It's Good For The Game
More flavor, RP, realism

Lizard claws used to only "slash", now they can "slash" "scratch" "claw"
Ethereals have "singe" in addition to "burn"
Podmen can "lash" in addition to "slash"
Heads can "chomp" in addition to "bite"
## Changelog
🆑
code: Unarmed attacks (punches, etc.) now support multiple attack verbs
instead of only one
/🆑
2024-04-28 23:00:46 +01:00
John Willard
88143d2571 Fixes runtime in z level update (#82898)
## About The Pull Request

re-adds the check that they are actually being moved to a new z level in
the update z level proc so it doesn't check null z level for cliented
mobs and ai controllers.

## Why It's Good For The Game

Saw this runtime on moth.fans and thought i should fix it.

## Changelog

Nothing player-facing.
2024-04-28 20:39:37 +02:00
Joshua Kidder
57ff27c764 bug fixes and code refactor for AI, malf or otherwise (#82590)
## About The Pull Request

I was trying to fix a bug with ejecting from mechs as malf AI and the
more I looked the worse it seemed to get? So I'm putting in this PR with
the intent to refactor AI code to not be a Byzantine nightmare of new
objects referencing each other incompletely or with buggy behavior.
Finished PR for #82579 because I didn't want to clutter the comments
with commits of me trying to fix shit with git restore and revert
## Why It's Good For The Game

Fixes #81877 
Fixes #82524
Mech dominating now just works off (and integrates with) similar code
for APC shunting
The cores left behind by AIs shunting or controlling mechs now properly
reference the AI instead of only the other way around
Some of these refactors slightly change how malf works; I think most of
it was unintended behavior in the first place, let me know in review if
not
## Changelog

The code for AIs remoting out of their shell has been refactored.
🆑
fix: Mech domination now properly integrates with shunting.
fix: Combat upgraded AIs no longer get two buggy malf ability pickers if
they also become malfunctioning
refactor: Refactored most of the functionality around malf AI shunting,
mech control
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-28 20:20:06 +02:00
san7890
78e2ada35d Re-adds Possess Object to Right-Click Context Menu (#82912)
## About The Pull Request

Fixes #82882
## Why It's Good For The Game

Corrects nonintentional regression in expected behavior by re-adding
this verb back to the context menu.
## Changelog
🆑
admin: Possess Object is now back in the right-click context menu.
/🆑
2024-04-28 09:02:42 -04:00
Rhials
1ca7a03a00 Lazy load templates now have a prompt for whether or not to send you to the template area upon loading (#82902)
## About The Pull Request

Generating a lazy load template map now gives you a choice for whether
or not you want to be ghosted/teleported to the template you are
loading.
## Why It's Good For The Game

This has always annoyed me, especially when testing stuff related to the
nukie base (since it needs to be manually loaded before creating a nukie
team to avoid runtime spam). It might be a minor gripe, but I don't
think it should be forced.
## Changelog
🆑 Rhials
admin: Lazy loading map templates now gives you the option to not
ghost/teleport to the loaded area upon completion.
/🆑
2024-04-27 18:53:24 -06:00
John Willard
a2e0a8b09e Removes examine text with Med/Sec HUDs being under Radio (#82899)
## About The Pull Request

As title says
One of these spans didn't have a closing span so this fixes that too i
guess.

These are all spans that would include your message under radio
``'.alert, .minorannounce, .syndradio, .centcomradio, .aiprivradio,
.comradio, .secradio, .gangradio, .engradio, .medradio, .sciradio,
.suppradio, .servradio, .radio, .deptradio, .binarysay, .newscaster,
.resonate, .abductor, .alien, .changeling'``

To fix it I just removed the span since it did nothing anyway.
I didn't remove it in case it's ever brought back in the future and for
any downstream that might use it, it feels off to remove chat constants.

It also looks no different either way

![image](https://github.com/tgstation/tgstation/assets/53777086/46673645-4ab4-4bd2-9a9f-a26b19aa0e87)

tried with multiple fonts, this really has no effect it's purely for
categorization.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/72487

## Changelog

🆑
fix: Examining someone with Med/Sec HUDs will no longer filter the
message under Radio.
/🆑
2024-04-27 18:45:09 -06:00
John Willard
b59ae8fb9d Fixes pAIs permanently blocking requests (#82900)
## About The Pull Request

Removes pAI subsystem/card's reliance on clients and makes them
unstoppable, which didn't really make much sense for it to be this way
in the first place since it's something that has to always happen and is
something that isn't client-controlled.

Also removed case of ``usr`` use in ui act.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/70401

## Changelog

🆑
fix: pAI requests should no longer randomly permanently break in a
round.
/🆑
2024-04-27 18:44:28 -06:00
FlufflesTheDog
74a70e0f58 Fixes a couple mistakenly overwritten typepaths (#82896)
## About The Pull Request
Fixes some stuff not existing because they weren't named good enough.
Whoops.
## Why It's Good For The Game
You know the deal
## Changelog
🆑
fix: minebot shields are now actually orderable
fix: vinegar may once again be crafted with wine, water, and sugar
/🆑
2024-04-27 18:42:29 -06:00
MrMelbert
39fc255051 Turf weakref persists in changeturf / Fix plasma cutters (#82906)
## About The Pull Request

Turf references don't change so logically, turf weakrefs wouldn't change
if the turf changes.

By not doing this this can cause bugs: See #82886 . (This Fixes #82886) 

(Projectiles hold a list of weakrefs to atoms hit to determine what they
have already hit.

Because turf weakrefs reset, we could "hit" the same turf twice if it
destroyed the turf.

Old behavior - this was fine but now that they're weakrefs, we get two
weakref datums in the list that point to the same ref.)

Less hacky alternative to #82901 . (Closes #82901) 

## Changelog

🆑 Melbert
fix: Plasma cutters work again
/🆑
2024-04-27 18:40:47 -06:00
Sadboysuss
817337086c Players can now be role banned from Spy (#82895)
## About The Pull Request
Adds spy to banning panel
## Why It's Good For The Game
Admins should be able to roleban players from all antagonists
## Changelog
🆑
admin: spy can now be rolebanned
/🆑
2024-04-27 18:17:36 -06:00
Jeremiah
c84be82361 Fixes escape menu spacing (#82875)
## About The Pull Request
Long station names clip into the start menu buttons
![Screenshot 2024-04-24
193230](https://github.com/tgstation/tgstation/assets/42397676/a62c3f27-ffa8-471b-9ad5-526003fc33cd)

This fixes it
![Screenshot 2024-04-24
193818](https://github.com/tgstation/tgstation/assets/42397676/728c4edb-ad53-4263-a40b-9a598ad7203f)
## Why It's Good For The Game
UI bug
## Changelog
🆑
fix: Fixes clipping in the ESC menu between buttons and long station
names.
/🆑
2024-04-26 21:51:18 -06:00
Rhials
e50ed59d6b [NO GBP] Overwatch Intelligence Agents No Longer Get Their Own Uplink (#82884)
## About The Pull Request

Overwatch operatives no longer get an uplink with TC in it.

While they failed to break out of the nukie base (GOOD!) they were able
to call in more of each other, which led to a grey-goo scenario of
self-replicating discount overwatch operatives (KINDA BAD BUT ALSO KIND
OF FUNNY).


![image](https://github.com/tgstation/tgstation/assets/28870487/28683e31-dc98-496f-9ef8-e05516444c17)


![image](https://github.com/tgstation/tgstation/assets/28870487/7be759b3-2d91-47bc-8a2b-9efc94e7bad9)

I really really really hate having to fix this bug because it ended up
being fucking hilarious but it cannot happen again.

(Also some minor inheritance gripes with the plasmeme outfit, don't
worry about it).

I also might make the turfs indestructible/have a better baseturf so
accidental explosive discharges can't break the floor and space everyone
in the nukie base areas in another PR.
## Why It's Good For The Game

Self-replicating helpdesk assistants, a terrifying concept.
## Changelog
🆑 Rhials
fix: Overwatch Intelligence Agents no longer get their own uplinks,
leading to a self-replicating grey goo scenario.
/🆑
2024-04-26 21:49:56 -06:00
Zephyr
cf4cc89902 Revert of a Revert | ListInputModal (#82854)
This reverts commit 9acf5bd821.

MSO determined that because we use `file(...)` instead of a string
instead of an asset being locked to its initial state via a cache object
we are sending it as it is on disk every time. which means that when a
new server deployment updates the tgui it will send this new tgui code
even if the currently running DM code does not support it.
2024-04-26 00:47:28 -07:00
Zephyr
cbcf5a7108 ip intel mk2 (#82683)
Do not merge this without coordinating with your server's host.

## About The Pull Request

Slightly refactors the way we handle IP intel.
You can still use the old data stored in the database.
Adds the ability to automatically reject connections determined by
config flags.

## Why It's Good For The Game

We used to have IP intel to check for VPNs, although it was disabled due
to being bad and unhelpful.
This refactor should make it much more manageable for hosts and admins.

## HOSTS BEWARE
This adds a new SQL table `ipintel_whitelist`
Look at the schema!

## Changelog

🆑
admin: The return of IPIntel
/🆑

---------

Co-authored-by: MrStonedOne <kyleshome@gmail.com>
Co-authored-by: oranges <email@oranges.net.nz>
2024-04-26 14:52:54 +12:00
tralezab
a9b9d43750 DNA Infusion Refactor: Separates DNA Infusion Behavior from DNA Infuser (#82829)
## About The Pull Request

- infuser entries global is now an assoc list type -> singleton. makes
it easier to pick specific entries as needed
- separated infusion behavior onto both movable level (for machine
occupants and things that can potentially be infused) and human level
(for the actual infusion into a human)

- [x] tested

## Why It's Good For The Game

Upcoming plans is to fix up maintenance sect's organ replacement system
that just so happens to work a lot like how infusions do with actual
infusion mechanics, and that requires this prerequisite. In general
outside of that vision I see a lot of potential in alternate infusion
sources, from wherever they may be.

## Changelog
no player side changes, this is a refactor
2024-04-25 19:56:42 +01:00
Joshua Kidder
7809dee900 Monkey eyes fix and noticable organ display refactor; AI monkeys no longer catatonic (#82669)
## About The Pull Request

It turns out monkeys being catatonic got broken 2 years ago in a PR that
was meant to fix something else; also, it turns out monkeys are supposed
to have primal eyes when turned into humans, and that got broken too. I
fixed both of those things, and while I was at it I did a refactor to
make it easier to give noticable organs (or anything else that you'd
want correct pronoun and verb tenses) easier to implement.

1) AI controlled mobs now properly display their noticable organs when
appropriate
2) Added some macros and a helper proc for replacing appropriate
pronouns and verb tenses in text
3) The noticable organ HTML is no longer broken, so you can pass text
with spans into it, if you want the text to be pretty or big or whatever
4) Monkeys are no longer catatonic if they have an active AI controller;
this goes for any carbon actually but I think monkeys are the only one
with AI controllers at the moment
## Why It's Good For The Game

Fixes the logic for displaying organs on AI controller mobs (currently
monkeys)
Makes it easier to add these kind of organs for carbons, AI controlled
or not, in the future

Look! An actual use-case for split editor:

![image](https://github.com/tgstation/tgstation/assets/49173900/8cd0d69e-8091-4431-9418-6bd29e1713b5)
## Changelog

Humanized monkeys now have their primal eyes again; monkeys with active
AI are no longer catatonic.
🆑 Bisar
fix: AI controlled monkeys are no longer catatonic, and they have primal
eyes again when turned into humans.
spellcheck: Noticable organs now have more modular grammar, and their
current grammar is fixed.
refactor: Refactored the code for displaying the messages for noticable
organs.
config: Added a documented define of all our pronouns
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-25 12:36:04 +01:00
necromanceranne
68115df173 Fixes plasma flower modsuit cores having an extremely small amount of power (#82842)
## About The Pull Request

The var was still using the old values.

## Why It's Good For The Game

15 kj instantly depletes your power supply upon taking a step. Oof.

## Changelog
🆑
fix: The plasma flower modsuit core now actually contains a reasonable
quantity of power.
/🆑
2024-04-25 12:32:05 +01:00
KingkumaArt
3f9caf5deb Fix: Makes the rebar crossbow's bowstring loosen after firing (#82830)
## About The Pull Request

As it stands, after the rebar crossbow fires, it must be used inhand
twice, once to loosen the bowstring, and a second time with a do_after
to pull it back. Not only does this make no sense as the bowstring is
what launches the projectile, but I actually had no idea it was even
happening, until I got it pointed out on discord.

## Why It's Good For The Game

The main reason is that the crossbow shooting a rod without moving the
bowstring just looks weird, but also given the first inhand use doesn't
have a delay, it also doesn't really serve any purpose.

## Changelog
🆑
fix: The rebar crossbows now properly loosen their bowstring upon
firing.
/🆑
2024-04-25 12:30:50 +01:00
Jeremiah
e1d922d926 [no gbp] Adds silicon interaction flags (#82822)
## About The Pull Request
A few items with special silicon interactions did not have the proper
flags to permit their use at distance (airlocks for instance)
## Why It's Good For The Game
Fixes #82800
## Changelog
🆑
fix: Restored silicon alt-clicking capability
/🆑
2024-04-25 12:28:47 +01:00
Ben10Omintrix
5154ef4df1 [no gbp] actually fixes bot access (#82809)
## About The Pull Request
real fix to bots having AA. also i forgot to address simple bots in my
previous attempt so this fixes them too

## Why It's Good For The Game
fixes bots having AA 

## Changelog
🆑
fix: all bots have their normal accesses restored
/🆑
2024-04-25 12:28:29 +01:00
lessthanthree
061ce73c99 ChemMaster 3000 printing speed based on servo tier (#82836)
## About The Pull Request

Reverts the maximum number of containers (pills/patches/etc.) the
ChemMaster 3000 can print back to 50. (Recently changed to 12.5 per tier
in https://github.com/tgstation/tgstation/pull/82002) Instead, the servo
tier determines the speed the batch is printed at.


![image](https://github.com/tgstation/tgstation/assets/83487515/d58a2325-55ff-4087-b73b-9d08ebdf98e5)


![image](https://github.com/tgstation/tgstation/assets/83487515/5d078957-dbc4-483f-8e38-62a815370f66)

## Why It's Good For The Game

Refilling the buffer and pressing print for every 13 pills is pointless
busywork when there is already a delay now implemented per pill printed.

## Changelog

🆑 LT3
balance: ChemMaster can again print a maximum of 50 pills/patches per
run
balance: Higher tier servos increase ChemMaster printing speed
/🆑
2024-04-24 22:03:43 -07:00
Singul0
85b857fc67 [NO GBP] Critical fixes for cyborg omnitools (#82825)
## About The Pull Request
Fixes several critical fixes for cyborg omnitools, surgical omnitools in
peculiar. Which is:
1. bonesetter omnitool can do compound fracture surgery now
2. omnitool butchering not properly disabled works (why didn't that
runtime. fucking dreammaker)
3. omnitool surgery_initiator not properly disabled
4. cautery in offhand not working

Fixes #82805
Fixes #82868

Honestly I have now regretted for doing this kind of implementation at
the start. with how shoddily coded it is.
Planning to refactor cyborg omnitools, admin omnitool and ayys omnitool
(all have the same base of implementation) to be less snowflakey. but
that's for the future. and will take some time. This is a bandaid fix
for now
## Why It's Good For The Game
this is cbt
## Changelog
🆑
fix: fixed cyborg bonesetter not working for compound fractures
fix: butchering not disabling in cyborg omnitool
fix: fixes a bug where if you select the omnitool it would be stuck in
surgery initiator mode
fix: cautery in off hand for cyborg omnitools not working
/🆑
2024-04-24 19:08:53 -07:00
Fikou
72c5084556 brimbeams are a hidden do after (#82856) 2024-04-24 16:25:00 -06:00
LemonInTheDark
21b6abfcd6 Redoes how appearance VV works because it scares me (#82851) 2024-04-24 16:23:54 -06:00
Sadboysuss
0a8e58b493 More emote sounds and new whistle emote (#82748)
## About The Pull Request
Added new emote to get people's attention: Whistle
Added sounds to existing emotes: cry, sneeze, cough, laughs for lizard
and moth.

In the future, the work done in this PR can be the foundation for giving
other species their own emote sounds.

Sound files: 

https://drive.google.com/drive/folders/14cv8_N6BdcyJKQd-sMXDlowXEaY3FZ_K?usp=sharing

Preview:



https://github.com/tgstation/tgstation/assets/96586172/7524a7c6-b003-40d5-adc4-1e0faae2cce2



https://github.com/tgstation/tgstation/assets/96586172/318d0ee8-de9e-406c-92f1-1f2ef4eac32f



https://github.com/tgstation/tgstation/assets/96586172/aa7ae9a1-35c8-44e2-b6ea-82fd3949b1f4



## Why It's Good For The Game
More immersion is great, I love using emotes and having no sounds for
them is sad.
## Changelog
🆑 grungussuss
add: whistle emote
refactor: Refactored how laugh, sneeze, cough and cry sound is called in
the code, report strange behavior with these emotes.
sound: added sounds for whistle, cry, cough, sneeze, laugh for moths and
lizards emotes
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-24 15:14:38 -07:00
Fikou
2e11db2344 [NO GBP] fixes issues with human rendering fixes (#82852)
## About The Pull Request
fixes #82838, forgot to add the attack_self there
fixes #82869
fixes the atmos hardhat not using flags_inv and transparent_protection
correctly (you could pull off someones glasses through it for example
makes modsuits use the new rendering stuff
fixes rendering stuff not working correctly with adjustable clothing
fixes quick equip dropping the item if you cant equip it

## Why It's Good For The Game
waow its awesome

## Changelog
🆑
fix: you can no longer take off someones glasses or mask through atmos
hardhat
fix: once you adjust a welding helmet or something it no longer makes
your cigarette or sunglasses invisible
fix: welding gas mask works once again
fix: quick equips dont drop the item if you cant equip it
/🆑
2024-04-24 12:59:58 -07:00
LemonInTheDark
59a20eb8e7 Fixes some rando failures off the ignore list of projectiles (#82855) 2024-04-24 12:05:06 -06:00
necromanceranne
6b018aae7d Removes the stun from longfall modules activating. (#82824)
## About The Pull Request

What it says on the tin. When you fall with the longfall module active,
you do not get stunned. If you fall from more than one z-level, however,
you will be staggered from the fall, with a length based on the number
of levels fallen.

## Why It's Good For The Game

I noticed that while using these as a felinid that I actually was
stunned utilizing them. dropping the equipment I was carrying and being
rooted in place for a bit. And I thought to myself 'wait, hang on, by
taking this thing out, out I'm actually WAY better off than if I kept
them in, what gives?'

They just got powercreeped, unfortunately. Freerunner and being a
catgirl is stronger than this very niche module, because they're
equipment independent and also not a hard stun (I know faceplanting with
freerunner is still a bit of a stun, but you can still move and
potentially avoid losing equipment by falling while prone).

And maybe it functions a lot stronger in situations where those two
traits just don't apply (or apply in a very negative fashion in the case
of felinids), I don't see why they shouldn't be superior to those
traits. You have to have a modsuit, and you need to be on a map that
makes use of multi-z. And additionally be in gravity. Typically, I would
think equipment benefits should be stronger than innate/roundstart
features.

Most of the time, it is easier and more beneficial to be in constant
flight while using a modsuit than to prepare for longfalling.

So let's just make it better overall. I don't know how many people would
even use it, but I know I will and I love tossing myself into the void
below.

## Changelog
🆑
balance: Longfall modules no logner stun you when they activate.
balance: Falling from a height greater than one z-level while using the
longfall module will still stagger you.
/🆑
2024-04-24 02:51:29 +02:00
Rhials
e97e7bff7b Fake handcuffs no longer apply click cooldown on resist (#82828)
## About The Pull Request

Fake handcuffs/zipties do not apply a click cooldown upon resisting.

I'm not super happy with the solution to this (adding another item-level
var) but I told myself I'd fix this, and wasn't about to give up after
my handcuff-level solution didn't work.

Which calls into question -- Why does the breakout proc use item
typecasting over the restraint type? Is this necessary for anything to
function? I was too afraid to change it and accidentally break something
else.
## Why It's Good For The Game

Closes #82711.

Makes fake handcuffs a properly harmless joke item.
## Changelog
🆑 Rhials
fix: Fake handcuffs/Zipties no longer block clicks for a few seconds
after being resisted out of.
/🆑
2024-04-23 16:08:37 -06:00
MrMelbert
aab7771cd7 Tuberculosis makes you cough more, Nicotine Withdrawal makes you cough less (#82827)
## About The Pull Request

- Tuberculosis makes you cough more, and is no longer restricted to
stage two
- Nicotine Addiction Withdrawal makes you cough less often
- Medicine Addiction Withdrawal makes you cough less often but now
carries across all stages

## Why It's Good For The Game

Nicotine Addiction currently makes you cough 10x more often than
Tuberculosis, the lung disease. Kinda nonsensical right?

This makes smoking a single cigar (which instantly makes you addicted
because lol) pretty insufferable to be around, and while this makes
sense OOC it's a roleplaying game and being actively avoided in a
roleplaying game is not fun

So tweaking the values should make it a bit more sensible

Initial values looked like `TB: 1% chance per second` vs `Nicotine: 10%
chance per second` 🥴

## Changelog

🆑 Melbert
qol: Tuberculosis makes you cough more
qol: Nicotine Addiciton makes you cough less
qol: Medicine Addiction maybe makes you cough more, maybe makes you
cough less
/🆑
2024-04-23 16:06:42 -06:00
MrMelbert
c80622ace0 Fixes all emotes being "audible", adds support for runechat only emotes (makes cough runechat only) (#82832)
## About The Pull Request

- Fixes all emotes being considered audible
- We have a check here: `if(emote_type & (EMOTE_AUDIBLE |
EMOTE_VISIBLE)) //emote is audible and visible` ...Which doesn't work
the way it think it's working.
- The correct way to have done this is `emote_type & (EMOTE_AUDIBLE |
EMOTE_VISIBLE) == (EMOTE_AUDIBLE | EMOTE_VISIBLE)`

- Adds support for runechat only emotes
- Starts by adding this flag to *cough, making coughing only display to
runechat.
- If a player has runechat emotes disabled, these will print to chat
like normal.

- Adds `EMOTE_VISIBLE` to *snap

## Why It's Good For The Game

We have a few emotes that get spammed a metric ton in some events, such
as coughing for smokers who have viruses in smoke clouds. Having "X
coughs!" 100 times in your chat is simply un-necessary, and leaving it
to be more ephemeral (a-la balloon alerts) makes it a bit easier to
parse chat.

## Changelog

🆑 Melbert
qol: Coughing will now no longer print to chat, IE, it is runechat only.
If you have runechat emotes disabled, however, it will still print to
chat.
qol: Snapping now has a visual component. 
fix: All emotes are no longer considered audible, meaning blind people
go back to not being able to see people do flips and jumps
fix: However, blind people are now told when they do a visible emote
like flipping (because they can, obviously, feel themselves flipping).
Likewise, deaf people are told when they do some audible emotes, like
coughing or screaming.
/🆑
2024-04-23 16:05:55 -06:00
MrMelbert
373557f750 Fix playing card memory (#82834)
## About The Pull Request

`/datum/memory/playing_cards` accepts a list of other players, which it
uses to format into an english list.

But where it is applied, it takes a list of players, formats it into an
english list, and passes it in. Oops.

Also fixed some verbage for how the memories look in-story-form. 

## Changelog

🆑 Melbert
fix: Playing Cards memory now reads better
/🆑
2024-04-23 15:33:43 -06:00
uaioy
b5fa92d691 Adds Medieval Pirates (and small assault_pod change) (#82392)
## About The Pull Request

(short, slightly outdated video compilation of the pirates)
https://youtu.be/j9BNFzcUSjc

Adds the **MEDIEVAL WARMONGERS** pirate gang, these pirates are focused
on causing chaos directly on the station with the use of melee weaponry
and swarming tactics.
they are not very smart when it comes to using technology, so they crash
in the station in an attempt to dock.

the pirates spawn with the NOGUN trait as they have never used guns
before but have access to dashing and the unbreakable component(small
heal burst upon reaching crit).
Warlord spawns with a better version of hulk(isnt removed upon crit and
can still do stuff while critted) and gigantism mutation by default
because ~~Chad Maximus~~ the other pirates require someone to run to
when stuff like flashbangs, batons or lasers are present. The warlord
spawns with a boarding axe which is a better axe that is good at
destroying things and a meat hook. **there's a total of 5 pirates.**

the pirate shuttle has:
- thermite barrel and 3 large beakers
- single weak claymore
- 3 extra military spears
- 3 kite shields
- 3 heavy bolas
- 4 regular bolas
- a stack of wood
- 2 stacks of mourning poultice (15 uses each)
- one burn medkit

**shuttle was made by striders18, big thanks to him**

![image](https://github.com/tgstation/tgstation/assets/114047053/766d0b96-4487-47d3-b524-70d811ce4d73)


things added:

- the new pirate gang
- a gamberson jumpsuit
- crude armor (good melee and wound protection but lacks on the rest)
- warlord armor (extreme protection at the cost of slowdown)
- a shortsword(bootleg claymore with 30 block chance and goes on belt
instead of back)
- military spear (better at throwing, better wounding, deals blunt
wounds instead of sharp)
- axe with better damage and demolition mod for the warlord
- a var to specify the name of the landing zone destination for the
assaultpod
- an assault pod targeting device item for the medieval shuttle
- a thermite barrel
- kite shields
- new hulk variant that doesnt go away when crit and has tenacity
## Why It's Good For The Game
I always liked the chaotic nature of the russian bounty hunters that
would come from their extra numbers and lack of tools. i thought
something of a similar idea on pirates would be good, a very direct and
scary militia rushing in with sword and faith would create some awesome
scenarios

## Changelog
🆑
add: New heavy weight pirates, medieval warmongers
add: Adds military spear, shortsword, boarding axe, kite shields
add: Adds warlord and crude armor
add: Adds medieval shuttle (made by striders18)
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-22 21:16:06 -07:00
Jeremiah
c1a775efe1 Implements data systems (#82816)
## About The Pull Request
Subsystems currently come in two different flavors:
1. Systems that process at intervals with the master controller
2. Global data containers that do not fire

And I think they should be split up...


This moves 4 non firing, non init subsytems -> datasystem

## Why It's Good For The Game
Clarity in code
2024-04-22 21:27:15 -06:00
Jacquerel
98153ad983 Adds an achievement for pushing a boulder up a hill (#82813)
## About The Pull Request

Credit to Melbert for this idea.
Adds a new achievement awarded for carrying a boulder from Lavaland to
the Centcom Rescue Wing (via the Escape Shuttle).
If the boulder ever leaves your hands you will not gain the achievement.
If the boulder is not outside on Lavaland when you pick it up you will
not gain the achievement.
If you arrive at the Rescue Ship (via pod) you will not gain the
achievement.
If you drop the boulder 
If the shuttle is hijacked and you do not arrive at Centcom you will not
gain the achievement (perhaps try hitting the hijacker with the boulder
you are not allowed to drop?).
If you arrive at Centcom via the Escape Shuttle but fail to exit the
shuttle holding the boulder (for instance, because a max cap bomb is
detonated next to you one second after the shuttle arrives) you will not
gain the achievement.

As the achievement is rewarded after the round-end report is generated,
you also will not be represented on the round-end report. This is a
personal struggle.

Also carrying a boulder slows you down. Dragging it already did, so I'm
not sure why carrying one did not. It feels like an oversight, and just
makes sense.
People rarely have any particular need to manually carry them anywhere
so this should be fine, right? 🙂

## Why It's Good For The Game

Making players do pointless and weird bullshit is the reason to have an
achievement system.
It's a social experiment.
I think that it is funny.

## Changelog

🆑 Jacquerel and Melbert
add: A new achievement for moving a boulder from one place to another,
at great effort.
balance: Hauling a boulder around makes you move slower, as it does when
dragging it.
/🆑
2024-04-22 21:24:14 -06:00
Ben10Omintrix
f27d66020f fixes brimdemon AI (and some other mobs) (#82831)
## About The Pull Request
i noticed brimdemons werent attacking when i tried investigating the
problem i saw it extends to other mobs

## Why It's Good For The Game
brimdemons, as well as other mobs, will behave normally

## Changelog
🆑
fix: brimdemons (and other mobs) will act normally
/🆑
2024-04-22 21:20:30 -06:00
SyncIt21
7d02f4b104 Plumbing & chem reaction chamber patches (#82781)
## About The Pull Request
1. Both Plumbing & Chem reaction chamber will use the beakers
`heat_capacity()` proc instead of the formulae `SPECIFIC_HEAT_DEFAULT *
reagents.total_volume`. This yields the exact same results as before but
will mean in the future if individual reagents heat capacities are
changed then the heating effects will be accurately reflected here. It
also uses that amount of power for heating
2. Plumbing rection chamber will not use energy when its either
'emptying' or when no reagents are present in its internal buffer
3. You can hit the chem reaction chamber with items like beakers,
screwdrivers, crowbars and what not

## Changelog
🆑
fix: plumbing & chem reaction chamber heating effects accurately reflect
the beakers heat capacity & power usage
fix: plumbing reaction will not use power when emptying or when there
are no reagents to heat
fix: you can hit the chem reaction chamber with items like beakers,
screwdrivers, crowbars and what not
/🆑
2024-04-22 20:11:50 -07:00
Kyle Spier-Swenson
9acf5bd821 Revert "Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it" (#82841)
Reverts tgstation/tgstation#82792
2024-04-23 02:50:47 +00:00
necromanceranne
af8d69f889 Higher capacity SMES variant for low maintenance areas; miners can access their maintenance area on mining base, gulag no longer saps all power from the main base (#82713)
## About The Pull Request

Creates a higher capacity version of the SMES unit that spawns in with
super capacity cells, as well as a full version. Places the full version
into all the AI sats (which all have independent grids for the most
part), some remote space ruins and the mining base. These SMES units are
intended for areas where players aren't expected or cannot reasonably be
expected to constantly monitor power usage within the length of a
standard round.

Miners can access their power stations, telecommunications box and
atmospheric station on the mining base. They're really the only people
who care, after all.

The gulag's SMES (also now upgraded) no longer saps power from the main
base due to having its input terminal rigged to the main base power
grid, and thus demanding all power from the grid greedily. To revert
this in-game is a single power cable placed back east of the SMES unit.

## Why It's Good For The Game

The power changes made some of the once largely low-maintenance areas
much more likely to run out of power more quickly than you would expect.
These aren't areas expected to be maintained or monitored by engineering
(probably because they're not easily accessed), and they're just kind of
troublesome to deal with on a round-to-round basis.

Mining had this problem triple-fold. It had significant drain with no
convenient method of installing power generation at all, miners couldn't
access what power generation there was without using their 'skeleton
key' to open the way (only engineers could, and they aren't expected to
come down to mining at all), and even then, there was the gulag SMES
just eating all the power anyway. I'm pretty sure that SMES unit was the
biggest culprit of them all, but I think this conveniently future proofs
these issues for the time being.

## Changelog
🆑
add: Adds a higher capacity SMES unit to lower maintenance areas and
maps.
fix: Miners can actually access and fix their engineering issues on the
lavaland base via the engineering section of the base.
fix: The gulag SMES unit is no longer needlessly draining the entire
power grid of the main mining base.
/🆑
2024-04-22 18:13:36 -07:00
Zephyr
b218130a2c Converts ListInputModal to actually be a Modal | Adds ListInputWindow which uses it (#82792)
## About The Pull Request

If we say something is a Modal it should actually be a Modal

## Why It's Good For The Game

You can now use this system in other windows if you want.
Fixed the misnomer.

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2024-04-22 18:02:24 -07:00
Pickle-Coding
2569062022 [NO GBP]Inversely scale mechanical favor with STANDARD_CELL_CHARGE. (#82801)
## About The Pull Request
Makes the mechanical sect cell sacrifice favor adjustment inversely
scale with STANDARD_CELL_CHARGE. This reduces it by a factor of 1,000.
## Why It's Good For The Game
So they don't get 1,000 times the favor as intended from a cell.
## Changelog
🆑
fix: Fixes mechanical sect gaining 1,000 times the favor from a cell
sacrifice.
/🆑
2024-04-22 16:56:39 -07:00
MrMelbert
72ba08caf9 Getting up from prone, z movement, and mod de/activation don't do cogwheels (#82794)
## About The Pull Request

Adds `hidden` to getting up (from prone), moving up (z-movement), moving
down (z-movement), and de/activating MODsuits

## Why It's Good For The Game

- Getting up from prone happens very often, makes it a bit hard to
differentiate when people are doing actions or just crawling around.
    - If we want feedback for getting up, should just be a chat message.
- Moving up and down is just movement. Only affects using the verbs. 
- Same as before: If we want feedback, it should just be a chat message.
- Other methods of moving up/down (IE, ladders) are untouched / retain
their cogwheel.
- De/activating modsuits have their own visual feedback and sound
effects associated. Both feels unnecessary.

## Changelog

🆑 Melbert
qol: Getting up from prone, moving up or down a z-level (not via
ladders, naturally. Like flight), and de/activating your modsuit no
longer shows cogwheel effect
/🆑
2024-04-22 16:46:46 -07:00
FlufflesTheDog
c165c05875 Makes lavaland stone tiles prevent immersion (#82807)
## About The Pull Request
Adds the same trait that lavaproof rods have to the stone tiles, so
things can continue being visually outside of the lava
## Why It's Good For The Game
this shit looks goofy

![324271923-9c1e353d-70ff-4321-839c-8bac2fd03c01](https://github.com/tgstation/tgstation/assets/25628932/d120458d-8f65-418c-a0c8-7d1f939a472b)
## Changelog
🆑 FlufflesTheDog
fix: Stone tiles (and things on them) no longer get immersed in lava
/🆑
2024-04-22 16:43:55 -07:00