* restore removed individual logs and place them under LOG_VICTIM category (#61256)
it turns out that admins use the removed information in #61179 for faster live in-round logging, I've restored that information under a LOG_VICTIM category that should not interfere with mind-reading and ling absorb text
* restore removed individual logs and place them under LOG_VICTIM category
Co-authored-by: Couls <coul422@gmail.com>
* Restores Ethereal Taste (#61238)
Restores Ethereals' sense of taste, as was removed in #48309. It is slightly more sensitive than the human sense of taste.
Approved by Mothblocks, I can't get an image of it so if @ Mothblocks could confirm in the comments that would be wonderful
* Restores Ethereal Taste
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
* Uncouples the cultist red eye trait examine text from requiring cultist status or a certain eye colour. (#61199)
Renames TRAIT_CULT_EYES to TRAIT_UNNATURAL_RED_GLOWY_EYES.
This trait now always displays a (slightly modified) message about unnatural glowy red eyes regardless of if the person is a cultist and regardless of what their eye colour is.
The examine is decoupled from eye colour because as it turns out, players can select the bloodcult red eye colour as part of character prefs. Anything that gave this trait set the eye colour to red anyway. Because there's now no guarantee the eyes themselves are red with this trait, the examine has been reworded slightly to reinforce that the eyes are merely glowing red and not necessarily are red themselves.
The examine is also decoupled from being a cultist. The trait can be added from multiple sources. Removing the cultist check means other things that want to tread the line of cult paranoia can add it too. Like Chaplain maint sect eyes and admin shennanigans.
This now means that the Chaplain's maint sect night vision eyes actually add the examine flavour text, instead of what they did before which is only add the examine flavour text if the player was a cultist that had bloodcult red coloured eyes. In other words, if they were risen and already had glowy eyes.
* Uncouples the cultist red eye trait examine text from requiring cultist status or a certain eye colour.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.
Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.
Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.
Makes the code more legible and makes mapping less painful.
(The payment has been made)
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Fixes the anti-drop implant not removing the nodrop trait on held items if they're somehow dropped. (#61068)
Title. I have used comsigs to do it. Also I have improved the logic of its ui_action_click.
* Fixes the anti-drop implant not removing the nodrop trait on held items if they're somehow dropped.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* fixes the game spamming heart attack messages on hearts that cannot... attack... (muscle emoji) (#60766)
* Update life.dm
* better.
* actually i want to do it the right way
* OOP
* OK WOW
* removes bad var
* fixes the game spamming heart attack messages on hearts that cannot... attack... (muscle emoji)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Drugs of the 26th century. Three new hella rad drugs, one less lame drug and more!
* Update traits.dm
* Update maint_loot_trash.dm
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* swap bodypart species checking to bitmap, fix surgery for monkey body… (#60280)
* swap bodypart species checking to bitmap, fix surgery for monkey bodyparts on monkeys
* fix part_origin so it is used correctly
* remove tabs, change DEFAULT_BODY to NULL_BODY
* add requested documentation
Co-authored-by: whitecas18 <whitecas18@ students.ecu.edu>
* swap bodypart species checking to bitmap, fix surgery for monkey body…
Co-authored-by: ArchPigeon <bookmaster3@gmail.com>
Co-authored-by: whitecas18 <whitecas18@ students.ecu.edu>
* Brain-computer interfaces, circuits in your brain (#60338)
BCIs are a new shell that can be implanted in your brain through surgery or through a BCI Manipulation Chamber, which provide the ability to easily implant and remove BCIs. They are the same size as compact remotes and generally share the same limitations.
Also adds CIRCUIT_FLAG_HIDDEN, to hide components from the UI. I didn't end up needing this, but Watermelon said he had ideas for it, so eh.
Why It's Good For The Game
BCIs provide an interesting, stealthy input method for circuits. They are seen as a healthier alternative to nanites, and improve on them in several ways:
Circuits have limited manipulation of the world, and intentionally do not perform the ability to provide passive healing, revives, etc.
Circuits have a significantly better UI and UX than nanites.
Circuits regularly get content expansions, which means that as a side-effect, there'll often be new things to play with for BCIs.
Other point to make:
BCI implanters have no cloud, and instead require the BCI to be put inside the machine. This means it requires the attention of the scientist (or even just a box with them inside). With
Adds the ability to save/load circuits for admins. Adds the ability to duplicate modules in a round. #60222, which lets you reprint a circuit you made that round, this means you can print out lots of BCIs, rather than going through the tedium of constantly remaking it.
BCI implanters are not roundstart, but rather in the advanced shells node. This is essentially the same as nanites, except for the difference of nanites starting with all the machinery, but none of the powers.
Changelog
cl
add: Added brain-computer interface circuit shells.
/cl
* Brain-computer interfaces, circuits in your brain
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Gas Masks Properly filter now (#58529)
This PR allows gas masks to properly filter toxic gases by using one-time-use filters that can be made in any lathe from roundstart. All gas masks start with filters in at roundstart.
These filters will have different filtering abilities that differenciate what gas they'll be able to filter the most. The highest ones will be plasma gas, co2 and n2o.
Currently there is only one filter available, it will filter plasma, co2 and n2o at higher amount, while nitryl, stimulum, freon, hypernob and bz will be at a mid range and the more complex/dangerous gases healium, zauker, proto nitrate, tritium, halon will have easier time passing even at trace amounts
More filters with different filtering levels soon(tm)
Warning, the masks will filter traces amount of gases, but will also help slowdown the damage you'll get by breathing the gas by reducing the amounts of moles taken (example plasma intoxication will be slower)
Gas masks now properly filter gases when a filter is used (they will work normally otherwise)
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Gas Masks Properly filter now
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Fixes cutting open heads dropping hidden organs (#60267)
Yes it's a dumb fix, but organ code is dumb. I want to rework how organs are stored eventually when I get to it which is when I'll clean this up. (I also want to rework external organs again to just be datums attached to organs but hush)
* Fixes cutting open heads dropping hidden organs
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Change ashwalkers to have custom lungs (#59413)
* Changes ashwalkers to have custom lungs
Ashwalkers now have lungs that are specially adapted to Lavaland
environments. However, that specialisation comes at a cost at sometimes
not being able to operate in normal human air conditions.
- Ashwalker lungs take a gas sample of the default lavaland atmosphere
on initialisation in order to customise themselves
- Currently, excess O2/N2 has no functional drawback, so no maximum
value is set on the lungs. If Lavaland rolls a higher N2/O2 mole count
than human air, they will still struggle however.
* Change ashwalkers to have custom lungs
Co-authored-by: coiax <yellowbounder@gmail.com>
* Fixes attach_limb() not calling update_disabled() (#60128)
* Fixes attach_limb() not calling update_disabled()
* Ok, that's new. But at the core, the framework's the same.
* Fixes attach_limb() not calling update_disabled()
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Makes mutant bodyparts and mutcolors into editable genetic traits (plus a whole shitload of otherwise out of scope code improvements because I just HAD to touch old code)
* Mirror
* genetically-editable mutant bodyparts and colors - skyrat edition
Co-authored-by: Funce <funce.973@gmail.com>
* mostly [modular] adds a language for xeno hybrids via culture
* ok special culture
* I FORGOT THE DEFINE
* Update tgstation.dme
Co-authored-by: louiseedwardstuart <bonniefluff>
* Massively buffs debriding surgery (#59865)
Yesterday, I got lasered in the arm twice. A good three minutes later I lose all controle off my arm and have an assistant debride my arm. On a surgical table with sterilizine, this took 2 minutes and 30 seconds.
All wounds can be fixed quite easily, but the infection wound type has always been an absolute nightmare. This was the only time I recorded it, but this has happened so many times and it feels like the average lies around 4~ minutes for this surgery to complete.
It still depends on how badly infected your burn wound is, but it shouldn't take longer than 30 seconds now.
* Massively buffs debriding surgery
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Fix to_chat error with empty surgery step strings (#59876)
/datum/surgery_step/incise/success() has no vague_message arg in a certain edge case when calling display_results. This eventually leads to an empty string being sent to /mob/proc/show_message() - Unsure if this is intended or not, but I've added an equivalent string based on the other usages of display_results instead of sending an empty string.
* Fix to_chat error with empty surgery step strings
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Remove unnecessary species breath code (#59864)
Human code override breathe(), called the species datum which checked if the human had NO_BREATH. I just made it check for NOBREATH directly, since it is apparently a human only trait.
If someone wants to implement special breathing checks/behaviour, make custom lungs
* removes unnecessary species breath code
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Slightly buffs knife wounds, slightly nerfs scalpel wounds (#59848)
Recently it came to my attention that knives are actually really bad at causing slashing wounds, while the scalpel is probably a little too good at causing them, even through armor. So, here's what this PR does:
Knives in general are more effective at causing slash wounds, especially if the target has no armor/clothing on that limb. The butcher's cleaver in particular is now equally as effective as a circular saw.
Scalpels are a bit less effective at causing slash wounds against armor/clothing, though they're still extremely good at cutting, especially against exposed flesh.
With these stats, knives will be more effective against unarmored targets, and can actually be counted on to draw blood when needed.
* Slightly buffs knife wounds, slightly nerfs scalpel wounds
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Refactors species stomach code, makes ethereal charge inherent to their stomach (#59801)
A stomach would literally just ask the species datum how to be hungry and made a bunch of exceptions for ethereals. I mostly just moved code around so that hunger is handled by a persons stomach, thus shrinking the species.dm bloat.
This also makes it so ethereal's charge mechanic is unique to their stomache, instead of this really weird inbetween where just nothing happens and you kinda starve to death. You can stick an ethereal stomach in a human and this will replace their hunger mechanic with the charge mechanic and lets them absorb power from APCs and everything. You can also give ethereals a normal stomach and they'll use the normal hunger mechanics
* Refactors species stomach code, makes ethereal charge inherent to their stomach
Co-authored-by: Time-Green <timkoster1@hotmail.com>
* Fix missing SIGNAL_HANDLER (#59826)
Adds SIGNAL_HANDLER to everywhere that didn't have it that was picked up by dm-lua, which is now ready enough to catch these.
* Fix missing SIGNAL_HANDLER
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Digitigrade Paralysis BugFix (#59697)
* Fixing Digitigrade Legs, Adding Sanity Checks
- A limb's attach_limb proc now uses the set_owner() proc instead of setting the owner manually, fixing problems where limbs that were meant to be paralyzed were not
- Added a sanity check to set_usable_legs to ensure the value isn't set lower than 0
* Adds A Stack Trace to Set_Usable_Legs
- set_usable_legs now calls stack_trace() whenever it is provided with a negative value
* Digitigrade Paralysis BugFix
Co-authored-by: Beatrice <83368538+SpaceDragon00@users.noreply.github.com>
* Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
* 0
* A
* a
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>