Commit Graph

8260 Commits

Author SHA1 Message Date
CRITAWAKETS dba95083a0 Makes HMS (and uncurable severity diseases) actually uncurable. (#76291)
This PR makes HMS and any other diseases set to uncurable severity (only
HMS counts right now) actually uncurable through either aheal or viral
bonding.

Well, simply put, you shouldn't be able to cure quirks. Viral bonding
doesn't technically "cure" the disease but makes you into a carrier for
something that doesn't spread, which has been fixed.
2023-07-10 22:13:32 +00:00
MrMelbert 8c1e35e1c0 Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests (#76612)
## About The Pull Request

This PR refactors mind language holders into non-existence

As a result, `update_atom_languages` is no longer necessary

Mind-bound languages are transferred via `/mind/proc/transfer_to`

Species changing no longer deletes and re-creates the mob's language
holder, allowing them to keep any languages they have.

Species languages are sourced from `LANGUAGE_SPECIES` now, meaning they
are removed when they change species. If the mob is not a human with a
species datum, these are effectively just atom level languages.

Makes a bunch of unit tests to ensure language transfer over certain
events works as intended

## Why It's Good For The Game

Mobs with minds having two independent language holders results in a
good few bugs, and simply doesn't make sense when we have sources
(`LANGUAGE_MIND`).

Instead of tracking two language holders, we can simply use sources
better and only track one.

This means that the language holder you start with is your language
holder, period. It doesn't get deleted or re-instantiated or whatever.

## Changelog

🆑 Melbert
refactor: Refactored language holders, making species changes not delete
all of your known languages
/🆑
2023-07-10 18:34:57 +00:00
BlueMemesauce a698aa2fd5 Simple and basic mobs can breath pluoxium (#76694)
## About The Pull Request

Fixes #76661

Also adds new PLUOXIUM_PROPORTION define, this is set to 8 which is
currently how better pluoxium is at metabolism compared to oxygen
## Why It's Good For The Game

Since pluoxium is 8 times as effective as oxygen, mobs only need 0.625
mol of it compared to 5 mol of oxygen. This is a very small amount,
maybe it should just be the same as oxygen?
Also pluoxium and oxygen are counted together, so you could have a mix
of 0.5 mol of pluoxium and 1 mol of oxygen for example.
## Changelog
🆑
fix:Mobs can breathe pluoxium
/🆑
Define not player-facing
2023-07-10 12:33:31 -06:00
ChungusGamer666 5472208d70 Fixes water-resistant creampies (#76653)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/76641
Caused by the bodypart overlay being deleted before it got properly
removed on UnregisterFromParent()

## Why It's Good For The Game

One less hard delete and one less bug caused by said hard delete

## Changelog

🆑
fix: Creampies will no longer irreparably stain your face
/🆑
2023-07-10 18:18:13 +01:00
Ghom 3b44a8b15c Adds cardboard IDs to the game: The broke man's agent ID. (#76682)
## About The Pull Request
This PR adds a new craftable item to the game that, in a way, works
somewhat like ID cards, as in it gives the wearer an identity of some
sort, and that can be modified similardly to the agent ID, but...

It doesn't provide access.
It doesn't trick security bots and turrets.
It doesn't work with chameleon masks.
It doesn't have a bank account.
It doesn't fit inside wallets or PDAs.
It doesn't show a trim (it's just cosmetic) on the security HUD.
It doesn't look like an ID card.

(It does however, synergizes well with sign language and face-covering
mask, but in the face of all the things id doesn't do, should I change
that? idk)

Basically, it's not an ID, it's just a piece of cardboard with name and
job written on it.

![aww](https://github.com/tgstation/tgstation/assets/42542238/b33ddb38-a11d-41d9-8085-2c719a2c4d48)

![(null)scrnshot1](https://github.com/tgstation/tgstation/assets/42542238/00a53379-70f6-4105-9cca-cff75d0e4144)

## Why It's Good For The Game
Often, player shenanigeans rely on ID cards with gimmicky names and jobs
to advertise themselves or provide a (feeble) disguise for it.
The idea is to provide players a cheap tool for their tomfoolery, that
doesn't get much in the way of balance. Compared to actual IDs,
cardboard IDs' only advantage is the fact they're more easily
produceable.

Also this PR converts a bit of snowflakey code into signals, and fixes
the name part in hallucination messages being shown "Unknown" while the
speaker is wearing a mask but also an ID.

## Changelog

🆑
add: Added cardboard IDs to the game. They can be crafted with a
cardboard sheet and wirecutters and modified with a writing tool. While
worn, these will modify the visible name of the wearer just like actual
IDs, though they aren't real IDs and won't work as such.
/🆑
2023-07-10 17:45:34 +01:00
Ghom f5bfff758d [NO GBP] Fixes the venomous element for projectiles, invisible arrows and something off with envenomable casings. (#76565)
## About The Pull Request
See #76551. The on hit effect component was treating the `hit_limb` arg
of the projectile on_hit signals as if it were a bodypart item rather
than a string. This wasn't my fault.
Also, invisible arrows because I forgot to set up their definition of
update_icon_state() and base icon state var.
Lastly, the envenomable casing registering a signal on the wrong atom,
and the arrow bullet subtype being defined twice.

## Why It's Good For The Game
This will close #76551.

## Changelog

🆑
fix: Fixes venomous projectiles for real, and invisible arrow sprites.
/🆑
2023-07-10 13:00:01 +01:00
MrMelbert 0e85aa3220 Lets you enter fakedeath when dead (#76666)
## About The Pull Request

Fixes #76665

`fakedeath` early returned if the mob was dead, I guess it assumed if
you were dead dead you wouldn't want to become fake dead as well

I removed that because it's definitely a valid use case, in my eyes,
that you would be able to apply the fakedeath traits to a mob who is
dead, for the event they are revived at some point (to still appear
dead)

## Why It's Good For The Game

Lings rely on this

## Changelog

🆑 Melbert
fix: Fix ling revival for full-dead lings
/🆑
2023-07-10 10:37:25 +02:00
Fikou 8ca2a0bb35 service borg cookin fixin update (#76590)
## About The Pull Request
PR done for bounty:
https://tgstation13.org/phpBB/viewtopic.php?f=5&t=33988
borgs can now turn on stoves and griddles
borg click code has been reworked a bit to be closer to base mob, you
are now able to click on stuff within reach rather than just Adjacent
(might be buggy to introduce this? hopefully not. if anything we can
testmerge this), which lets us make the apparatus work to pick up stoves
on the range and such
Adds the Codex Cibus Mechanicus as an upgrade you can research in RnD
with the other service borg ones. When you use it it shows you the
cooking menu!

![image](https://github.com/tgstation/tgstation/assets/23585223/5f881387-e0ba-4bb8-a9d6-ddc9d8fa9272)

## Why It's Good For The Game
The service borg has the tools to prepare ingredients, but it can't
actually do anything with them, which severely limits it, only being
able to do slapcrafted foods.
The apparatus not working on items that are on top of stoves/griddles
seems to be just a bug with how cyborg click code is handled.

## Changelog
🆑 Fikou
fix: service borg apparatus now works on stoves and griddles and ovens
qol: borgs can now activate stoves and griddles
add: rnd can research a cookbook for service borgs
/🆑
2023-07-09 14:17:39 +01:00
Jacquerel e7426f0919 Golems can dig up the floor with their bare hands (#76623)
## About The Pull Request

I'm atomising a different branch I'm working on so here comes a bunch of
goofy components.
This one lets mobs dig up floor by clicking on them. 


![image](https://github.com/tgstation/tgstation/assets/7483112/723b712b-1d3d-4154-a116-7a0379e4e522)
I have justified the existence both of this component and of this system
by attaching it to golem arms.

## Why It's Good For The Game

If you can mine solid rock with your fists you should probably be able
to get sand too

## Changelog

🆑
add: Golems can scoop sand (or snow) off the floor by clicking on it.
/🆑
2023-07-09 11:35:19 +02:00
Toastgoats 5ed6407462 Ethereal Pirates (Re-pr) (#76554)
Other pr had some weird check failure, making a new pr to see if it
fixes it.

## About The Pull Request
After he ended up finishing his pirate pr before I could, SethLafuente
graciously offered to let me roll my in-progress pirate pr into his
overall pirate expansion project.

This pr essentially adds a new faction of pirates, along with a new
subspecies of Ethereals a-la silverscales.

- The Lustrous:

A unique subspecies of Ethereal, with years of exposure to bluespace
dust mutating them into crystalline abominations sporting a new pointy
head, pressure resistance, and a permanent bluespace prophet brain
trauma. They're still as fragile as ever, but far more capable of
getting in and out of sticky situations.

- Geode Pirates:

A hollowed out asteroid manned by three Lustrous, equipped with
switchblades, traitor PKAs, jump boots, two teleporting turrets, and an
upgradable bluespace launchpad.

However, they lack proper armor and ship defenses, forcing them to adopt
a coordinated hit-and-run playstyle.


![asteroid](https://github.com/tgstation/tgstation/assets/63932673/1ab420fd-4bf3-4a54-94be-fde73cf66edf)

![shuttle](https://github.com/tgstation/tgstation/assets/63932673/00574b29-54be-4efb-b6d6-0085c3bc5cfb)

![piratas](https://github.com/tgstation/tgstation/assets/63932673/d1586a30-a1e5-42e0-b16b-9793db1340ad)
## Why It's Good For The Game

When I started working on this project, I wanted to implement this
faction to cover for the loss of psykers and as a means of creating a
"rock-paper-scissors" system to how standard pirate playstyles would
work; with default pirates being offensive, Silverscales defensive, and
Lustrous mobile.

With Seth's pr, things are a little different now, but I still believe a
glass cannon mobility-focused pirate faction would be a welcome addition
to the pirate roster.
## Changelog
🆑
add: Adds the Lustrous, ethereal pirates in a big bluespace geode!
sound: Unique scream sound for the Lustrous species.
image: Unique head icon for the Lustrous species.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-07 23:48:47 +00:00
ChungusGamer666 ca401b57a7 Bargain bin organ quirks: Prosthetic organ and Tin Man (#76498)
## About The Pull Request

Basically, the organ equivalents of prosthetic limb and quadruple
amputee.
These replace your organs with absolutely terrible cybernetic
counterparts which also have absolutely no resistance against EMPs.

![image](https://github.com/tgstation/tgstation/assets/82850673/1e4a4abc-8871-41fc-b2f7-a2e626f1fdfb)

### ADDITIONAL FUN
Surplus organs are so awful that if surgically removed while not EMPed
nor failing, they *explode*!

## Why It's Good For The Game

More character customization, and more suffering for hardcore random
players.

## Changelog

🆑
add: Added two new quirks, prosthetic organ and tin man. Essentially,
they replace organs with bad bad not good cybernetic counterparts.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-07-08 00:31:43 +01:00
John Willard a2c8cce535 Bilingual can now choose their language (#76609)
## About The Pull Request

This was one of the tradeoffs for removing other, more consistent
sources of languages, and was requested by Melbert among many others.
This does go against my wanted goal of decreasing the risk of
eavesdropping by other players through just magically knowing a
language, but it is an expensive quirk and it is in their medical
records, which makes it better than language encryption keys or silicon
just innately knowing them.

This also limits Bilingual to only roundstart languages (+Uncommon),
rather than being randomly selected from a list (that had very useless
ones like monkey, podpeople, and beachbum). This is mostly just for
modularity, I didn't want to make it look terrible code-wise and thought
this may be the optimal way to handle it.

This is also me going back on
https://github.com/tgstation/tgstation/pull/71773 - which I had closed
myself.

## Why It's Good For The Game

If we're gonna keep the Bilingual quirk, it might as well be something
players can choose the language of, it's their character and they should
be allowed to decide how their character is, and it is my fault that
this stupid compromise of "getting a random language" was made in the
first place. It never should've happened.
It now actually limits it to roundstart-only languages, so there's no
way you can spy on people who prepare in advance through becoming
podpeople, or monkeys, etc.

## Changelog

🆑
balance: Bilingual quirk now lets you choose your language between ones
given to roundstart species.
balance: Foreigner and Bilingual are now mutually exclusive languages.
/🆑
2023-07-08 00:26:35 +01:00
carlarctg 4c99fb2ebb Coroner additions and tweaks (#76534)
## About The Pull Request

Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Serrated bone shovels can be used in place of circular saw in most
surgeries.

Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Increased the force, throwforce, and wound bonus of inert ritual knives
and scythes.

Coroner gloves can quickly apply medicine like nitrile gloves.
## Why It's Good For The Game

> Serrated bone shovels can be created with any kind of shovel now, not
just a spade (???)

Weird ass bug.

> Serrated bone shovels can be used in place of circular saw in most
surgeries.

It's serrated, it's cool, it's rare, it has a fast toolspeed.

> Added a duller (still deadly) variant of the serrated bone shovel as
coroner mail.

Very thematic for the coroner, should probably also be a heirloom item
but whatevs. Weaker so there's still a reason to seek out the OG.

> Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.

Scanning corpses is pretty important during surgery - it tells you how
much blood they have, organ damage, diseases... these things don't
appear in the surgical computer readout, which means the coroner has to
go out of his cave to pick up a boring light blue meatbag wound scanner.
This also incentivizes coroners to do their job by giving them something
cool that only works on dead bodies.

> Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.

These two options in the MortiDrobe are pretty frickin' badass,
especially with how SICK the Coroner looks with them, double especially
in combat.


![image](https://github.com/tgstation/tgstation/assets/53100513/98c6f8a5-3e5a-41a9-8a9c-cb6b82ecc0b8)

However, there's the large issue that as actual weapons they're really,
really weak. Not enough damage, when I use them in combat I both feel
badass but also get a nagging feeling in the back of my mind that I'm
intentionally gimping myself, and with only 10 damage I can *really*
feel it. I find it unfair that these are objectively worse than a
welding tool or even a Butcher's Cleaver when they're a lot more
involved to find, and scarce besides. These arguments apply equally to
the Wizard's ritual knife, and the scythe.

Additionally on the scythe, the crew really needs more good ghetto
weaponry that isn't the boring same ol' of baseball bats, spears,
cleavers... and making scythes useful is a great way to help bridge that
gap. They deal a satisfying amount of damage now, with the clear
downside, of course, being that they're bulky and hard to lug around.

> Coroner gloves can quickly apply medicine like nitrile gloves.

'Fast medicine' doesn't just cover sutures, it also covers medical gel.
Specifically, sterilizer gel. I find it annoying that the Coroner is
encouraged to give up his drip for the boring life-saver nitrile gloves,
because the difference in applying time really does make a difference -
it makes gel applying go from annoying to smooth, which is important
considering the whole purpose of sterilizer gel is to make surgeries go
faster. The Coroner has surgery and thus medical locker access to begin
with, so this isn't a balance problem, (and nitrile gloves are found by
the dozen anyways) especially with how rare the coroner gloves are.
## Changelog
🆑
fix: Serrated bone shovels can be created with any kind of shovel now,
not just a spade (???)
add: Serrated bone shovels can be used in place of circular saw in most
surgeries.
add: Added a duller (still deadly) variant of the serrated bone shovel
as coroner mail.
add: Autopsy scanners now act as advanced health analyzers on dead and
seemingly-dead people.
add: Increased the force, throwforce, and wound bonus of inert ritual
knives and scythes.
add: Coroner gloves can quickly apply medicine like nitrile gloves.
/🆑
2023-07-08 00:14:30 +01:00
carlarctg 721fd30837 Heavily reworks and resprites first aid analyzers. (#76533)
## About The Pull Request

Heavily reworks and resprites first aid analyzers. They now display if
they're happy, sad, angry, or warning you! Also a 'pricking' animation.

First aid analyzers are now found in all basic and specialized medkits.
Toxin medkits get a new* disease analyzer. Miners get a miner-colored
one in their box.

Scanning yourself with a first aid analyzer will 'create a holo-image
with treatment instructions next to your wounds', doubling the speed of
treatment of scanned wounds!

Health analyzers now have a scanning sound, courtesy of CM.

Refactored some wound code to make treatment duration changes and
changes in the description of wounds easier.

Fixed a dummy parent feature of the health analyzer (Verbose mode)
showing up, uselessly, on the disease and first aid subtypes.

Surgical processors and slime scanners have recieved a similar resprite.
## Why It's Good For The Game

> Heavily reworks and resprites first aid analyzers. They now display if
they're happy, sad, angry, or warning you! Also a 'pricking' animation.

These things have long, long needed some sprite love. Displaying emotion
will make them have a lot more 'weight' to them, same with the prick.
The old, shitty spectrometer sprites have gone directly into the
dumpster.

> First aid analyzers are now found in all basic and specialized
medkits. Toxin medkits get a new* disease analyzer. Miners get a
miner-colored one in their box.

They have also needed some gameplay love! Placing them in these kits is
not going to be a massive game-changer when they were already easily
found around the station in emergency medkits, but it will fill up that
awkward empty slot.

> Scanning yourself with a first aid analyzer will 'create a holo-image
with treatment instructions next to your wounds', doubling the speed of
treatment of scanned wounds!

The biggest gameplay-impacting change in this PR, I *sincerely* believe
this is the perfect solution to first aid analyzers being completely
redundant with eyesight. This lets you/someone else scan your wounds to
speed up treatment, with a neat in-character reason for it -
'holo-images' appearing on your body, like penlights.

This will speed up wound treatment, but I believe that is for the best,
as currently treating wounds is so slow that half the time it's not
worth it (or more accurately, it doesn't feel worth it in comparison to
the effort you're putting in) and you're better off shrugging off minor
wounds. It will do so in a way that requires a modicum of effort, so
it's not just a flat buff across the land.

> Health analyzers and gene scanners now have a scanning sound, courtesy
of CM.

It's a neat sound that will make medbay feel more alive. First aid
analyzers get a beeboop instead.

> Surgical processors and slime scanners have recieved a similar
resprite.

IT'S SPRITE MANIA IN HERE
## Changelog
🆑
Carlarc, Weird Orb
image: Heavily reworks and resprites first aid analyzers. They now
display if they're happy, sad, angry, or warning you! Also a 'pricking'
animation.
add: First aid analyzers are now found in all basic and specialized
medkits. Toxin medkits get a new* disease analyzer. Miners get a
miner-colored one in their box.
balance: Scanning yourself with a first aid analyzer will 'create a
holo-image with treatment instructions next to your wounds', doubling
the speed of treatment of scanned wounds!
sound: Health analyzers and gene scanners now have a scanning sound,
courtesy of CM.
refactor: Refactored some wound code to make treatment duration changes
and changes in the description of wounds easier.
fix: Fixed a dummy parent feature of the health analyzer (Verbose mode)
showing up, uselessly, on the disease and first aid subtypes.
image: Surgical processors and slime scanners have recieved a similar
resprite.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-07 23:19:55 +01:00
Jacquerel e2de2046b5 Bibles, Lighters, and Cowboy Hats can block bullets (#76521)
## About The Pull Request

If you are wearing a bible or lighter in your suit slot, or a cowboy hat
on your head, there is a small (2%) chance that bullets (only bullets,
not lasers) will hit them instead of you.
This destroys lighters, removes the storage capacity of the bible, or
sends the hat flying off your head.

The Bounty Hunter's cowboy hat has a significantly higher chance to
intercept bullets.

## Why It's Good For The Game

Adds some fun flavour to these items.

## Changelog

🆑
add: A bible or lighter in your suit slot, or cowboy hat on your head
will occasionally intercept a bullet.
/🆑
2023-07-07 18:36:04 +08:00
John Willard 32afa856db Makes cult leader handling work off of the Cult datum (#76556)
## About The Pull Request

Removes Cult master's datum, it's not handled by the Cultist itself,
using a helper to promote/demote people to leader.
In practice, the only way someone would be demoted is through Admins, so
this adds support for Admins to intervene in this Cult stuff if
necessary.

Moves cult objectives and cult team to their own files

Removes the cult master's status effect that constantly processes to
send a deathrattle, and instead moves it to a signal hooked to stat
change.

Also moves some things from ``get_antag_minds`` to checking the team,
which doesn't change anything in-game but it does help add the currently
non-functional support for several cult teams. Iunno.


https://github.com/tgstation/tgstation/assets/53777086/573a4f13-35e1-4f34-9952-62fed10b49c9

## Why It's Good For The Game

Having the cult leader be its own datum has actually been handled like
shit. To promote someone to cult leader, we currently make their current
cult datum silent, then remove it, and finally add the cult leader
datum. This means they lose their spells unless manually given back
post-promotion, which sucks (and also, no one has done yet, meaning they
just lose all their spells).
It also means there's a lot more snowflake things, did you know there's
a var to bypass converting mindshielded people? That's so cult masters
can be promoted by Cultists who were mindshielded, and they have to be
"ownable", that var is to bypass the check for mindshield to "convert"
them to leader cultist.

## Changelog

🆑
fix: Cultists promoted to Leader no longer lose their spells (rip
whoever tried saving up blood rites)
admin: Admins can now force promote/demote people from Cult Leader if
necessary.
/🆑
2023-07-07 06:27:31 -04:00
MrMelbert 12c7f3a781 Fix double signal send of COMSIG_MOB_EMOTED (#76607)
## About The Pull Request


https://github.com/tgstation/tgstation/blob/75af2bed854c6426f46ed2797714c45446d92303/code/datums/emotes.dm#L124


https://github.com/tgstation/tgstation/blob/75af2bed854c6426f46ed2797714c45446d92303/code/modules/mob/emote.dm#L34-L36

I opted to keep the latter because it's always sent when the former is
only sent under certain conditions.

## Why It's Good For The Game

Fixes some strangeness involving this signal

## Changelog

🆑 Melbert
fix: Fix certain emote interactions happening twice at the same time
/🆑
2023-07-07 18:20:55 +08:00
John Willard dd77c2cc94 Jousting now unregisters the current holder (#76589)
## About The Pull Request

Fixes the args of on_equip and on_drop for active items
Picking an item up will unregister from the old user (in case it
transfers inventory)
Unregister's signal from current holder instead of whoever drops it. It
should be the same in each case but there may have some edge case where
on drop isn't called? This is more to just be safe.

## Why It's Good For The Game

Jousting won't runtime as much.

## Changelog

🆑
code: Jousting now registers/unregisters properly on two-handed items.
/🆑
2023-07-07 18:11:29 +08:00
Ghom d4cdd6b63e Replaces lava and chasm's "safeties" and ignoring turf slowdown on catwalks with traits and a new element. (#76376)
## About The Pull Request
This adds a new element for movables that grants turfs they're in
traits, changes lava and the chasm component to check for traits
instead, ditto for turf slowdown. It also implements another trait that
prevents wet floor from slipping people, as well as some other changes
(feel free to opine on them really):
- Tables and conveyor belts now stop turf slowdown, much like catwalks,
as I imagine people walking on them are not really touching the floor.
(I'd include protection against lava too... until they melt, but that'd
mean finding a way to have these objects burn in the first place, and
lava code is still stupid despite a years old refactor I did)
- Tables also stop slippery turfs from slipping (bananas, soaps etc.
still apply). I wish there were a way to make some objects slippery by
coating them in water vapor or splashing water/lube, but that's outside
the scope of this PR.
- Fixed an edge case in which a mob standing on a lava turf would be
left permanently visually on fire if the lava is changed to another kind
of turf.
- Removed unused code from stone tiles.

I'm going to include these traits in that global list for admin-added
traits... tomorrow perhaps. 💤

## Why It's Good For The Game
Replacing some hard-coded mechanics with easier to use traits and an
element, which I also need for the submerge element PR.

## Changelog

🆑
refactor: Replaced hardcoded "safeties" for lava, chasms and ignoring
turf slowdowns on catwalks with traits.
balance: much like catwalks, tables and conveyors also disable turf
slowdowns.
balance: slippery turfs won't slip you when walking on a table.
fix: Fixed an edge case in which a mob standing on a lava turf would be
left visually but permanently on fire if the lava is changed to another
kind of turf.
/🆑
2023-07-07 10:04:33 +01:00
ChungusGamer666 8aa635f137 Adds colorblindness as a mild brain trauma (#76527)
## About The Pull Request

What the title says. 
The brain trauma makes the whole screen monochrome until cured.

![image](https://github.com/tgstation/tgstation/assets/82850673/442d24a8-6625-454c-bc28-64b786b03f49)

## Why It's Good For The Game

I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).

## Changelog

🆑
add: Added colorblindness as a mild brain trauma.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-06 21:42:34 -06:00
Ben10Omintrix 4034c6c81c make the mushroom a basic monster (#76570)
## About The Pull Request
i maked the mushrom from the simple monster to a basic monster so he is
dont a simple anymore but now he is a basic.i followe the instrucions in
the guide learn-ai.md to maked this pr. i also give the mushrom a extra
feture he will go and hunt food mushroms on the floor to ate them and
when he ate them he will heal small his hp

## Why It's Good For The Game
he is now a basic monster so he is not simple anymore. it is good
because he is a more advance ai and he will stil go and do the same stuf
he did when he is simple but he is now a basic

## Changelog
🆑
refactor: Mushrooms have been refactors, please report any
bugs/unintended behavior
add: the mushroom basic mob can eat the mushroom plant to heal itself
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-06 19:25:02 +00:00
lessthanthree 25cfa0c03d Maptext 2023 tweaks 3 (#76552)
## About The Pull Request

Hopefully the last set of changes in this demonstration of the
[Goldilocks
principle](https://en.wikipedia.org/wiki/Goldilocks_principle).

Some more font changes, the big (hah) one being the context tooltips
again.

- Context tooltips smaller main line, more compact sublines.
- Improves documentation on the usage of the macros.
- Removes incorrect comment I added earlier in tgstation.dme
- Adds black outlines as default in the macros.
- Icon sized letters (Dwarf Fortress, credits).
- Deathrattle and other actions reduced spacing.
- Aligned cooldowns/countdowns.

<details>
<summary>Screenshots</summary>


![image](https://github.com/tgstation/tgstation/assets/83487515/9d704e77-619e-45d1-961e-48f48bec4577)


![image](https://github.com/tgstation/tgstation/assets/83487515/e6d07bc1-1c8f-41e1-bdb5-1241a04873c4)


![image](https://github.com/tgstation/tgstation/assets/83487515/cb3f3def-74b9-4872-be9b-76c4b412b2e2)


![image](https://github.com/tgstation/tgstation/assets/83487515/daab8376-edb6-4866-875b-28c7fb3b0a8a)


![image](https://github.com/tgstation/tgstation/assets/83487515/2242dab4-affe-4e9c-a10a-c668fa2555a5)


![image](https://github.com/tgstation/tgstation/assets/83487515/735280b2-4054-4588-bb59-b1d35e56b989)


![image](https://github.com/tgstation/tgstation/assets/83487515/ee44b961-452f-4407-9fdf-337a6e20ad37)

</details>

## Changelog

🆑 LT3
image: More maptext and font tweaks
spellcheck: Context tooltips too small, too big... just right?
/🆑

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-07-06 12:07:34 -07:00
ChungusGamer666 c0fc3950ae Alcoholic quirk (#76510)
## About The Pull Request

So you're telling me we have a smoker quirk and we DON'T have an
alcoholic quirk?
What a travesty! Time to fix that.

This quirk is essentially equivalent to smoker, but instead of a
favorite brand you get a favorite *brandy* (as in, favorite type of
booze).

![image](https://github.com/tgstation/tgstation/assets/82850673/f3883f76-414a-48a8-8f69-76f1bc01d020)

## Why It's Good For The Game

More quirk variety with decent roleplay value.
What will we do with a drunken sailor?

## Changelog

🆑
add: Added Alcoholic as a negative quirk.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-06 11:47:39 -06:00
ChungusGamer666 4f2227baf3 Implements a macro for checking mind traits (#76548)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/82850673/f85d0556-1806-40bf-92b8-597e46ccb4af)
Seeing this pattern repeated over various sections of code was starting
to piss me off

## Why It's Good For The Game

Lessens chance to cause errors with mind traits, ensures consistent
behavior, makes it easier to change how mind traits work if necessary.

## Changelog

hopefully not player facing

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-06 11:45:46 -06:00
san7890 755fa4db6d Loads Away Missions for Unit Testing (#76245)
## About The Pull Request

Hey there,

A pretty bad bug (#76226) got through, but it was fixed pretty quickly
in #76241 (cf92862daf). I realized that if
we were testing all the away missions, that this could theoretically get
caught and not happen again. Regardless, unit testing gateway missions
has been on my to-do list for a while now, and I finally got it nailed
down.

Basically, we just have a really small "station" map with the bare bones
(_teeny_ bit of fluff, maploading is going to take 30 seconds tops
anyways let me have my kicks) with a JSON map datum flag that causes it
to load all away missions in the codebase (which are all in one folder).
Just in case some admins were planning on invoking the proc on
`SSmapping`, I also decided to gate a `tgui_alert()` behind it because
you never can be too sure of what people think is funny these days (it
really does lock up your game for a second or so at a time).

I also alphabetized the maps.txt config because that was annoying me.
## Why It's Good For The Game

Things that break on production could(?) be caught in unit testing? I
don't know if the linked issue I mentioned above would have been caught
in retrospect, but it's likely to catch more than a few upcoming bugs
(like the UO45 atmospherics thing at the very top) and ensure that these
gateway missions, which tend to be the most neglected part of mapping,
stay bug-free.

This is also helpful in case someone makes a new away mission and wants
to see if stuff's broken. Helps out maptainers a bit because very, very
technically broken mapping will throw up runtimes. Neato.
## Changelog
Nothing that players should be concerned about.

Let me know if there's a better way to approach this, but I really think
that having a super-duper light map with the bare basics to load up
gateway missions and then all nine-ish gateway missions can sequentially
load during init. I can't think of a better way to do it aside from some
really ugly `#ifdef` shit. Also also, it has the added benefit of being
a map that will always load your away mission without touching a single
shred of config (and it's not likely to break if you follow sane
practices such as making your own areas)
2023-07-05 19:40:24 -07:00
Jacquerel 48cc57010d Various spider fixes (#76528)
## About The Pull Request

Fixes #76484
Then I noticed some weird stuff which slipped through the PR and poked
at that too.

- Spiderlings and Spiders once more have names ending in (###)
- Removed an unused property on Spiderlings.
- Rewrote the descriptions for a bunch of web-abilities and web-objects
to be clearer and have better capitalisation.
- Refactored the "Web Carcass" ability to not extend from "lay web" as
it didn't need to perform most of that behaviour.
- Also I renamed it and made the description give you a hint about why
you would want to instantly spawn a statue.
- The web effigy now despawns at the same rate as the ability cools down
so you're not dumping spider statues all over the place.
- I made spiderlings move at about the same speed as humans except if
they're on webs in which case they're still pretty fast.

To be honest I am not certain an instant statue spawning button is great
to begin with and I didn't even know it was added to the game but I am
not interested in messing much with the balance for now.

This made me look at spiderlings enough that I'm going to try and make a
new sprite for them that isn't awful.

## Why It's Good For The Game

Lets you differentiate individual spiders a little bit.
Makes usage of abilities clearer.

## Changelog

🆑
balance: Guard spider web statues despawn as the ability comes back off
cooldown.
balance: Spiderlings now only move at light speed if they're on webs,
stay safe little guys.
fix: Spiders once again have random numbers after their names.
/🆑
2023-07-05 19:26:45 -06:00
ChungusGamer666 1f9bc21fc5 Hemiplegic quirk (#76526)
## About The Pull Request

Like paraplegic, but instead of a horizontal half of your body being
fucked, it's a vertical half!

![image](https://github.com/tgstation/tgstation/assets/82850673/aab1059e-9f5a-4778-a72a-c55c9fe75403)

![image](https://github.com/tgstation/tgstation/assets/82850673/2edf1a76-906f-41f5-984c-4260b65a279d)

## Why It's Good For The Game

Character customization and pure, undistilled human suffering.

## Changelog
🆑
add: Added Hemiplegic quirk.
/🆑

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-07-05 19:09:38 -06:00
LemonInTheDark 4d1e34322f Macros multi-z code, removes the false premise of manual offsets (#76248)
## About The Pull Request

[Removes the pretense of relative multiz
levels](https://github.com/tgstation/tgstation/pull/76248/commits/0293fdc2bd8c8af7a0d18da33265e060789c71f7)

Our multiz system does not support having a z level that is only
connected one way, or which goes down backwards or anything like that.

That's a fiction of the trait system, the actual backend has never
really supported this.

This pr removes the assumptions we were making backend around this, and
uses that to save cpu time.

I am also converting multiz_levels from an assoc list to a pure one,
which saves significantly on access times and cleans up the code
somewhat.

Also I'm making the get_below/get_above procs into macros, for the sake
of cpu time.

[Converts the starlight disease to use BYOND's directional defines
instead of our
own](https://github.com/tgstation/tgstation/commit/7d698f02d991eb4e1bde56314c657cf6e48ceb5d)

To some extent spurred on by
https://github.com/DaedalusDock/daedalusdock/pull/298, tho it was known
before

## Why It's Good For The Game

Faster multiz code, faster init, etc etc etc
2023-07-05 18:31:27 -06:00
ChungusGamer666 a59442d292 Makes creampies use bodypart overlays (#76525)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/76148

![image](https://github.com/tgstation/tgstation/assets/82850673/7486b33d-fee1-495d-9af6-b743466d8a31)

## Why It's Good For The Game

Makes the code for this component less wacky while also fixing a bug,
which is awesome and all

## Changelog

🆑
fix: Creampies no longer float above the heads of monkeys
/🆑
2023-07-05 00:21:19 -06:00
san7890 d8058f1245 Datumizes out jobconfig.toml (extensibility edition) (#76102)
## About The Pull Request

Hey there,

#75992 (fc54fd6a60) made me realize just
how wacky the job config system is to people trying to add more new
stuff to it, so I finally got the motivation to fix it up.

The gist is that it does all of the same stuff on the front-end as you
would expect, but instead of having to modify core generation code to
create/recreate the files, it instead uses a robust series of getters
and setters. It's much better to use these getters and setters because
we can apply needed game logic (like ensuring that the age that the
server operator puts in is actually sane, and not completely out of
bounds (if you want to permanently price people out of a position, just
set it to 0)). The getters are also nifty too, because they let me atone
for an early mistake I made with how assistants are meant to work with
"unlimited" nonsense.

All a new coder who wants to add stuff to the config needs to do now is
create the define, create the datum, add the procs for the datums, and
that's it! They don't have to do any of the wacky stuff or account for
weird stuff or do any weird copypasta, it's all handled by the system.
One datum is all you need, quite neat.

This also fixes some issues in #75992 that probably weren't discovered
in testing, but the only good way to fix it was a retune+refactor, which
is included in this PR.
## Why It's Good For The Game

Much more extensible, ensuring this system actually works as fully
intended, etc.

I fixed up the documentation (they didn't regenerate the job config
after they updated the code-side documentation) and some weird spacing
stuff that I missed in my review of that aforementioned PR. Everything
should work as expected, it's been tested quite a bit. It's also in its
own folder now, which is neat because we can share the local defines and
split all this stuff out of the already-quite-large SSjob file.
## Changelog
🆑
server: job_config.toml should now comply with reload-configuration
verb, meaning you can hot-reload the configuration from disk and have it
apply ingame automatically.
config: The documentation for setting Minimum Character Age on a per-Job
basis has been altered to be more explicit.
fix: The Minimum Character Age configuration entry is now sanitized to
ensure that it's within the codebase-defined ages, since there's no
(legitimate) way to get a character outside of those ages anyways.
Invalid values will log to the config log.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-04 23:57:16 +00:00
Ghom 55e00665f3 Walking on conveyors, catwalks and tables no longer plays the footstep sound of the turf, and have theirs. (#76391)
## About The Pull Request
Adds a footstep_override element to the game, that allows object to do
what it reads on the tin.
Only conveyor belts, catwalks and tables use it for now.

## Why It's Good For The Game
Consistency. If you're walking on a table or catwalk, the sound of shoes
trudging on snow or lava shouldn't be played. Tested.

## Changelog

🆑
sound: Walking on conveyors, catwalks and tables no longer plays the
footstep sound of the turf. They have theirs.
/🆑
2023-07-04 22:38:08 +01:00
MrMelbert beacfec8be Fixes some species keeping galcom because of shenanigans / codifies silverscales understanding but not speaking common (#76342)
## About The Pull Request

1. Default language holders understand GALCOM on their mind, but speak
it on their atom


https://github.com/tgstation/tgstation/blob/0a37898f4da161d6f45c209e1f88546e068a64fd/code/modules/language/language_holder.dm#L39-L43

2. Living mobs defer to their mind's language holder over their body's
language holder


https://github.com/tgstation/tgstation/blob/0a37898f4da161d6f45c209e1f88546e068a64fd/code/modules/mob/living/living_say.dm#L559-L562

3. Mind get_language_holder, an entirely different proc, makes a default
language holder when it is created


https://github.com/tgstation/tgstation/blob/0a37898f4da161d6f45c209e1f88546e068a64fd/code/datums/mind/_mind.dm#L169-L172

4. Setting species changes your language holder entirely


https://github.com/tgstation/tgstation/blob/0a37898f4da161d6f45c209e1f88546e068a64fd/code/datums/dna.dm#L490-L493
 
5. When your mind's default language holder is synced with your body's
species language holder's **ATOM LANGUAGES**, it will clear your
languages of all atom languages and then add in all the new ones. You
will notice that mind sourced languages are untouched. This leaves the
understood-via-mind galcom entry from default language holders there,
despite the mob, say, being unable to otherwise understand galcom.

I've fixed this weird chain of events by having mind language holders
default to your current species language holder or current body language
holder.

This is admittedly, kind of a bandaid. **Mind language holder should not
exist**. Mind sourced languages should just be passed around in mind
swaps as you would expect. But that's a larger refactor.

Closes #76330 , but keeps Silverscales as able to understand but not
speak galcom.
I think it's funny if they can hear the peasants but refuse to stoop to
their language no matter what.

## Why It's Good For The Game

People shouldn't able to understand common in some situations

## Changelog

🆑 Melbert
fix: Fixes some species / mobs keeping an understanding of galcom
despite not being intended to.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-04 17:19:13 +01:00
Andrew 4c0d705062 [NO GBP] Plant bags harvesting fix and other hotfixes for floor sickness (#76479)
## About The Pull Request

After #76018 people reported that you need to do an extra click when you
harvest with plant bag because harvest always dropped on top of
hydrotray instead of going into the bag.

And It looked bad when people just left their harvest on hydrotrays
without picking it up.

I reverted the change that made harvest spawn on top of hydrotrays to
address both issues.

Hydrotrays still protect from germs if the plant was harvested using
telekinesis.

Fixes #76462

Also fixes sloppy mistake in Carpellosis - I was checking whether the
target has mouth instead of owners mouth in the gnashing check.

And it makes patches not become dirty, showing warning message. They
weren't infective anyway.

## Why It's Good For The Game

Fix

## Changelog

🆑
fix: Plant bags now properly harvest items when you click on hydrotray
with it, and don't pick up anything except the harvest
fix: Carpellosis gnashing checks owner's teeth availability instead of
the target's teeth
fix: Patches don't have a message saying that they're dirty
/🆑
2023-07-04 17:12:05 +01:00
Vekter 9e4fe26e82 Fixes nebula vomiting being in the normal symptom pool (#76489)
## About The Pull Request
Fixes #76488.

To my knowledge, these are supposed to be bespoke to the floor
contamination PR, not actual symptoms you can roll in a normal virus. If
@MTandi corrects me then I'll close this.

## Why It's Good For The Game
Thing not meant to happen happened, this make not happen.

## Changelog
🆑 Vekter
fix: Removed nebula vomiting from the normal symptom pool. It should no
longer appear on regular viruses.
/🆑
2023-07-03 20:55:47 +02:00
Vekter f2ec16c1e6 Plasma objects no longer violently explode when ignited (#76492)
## About The Pull Request
This is one of those "can I get away with making a change I want" PRs.

I actually didn't know this had been changed before as it's not exactly
something I mess with often, but I really think it sucks. Plasma stuff
is supposed to ignite and cause fires, not explode (unless in a TTV). I
noticed this when I was poking around and found out that apparently
Disco Inferno just explodes now instead of setting on fire which also
sucks.

I figure there's a few fixes for this problem:

1) Nerf how hard plasma stuff explodes. This is an option, but I kind of
dislike that it does it at all more than anything. The biggest issue is
that just the regular statues explode with 20 LIGHT, which is pretty
fucking massive and basically just delimbs everyone around. I'd have to
nerf it HARD for it to get anywhere near what I think is acceptable.
2) Make a snowflake version of the statue that just ignites on hit with
a torch. I also don't like this because it'll make people think the
regular statues don't explode.
3) This option, which I think is cleaner and just makes sense compared
to the others.

I don't know if @vincentiusvin still codes, but as far as I can tell
this was their doing, so it's only fair they get to speak up.

Fixes #71894

## Why It's Good For The Game
I don't like it, I think it goes against what we're used to for plasma
stuff (that it starts fires, not makes explosions) and it makes one of
my favorite shuttles boring and stupid. That being said, I'm honestly
not going to fight for this too hard if a lot of people like it, but I
am - as always - open to alternatives.

## Changelog
🆑 Vekter
del: Plasma objects (statues, toilets, etc.) no longer explode when
ignited. They just release plasma like everything else plasma. (This
doesn't impact injecting plasma into cells or dipping cigars in plasma,
those still explode.)
/🆑
2023-07-03 20:55:04 +02:00
itseasytosee 65703df45d Petrify Smite (#75538)
## About The Pull Request
adds a smite to petrify someone forever, works like the wizard spell.
Adds support to make petrification brainless.
Creates a var to remove those annoying "you can not move while buckled
to X" messages for abstract items like statues.
## Why It's Good For The Game
Smite good. Message spam bad.
## Changelog
🆑 itseasytosee
spellcheck: You should see a lot less "you can not move while bucked too
X" messages where they don't make sense.
admin: Added a petrify smite. Try it out on your least favorite player!
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-07-03 13:10:18 -04:00
SyncIt21 23c8f28e0b Per unit value of materials now scale with material defines (#76366)
## About The Pull Request
The value of a coin is computed as follows

https://github.com/tgstation/tgstation/blob/9d84598731892be2a81e842464a86fa73ca32147/code/modules/mining/ores_coins.dm#L398
And a coins custom material amounts to

https://github.com/tgstation/tgstation/blob/9d84598731892be2a81e842464a86fa73ca32147/code/__DEFINES/construction.dm#L84

In the future if `SHEET_MATERIAL_AMOUNT`(which directly effects
HALF_SHEET_MATERIAL_AMOUNT) is tweaked this will just reopen #76052 so
let's make the value of these mats depend on material defines to ensure
its fixed permanently

## Changelog
🆑
code: mat per unit values of materials now scale with material defines
/🆑
2023-07-03 12:24:50 -04:00
GPeckman 920f96a027 Clarifies treatment for severe burn wounds when scanned with a health analyzer (#76415)
Severe burn wounds can become infected, and if the infection is left
untreated for too long, the limb will 'lock up completely.' When this
happens, then wound can no longer be disinfected. Instead, it must be
amputated, augmented, or treated with cryogenics. Previously, the health
analyzer would only mention augmentation and amputation as ways to treat
this, and only if it was set to the 'detailed information on wounds'
mode. On the normal mode, it would still say the same thing about
disinfecting, even after the limb locked up. Neither mode said anything
at all about cryogenics. Now, both modes will mention all three methods
of treatment.
2023-07-03 06:49:57 +00:00
Jacquerel ed57b8127f Rat RP expansion (#76455)
## About The Pull Request

This fixes a vile and long-standing bug where putting a mouse inside
your hat would not allow the mouse to control your movements, as it
would pop out of the hat whenever it tried to move.
Additionally as a feature this allows a mouse sitting on your head to
convey complicated instructions such as "scream" or "do a flip", via
emoting. Through drift compatibility, the rat's living mech will also
perform this action.

I could have made this into a component but there's no fucking way any
other item is going to have this behaviour, so I didn't.

## Why It's Good For The Game

This feature was already in the game but broken and I want it not to be
broken.
The mouse should be able to control your entire life.

## Changelog

🆑
fix: Placing a mouse inside your chef hat will once more allow it to
pilot you around.
add: A player-controlled mouse inside your chef hat can compel you to
perform complex actions, such as flipping and spinning. You will obey
because the mouse knows better than you do.
/🆑
2023-07-02 23:25:42 +02:00
Cheshify 982c4bcad4 Frontier Militia ERT Fix [NO GBP] (#76454)
## About The Pull Request
Makes sure only ONE LEADER SPAWNS instead of like 3
Also they have headsets
And I removed their energy pistols
Renames the ERT roles to shorten the names, I totally didn't get how
that worked
## Why It's Good For The Game
TOO MANY LEADERS WERE SPAWNING
Headsets good
The energy pistols detracted from the musket, which is what makes em
unique and fun.
The ERT names were too direct a reference.
## Changelog
🆑
fix: Frontier Militia only have one general now, and have headsets.
balance: Frontier Militia no longer have energy pistols.
/🆑
2023-07-02 13:41:04 -07:00
Jacquerel a5b5bf6516 Tend Wounds works on non-human mobs (#76471)
## About The Pull Request

Tend Wounds seems to be intentionally written such that you would be
able to perform it on arbitrary mobs, however this had two problems.
- Most mobs can't rest and it requires a resting position, meaning the
surgery can only be initiated on cats and mothroaches.
- The code which picks up surgery steps existed on Carbon not Living, so
after the game tells you that you've started doing surgery on Runtime,
clicking on her with a scalpel will cause you to stab her to death. I
noticed this after a tragic kitten incident.

I have fixed both of these issues by moving surgery catching onto Living
instead of Carbon, and having the resting check only run if you are
capable of resting.

You still can't operate on Beepsky because he is made of metal. 

## Why It's Good For The Game

It can actually quite hard to heal pets who were harmed by accident,
this allows people to roleplay as veterinarians.

## Changelog

🆑
fix: You can now correctly Tend Wounds on most non-human animals.
add: You can now Remove Implants from non-human animals, just in case
Ian swallowed a macrobomb.
/🆑
2023-07-02 20:24:01 +02:00
MrMelbert 7f3d763285 Adds Roach Infusion to the DNA infuser (#76393)
## About The Pull Request

- Adds Roach Infusion to the DNA infuser. 
   - Bonuses include:
- All infused organs are 2x as healthy, notably your heart: Meaning
getting revived after being dead a while is easier
- When being attacked from behind or while lying down, take 50% less
damage from brute attacks
      - Lose disgust 32x faster, making it a non-issue
      - Higher toxin purge threshold (5 units, up from 3)
      - Virus resistance (same as spaceacillin)
      - 100 innate bomb armor, preventing explosions from gibbing you
      - 90 innate bio armor
- Immunity to appendicitis, radiation, and to being gibbed by nuclear
bombs
   - Downsides include:
      - Knockdowns are 3x as long
      - get 3x as hungry
      - Ingest reagents to your stomach 1.5x slower
      - Take 2x as much damage from toxins
- Toxins over the purge threshold deal 4x more liver damage (effectively
2x, as the liver has 2x health)
      - Becoming a bug
      - Roaches are gross

- Adds a way to kill roaches without having them splat. If they are
sprayed with bug spray, they will simply fall over, and can be scooped
up.


https://github.com/tgstation/tgstation/assets/51863163/5078c493-9e28-42cb-ae51-45fa25b67a34

## Why It's Good For The Game

More content for the DNA infuser, which benefits greatly from variety. 

While initially it may seem like a lot of bonuses, a lot of them are
very niche, with the exception being the brute resilience which is the
big "actually useful" bonus you gain.

The infusion is intended to be given to Engineers, offering innate
Radiation immunity to allow them to work on the Supermatter without
needing a rad suit. Likewise, if the work goes south and the Supermatter
goes boom, their body will more than likely survive the blast.

## Changelog

🆑 Melbert
add: Adds the Roach infusion to the DNA infuser. Do you want to survive
a nuclear apocalypse? Visit genetics today.
add: Adds a way to kill Roaches without splatting them. Visit botany for
a spray bottle of pestkiller.
qol: Infuser book is more book-like
fix: DNA infuser correctly gives on-success feedback messages
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-02 03:44:03 +01:00
MrMelbert d3fbaea8bd Fixes flaky language holder failure (#76477)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/51863163/d4f2fd51-6884-4623-b208-f670b6cdb75d)

## Why It's Good For The Game

Flaky failure

## Changelog

🆑 Melbert
fix: Fixes a runtime from people with aphasia trauma getting deleted
/🆑
2023-07-02 01:28:20 +01:00
John Willard 333bef46fe Improves jousting and gives it to more weapons (#76321)
## About The Pull Request

I was reading over components and saw one called jousting, I vividly
remember it being mentioned every so often but I've never seen it
in-game. Turns out the SINGLE case for it is when you are using a spear
on a borg. The code itself was also very over the place, making it a
little confusing to figure out what it did.

I tried cleaning the file up as much as I could, and since I wanted to
see this in-game more often, I made some player-facing changes too:

- You can now joust from any vehicle, not just borgs (Secway, ATV,
scooter, Charger holoparasite)
- Added jousting to the broom, pitchfork, captain's sabre, and energy
sword while active (ONLY esword, NOT desword).
- Added examine text to indicate this feature exists.

Extra notes:
Esword gains half the damage increase and half the knockdown chance than
other ways of jousting
Broom only gets 25% damage increase from jousting, since the broom is
already pretty strong I thought it would be better off as something used
mostly to knockdown.
Spears have to travel a longer distance than other weapons to get their
jousting benefits (since it's supposed to be a ghetto weapon)
Jousting now takes the minimum distance needed into account when
handling knockdown chance & damage dealt, so travelling 5 tiles will no
longer be 100% chance of knockdown if you need a minimum distance of 3
tiles to joust (it will instead be 40%, since you've only traveled 2
tiles in 'jousting' mode).

## Why It's Good For The Game

This is an underused component and I thought it would bring some pretty
cool interactions, especially for Holoparasite & Janitors, as a new way
to use vehicles to your advantage when it's otherwise seen as just a
slowdown.

## Changelog

🆑
balance: Jousting now works on anything you're buckled to, not just
Cyborgs.
balance: Brooms, Pitchforks, the Captain's Sabre, and Energy swords can
now be used for jousting.
balance: Spears need to travel a longer distance to joust now.
balance: Jousting's knockdown and damage now only gets stronger after
you've traveled the minimum tiles needed to joust.
/🆑
2023-07-01 21:52:08 +00:00
Sealed101 1825ea0d78 Storm weather related fixes (#76367)
## About The Pull Request
A bundle of stormy weather-related fixes:
- ash storm visually replenishes dug basalt again; also updates refilled
basalt's light, if it rolled an eligible icon variant
- new proc refill_dug() for asteroid turfs, currently made use of in
weather but be my guest
- I THINK the lowest-light variants are so low they don't show up at all
but I didn't look into the lighting subsystem so /shrug
- `set_basalt_light()` is a global proc. the reason is because we have,
like, an unnecessary amount of basalt turfs that don't call back to each
other. `misc/basalt`, `floor/fakebasalt`, `holofloor/basalt`. bro come
on. should merge them where possible but that's for a separate PR; ALSO
MAKE IT USE THE `diggable` ELEMENT BRO COME ON!!!
- ash storm no longer loops `end()` sounds
- it was calling parent THEN removing the playlist's sounds, which
caused the playlist's ash storm weak sound to be picked again and play
with a hugelarge timer
- snow storm no longer affects mecha pilots
- I find it weird that ash storm immunity is just innate whether the
mech is "sealed" or not (Ripley mk I) but for now, I've made snow storm
immunity behave the same
- _jaunt spells provide weather immunity while the jaunt is active_
- _the caster is supposed to be untouchable by any practical means, it
don't make a lick'a sense to have weather affect them. I gave it a
general weather immunity however, and that also makes jaunts protect
from radiation. methinks it's fair, lmk if that's excessive_

## Why It's Good For The Game
- Fixes #76304
- Fixes #76400
- Refilled basalt tiles that should have light are consistent with
mapped in basalt tiles
- Consistency for mechs; the adjustment might be a balance thing, lmk

## Changelog
🆑
fix: fixed basalt turfs remaining visually dug up when refilled by an
ash storm
fix: fixed ash storm ending sounds looping after the storm is over
fix: mechs are now snow storm immune
fix: jaunt spells protect from weather when jaunting
/🆑
2023-07-01 19:23:19 +01:00
Ghom b82567ebd3 AddComponent() now throws a crash message when the comp type arg is not a component. (#76221)
## About The Pull Request
HEY! Did you know that the AddComponent() proc can complete without
throwing errors when the component type argument is actually not a type
or instance of a component? Me neither (until now), but I've recently
discovered that while working on #76219 (Make sure to merge that one
first).

Also adds early return checks to the AddElement and RemoveElement procs.

## Why It's Good For The Game
Silent bugs are awful.

## Changelog
N/A
2023-07-01 19:21:07 +01:00
LemonInTheDark 8c2c72b0ed Duiffel Spotfix (#76442)
## About The Pull Request

Gives duffelbags their proper slot count
They inherited this from backpacks, but I sorta just forgot about that

[Creates "levels" of locked objects, uses that to make locked duffels
work](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3)

[c613c00](https://github.com/tgstation/tgstation/pull/76442/commits/c613c00f62fa3ff03bb33737d24da9acbf2050e3)

Turns locked into something that holds defines, this makes life a lot
easier.
Requires a lot of boilerplate because of how many uses of these procs
there are and all the passthrough and shit.

Adds a few outfit subtypes to avoid this class of failure in future.

Renames the args in a few but not all touched procs, one thing at a time

Closes #76407
Closes #76430 Had the lock check in the wrong place
Closes #76441 GOD I HATE TK SO MUCH

Wrote half the pr without glasses so if it's weird gimme some grace
yeah?

## Changelog
🆑
fix: Fixes some fuck with duffelbags, them not holding enough + issues
with spawning gear in them (job shit and all)
/🆑
2023-07-01 15:36:26 +01:00
Ghom 0f4be6d9b5 Adds an element for noisy movement (wheelchairs, office chairs, trashcarts etc. etc.) (#76378)
## About The Pull Request
Converts generic, copypasted behavior into an element.

## Why It's Good For The Game
I'd rather not have someone just copypaste the old thing, since there're
a few more things to take into account now than just whether the item
has gravity, and if that ever has to change, we will only have to modify
one line than several.

## Changelog

🆑
fix: Fixed the office chair being silent. My bad.
/🆑
2023-07-01 15:30:09 +01:00
ChungusGamer666 d85e44c69c SPECIES NUKING 2023: Head flags 3 & Knuckles: Fixes some growing pains with head flags (#76440)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/76422
This was caused by me somehow not using the wrapper there and not
noticing it

Also fixes hair gradients and facial hair gradients. I am pretty sure
they were uhh, being hidden behind the actual hair/facial hair. Oops.

Also also fixes spawning yourself as a human as admin and getting random
hair colors. That was just a failure to update the icon after updating
everything, I think?

Additionally, to totally babyproof all of this, ensures that head_flags
involved stuff gets applied AFTER species by creating a new preference
priority, and uses two separate wrappers to apply gradient style and
color.

Here's this absolute hellspawn to prove that everything works.

![image](https://github.com/tgstation/tgstation/assets/82850673/7ed29a68-cb60-4b28-996c-3be0e7331be8)

![image](https://github.com/tgstation/tgstation/assets/82850673/e57128be-0d7c-46ad-90dd-ee25981d0fea)

![image](https://github.com/tgstation/tgstation/assets/82850673/5c3619a8-fe6f-42b3-9fdc-12277d568e8d)

![image](https://github.com/tgstation/tgstation/assets/82850673/fdd13000-2220-47ad-8e02-44bc75a4a907)

Sorry for being so damn good at breaking this codebase.

## Why It's Good For The Game

Bugs are bad they make you mad

## Changelog

🆑
fix: Hair and facial hair gradients work again now
fix: Facial hair colors apply properly again
fix: Admin spawned characters will get hair color preferences applied
properly
/🆑
2023-07-01 14:15:25 +02:00
Cheshify b9fa1bc8f4 The Laser Musket (2023) (Settlement Helper Edition) (#76231)
## About The Pull Request
This adds a craftable laser musket to the game. It's slow and unwieldy,
but consistent! I'd be happy to tweak the numbers if it's too good/bad.

This PR also adds an independent militia ERT, who travels the spinward
sector to help defend stations!

TO DO LIST:

- [x] Finish worn sprites
- [x] Add a crafting recipe on par with the pipegun
- [x] Add bayonets
- [x] Separate charging into two stages and REDO THE AUDIO AAAA
- [x] Clean up code (Needs review, totally)

Scrapped:

- Possibly add overcharge mechanic (This is just beyond my skill level
for now)
- Find a unique sound for the weapon firing (We have a unique
projectile, and I can't a sound that fits more than the laser gun one)


![image](https://github.com/tgstation/tgstation/assets/73589390/40ee8f1d-5c1f-4638-af70-ff1215b85c9e)

![1211
(1)](https://github.com/tgstation/tgstation/assets/73589390/1a4b9856-a878-4500-96ce-4fd83587fa81)

![musket (2) (2)
(2)](https://github.com/tgstation/tgstation/assets/73589390/2ebdc2ed-6f78-4761-9deb-a1b2d337a02d)

![aaaa1
(1)](https://github.com/tgstation/tgstation/assets/73589390/6076edd3-97c9-41ec-a67a-90717f97eab0)


![image](https://github.com/tgstation/tgstation/assets/73589390/c47e44bd-3f4b-44b3-aaa5-9b1c25a72cad)

Inhands by RedSentry27
Suit sprite by Kinnebian
Prime Laser Musket sprites by RedSentry27

Balance Considerations (ew):
25 damage (30 on prime)
Normal wound
40 Stamina damage (45 on prime)
Weak to armour (prime not weak to armor)
2 second charge time, needs to be charged twice
No overcharge
Requires two hands to hold (like a chainsaw)

Crafting Recipe:
One rifle stock
Fifteen Cable Coils
Four Iron Rods
One micro laser
One capacitor
One pair of prescription glasses
One drinking glass
Craft for 10 seconds with a wirecutter and screwdriver

Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a
space ranger")
One laser musket
Fifteen cable coils
Five silver
One water recycler
Fifteen units of nuka cola
Craft for 30 seconds with a screwdriver while wearing cowboy boots and a
cowboy hat
## Why It's Good For The Game
The idea of assistants and revs forming firing lines in the halls to
shoot eachother sounds hilarious. Besides, we need a parallel to the
pipegun, and this is the funniest way to do so.
## Changelog
🆑 Cheshify, Kinnebian, and RedSentry27
add: Maintenance engineers have sent out blueprints across the sector
for a new laser musket.
admin: A new energy-gun toting ERT is available to send to the crew.

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-06-30 19:54:33 +00:00