Commit Graph

771 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
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
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](0293fdc2bd)

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](7d698f02d9)

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
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
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
Andrew
626e5c9dea Eating from floor may cause disease (#76018)
![image](https://github.com/tgstation/tgstation/assets/3625094/a60ac166-5772-4ee1-aa08-4f82828033e7)

## About The Pull Request

There is a 10% chance of getting one of 3 new diseases when you eat
dirty things.

Things become dirty when left on the floor for [more than 5
seconds](https://en.wikipedia.org/wiki/Five-second_rule).

But you can wash (with any method you know from spraying water to
cleaning with soap) or cook them later to avoid this.


![image](https://github.com/tgstation/tgstation/assets/3625094/0f78ef11-1737-4c9c-aecd-072dd95ef013)

Packaged, bowled, canned food (any food that spawns package as trash
afterwards) is protected from this effect.

Makes crafted food spawn on nearby tables when the hands are full.
Except the one behind you.


![8wSPp0hsx1](https://github.com/tgstation/tgstation/assets/3625094/6a51ebce-5626-4aac-9e59-cc4eab46a95a)

#### New diseases:

40% chance:

![image](https://github.com/tgstation/tgstation/assets/3625094/a0b72459-cc10-47e1-99db-b11013eaa61b)

40% chance (Vomiting is of special type that does not stun):

![image](https://github.com/tgstation/tgstation/assets/3625094/ce8e254c-7a65-49ed-bfb2-68652a624aed)

20% chance:

![image](https://github.com/tgstation/tgstation/assets/3625094/b792ae5e-8a99-4271-93d1-bcc172292049)

## Why It's Good For The Game

Things that are left on the floor for too long intentionally are trash
that should be disposed by janitor. If you make a meal or prepare a
medication, it makes sense that you should keep your product sanitized.

Things that are dropped unintentionally are supposed to be picked up
quickly. "Oops I dropped this pie, need to pick it up quickly before the
germs spread". 5 seconds are enough for this. If you didn't manage you
will be like "Oh dammit, now I need to wash this pie in a sink".

Now players will consider to not just throw items meant for eating onto
the floor neglecting the fact that it looks odd. If they still ignore
it, people who consume the items will receive a harmless but annoying
disease.

In general this PR aims to force some IC gameplay onto Medics, Chefs and
Botanists so that they care a bit more about things they make for other
players.

The items have a warning message saying that they are dirty and
dangerous, so the consumers have a way to detect dirty items and an
option to wash them with soap/rag/sink/shower/fire extinguisher to
remove the harmful part from the edible item.

So to avoid this, players just need to examine an item before eating it.

Botanists can spray a pile of fruits from a hose for the same effect,
and washed items that stay on floor dont regain germs until moved to
another tile.

Food that converts into another item during cooking (like meat slab
turning into steak) or crafting, will not retain the infection. This
kinda simulates the sanitizing during cooking.

Medics can use elevated structures (e.g. conveyor belt) to avoid getting
their pills dirty during creation in plumbing. Or they can wash the
pills they want to distribute in the shower before packaging them into
pill bottles or a bag.

## Changelog

🆑
add: Food and pills have a 10% chance to infect with one of three new
diseases on consumption when left for more than 5 seconds on the floor.
You can wash it to avoid disease. ChemMaster and Pill Press are added to
the list of elevated structures (Considered as tables for pills). Made
harvest spawn on top of hydrotrays to stay protected from germs.
add: Added three new advanced diseases: Gastritium, Carpellosis, Nebula
Nausea with static cures obtained by digesting dirty food.
fix: Food no longer decomposes on Hydrotrays, Grilles, Bonfires and all
dense kitchen machinery
code: Decomposition now uses `germ_sensitive` component and follows 5
second rule too.
qol: Crafted food items spawns on nearby tables (except the one behind
you) instead of dropping on floor when hands are full.
/🆑
2023-06-30 01:28:12 -07:00
Charlotte
9eddec4bd1 HMS, once again. (#75654)
## About The Pull Request

Bug reports seem to come in after the last fix gets merged. It makes me
sad.

## Why It's Good For The Game

The EHMS injector no longer continues to inject no matter what.

Fixes #75776

## Changelog
🆑 Chadley
fix: fixes the EHMS injector's do_after()
code: Improves the code for the disease scan proc (thank you fikou)
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-06-30 00:06:33 +00:00
ChungusGamer666
614fab11b2 SPECIES NUKING 2023: Head flags 2: Electric Boogaloo (#76298)
## About The Pull Request

Continues the work I started on
https://github.com/tgstation/tgstation/pull/76074
Fixes https://github.com/tgstation/tgstation/issues/73782

Implements a bunch of wrapper procs for hair style, facial hair style,
etc etc the whole nine yards.
Fixes many issues, especially with gradients because I did sloppy tired
code that didn't work there.
Makes head/get_limb_icon() not a disgusting mess (well, at least makes
it less of a disgusting mess).

## Why It's Good For The Game

Actually makes hair and lips depend entirely on the bodypart.

## Changelog

🆑
refactor: Head rendering code has been updated significantly... Again.
Please report any issues with hair, facial hair, lipstick and such.
/🆑
2023-06-29 13:53:31 +00:00
ChungusGamer666
316767fc07 SPECIES NUKING 2023: Nukes species_traits, good night sweet prince (#76297)
## About The Pull Request

IT'S OVER.

## Why It's Good For The Game

Species traits are a relic of a time before the trait system was added
to generalize this kind of behavior.
They are clunky and overall less useful than inherent_traits -
Converting these makes it easier to make these behaviors modular and
usable not only by species.

## Changelog

🆑
refactor: A significant species refactor happened, report any issues on
the github.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2023-06-29 08:28:17 +02:00
FunnyToilet
51fd57da19 Plasmamen can now get HMS (#76352)
As plasmaman it is not currently possible to get HMS, despite being able
to pick it as a trait roundstart and being able to get infected by
traitors with the objective, this will fix two issues in one, removing
yet another free points, this time 12, AND making them suffer the
consequences of the syndicate.
2023-06-28 05:41:23 +00:00
MrMelbert
6b3e8f4564 Buffs Wizarditis (#76156)
## About The Pull Request

Basically, reworks Wizarditis so you randomly cast real (weakened)
spells instead of just saying random invocations + doing a hardcoded
version of teleport.

Spells include Teleport, Disable Tech (small radius), Mutate, Knock,
Forcewall, Blink, Smoke, Spacetime Distortion (much smaller radius),
Timestop (radius of 1 (haha)), Repulse (small radius), Blind, Lightning
Bolt (weaker bolt), and Swap

Makes anti-magic counter wizarditis, but not cure it. 

Adds some more minor tells that one may be infected. Removes some old
messages in favor of newer ones.

## Why It's Good For The Game

Wizarditis is very lackluster for how difficult it is to obtain. 

Initially this started as de-hardcoding / optimizing the in built
teleport function to use the actual scyar nila, but I realized how easy
it would be to expand this, so I did it.

Because it's funny. 

## Changelog

🆑 Melbert
add: Wizarditis Improved. Those infected will now randomly cast one of
the following (weakened) spells at max stage: Teleport, Disable Tech,
Mutate, Knock, Forcewall, Blink, Smoke, Spacetime Distortion, Timestop,
Repulse, Blind, Lightning Bolt, or Swap
add: A source of antimagic will prevent Wizarditis's ill effects, but
won't cure you.
/🆑
2023-06-24 21:03:53 +02:00
MrMelbert
bc38acb206 Adds some parenthesis to some bitwise operations (#76002)
## About The Pull Request

A set of parenthesis a day keeps weird order of operations away

## Why It's Good For The Game

Might be causing bugs?

## Changelog

🆑 Melbert
fix: Maybe fixes minor bugs in disease cure, revolution, hooded suit
code
/🆑
2023-06-14 00:09:32 -06:00
MrMelbert
e0f73d13cd Adds a log death to HMS (#75644)
## About The Pull Request

Adds a dead log message to HMS final tier

## Why It's Good For The Game

Keep us in the know, yaknow

## Changelog

🆑 Melbert
admin: Getting dusted by HMS gives a death log
/🆑
2023-05-26 09:45:39 -07:00
Charlotte
d0216eacce [NO GBP] Fixes HMS in so many ways. (#75615)
## About The Pull Request

Changes the number of objectives for the HMS autoinjector, from 8 times
in 30 minutes to 1 time in 30 minutes alongside fixing some errors from
the original PR. (GOD IS DEAD)




![image](https://github.com/tgstation/tgstation/assets/98856144/8f758ebd-d848-4184-8fdf-6893bc29924a)

## Why It's Good For The Game

Prevents from infecting the entire station with an incurable illness.
(OH GOD THE HUMANITY!!)

## Changelog
🆑 Chadley
fix: fixes the HMS objective.
/🆑
2023-05-24 21:55:33 +12:00
Charlotte
97665d4e54 Adds Hereditary Manifold Sickness, a Chronic Illness Quirk (#75035)
## About The Pull Request

Adds a new quirk called Chronic Illness. It provides a -12 score as it's
a pretty life-altering quirk, but could give way to interesting RP.

- Hereditary Manifold Sickness (HMS) can not be cured, it can only be
delayed and treated using a new unmakable vaccine called
"Sansufentanyl". You spawn with 6 pills and are able to order crates
containing 12 more from cargo as it's proprietary to Interdyne.

- HMS has 5 stages total.
Stage 1 does nothing
Stage 2 gives minor effects 
Stage 3 becomes debilitating
Stage 4 is a danger zone.

Upon reaching Stage 5, there are 4 possibilities, 1 is a recovery back
to stage 1, and the other 3 are deaths which I won't explain here to
avoid ruining it. (read the code I guess.)

This also adds a new traitor objective to infect someone with HMS.

- [x] Correcting the chronic aspect.

- [x] Add traitor objective.

- [x] Tweaking for fairness.

## Why It's Good For The Game

HMS is a new quirk that gives a much more hardcore junky or tumor
playstyle. Neglecting HMS can mean the end of your shift. it's not
something you want to mess with.

It puts a reliance on cargo rather than medical for a quirk and gives a
use case for money. (price may be tweaked still). I think it'd be
interesting to see if people will start mugging or robbing the vault
more to get their life-saving medication.

## Changelog
🆑
add: Interdyne has released a new medication to treat those who are in
the wrong timeline!
add: Interdyne has also realized this is VERY profitable! They've begun
arming their operatives with an autoinjector.
/🆑

---------

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-05-24 09:03:15 +12:00
Tom
e5ce1c09a7 Converts butterflies to basic mobs and adds them to cytology (#75582)
## About The Pull Request

Converts butterflies into basic mobs.
Also a little list organisation.

<details>
<summary>Yep, those are some butterflies alright</summary>


![image](https://github.com/Skyrat-SS13/Skyrat-tg/assets/8881105/d9e3a14e-e0a5-4275-b440-af0a56e7b8fe)

</details>

## Changelog
🆑
refactor: Converted butterflies to the basic mob system
add: Butterflies can now be grown in cytology
/🆑
2023-05-22 10:30:48 -06:00
MrMelbert
835952ccf4 Drunk slurring scales based on how drunk you are (#75459)
## About The Pull Request

The strength of the slurring effect drunkness applies on you now scales
based on how drunk you are.

Being "a little" drunk still changes your saymod, and makes you
occasionally slur your words...


![image](https://github.com/tgstation/tgstation/assets/51863163/1b21b359-a1f9-428a-8e10-d2028ac59728)

But being "a lot" drunk kicks it up to 11


![image](https://github.com/tgstation/tgstation/assets/51863163/9d593c80-75ff-4d02-8e7c-e48c738154bb)

Additionally, drunk slurring was separated into "generic slurring" and
"drunk slurring", the former which does not scale but less closely
resembles drunkness. Generic slurring is used in places such as
concussions, so this is an added bonus.

As a result of the split, I had to update mind restoration. Now it heals
all types of slurring, which does include cult slurs.

## Why It's Good For The Game

I, and many other people, always found it very annoying when you became
completely illegible from taking one sip of a drink. This seeks to amend
that by making low levels of drunkness still for the most part be
legible and sane. Average drunkness is roughly the same / equal to the
old slurring effect, while "very drunk" is even more illegible and silly
(which I find funny).

This has the added bonus of separating out "drunk slurring" and "generic
slurring", allowing effects to slur your words without going full ham on
drunkness (burping and "huhh"s).

## Changelog

🆑 Melbert
add: When you are drunk, the strength of your slurring now varies based
on how drunk you are. Being "a little drunk" only rarely slurs your
words, being average drunk is the same as the old effect, while being
very drunk now slurs your words even more.
add: Some non-alcohol sources of slurring, such as concussions, now give
"generic slurring" rather than "drunk slurring", which less resemble
being drunk (ie, no burping).
add: Mind restoration now heals ALL slurring, rather than only drunk
slurring (which includes cult / heretic slurring).
/🆑
2023-05-16 19:02:10 -04:00
Wallem
9c0900bc9f Adds the Death Sandwich to the game (#75013)
## About The Pull Request
Adds the Death Sandwich to the game, the ultimate form of
bread-conveyed-meat-based consumables.

![deathsandwich](https://user-images.githubusercontent.com/66052067/235041733-287be1fd-1eed-4d6d-840b-96f95494f093.png)


And remember;
Eat it right, or you die!
## Why It's Good For The Game
I'm genuinely surprised we don't already have a meatball sub in the game
also I love humor food, and I doubt my edition of the Eggcellent
Challenge would ever be merged if I tried to do so, so this is the next
best thing.
## Changelog
🆑 Wallem
add: The ancient recipe for the Death Sandwich has been rediscovered
buried in the deepest depths of an erupting volcano.
/🆑
2023-05-03 01:49:35 +00:00
MrMelbert
6185b9c121 Fixes runtime with Spontaneous Combustion feedback text (#74848)
## About The Pull Request


![image](https://user-images.githubusercontent.com/51863163/233008669-f7d206d8-50a3-4987-b4b0-c632747a6f3a.png)

Our string macros do string concatenation, which can cause issues if
you're trying to be fancy

`"A" + 1 ? "B" : C" + "D"` Does not give you `"ABD"` (`("A") + (1 ? "B"
: "C") + ("D")`),
but rather it will try to do `(("A" + 1) ? "B" : "C") + "D"`

Use macros carefully


![image](https://user-images.githubusercontent.com/51863163/233006373-cfbf1940-699b-4fec-9850-63f715e58421.png)

## Why It's Good For The Game

Runtime

## Changelog

🆑 Melbert
fix: Fixes a runtime with Spontaneous Combustion 
/🆑

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-04-20 17:19:46 -06:00
ChungusGamer666
8d82924187 Implanted foreign bodyparts will resist being removed on species change (#74701)
## About The Pull Request

Title.
Also, to make bodypart code slightly nicer, I retooled some variables to
be part of a new bitfield called bodypart_flags.

## Why It's Good For The Game

We've been trying to move away from the species datum for limb stuff
precisely because of funny shenanigans like this, no?

## Changelog

🆑
refactor: Implanted foreign limbs will no longer be wiped by species
change.
/🆑
2023-04-14 20:50:22 +02:00
oranges
4c48966ff8 Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects

regexes used

git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
2023-04-11 21:31:07 -07:00
John Willard
e73fc769dd Removes & Adds some chemicals from the disease cure list (#74343)
## About The Pull Request

Removes Anacea from the list of potential disease cures because it's a
chemical purger, making them nearly impossible to cure from Sentient
Disease.
Removes Spaceacillin because it's easily achievable from the Chem
vendors and is the way to prevent infections, so it's unfair to also
make it a cure.

Moves Haloperidol to a low-level chem, so it won't roll with Sentient
Disease.

I didn't remove Multiver because it's at a low level, so Sentient
Diseases can't roll it.

In exchange, I added some other reagents to replace them:
- Acetone - Low level chem on the same level as Bromine/Lithium
- Miners Salve - Prevents people from telling their own health
- Acetaldehyde - Requires Formal, therefore Silver, making a cure
reliant on Paramedics/Miners
- Pentaerythritol - Same as above, but requires more of it and Lye, this
is ranked higher
- Tirimol - This replaces Anacea because it can put you to sleep,
delaying the person from making Vaccines
- Chloral Hydrate - This replaces the spot Haloperidol was in (as it was
moved to a low-level chem). This is pretty much Tirimol but much easier
to make and being more obvious/counter-able.

I also moved Haloperidol one level lower so I can put diphenhydramine in
level 10 instead, and moved Oil down because it's incredibly easy and
the drawbacks are "a little bit of toxin damage".

## Why It's Good For The Game

There is a massive difference between chemicals having side effects so
risking yourself or other people to make a cure, and one cure literally
purging the other.

This closes https://github.com/tgstation/tgstation/issues/74220 - I took
this approach to it so it's not a complete nerf to Sentient Diseases.
Cures relying on things not in the chem dispenser, or putting you to
sleep, is much more interesting and reliant on player
ability/cooperation, than just a disease that can't be cured because of
pure RNG luck.

## Changelog

🆑
balance: Sentient Diseases (and diseases in general) can no longer roll
Anacea, Haloperidol & Spaceacillin as their cure, however they've been
replaced with chemicals that are either harder to make, or have larger
drawbacks (such as putting you to sleep).
/🆑
2023-03-31 19:54:03 -06:00
tattle
eff745bf08 Minor typo fixes (#74317)
## About The Why It's Good For The Game Pull Request
Immersion

## Changelog

🆑 Tattle
spellcheck: fixed a few typos, mostly around breathing
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2023-03-28 23:25:04 -06:00
Zephyr
ecbcef778d Refactors Regenerate Organs, and a few organ helpers (#74219)
## About The Pull Request

Refactors regenerate organs to be slightly more intelligent in handling
organ changes and replacements.
Noteably:
- We don't remove organs that were modified by the owner; such as
changing out your heart for a cybernetic
- We early break out of the for loop if they aren't supposed to have an
organ there and remove it
- We check for the organ already being correct, and just healing it and
continuing if it is

Also changes the names of some of the organ helpers into snake_case
### Mapping March
Ckey to receive rewards: N/A

## Why It's Good For The Game
## Changelog

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-26 17:54:36 +01:00
ATH1909
af53a24b54 viruses with the inorganic biology symptom can now infect androids (#73917)
## About The Pull Request

The inorganic biology symptom now adds both MOB_MINERAL and MOB_ROBOTIC
to a virus's list of infectable biotypes instead of only MOB_MINERAL.
Currently, androids are the only species this change affects.

## Why It's Good For The Game

Robots are inorganic too!

EDIT: To be clear: No, inorganic biology viruses won't be able to infect
borgs or AI cores, that's not how this works.

## Changelog

🆑 ATHATH
balance: The inorganic biology symptom now adds both MOB_MINERAL and
MOB_ROBOTIC to a virus's list of infectable biotypes instead of only
MOB_MINERAL. Currently, androids are the only species this change
affects.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-17 10:51:25 +00:00
Time-Green
9843c23657 Replaces internal_organs with organs (#73918)
Internal_organs now also contains external organs, so the naming was
incorrect

Requested by @tralezab in #72734

Also removed some now incorrect 'as anythings' that assumed everything
in the internal_organs list was an internal_organ (which is a lie since
I put extorgans in there which means runtimes and unintentionakl
behaviour

🆑
fix: fixes deadly harvesting just taking harmless extorgans
code: renames internal_organs to organs now that it can also contain
external_organs
/🆑
2023-03-14 18:33:35 -06:00
lessthanthree
fae195361b Disease Outbreak retries on event setup failure [NO GBP] (#73599)
## About The Pull Request
- When Disease Outbreak starts, instead of failing on the first attempt
picks a new target if the chosen target is no longer valid for
infection.
- Corrects transmission of disease, assigning a stat. Positive viruses
with a resistance higher than transmissibility provide immunity from the
disease outbreak.
- Improved logging and admin information

## Why It's Good For The Game
- Along with https://github.com/tgstation/tgstation/pull/73596 this
makes the event reliably fire instead of giving up if the first
selection has changed during setup. (Death, new immunity, infected with
different virus, whatever.)
- Disease transmits as expected to unprotected. Positive viruses provide
immunity from infection based on their resistance stat.

## Changelog

🆑 LT3
fix: Disease Outbreak doesn't give up so easily when trying to start the
event
balance: Disease Outbreak will not spawn on positive virus mobs, but can
be transmitted if resistance is low
fix: Disease Outbreak creates an entry in the virus log like it should
admin: Admins can see Disease Outbreak virus stats when the event starts
/🆑
2023-02-26 14:00:18 -07:00
ATH1909
7e3354dbad [NO GBP] Corrects the description of the transmission 4 threshold effect of the Narcolepsy symptom (#73638)
## About The Pull Request

The current description implies that it spreads the virus in a cone like
a sneeze, when it in fact spreads the virus in a radius like a cough.
This PR corrects that.

## Why It's Good For The Game

whoopsie doodle

## Changelog

🆑 ATHATH
spellcheck: Corrects the description of the transmission 4 threshold
effect of the Narcolepsy symptom to more accurately reflect what the
effect does.
/🆑
2023-02-25 23:34:08 -07:00
lessthanthree
a1323842b7 Fixes Disease Outbreak: Advanced [NO GBP] (#73358)
## About The Pull Request
- Corrects severity thresholds for med/harmful/dangerous
- Removes tier 1 cures from cure pool
- Dangerous/Biohazard disease correctly show up on HUD at spawn
- RNG actually listens to what severity the symptoms are supposed to be
- Fixes various symptoms that were in the wrong severity list
- Disease is now assigned illness name based on its highest severity
component
- Converts old code to snake_case
## Why It's Good For The Game
Disease Outbreak works as expected, both on random spawn or admin custom
disease creation. Ensures that diseases that are harmful or potential
for quick spread are visible to scanners and HUDs.
## Changelog
🆑 LT3
code: Disease Outbreak: Disease max severity replaced with requested
severity
code: Disease Outbreak: Generated disease now includes symptom based
name
code: Disease Outbreak: Disease name is now included in the station
announcement
code: Disease Outbreak: Now in snake case
balance: Disease Outbreak: Tier 1 cures removed from pool
fix: Disease Outbreak: Dangerous/Biohazard diseases are now visible
fix: Disease Outbreak: Event setup generates the correct severity
fix: Disease Outbreak: Various potential symptoms were in the wrong
symptom pool
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-16 00:46:37 +00:00
necromanceranne
bad27f7566 Adds a probability to various symptoms emoting to prevent them from spamming chat too much (#73056)
## About The Pull Request

What is says in the title. Adds a probability to emote to ensure that
chat spam is kept to a minimum

## Why It's Good For The Game

If somehow you get a really emote heavy virus spread amongst enough
people, the thing that will threaten you more than the virus is the
massive latency this chat spam produces. Hopefully this keeps that spam
to a minimum without affecting the mechanics of the virus.

## Changelog
🆑
qol: Limits the amount of emotes being passed to chat by viruses.
/🆑

---------

Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
2023-02-13 04:14:42 +00:00
Sol N
fedf2f3a26 more span macro changes in brain traumas and disease files (#73273)
## About The Pull Request

i was fucking around with brain traumas on a downstream and noticed they
had similar issues to quirks so i decided to continue work from #73116


![Code_Klx14O288V](https://user-images.githubusercontent.com/116288367/217046732-765ffe27-73c9-416a-833e-e0d9e2aa7a86.png)
(search in VSC for span class = 'notice')
its going to be a bit of a thing to get all of these but this is a
decent chunk i think

there was only one annoying/tough file.
imaginary_friend.dm had class = 'game say' and class = 'emote' both of
which after some testing did not seem like they did anything. ill try to
keep that in mind in other files if i continue to do this but i either
omitted them because they didnt have any formatting or, in the case of
emote, turned it into name, which i think is what you'd want those
messages to look like.

there were also a few small spelling errors that i fixed

## Why It's Good For The Game

more consistent and stops people from copying brain trauma formatting
wrong

## Changelog

they should all work the same

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-07 23:37:18 +00:00
ShizCalev
6078ea35cd Fixes some redundant / incorrect messages w/ spontaneous combustion symptom (#73227)
🆑 ShizCalev
fix: Fixed some duplicated and incorrect messages being presented when
infected with a virus that has the spontaneous combustion symptom.
/🆑
2023-02-05 12:58:18 -07:00
lessthanthree
d28e26ddcd Disease Outbreak: Advanced v3 (#73092)
## About The Pull Request
PR to replace https://github.com/tgstation/tgstation/pull/73001

Revamps the Disease Outbreak: Advanced random event to be more
consistent in actually generating random diseases.

This generates random viruses based on rolling severity, symptoms, and
transmissibility separately and ensures the virus created through RNG is
valid and transmissible.

Revamps menu for admin spawned DO:A events. Custom outbreak with manual
symptom selection is available in the Secrets panel.

Parameters for generating the viruses can be tweaked using the defines
in the event file.
## Why It's Good For The Game
Current DO:A code has a tendency to generate viruses that aren't
actually transmissible, be it through choosing too many symptoms or
having a transmissibility that's too low to allow spread.
## Changelog
🆑 LT3
refactor: Rewrite of random event Disease Outbreak: Advanced. Listen to
those level 7 biohazard warnings!
admin: Fully customizable build-your-own virus is available in the admin
Secrets panel, for those people you really hate
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-04 23:27:44 -07:00
Bloop
95ee268dd6 Fixes plasmamen dying from liver damage when consuming plasma & other organic toxins, fixes plasma fixation for plasmamen and other species (#72644)
## About The Pull Request

(edited for brevity---AS BEST I COULD, this turned into a lot more fixes
than I set out to do)

Instead of actually removing and metabolizing plasma in the liver,
plasmamen were having plasma removed in a special handle_chemicals proc.

The issue with this is that the liver's on_life proc would still fire
off alongside it, detecting reagents in the mob (because
handle_chemicals removes them little by little, at the same rate as the
liver does). And because the liver code sees it as a toxin, it takes
damage until it fails, leading to death as described in #72229.

Not actually metabolizing plasma also led to another issue, as mentioned
in #61424.

The solution after much faffing around ended up being to move the actual
reagent removal from handle_chemicals to the liver code, and to compare
a toxin's affected_organtype to the liver's 'status' var to check if the
toxin can damage the liver. There was currently only an ORGAN_ORGANIC
and ORGAN_ROBOTIC defined for this, so I added ORGAN_MINERAL for plasma
livers.

It still works as before, but now the reagent will actually get all the
metabolism procs called on it and be removed by the liver. And mobs with
mineral livers (currently only plasmamen) do not suffer organ failure
from processing organic toxins.

Plasma fixation itself also needed some TLC, as it was likely written
before liver damage was a thing. A lot of this comes down to rogue
livers operating independently of their species now that I think about
it...

Fixed it so you no longer take liver damage from injected/consumed
plasma when under the effects of the stage 4+ virus by making use of the
new PLASMA_LOVER_METABOLISM liver trait.

---

On top of that made it so that breathing in plasma through internals
also contributes to plasma fixation healing. This is a slight buff to
virology (especially for plasmamen) but it didn't seem busted or
anything from my testing. Can lead to some interesting subtle approaches
to healing for virologists as they can use internals rather than just
flooding rooms with plasma...

Some notes: 

- due to the way lungs are coded, non-plasma breathing species take a
significant amount of tox damage from breathing plasma through internals
in most cases and still need the right gas to be present so as to not
asphyxiate.
- During my testing this damage did not get healed fast enough to make
it viable for humans to wear plasma internals as found in spawned tanks
and such.
- I did not play around with creating custom internals mixes of O2 and
plasma but in theory that could possibly allow humans to heal faster
than the tox damage is applied. I think the tox damage on breath is
based on the amount of mols in the tank so perhaps a small amount of
plasma in the mix could work.
- As it stands the heal is very slight at 4kpa which is the typical tank
pressure for plasma internals. Going up to 15kpa can result in a
stronger heal (on par with injecting plasma) but going further offers no
additional benefit, and internals will be consumed much more quickly.
- This heal bonus is multiplicative with the rest, but from my testing
it still stays within reasonable numbers even with all 3 sources going
at once so as to not feel broken.
- Plasma fixation does not heal organ damage, but if I could add that in
easily enough should it be wanted.

The numbers themselves can be easily tweaked if desired, should people
find it too strong or what have you!

## Why It's Good For The Game

Fixes #72229
Fixes #61424
Fixes #70460 --not sure if this PR fixed it but I was able to infect
monkeys and plasmamen with a virus containing Inorganic Biology in my
testing, so this may be closed

Plasmamen dying from plasma is a travesty and reparations must be made.


## Changelog

🆑
fix: plasmamen no longer can suffer liver failure from injecting
themselves with plasma (unless they have a human liver for some reason).
fix: a person who is infected with a plasma fixation disease can no
longer can suffer liver failure from injecting themselves with plasma.
fix: plasmamen no longer can suffer liver failure from consuming other
organic toxins, which they are not supposed to be affected by.
fix: plasma fixation heal-through-inject-or-consumption now works for
plasmamen by letting the metabolism procs take care of removing it from
their systems.
fix: hot ice now has the same wound-healing and nontoxic properties as
plasma to plasmamen, since it is described as "frozen plasma". It is
also nontoxic to plasma fixation virus sufferers.
fix: plasma breathed through internals now contributes to the healing
amount from plasma fixation.
/🆑
2023-01-31 10:32:21 +01:00
Rhials
e6523036cd Magnitis is more aggressive, uses throw_at instead of Move at higher stages (#72739)
I got this disease yesterday and was super disappointed by the actual
effects. Rather than suffer an unending waves of metal objects being
thrown at my head, I noticed that stuff on the bridge kept getting
disorganized, shrugged, and moved on.

Now, stages 3/4 of Magnitis will use throw_at instead of just moving
objects to the infectee. This can hurt or even kill the victim in
extreme cases. Remember to duck!

The messages about electrical shocks will now appear when a magnetic
pulse occurs. Some of the disease messages have been slightly altered to
fit this.
2023-01-22 21:30:18 +00:00
Jeremiah
872e64fb05 Adds spaces around logical operators (#72603)
## About The Pull Request
Part of a prior PR that was closed (#72562). This version does not add
the check in CI.
## Why It's Good For The Game
The work is already done, so I figured why not.
## Changelog
N/A Nothing player facing

Co-authored-by: Jeremiah Snow <jlsnow301@pm.me>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-16 16:56:35 -08:00
MrMelbert
c3a1f21c1a Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind (#72267)
## About The Pull Request

- Nearsighted is now a grouped status effect.
- Blindness is now a grouped status effect.
   - Eye handling of blindness has improved. 
- When eyes are removed, they now cause you to become blind, rather than
handling it in `update_tint`.
- Being ahealed no longer blinds you for one tick, meaning that black
overlay on aheal is gone.
- Temporary Blindness is now a status effect.
- Both Nearsightedness and Blindness have been exorcised from mob vars
and life chains. This means that we've finally cut 2 procs from life,
`handle_status_effect` and `handle_traits`, and moved both to event
based processing. Wooo optimizations.
- Swapped pacifism status effect to use apply and set helpers. 
- Removed an unused admin toggle that disabled welding helmet tint but
also tint from every clothing item and also blindness from losing your
eyes.
- Clothes now generally all blind their mob more consistently.
- Oculine, eye surgery, and sensory restoration are now no longer the
only way to fix blindness from eye damage. If your eyes are healed
through any other means, it will also heal your blindness.
- Some things that made you blind, such as ling blind sting, no longer
just flat made you blind from eye damage forever. They now cause eye
damage directly, which in turn makes you blind from eye damage, as
expected.
- Pacifists can't eyestab anymore. Eyestabs now have a limit on the
amount of blur applied.
- Refactored some `is_x_covered` procs to accept flags rather than have
a lot of arguments for some silly reason.
- Unit tests for blindness. 

## Why It's Good For The Game

Blindness was exceptionally poorly handled prior, primarily due to the
fact that it was tied to the mob instead of separated out

On top of that the system put a LOT of faith in proper handling of
blindness on the coder's end which was misplaced evidently. Many places
didn't update or handle blindness correctly, or just let people
perma-blind.

Deferring it to a status effect improves this a lot

## Changelog

🆑 Melbert
refactor: Refactored blindness and nearsightedness. Important to note is
that all mobs are naturally blind until their eyes are actually created.
refactor: Refactored "is covered" procs
fix: Less sources of blindness now cause permanent blindness. Includes
the "Blind" Spell and "Blind Sting" from changelings.
admin: Ahealing someone no longer flashes the blind overlay for 1 tick.
admin: I removed an unused (sort of) inaccessible admin verb that
allowed you to toggle the tint from all welding helmets (and clothing)
(and lack of eyes) in existence, let me know if you want similar back
balance: Changeling "Blind Sting" now causes eye damage (enough to
blind) rather than arbitrarily forcing blindness.
balance: Visionloss virus symptom now causes eye damage (enough to
blind) rather than arbitrarily forcing blindness.
balance: Oculine has been reworked slightly. Prior, Oculine arbitrarily
healed blindness and nearsightedness from eye damage reagrdless of how
damaged the eyes were, and applied blur on success. Now, Oculine just
heals eye damage, and blindness / nearsightedness is restored in the
process. There is now a probability every tick that eye blur is applied
based on how pure the oculine is while healing very damaged eyes.
balance: Pacifists can no longer eyestab.
balance: Any clothing item that covers your eyes contributes to getting
the bonus while sleeping, and to removing temporary blindness faster
/🆑
2023-01-15 23:01:40 -08:00
MrMelbert
0d4b56435b Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars (#71950)
## About The Pull Request

You know the deal by now.

- Drowsiness is now tracked via status effect.
- Eye blue is now tracked via status effect.

In converting these over, cleaned up a bit of code relating to some
other effects. Attempts to unify behavior between some of them, namely
certain biotypes or mob types shouldn't be experiencing certain effects.

## Why It's Good For The Game

More stuff moved to status effects, slightly more cleaner and better to
work with code. Allows for all mobs that can sleep to be able to get
drowsy, too.

## Changelog

🆑 Melbert
refactor: Drowsiness and Blurred Eyes are now tracked via status effect.
/🆑
2022-12-26 19:58:21 +01:00
Zephyr
72add64520 Refactors armor into dedicated subtypes (#71986)
## About The Pull Request

See title.
## Why It's Good For The Game

Code is cleaner, and more readable/intuitive
Technically closes
https://github.com/tgstation/dev-cycles-initiative/issues/8
## Changelog
🆑
refactor: armor, from the ground up basically
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-12-23 16:21:22 -08:00
Dani Glore
a847f0970c Fix: Robotic Damage / Reagents Refactor (#71937)
## About The Pull Request
This PR is a continuing refactor of and fixes bugs introduced by my
prior PR #71864


![when-you-finish-fixing-something-and-it-no-longer-works](https://cdn.discordapp.com/attachments/752427120365404172/1052037482771906640/Attachment.jpg)

Due to many functions in reagents having been implemented on top of
prior buggy code, their new behaviors are not as expected in-game, and
as a result reagents damage/heal robotic/cybernetic bodyparts/organs
when not appropriate; bugs like healing robotic arms with Libital is
currently possible.

To fix the errant behaviors in the newly debugged code, I have added
three variables to `datum/reagent` which are used throughout reagent
code, mainly inside of `on_mob_life` etc:

- `affected_bodytype = BODYTYPE_ORGANIC` - Used if the reagent
damages/heals bodyparts (Brute/Fire) of an affected mob.
- `affected_biotype = MOB_ORGANIC` - Used if the reagent damages/heals
generic damage (Toxin/Oxygen) of an affected mob.
- `affected_organtype = ORGAN_ORGANIC` - Used if the reagent
damages/heals organ damage of an affected mob.

The diff is large, and I have refactored the readability/maintainability
around the sections of code I was modifying. At one point I chose to
perform a quality pass on reagents because I found it quite hard to
maintain reagents code in its current state. This PR also replaces many
single-letter variables with more descriptive and readable variable
names. I also found and fixed a stray tab which was located in the
flavortext of `proc/item_heal_robotic`

## Why It's Good For The Game

Due to an old bug being fixed recently by PR #71864 a lot of
healing/damaging reagents now have an effect on robotic bodyparts. This
PR corrects the issue and changes reagents to explicitly define the body
type, bio type, and organ type which they can affect with
helaing/damage. This PR replaces a lot of single-letter variable names
with more descriptive names. I also fixed a small typo in
`item_heal_robotic` which was inserting an extra tab.

## Changelog
🆑
fix: Fixed a stray-tab typo in "item_heal_robotic"
fix: Fixed reagents and other effects which were inappropriately
affecting robotic limbs.
code: Refactored all of reagents code to be more readable and
maintainable.
/🆑

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2022-12-13 20:31:03 +00:00
itseasytosee
478a969cbb Delimbs Stamina (#71663)
## About The Pull Request
This changes stamina damage from a damage that affects limbs (like brute
and burn) to a damage that affects the body at whole (such as tox or
oxy)
Stamina being run like brute or burn is rooted all the way back to when
it was halloss, and used exclusively for holodeck items and
hallucinations.
Most coders probably didn't even know that stamina worked like this, and
most implimentatiosn of stmaina mechanics use a generic "adjust stamina"
or a "apply_damage(type = stamina zone - body_zone_chest)" to avoid the
issues that come when stamina is evenly distributed among limbs (and
some limbs only count as a fraction to stamina damage total)

The only thing that is truly lost here, is disabling limbs (arms and
legs) with stamina damage, by aiming specifically at them with disablers
(batons always apply their stamina damage to the chest, no matter where
they hit) our through smashing limbs on tables.
The idea of making an opponent drop a weapon out of pain is fun, but
stamina doesn't support it, or make sense in context.

A depth filled limb-based pain system that has interactions with
painkillers and replaces damage based move slowdown would be fun, and
maybe something that could be implemented in the future.
## Why It's Good For The Game
The biggest draw here, is that it will make stamina easier to maintain 
## Changelog
🆑 itseasytosee
code: Stamina no longer affects individual limbs. 
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-08 10:20:57 +13:00
Tastyfish
ebc0227176 Makes dog a basic mob [MDB IGNORE] (#70799)
About The Pull Request

    Made a basic version of the pet base called /mob/living/basic/pet. It's significantly more stripped down from the old simple_animal one, because its half collar stuff and...

    Made the collar slot a component that you could theoretically remove from a pet to disable the behavior, or add to any other living mob as long as you set up the icon states for the collar (or not, the visuals are optional).
        The corgi's collar strippable slot is now generally the pet collar slot, and in theory could be used for other pet stripping screens.

    I also gutted the extra access card code from /mob/living/basic/pet as it's only being used by corgis. Having a physical ID is now just inherent to corgis, as they're the only ones that could equip it anyway.

    Ported the make_babies() function from simple_animals to a new subtree and associated behavior, called /datum/ai_planning_subtree/make_babies that uses blackboards to know the animal-specific info.
        Note that it's marginally improved, as the female walks to the male first instead of bluespace reproduction.

    Tweaked and improved the dog AI to work as a basic mob, including making /datum/idle_behavior/idle_dog fully functional.

    Made a /datum/ai_planning_subtree/random_speech/dog that pulls the dynamic speech and emotes to support dog fashion.

I've tested base collars across multiple pet types.

For dogs, I've tested general behavior, fetching, reproduction, dog fashion, and deadchat_plays, covering all the oddities I'm aware of.

image
Why It's Good For The Game

Very big mob converted to a basic mob.
Changelog

cl
fix: Lisa no longer uses bluespace when interacting with Ian.
refactor: A large portion of dog code was re-written; please report any strange bugs.
/cl
2022-12-06 09:13:13 +13:00
RaveRadbury
efd551f520 Changes Obsession resilience to require a lobotomy (#71462)
## About The Pull Request

Obsessed is changed to require a lobotomy rather than brain surgery.
Also nerfs Mind Restoration so it cannot remove deep-rooted traumas.

## Why It's Good For The Game

Obsessed has been well-known for some time as being surprise ganked by
fairly low-key airborne healing viruses. Players are stripped of their
antag status with no fanfare or consequence.

With this change the cure for obsessed will require a lobotomy, which
will cause additional permanent brain traumas. This provides way more
mechanically-informed RP than losing antag due to a friendly sneeze.

## Changelog

🆑
balance: Obsessed has been bumped up to a Deep-Rooted Brain Trauma
balance: Mind Restoration can't remove deep-rooted traumas, making
Obsessed unremovable by virusses
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2022-11-26 10:41:16 +01:00
Rhials
fccca69135 Fixes absent spread_text instances (#71386)
## About The Pull Request

spread_text dictates the readout next to "type" on a health analyzer's
output. It was absent from some special diseases (and also the common
cold), leading to the field being blank on the analyzer results.
## Why It's Good For The Game

Closes #71379.
## Changelog
🆑
spellcheck: Adds spread text to some diseases that lacked it.
/🆑
2022-11-20 23:37:46 -08:00
AnturK
4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
tattle
ad5debaaa1 Add investigate_deaths (#71112)
## About The Pull Request
Adds INVESTIGATE_DEATHS, an investigate category intended to better show
causes of death.


![image](https://user-images.githubusercontent.com/66640614/200142461-c17b5e51-1116-4eef-bbfb-49bc024c0953.png)


![image](https://user-images.githubusercontent.com/66640614/200147306-09bef76e-68c6-4f0a-bdf9-0211eb274e66.png)

Also makes suicide_act take a `mob/living` as an argument instead of a
`mob`, and some minor style improvements since apparently I hate
atomicity.

## Why It's Good For The Game
Inspired by a mysterious death and dusting. More logging and leads for
admins investigating deaths.

Also fixes #59028

## Changelog
🆑 Tattle
admin: added investigate deaths to shed some more light on unusual
demises, dustings, and gibbings
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2022-11-07 16:22:37 -08:00
Tim
6d12dc69ef Refactor /mob/living/carbon/alien/humanoid to be /mob/living/carbon/alien/adult (#70481) 2022-10-20 08:48:12 -07:00
ATH1909
4aff0cddee self-respiration grants its nobreath trait at stage 4 again (#70233)
>:(
2022-10-03 23:43:09 -04:00