Commit Graph

3921 Commits

Author SHA1 Message Date
Cyprex
c1322a15d3 Merge pull request #102 from Bubberstation/revert-96-upstream_merge3
Revert "Merge upstream"
2023-03-12 09:41:05 +01:00
Cyprex
5b19f27261 Merge pull request #82 from mcmeiler/quirk_stuff
Hydrophilic quirk, Species whitelists for quirks!
2023-03-11 21:49:10 +01:00
Cyprex
e6bb4098c4 Revert "Merge upstream" 2023-03-11 18:51:44 +01:00
Meiler
62914d3d1d non-modular code comments 2023-03-06 02:49:25 +01:00
Meiler
52bd80b998 initial 2023-03-05 01:59:24 +01:00
lessthanthree
021c9d546e [MANUAL MIRROR] Buff scythes, goats, and plantbgone vs PLANT biotypes (#19215)
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)

This buffs scythes, goats, and plantbgone vs PLANT biotypes:

- Scythes now deal x1.5 damage to venus flytraps (3 hits to kill)
- Scythes now target the flower bud vines
- Goats now target flower bud vines and deal 15 damage to PLANT biotypes
- Goats have a eating sound whenever they bite PLANT biotypes
- Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per
spray)
- Plantbgone now has a 75% chance to remove weeds and deals large damage
to flower buds
- Weed control crates now come with a pair of leather gloves
- Golems are immune to thorn effects
- Any kind of thick glove material will prevent thorn effects when
attacking
- Flower buds will now take x4 damage from fire and sharp weapons
(unless they have fire trait)
- Regular scythes are now a sharp object

Also this fixes a few runtimes with spacevines and nulls. The bane
element now accepts `mob_biotypes` bitflags as an argument.

Before my changes:

- Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per
spray)
- Scythes took 5 hits to kill venus flytraps
- Goats only affected podpeople
- Flower bud vines were being ignored by weed killing code
- Plantbgone only had a 50% chance to remove weeds (and this was very
inconsistent due to RNG)
- Botanical gloves and thick gloves didn't protect from thorns
- Golems were getting pierced by thorns despite having pierce immunity
- Flower buds were not taking the x4 damage like they should have been
- Regular scythes were not a sharp object, but other scythes
(chaplain's, megafauna loot) were sharp

This makes the weed killer crate more effective since people were
complaining about it being worthless vs vines and flower buds. These
changes give people more options to respond to threats vs plants.

🆑
add: Add a pair of leather gloves to weed control crate
balance: Mobs with the PLANT biotypes (venus flytraps, pod people,
killer tomatoes) are now much weaker vs scythes, goats, and plantbgone.
balance: Plantbgone is now more effective at destroying weeds.
balance: Regular scythes are now a sharp object
fix: Fixed scythes, goats, and plantbgone not affecting flower bud
vines.
fix: Thick and botanical gloves not protecting from thorns
fix: Golems not having pierce immunity from thorns
fix: Runtime where vines tried to spread into null turf
fix: Runtime where null vines that were destroyed were trying to spread
to nearby turfs
soundadd: Add eat food sound when goats eat plants
code: Improved goat targeting code
code: The bane element now accepts `mob_biotypes` bitflags as an
argument.
/🆑

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-03 18:37:34 +00:00
SkyratBot
bd02e180c1 [MIRROR] Makes dead metabolization work properly [MDB IGNORE] (#19598)
* Makes dead metabolization work properly

* Update holder.dm

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-03-03 08:24:14 -08:00
SkyratBot
fce25b931a [MIRROR] Fixes an issue with nightmare revival, Unit tests some fully heal stuff [MDB IGNORE] (#19599)
* Fixes an issue with nightmare revival, Unit tests some fully heal stuff (#73612)

## About The Pull Request

- Same issue as Ethereals. Owner was `null`ed because the heart was
recreated. I opted for a more permanent solution, that being introducing
a new flag to avoid recreating organs.

- Adds some unit tests for fully heal stuff to make sure it works.

## Why It's Good For The Game

More cases of revival working as expected

## Changelog

🆑 Melbert
fix: Nightmare revival acts less funky - stops it from re-creating the
Light Eater.
/🆑

---------

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

* Fixes an issue with nightmare revival, Unit tests some fully heal stuff

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-01 01:15:12 -08:00
Tom
f6edbf0b86 [MANUAL MIRROR] Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344) (#19451)
* Return to Tiny: Reworks heights to use filters, allows spacemen to have varying heights (#72344)

Re-pr of #66644 with some changes to get it working

![image](https://user-images.githubusercontent.com/51863163/209893337-6a35207b-f097-4fd8-bc51-e66b3273919c.png)

- [x] ~~Huds get cut off~~ Resolved
- [x] ~~Very tall helmets get cut off~~ Resolved
- [x] Hair gets cut off
- [x] ~~Needs optimization before releasing to the world as a pref~~ jk
lol

Look at that fella so cute

🆑 Melbert, That REALLY Good Soda Flavor, FatFat, AndreyGusev
add: Spacemen can now have varying height. (Admin only for now)
add: Dwarfs are now slightly shorter, but look way better.
/🆑

Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>

* fix conflict

* clarity

* update rouny

* update screenshots

* Revert "update screenshots"

This reverts commit a5427a5238e574869fe364568b7f043bbd287c79.

* Fixes the dwarf screenshot.

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jack LeCroy <3073035+jacklecroy@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-28 16:27:27 -05:00
SkyratBot
75b68ae504 [MIRROR] Nooartrium pulls your ghost back into your body when it revives you [MDB IGNORE] (#19557)
* Nooartrium pulls your ghost back into your body when it revives you (#73641)

## About The Pull Request

This PR makes nooartrium pull your ghost back into your body when it
revives you.
## Why It's Good For The Game

Leaving the undead soulless would be rather boring, wouldn't it?
## Changelog
🆑
fix: Nooartrium now pulls your ghost back into your body when it revives
you.
/🆑

* Nooartrium pulls your ghost back into your body when it revives you

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
2023-02-26 19:03:51 -05:00
SkyratBot
bd0ed9c995 [MIRROR] Fixes non-advanced viruses from being seen in the PANDEMIC [MDB IGNORE] (#19526)
* Fixes non-advanced viruses from being seen in the PANDEMIC (#73613)

## About The Pull Request

Early continue was blocking traits being added to ui data.

Added some sanity to stop some bluescreens.

## Changelog

🆑 Melbert
fix: Premade viruses (GBS, beesease, etc) now show up in the PANDEMIC
again
fix: PANDEMICs should bluescreen less often. Maybe.
/🆑

* Fixes non-advanced viruses from being seen in the PANDEMIC

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-25 16:46:45 -08:00
SkyratBot
45439f2d93 [MIRROR] [NO GBP] Hotfixes lungless oxyloss immunity, and lungless plasmamen being able to be healed by salbutanol etc. [MDB IGNORE] (#19339)
* [NO GBP] Hotfixes lungless oxyloss immunity, and lungless plasmamen being able to be healed by salbutanol etc.

* resolve conflicts

* Update damage_procs.dm

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-21 01:15:20 -08:00
SkyratBot
ed09da54b9 [MIRROR] Fixes being able to breathe in space, fixes any lingering biotype related damage issues [MDB IGNORE] (#19206)
* Fixes being able to breathe in space, fixes any lingering biotype related damage issues

* Update damage_procs.dm

* Update damage_procs.dm

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
2023-02-21 00:42:28 -08:00
SkyratBot
a4a30122d6 [MIRROR] [NO GBP] Fixes oculater not working... woops [MDB IGNORE] (#19466)
* [NO GBP] Fixes oculater not working... woops (#73533)

## About The Pull Request

I may or may not have neglected the fact that oculater can't be very low
purity anymore due to my own revamp prior.
So uh, this makes it work like most inverse chemicals, getting better
the higher the purity is.
## Why It's Good For The Game

Bug fix good.
## Changelog
🆑
fix: Oculater works again.
/🆑

* [NO GBP] Fixes oculater not working... woops

---------

Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
2023-02-20 21:09:34 -08:00
Tom
2e2c8b7178 [MANUAL MIRROR] Fixes unreachable check and improves code (#72399) (#19454)
[No GBP] Fixes unreachable check and improves code (#72399)

Co-authored-by: Salex08 <33989683+Salex08@users.noreply.github.com>
2023-02-20 21:04:27 -08:00
SkyratBot
f51b1668b9 [MIRROR] Fixes broken holy water flask looking like a broken beer bottle [MDB IGNORE] (#19460)
* Fixes broken holy water flask looking like a broken beer bottle (#73504)

Adds new inhand sprites for the broken holy flask, fixes broken holy water flask looking like a broken beer bottle and unholy flasks now use a blackened holy flask inhand sprite instead of the beaker one.

* Fixes broken holy water flask looking like a broken beer bottle

---------

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-02-20 12:09:09 +00:00
SkyratBot
a2cb8c5c0c [MIRROR] Completely removes do_mob and do_after_mob [MDB IGNORE] (#19126)
* Completely removes do_mob and do_after_mob

* update modular

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-02-19 19:19:50 +00:00
SkyratBot
18401f5a8a [MIRROR] Fixes Seiver jank and bad code [MDB IGNORE] (#19437)
* Fixes Seiver jank and bad code (#73496)

## About The Pull Request
Seiver is currently way stronger than it was intended due to bad code.
Also the comments didn't make any sense whatsoever and were often just
wrong.

This nerfs hot seiver significantly - it was often almost 3x stronger
than intended, able to reach tox healing levels of 17.7 per tick. With
the change, it maxes out at 6.7 tox healing per tick.
## Why It's Good For The Game
5u hot seiver can no longer heal 442 tox damage over less than a minute
## Changelog
🆑
fix: seiver no longer applies purity and delta time twice
code: made seiver code much less confusing
/🆑

* Fixes Seiver jank and bad code

---------

Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
2023-02-18 23:18:54 -08:00
Shadow-Quill
69f1515276 Reagent containers AltClick update (#19272)
* Reagent containers with two settings now just swap on altclick

* suggested change
2023-02-14 13:24:52 +00:00
Bloop
dfa6284541 [MODULAR] Fixes some buggy reaction behavior by further modularizing liquid code (#19244)
* Fixes the buggy reaction behavior by further modularizing liquid code

* removed another unneeded skyrat edit

* These are actually not needed after all.
2023-02-10 15:35:22 +00:00
SkyratBot
78b465448f [MIRROR] Fixes force-drinking being instananeous, and a few others [MDB IGNORE] (#19210)
* Fixes force-drinking being instananeous, and a few others

* Update mobs.dm

* fix conflicts

* Update mobs.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-10 03:09:58 +00:00
lessthanthree
224e8ef3f6 [MANUAL MIRROR] Fixes plasmamen dying from liver damage when consuming plasma (#19074)
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.
/🆑

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-02-03 20:01:55 -05:00
SkyratBot
ebe38543ff [MIRROR] Adds nutriment factor to liquid gibs. [MDB IGNORE] (#19052)
* Adds nutriment factor to liquid gibs. (#73033)

## About The Pull Request

Over the years I've heard quite a few lizard players scratch their heads
in confusion due to the lack of gibs filling you up. I gave it a fairly
low value of 2 so people don't end up trying to power game it.

## Why It's Good For The Game

Adding an alternative use to gibs is always nice, at the moment it's
mostly just used for soap and cytology (Which barely anyone does.)

## Changelog

🆑
balance: Gibs now provide a small amount of nutriment.
/🆑

* Fixes the modular uses of liquid gibs

* Fixes an error that somehow slipped through.

---------

Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:59:09 -05:00
SkyratBot
1fe0d145a3 [MIRROR] Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind [MDB IGNORE] (#18760)
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind

* Fixes the conflicts and makes shit compile!

* Fixes other things that didn't show up because I hadn't updated

* Fixes the lints.

* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:08:32 -05:00
SkyratBot
dd0dad4e5e [MIRROR] Cleans Up (a few) Single-Lines Over 300 Characters [MDB IGNORE] (#19123)
* Cleans Up (a few) Single-Lines Over 300 Characters (#73124)

These were just super long picks with multiple strings/file
references/whatever, let's convert it into a list of picks, maybe do
some cool proc stuff, just make it look NICER.

I found it by doing `rg '.{300,}' code > output.txt` from the root of my
repository (used ripgrep because that's what i had at the time), and you
can see a copy of the results I got here:
https://github.com/tgstation/tgstation/files/10553651/output.txt in case
you wanna take a stab at it. I didn't filter by .dm code file, so
there's a few bulky JSONs and MD sections, but maybe those are good
candidates for splitting up the wording or otherwise prettifying the
JSON? Unsure.

* Cleans Up (a few) Single-Lines Over 300 Characters

---------

Co-authored-by: san7890 <the@san7890.com>
2023-02-03 16:00:44 +00:00
SkyratBot
e4fa713b67 [MIRROR] Fixes water bottle cap overlays & adds an opening sound [MDB IGNORE] (#19110)
* Fixes water bottle cap overlays & adds an opening sound (#73135)

## About The Pull Request

Watter bottle caps are now visible and create a pop sound when opened.
Couldn't find a sound effect for closing the cap though.

Fixes #72927

## Changelog
🆑
fix: Water bottle cap overlays & missing opening sound
/🆑

* Fixes water bottle cap overlays & adds an opening sound

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-02-02 16:15:24 +00:00
SkyratBot
55863138fc [MIRROR] EMPs require aluminum, but it doesn't contribute to the total size of the EMP [MDB IGNORE] (#19101)
* EMPs require aluminum, but it doesn't contribute to the total size of the EMP (#73081)

## About The Pull Request

EMPs now require aluminum. For example, making a 4 heavy range & 7 light
range EMP used to take 100 iron and 100 uranium, now it takes 100 iron,
100 uranium, and 100 aluminum. The aluminum doesn't contribute to a
higher EMP explosion despite making more of the final product in the
reaction.

## Why It's Good For The Game

AI is on the weak side right now, with every department being able to
quickly produce EMPs by depositing iron and uranium from protolathes and
grinding them. I chose aluminum as it still makes the recipe very
possible ghetto (grind cans for 10 aluminum each), but it isn't
instantly achievable from protolathes either. Historically, this was far
less of a problem, as each department didn't have its own big supply of
mats.

## Changelog
🆑
balance: EMP requires aluminum, but the aluminum doesn't contribute to a
bigger EMP size.
/🆑

* EMPs require aluminum, but it doesn't contribute to the total size of the EMP

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
2023-02-02 16:08:57 +00:00
SkyratBot
9ae3d8e0b7 [MIRROR] Increases precision of purity scanners and replaces "the beaker" with name of scanned container [MDB IGNORE] (#19024)
Increases precision of purity scanners and replaces "the beaker" with name of scanned container (#73012)

## About The Pull Request
Fixes incorect display of purity. Before this change purity on image
below would be rounded to 100%.

![image](https://user-images.githubusercontent.com/38228316/215264067-44ffc90a-e274-495f-9f5e-c4c5aed29d7b.png)


In practice this makes purity scanners very unlikely to round purity up
to 1 when purity is not 1

Also replaces "the beaker" with name of scanned container in handheld
chemical analyzer

![image](https://user-images.githubusercontent.com/38228316/215264506-98c4db7c-7f3b-46bb-a9fd-92850e147b53.png)
## Why It's Good For The Game
Less lying in scans
## Changelog
🆑
fix: Precision of purity scanners has been increased
/🆑

Co-authored-by: Holoo <38228316+Holoo-1@users.noreply.github.com>
2023-01-31 02:04:48 +00:00
SkyratBot
69bd792a4c [MIRROR] Mint can gib obese people again [MDB IGNORE] (#18987)
Mint can gib obese people again (#72970)

## About The Pull Request

Changes minttoxin(a toxin) to mintextract(a food).

## Why It's Good For The Game

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

The chef's mint is intended to gib fat people. Due to
https://github.com/tgstation/tgstation/pull/70764, liver functionality
was reworked so that instead of being purged rapidly, toxin's in a mobs
system with 3 units or less have no effect. Since the chef's mint only
has 2 units of mint toxin, it's intended functionality is impossible
under normal circumstances.

By changing the reagent type from toxin to consumable, it restores the
ability to gib.

## Changelog

🆑
fix: Mint Toxin(a toxin) has been changed to Mint Extract(a food). The
chef's mint can once again gib, fatties beware.
/🆑

Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
2023-01-28 20:17:09 +00:00
SkyratBot
bf31be8946 [MIRROR] Fixes the holy water flask looking like a beer bottle [MDB IGNORE] (#18993)
Fixes the holy water flask looking like a beer bottle (#72979)

## About The Pull Request

Adds new inhand sprites for the holy water to fix its current
appearance, which is a beer bottle.

## Why It's Good For The Game

Chaplains are supposed to be _covertly_ alchoholic. Makes the holy flask
look as it's supposed to when held so the chaplain can drink their holy
spirits in peace.


![image](https://user-images.githubusercontent.com/13398309/214944917-92647a63-0410-4d5d-a608-143b09b28c23.png)


![image](https://user-images.githubusercontent.com/13398309/214944958-1eaf0df4-f151-4ba6-b859-d93fe352c5ea.png)


![image](https://user-images.githubusercontent.com/13398309/214945001-0ed2544e-9b02-4710-879e-da032ab0fdd8.png)


## Changelog

🆑
imageadd: new inhand sprites for the holy flask
fix: chaplains will no longer look like they are carrying a beer bottle
when holding their holy flask
/🆑

Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-01-28 20:15:37 +00:00
GoldenAlpharex
5ea3abd2c1 Hemophagus, The Hemophage Revamp, Part Three: A Taste For Blood (#18292)
* Adds the BLOODY food type

* Adds some Hemophage foods

* Adds recipes for the blood-based foods

* Adds the define I forgot to include in the last commit

* Adds the Bloodshot drink!

* Adds the Bloodshot FOR REAL THIS TIME

* Ticks the files that needed to be ticked

* Gives the new REAGENT_BLOOD_REGENERATING to all the blood-regenerating reagents + nerfs Bloody Mary to a third of its blood regeneration

* Adds a new Taste Suppressor reagent, making you unable to taste anything while it's in your system

* Makes cup and condiment subtypes send a COMSIG_GLASS_DRANK signal to the drinker upon being drank from

* Makes it so Hemophages can only eat and drink things that are going to regenerate their blood levels (BLOODY foodtype and reagents with the REAGENT_BLOOD_REGENERATING flag)

* Okay now it'll compile

* Fixes the bloodshot missing its custom glass appearance

* Fixes a compile issue

* Added icons for the Hemophage and Teshari Food cooking tabs, and the Bloody food type

* Fixes the name of make_microwaveable()

* Fixes the hemophage actions not having their organs displayed

* Updates some list formatting.

* Introduces chemical_flags_skyrat to avoid a few non-modular edits and to ensure easier maintainability
2023-01-25 12:20:05 -08:00
SkyratBot
fa973dc5fb [MIRROR] Documents all of the variables on /obj/item/reagent_containers [MDB IGNORE] (#18929)
Documents all of the variables on /obj/item/reagent_containers (#72854)

## About The Pull Request

I noticed a bunch of these variables weren't documented, and I know more
or less what they all do, so woe documentation be upon ye.
## Why It's Good For The Game

Better for future coders to understand wtf is going on inside of reagent
containers
## Changelog
These changes are not player facing

Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
2023-01-24 14:30:52 -08:00
SkyratBot
7a035ba355 [MIRROR] Adds the Mississippi Queen, a new drink [MDB IGNORE] (#18922)
Adds the Mississippi Queen, a new drink (#72780)

## About The Pull Request
Adds the infamous Mississippi Queen, a drink so spicy it'll make you
start seeing things.

![palm-export](https://user-images.githubusercontent.com/66052067/213032895-476521ae-844c-446f-8478-10b76967853b.png)
## Why It's Good For The Game

![DeficientGenuineGlowworm-size_restricted](https://user-images.githubusercontent.com/66052067/213033006-bf3e1a03-779b-4afb-9948-4fc91e718298.gif)
## Changelog
🆑
add: Bartenders can now mix up the Mississippi Queen for those willing
to take the plunge.
/🆑

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2023-01-23 17:07:15 -05:00
SkyratBot
63d52ef655 [MIRROR] You can no longer pull out pH Indicator Strips from across the room (COOL GIF INSIDE) [MDB IGNORE] (#18900) 2023-01-23 10:27:03 -08:00
GoldenAlpharex
86dc0cdf65 [MIRROR] Water will now make you wet (#72844) (#18888)
Water will now make you wet (#72844)

Water, when exposed to a mob either via `TOUCH` or `VAPOR` application,
will now apply wet stacks to said mob according to the amount of water
used. For touch application, the ratio is 0.5 wet stack per unit of
water, whereas for vapor application (so for foam and sprays), that
ratio is lowered to 0.1 wet stack per unit of water. Yes, that would
mean that you could now put someone out by spraying enough water at them
with a spray bottle (usually around 50-150u), and I think that is quite
simply hilarious.

I also updated the unit test of water's `expose_mob()` proc, to check
that wet stacks were being applied properly, hopefully making sure that
there's no regression on that part in the future.
2023-01-22 16:20:02 -08:00
SkyratBot
c5ca08fd01 [MIRROR] Adds spaces around logical operators [MDB IGNORE] (#18776)
* Adds spaces around logical operators

* Update code/modules/admin/verbs/admingame.dm

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-21 22:16:43 -08:00
SkyratBot
46adb94ee3 [MIRROR] Fix chem dispensers not reverting upgrade chems if stock parts are downgraded [MDB IGNORE] (#18710)
* Fix chem dispensers not reverting upgrade chems if stock parts are downgraded

* I /almost/ fucked this one up

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-21 16:40:04 -05:00
SkyratBot
902caab964 [MIRROR] Stock Part Datumization Complete [MDB IGNORE] (#18639)
* Stock Part Datumization Complete (#72559)

So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway

Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)

Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts

Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑

* Fixes a teeny tiny Funce mistake :)

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-01-19 17:09:19 -05:00
SkyratBot
10a1a52bc8 [MIRROR] Update stamina in carbon updatehealth [MDB IGNORE] (#18572)
Update stamina in carbon updatehealth (#72496)

## About The Pull Request

`living/updatehealth` calls update stamina, but `carbon/updatehealth`
does not. Why? I'm not entirely sure.

But there's some bugs going around with people in infinite stamcrit. I
don't 100% know the reproduction steps, just people are yelling at me.
This is pretty much solely because `update_stamina` isn't being called
when it should.

Investigating it further, I found that MOST manual update stamina calls
could be lumped into updatehealth.

It is, unfortunately, putting more proc calls into updatehealth, which
is a shame, because it's pretty hot, but there are a lot of
circumstances where people forget and it causes problems.

## Why It's Good For The Game

Getting stuck in infinite stamcrit is bad. 

## Changelog

🆑 Melbert
fix: People should be stuck in infinite stamcrit less often. 
/🆑

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-01-19 11:18:27 +13:00
SkyratBot
18dc1abc43 [MIRROR] Refactor lighting items that use fuel [MDB IGNORE] (#18545)
* Refactor lighting items that use fuel (#72146)

Fixes #71826

This does the following:
- Makes candles a subtype of flare
- Fixes candles having lighting inconsistencies
- Fixes burning items (welder, candles, flares, etc.) not causing
ignition effects when held in hand
- Adds burnt flares and melted candles to maint loot and trash spawners
- Add match lighting sound when candles are lit
- Add time defines for fuel amounts and rounded them (ex. instead of
32.3333 minutes, it's now 35 minutes)
- Light sources that burn will now spawn a trash item once fuel is spent
- Light sources that burn now have a welder hitsound
- Light sources that burn can now be extinguished by a fire extinguisher
(except flares)
- Light sources that burn can now be used to ignite another object on
fire (ex. a lit candle can be used to light a cigarette)
- Light sources that burn and are lit now do `BURN` damage while
attacking

Code is more cleaner and consistent.  Also fixes some bugs.

🆑
soundadd: Candles will now use the match lighting sound when lit
soundadd: Light sources that burn will now have a welding hitsound
fix: Fix candle light behaving erratically
fix: Fix burning items that are held in hand will now have an ignition
effect on the turf. (ex. lit welders in hand will now ignite plasma in
the air)
balance: Light sources that burn and are lit now do `BURN` damage while
attacking
balance: Light sources fuel amounts were rounded to exact numbers (ex.
instead of 32.3333 minutes, it's now 35 minutes)
qol: Light items that burn can now be extinguished by a fire
extinguisher (except flares), used to ignite another object on fire, and
will now leave a trash item once fuel is used
qol: Add burnt flares and melted candles to trash spawners
refactor: Refactor lighting items that use fuel to be more robust
/🆑

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>

* Modular!

* Toggle Light

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-17 14:37:02 +13:00
SkyratBot
25f4961156 [MIRROR] Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. [MDB IGNORE] (#18487)
* Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate.  (#72110)

So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!

Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.

But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.

It also made it much harder to organize new memories keep it clean for
stuff like downstreams.

So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.

Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.

This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.

To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.

Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?

🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑

* Modular!

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-17 12:51:58 +13:00
GoldenAlpharex
fc2ca7dbaf At Long Last, Towels (#18391)
* Added towels (honestly I should have committed earlier)

* More modifications to the sprites

* Fixes a runtime in ears while I'm at it

* Moves the dropped() call in the cryopod computer to be AFTER the transferItemToLoc, like it should be

* Properly fixes the ear is_hidden proc

* Fixes a small typo in the onwear_mood code that made it just not work (I'll fix it upstream in a moment)

* Makes the hints more coherent and fixes a few things that didn't work properly

* Adds our flags_inv to the flags_inv bitfield that can be used in VV, so we can properly interact with it

* A few more adjustments to the obj sprites

* Makes the towels cover bodyparts properly

* Adds towel bins for mapping needs!

* Addresses review comments (lazy lists)

* Addresses even more review comments

* One last comment addressed

* Thanks Zone :)

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-01-15 23:53:43 +00:00
Zonespace
8fabd54ad6 Mirrors #72354 (#18654)
* [no gbp] removes all duplicate armor datums (#72354)

closes #72348
Title

My bad

Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;

var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();

foreach (var file in allFiles)
{
	var fileLines = File.ReadAllLines(file);
	for (var i = 0; i < fileLines.Length; i++)
	{
		var line = fileLines[i];
		if (line.StartsWith("/datum/armor/"))
		{
			var armorName = line.Replace("/datum/armor/", "").Trim();
			if (!known.ContainsKey(armorName))
				known[armorName] = new List<KeyValuePair<string, int>>();
			var knownList = known[armorName];
			knownList.Add(new KeyValuePair<string, int>(file, i));
		}
	}
}

Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");

var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
	var actuals = entries.Skip(1).ToList();
	foreach (var actual in actuals)
	{
		if (!duplicates.ContainsKey(actual.Key))
			duplicates[actual.Key] = new List<int>();
		duplicates[actual.Key].Add(actual.Value);
	}
}

Console.WriteLine($"There are {duplicates.Count} files to update.");

foreach (var (file, idxes) in duplicates)
{
	var fileContents = File.ReadAllLines(file).ToList();
	foreach (var idx in idxes.OrderByDescending(i => i))
	{
		string line;
		do
		{
			line = fileContents[idx];
			fileContents.RemoveAt(idx);
		}
		while (!String.IsNullOrWhiteSpace(line));
	}
	File.WriteAllLines(file, fileContents);
}
```

* modular

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-01-13 18:05:12 -05:00
SkyratBot
8e8002b555 [MIRROR] Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars [MDB IGNORE] (#18348)
* Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars

* merge conflicts

* adjust_eye_blur and set_eye_blur_if_lower

* adjust drowsiness overdoses

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 13:14:47 -05:00
SkyratBot
ee8226b8a8 [MIRROR] Fixes prefilled drinking glasses, and small carton icon [MDB IGNORE] (#18606)
* Fixes prefilled drinking glasses, and small carton icon (#72527)

Fixes a few drink container issues:
- The `/obj/item/reagent_containers/cup/glass/drinkingglass/filled`
subtypes runtimed whenever their reagents changed because of the strict
way that `/datum/component/takes_reagent_appearance` compares container
types.
- `/datum/component/takes_reagent_appearance` now allows for an
alternate type to check against `glass_style.required_container_type`
via a var called `base_container_type`. The filled glasses now set this
var to the main drinking glass type.
- As well, filled glasses didn't have their appearance set up to match
the corresponding glass style. Thus, the
`/obj/item/reagent_containers/cup/glass/drinkingglass/filled` type now
updates its appearance on initialization.

- Seperately, the small carton's appearance broke if you put a reagent
in that doesn't match a glass style, reverting to the "water_cup" icon
state which doesn't exist in the boxes.dmi file. This is because it was
a subtype of sillycup, but there is nothing gained as far as I can see
from that type relationship, so the small carton was repathed to
`/obj/item/reagent_containers/cup/glass/smallcarton`.

* Fixes prefilled drinking glasses, and small carton icon

Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-08 22:49:52 -08:00
SkyratBot
ae713bf18a [MIRROR] Crafting/Cooking menu update [MDB IGNORE] (#18334)
* Crafting/Cooking menu update

* Yeeted away all of the merge conflicts, time to fix the code

* Okay, now it compiles, and after testing, it seems to work just fine

* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu

* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2023-01-08 15:02:18 -05:00
SkyratBot
011fefdd81 [MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes

* start

* most tg things

* pain (#18584)

* shit

* non-mod changes

* compile

Co-authored-by: John Doe <gamingskeleton3@gmail.com>

* #18291

* compile fix

* ???

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 20:06:16 -08:00
SkyratBot
39b8cd6bcb [MIRROR] Minor detectives spawn with a candy cigarette and apple juice filled flask [MDB IGNORE] (#18564)
* Minor detectives spawn with a candy cigarette and apple juice filled flask (#72422)

If a detective joins who is 20 or younger their cigarette is changed for
a candy one and their flask is filled with apple juice. Also adds candy
cigarettes' to the detective vendor.

Minor crew members are unable to use cigarette vendors or acquire
alcohol in game without effectively committing a crime, it doesn't make
sense for minor detectives to spawn with them. I also think that minor
characters trying to obtain narcotics can be a pretty entertaining RP
starter as a overall harmless crime and something that requires
interaction with other members of the crew.

* Minor detectives spawn with a candy cigarette and apple juice filled flask

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
2023-01-07 08:28:50 -08:00
SkyratBot
80d1906bd1 [MIRROR] Basic Mobs can run away [MDB IGNORE] (#18196)
* Basic Mobs can run away (#71963)

## About The Pull Request

That's right I'm still atomising #71421, some day I might even post
something related to carp.
This PR adds various behaviours to basic mobs allowing them to run away,
in a couple of variations.

Mice will flee from anyone who doesn't share their factions, at all
times (so they will scatter from most humans, but not regal rats).
Rabbits and Sheep will flee from anyone who has attacked them.
Pigs will run away from people who have attacked them, but only if
they're below half health.

https://user-images.githubusercontent.com/7483112/207127135-d1737f91-d3f7-468a-ac60-7c7ae5d6623d.mp4

Mice are still plenty catchable because they don't run _very far_ (or
very fast) but I think the chase will be good enrichment.

To achieve this I had to change the signal COMSIG_CARBON_HEALTH_UPDATE
into COMSIG_LIVING_HEALTH_UPDATE but frankly the latter seems more
sensible anyway.

## Why It's Good For The Game

More behaviours to use later when designing mobs, gradually gives mobs
more things to do rather than just sort of moving aimlessly around the
area you left them in.
It'll give people hunting rats in maintenance some exercise.

## Changelog

🆑
add: Mice will now run away from you, you have to catch them if you want
to eat them. Use those traps!
add: Rabbits, Sheep, and Pigs likewise won't just sit there and let you
pulverise them if they can see an escape route.
/🆑

* Basic Mobs can run away

* Modular!

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-01-07 23:51:47 +13:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00