Commit Graph

145 Commits

Author SHA1 Message Date
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
Joshua Kidder 7a3ad79506 All camelCase (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use snake_case. UNDERSCORES RULE! (#94111)
## About The Pull Request
It's just a partial cleanup of
anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md)
code from /tg/'s ancient history. I compiled & tested with my helpful
assistant and damage is still working.

<img width="1920" height="1040" alt="image"
src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3"
/>


I'll upload the .cs script I used to do it shortly.

## Why It's Good For The Game
Just minor code cleanup.

Script used is located at https://metek.tech/camelTo-Snake.7z

EDIT 11/23/25: Updated the script to use multithreading and sequential
scan so it works a hell of a lot faster
```
/*
//
Copyright 2025 Joshua 'Joan Metekillot' Kidder

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
//
*/
using System.Text.RegularExpressions;
class Program
{
    static async Task Main(string[] args)
    {
        var readFile = new FileStreamOptions
        {
            Access = FileAccess.Read,
            Share = FileShare.ReadWrite,
            Options = FileOptions.Asynchronous | FileOptions.SequentialScan
        };
        FileStreamOptions writeFile = new FileStreamOptions
        {
            Share = FileShare.ReadWrite,
            Access = FileAccess.ReadWrite,
            Mode = FileMode.Truncate,
            Options = FileOptions.Asynchronous
        };
        RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled;
        Dictionary<string, int> changedProcs = new();
        string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*";
        Regex camelCaseProcRegex = new(regexPattern, regexOptions);

        string snakeify(Match matchingRegex)
        {
            var vals =
            matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray();
            var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower();
            string logString = $"{vals[0]} => {newVal}";
            if (changedProcs.TryGetValue(logString, out int value))
            {
                changedProcs[logString] = value + 1;
            }
            else
            {
                changedProcs.Add(logString, 1);
            }
            return newVal;
        }
        var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>();

        // uses default ParallelOptions
        // https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main
        await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) =>
        {
            var reader = new StreamReader(filePath, readFile);
            string oldContent = await reader.ReadToEndAsync();
            string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify));
            if (oldContent != newContent)
            {
                var writer = new StreamWriter(filePath, writeFile);
                await writer.WriteAsync(newContent);
                await writer.DisposeAsync();
            }
            reader.Dispose();
        });
        var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList();
        foreach (var pair in logToList)
        {
            Console.WriteLine($"{pair.Key}: {pair.Value} locations");
        }
    }
}

```

## Changelog
🆑 Bisar
code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use
snake_case, in-line with the STYLE guide. Underscores rule!
/🆑
2025-11-27 15:50:23 -05:00
Thunder12345 20118ad747 Converts a bunch of time/delay vars to use time defines (#92495)
## About The Pull Request

Converts as many time vars expressed in deciseconds as I could find to
use time defines.

## Why It's Good For The Game

Makes these values neater and more readable.

## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
# Conflicts:
#	code/modules/clothing/head/hat.dm
#	code/modules/clothing/shoes/boots.dm
#	code/modules/clothing/suits/utility.dm
2025-08-19 22:38:55 -04:00
Thunder12345 260960d6f4 Converts a bunch of time/delay vars to use time defines (#92495)
## About The Pull Request

Converts as many time vars expressed in deciseconds as I could find to
use time defines.

## Why It's Good For The Game

Makes these values neater and more readable.

## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
2025-08-12 18:30:25 -04:00
The Sharkening d160076072 Proteans can now be lobotomized and brainwashed. (#4111)
## About The Pull Request
fixes: #3958 
Proteans can now be lobotomized and brainwashed

## Why It's Good For The Game

Maintaining my shitcode good. Broken thing bad.

## Proof Of Testing

Works

## Changelog

🆑
fix: Proteans can now be brainwashed with surgery
fix: Proteans can now be lobotomized
/🆑
2025-06-22 22:38:16 -04:00
plsleavemealon d19a65d157 Morbid surgery expansion (#91627)
## About The Pull Request


This PR tweaks how tools with the CRUEL_IMPLEMENT interact with
patients. Essentially, when performing a surgery without anesthetic, it
will give them the same mood debuff that they would suffer if you had
failed a surgery step (fairly long lasting mood debuff that is
removeable with alcohol or a nap).

Also adds experimental surgeries to morbid surgeries, meaning coroners
now do them faster and get a mood bonus for completing them. The
experimental surgery step now also causes a lot of pain when performed
by someone who is morbidly inclined, such as the coroner. This step is
the part where you are interacting with the patient with an open hand
and is contextual to the experimental surgery (thread the patients
veins, ground their nerves, etc). Anesthetic will mitigate this
entirely.

## Why It's Good For The Game

Cruel tools are cruel for a reason, using them on the living is akin to
torture. So they are going to hurt, a lot. And this gives those tools
some added mechanical flavor befitting of a mad doctor. Experimental
surgeries are all quite morbid in general, so its very thematic to add
them to the list of morbid surgeries. And the part where you start
interacting with the body is perhaps the most morbid part of those
surgeries! It also makes sense for that to cause quite a lot of pain,
its a delicate procedure so you really should have the patient under
anesthesia of some kind.

## Changelog

🆑
add:experimental surgeries are now morbid surgeries, and as such
coroners, or anyone else morbidly inclined, get a slight speed boost
when performing them. Coroner's, or anyone morbidly inclined will also
get a mood boost from completing these surgeries.
add:morbid tools now cause a great deal of pain for the patient if used
without anesthesia. The experimental surgery step will now cause a great
deal of pain when performed by someone who is morbidly inclined, such as
the coroner, however this can be avoided with anesthesia.
/🆑
2025-06-21 22:21:56 -04:00
plsleavemealon f59e23591e Morbid surgery expansion (#91627)
## About The Pull Request


This PR tweaks how tools with the CRUEL_IMPLEMENT interact with
patients. Essentially, when performing a surgery without anesthetic, it
will give them the same mood debuff that they would suffer if you had
failed a surgery step (fairly long lasting mood debuff that is
removeable with alcohol or a nap).

Also adds experimental surgeries to morbid surgeries, meaning coroners
now do them faster and get a mood bonus for completing them. The
experimental surgery step now also causes a lot of pain when performed
by someone who is morbidly inclined, such as the coroner. This step is
the part where you are interacting with the patient with an open hand
and is contextual to the experimental surgery (thread the patients
veins, ground their nerves, etc). Anesthetic will mitigate this
entirely.

## Why It's Good For The Game

Cruel tools are cruel for a reason, using them on the living is akin to
torture. So they are going to hurt, a lot. And this gives those tools
some added mechanical flavor befitting of a mad doctor. Experimental
surgeries are all quite morbid in general, so its very thematic to add
them to the list of morbid surgeries. And the part where you start
interacting with the body is perhaps the most morbid part of those
surgeries! It also makes sense for that to cause quite a lot of pain,
its a delicate procedure so you really should have the patient under
anesthesia of some kind.

## Changelog

🆑
add:experimental surgeries are now morbid surgeries, and as such
coroners, or anyone else morbidly inclined, get a slight speed boost
when performing them. Coroner's, or anyone morbidly inclined will also
get a mood boost from completing these surgeries.
add:morbid tools now cause a great deal of pain for the patient if used
without anesthesia. The experimental surgery step will now cause a great
deal of pain when performed by someone who is morbidly inclined, such as
the coroner, however this can be avoided with anesthesia.
/🆑
2025-06-18 01:43:13 +10:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
Ghom 778ed9f1ab The death or internal/external organ pathing (ft. fixed fox ears and recoloring bodypart overlays with dye sprays) (#87434)
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.

This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).

And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.

## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.

Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.

Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

![immagine](https://github.com/user-attachments/assets/2bb625c9-9233-42eb-b9b8-e0bd6909ce89)

## Changelog

🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
2024-10-30 08:03:02 +01:00
Majkl-J e59d8ba64b Merge commit '179a607a90ad7ec62bdaff4e6fe72af60ee56442' of https://github.com/tgstation/tgstation into upstream-24-10b 2024-10-23 23:27:16 -07:00
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00
Ghom 734051bb1f update_body_parts() is now called when adding or removing bodypart overlays. (#87215)
## About The Pull Request
I'm making sure that `update_body_parts()` is properly called when
changing bodypart overlays, so that they actually show up the very
moment they were changed. However, to avoid redundant
`update_body_parts()` calls on init or while changing species, I've
added a living flag that stops `update_body_parts()` from being called
in these situations. I also scoured the codebase for other redundant
`update_body_parts()` to remove and things to clean up a little.

## Why It's Good For The Game
This automates the process of calling `update_body_parts()` a bit.

## Changelog
Mainly backend.
2024-10-15 18:49:05 +02:00
grungussuss 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
san7890 a4328ae1f9 Audits tgui_input_text() for length issues (#86741)
Fixes #86784

## About The Pull Request

Although some of the issues found were a direct result from #86692
(c698196766), there was still 40% of
length-related issues that wouldn't be covered anyways that are fixed in
this PR. I.E.:

* Name inputs without `MAX_NAME_LEN`
* Desc inputs without `MAX_DESC_LEN`
* Plaque inputs without `MAX_PLAQUE_LEN`
* Some people just screwed up the arguments so it would prefill
something like "40" in the `default` var because they didn't name their
vars.

To help me audit I added a lot of `max_length` named arguments to help
people understand it better. I think it might be kinder to have a
wrapper that handles adding `MAX_MESSAGE_LEN` in a lot of these cases
but I think there is some reason for a coder to be cognitive about input
texts? Let me know what you think. I didn't update anything
admin-related from what I can recall, let me know if anything needs to
be unlimited again.
## Why It's Good For The Game

The change to `INFINITY` notwithstanding, there were still an abundance
of issues that we needed to check up on. A lot of these are filtered on
down the line but it is clear that there needs to be something to catch
these issues. Maybe we could lint to make `max_length` a mandatory
argument? I don't know if that's necessary at all but I think that the
limit should be set by the invoker due to the wide arrangement of cases
that this proc could be used in.

This could all be a big nothingburger if the aforementioned PR is
reverted but a big chunk of cases fixed in this PR need to be fixed
regardless of that since people could put in 1024 character names for
stuff like guardians (or more now with the change). Consider this
"revert agnostic".
## Changelog
🆑
fix: A lot of instances where you could fill in 1024-character names
(normal limit is 42) have been patched out, along with too-long plaque
names, too-long descriptions, and more.
/🆑
2024-09-20 22:46:41 +00:00
Waterpig 4c4930c71d Merge branch 'master' of https://github.com/tgstation/tgstation into pulls-tg-to-fix-shit 2024-09-08 00:59:39 +02:00
Waterpig 5d84083ada Synth refix (#29355)
* Revert "Novastation Synthetic Refactor Port (#29204)"

This reverts commit 2e1a819c4f.

* Refactor Synths away from /Robot/ limbs, Cybernetically augmented humanoids have alternative surgeries (#3970)

* [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions

* 1

* p1

* Update limbs.dm

* oh yeah Taurs

* Limbs and Techwebs for them

* 3

* EMP

* Surgery Removals from Synths

* 5

* test

* Look Ma, no more surgery

* Update tgstation.dme

* Update hepatectomy.dm

* little bit more edit cleanup and diff reset

* Update surgery.dm

* Synth Organ Surgery!

* Update lungs.dm

* target

* 4

* Update synth_defines.dm

* you add the metal before the zap zap

* Apply suggestions from code review

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* 1

* Update code/modules/surgery/hepatectomy.dm

* Update code/modules/surgery/advanced/brainwashing.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* some extra stuff

* Why me

* woops x2

* this is back

* cord stuff

* woops

* woopsx2

* bruh

* Some minor stuff that I'm adding to tg aswell

* This is good

* Makes this not pain

* Holy shit lacked a cleanup

* adds me to codeowners so no more synth changes escape my eye

* done

* eh heck it

---------

Co-authored-by: Zergspower <22140677+Zergspower@users.noreply.github.com>
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2024-08-18 02:58:45 +07:00
SkyratBot c9e8162a8a [MIRROR] Abductors can no longer be converted by conversion antags (#29310)
* Abductors can no longer be converted by conversion antags (#84766)

## About The Pull Request

Basically what the title says. Abductors cannot be converted by
bloodbrother/revs/cult. They will NOT show up as having a mindshield,
however.
## Why It's Good For The Game

Abductors are, by design, incredibly strong. You are not meant to be
able to win against them, and this is reflected policy-wise by the fact
that they're a restricted antagonist. However, this is still a problem
when conversion antags get involved. If an abductor becomes a cultist or
a revolutionary, then suddenly every other player who isn't also
converted has to deal with an abductor without the normal restrictions.
It's not fun to play against and in general just shouldn't happen.
## Changelog
🆑
balance: Abductors (the antag, not the species) can no longer be
converted by any antagonist.
/🆑

* Abductors can no longer be converted by conversion antags

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
2024-08-15 11:50:44 +02:00
GPeckman f69284be5b Abductors can no longer be converted by conversion antags (#84766)
## About The Pull Request

Basically what the title says. Abductors cannot be converted by
bloodbrother/revs/cult. They will NOT show up as having a mindshield,
however.
## Why It's Good For The Game

Abductors are, by design, incredibly strong. You are not meant to be
able to win against them, and this is reflected policy-wise by the fact
that they're a restricted antagonist. However, this is still a problem
when conversion antags get involved. If an abductor becomes a cultist or
a revolutionary, then suddenly every other player who isn't also
converted has to deal with an abductor without the normal restrictions.
It's not fun to play against and in general just shouldn't happen.
## Changelog
🆑
balance: Abductors (the antag, not the species) can no longer be
converted by any antagonist.
/🆑
2024-08-14 13:10:57 +02:00
SpaceLoveSs13 2e1a819c4f Novastation Synthetic Refactor Port (#29204)
* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* Conflict Removal

* Update bow_arrows.dm

* Update bow_arrows.dm

* tthis also update the actual bow & arrow code

* Update arrow.dm

* [MIRROR] Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death [MDB IGNORE] (#3595)

* Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death

* modularize bone dice(???)

* gives the cargo crate arrows

* conflict

* icon updates

rotates our bows the same way, adds invisible pixels for easier loading
to our primitive bows, removes bow/arrow icons that are clones of
upstream's

also a hack for arrow overlays on bows- currently just defaults to
default arrows if an overlay doesn't exist for it, but our only arrows
aren't that distinct with default arrows at that size (we do not have
alternative arrow overlay sprites)

* recipe changes

im not gonna try explaining everything here but the general idea is that
the cargo fletching kit is sorta novelty bows, and the big boy stuff you
get from smithing

* update ammo hud for bows

* this shouldn't be here

* i forgot to save these

cleans up the recipes, ashwalker arrows are just made by combining by
hand (you could already do this, the recipes were a noobtrap)
and the cargo kit is cheaper

* un-nerf the chaplain bow

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>

* Refactor Synths away from /Robot/ limbs, Cybernetically augmented humanoids have alternative surgeries (#3970)

* [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions

* 1

* p1

* Update limbs.dm

* oh yeah Taurs

* Limbs and Techwebs for them

* 3

* EMP

* Surgery Removals from Synths

* 5

* test

* Look Ma, no more surgery

* Update tgstation.dme

* Update hepatectomy.dm

* little bit more edit cleanup and diff reset

* Update surgery.dm

* Synth Organ Surgery!

* Update lungs.dm

* target

* 4

* Update synth_defines.dm

* you add the metal before the zap zap

* Apply suggestions from code review

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* 1

* Update code/modules/surgery/hepatectomy.dm

* Update code/modules/surgery/advanced/brainwashing.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>

* Update tgstation.dme

* fix stuff

* Update declarations.dm

* fix duplicate defines

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: Zergspower <22140677+Zergspower@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Andrew <mt.forspam@gmail.com>
2024-08-11 19:56:17 +05:30
necromanceranne 7088097eb8 [NO SELF SURGERY] Cybernetically augmented humanoids have alternative surgeries (both standard and advanced) [NO SELF SURGERY], as well as other misc additions (#84980)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

### Cybernetic variant surgeries

Many of the surgeries able to be performed on organic limbs now have a
version for robotic limbs. This includes;

### NONE OF THESE ARE SELF SURGERY OPTIONS

- Organ repair surgeries
- Stomach Pumps
- Blood filtering
- Autopsies
- Lobotomies
- Pacification
- Lipoplasty
- Amputation
- Brainwashing (including the Sleeper Agent protocol)
- Nerve Splicing and Nerve Grounding
- Vein Threading and Vein Muscle Membrane
- Ligament Hook and Ligament Reinforcement
- Cortex Folding and Cortex Imprint

These utilize mechanical steps and unique versions of their special step
that uses mechanical tools. But many of these are able to be performed
using standard surgery tools.

In fact, I've improved the chances for doing surgery using standard
tools for mechanical steps, recognizing that medical is often going to
end up with synths in medbay whether we like it or not.

### NONE OF THESE ARE SELF SURGERY OPTIONS

### Organ Repair Surgeries correct EMP Failure Cascades

When you repair a synthetic organ using the organ repair surgery, it
reverses the effects of organ failure from an EMP. That is, the
permanent failure of an organ. This allows for an alternative method to
replacing that organ wholesale, which makes treating synths a lot easier
for medical and EMPs less of a RNG death knell for people with
cybernetic organs. However, it still needs the surgery to correct the
error, so this isn't removing the danger of being EMP'd.

### Health Scanners report EMP Failure Cascades

Scanning someone with a cybernetic organ now actually tells you that the
organ is failing. Wow, why wasn't this already the case?

## Why It's Good For The Game

#### Surgeries

With the new techweb changes, augmented crew are becoming a lot, lot
more common place, as are the implantation of cybernetics. These are
required for research to be able to progress both medical and robotics
technology. Therefore, those using these items are becoming a lot more
common place.

However, our medical system is quite blind to these people as of the
moment. A lot of surgeries that are critical to recovering the
injured/dead do not work on them outright, and medical can't resolve the
problems that come with cybernetic organs entirely.

This change hopefully modernizes our surgeries to account for these
synthetic/cybernetically-altered crew members that neither forces people
to choose between taking them to medical or robotics (they're often
going to end up in medical regardless), and letting either department to
function as a place for these crew to obtain medical services.

Also gives them some cooler flavour to their surgeries, which I think is
the most important part of this change. It actually feels like you're
more than human without getting too much in the way of gameplay loops
and over complicating things.

Edit: To provide a bit of extra clarity on 'Why allow the advanced
surgeries?'

You can actually have the benefits of the advanced surgeries as an
augmented humanoid. The problem is that it has to take place before you
are augmented. They're not mutually exclusive, just slow to apply. There
isn't much reason for there not to be a method to apply them to robotic
people, particularly since augmentations are expected earlier in the
round than advanced surgeries.

#### EMP Failure and Detection

This mechanic is probably what people hate the most about cybernetics.
It is largely invisible, and forces you to have to go through a tedious
process of organ replacement on what could be any one of your organs,
since it wasn't being broadcast to the user which one is failing until
you are possibly already doubling over.

Now, it is easier for medical staff to identify if they have a
cybernetically enhanced patient in the midst of a failure cascade, and
have the means to resolve the problem. Robotics and cyborgs can too,
since sometimes they'll have the means usually to do the same operations
and detection.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Robotic variants of many of the standard and advanced humanoid
surgeries. You cannot perform self surgery with these surgeries.
balance: It is easier to do robotic surgeries with normal surgery tools.
qol: It is now possible to detect EMP organ failure cascades via health
scanners.
qol: EMP organ failure cascades can be reversed by doing organ repair
surgeries targeting the failing organ.
/🆑

<!-- 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. -->

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-07-22 18:07:05 +01:00
SkyratBot 8a8c4da327 [MIRROR] Fixes certain surgery failure states not properly updating surgery moods (#28198)
* Fixes certain surgery failure states not properly updating surgery moods

* wew

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2024-06-15 18:54:26 +01:00
Afevis eba7298ce0 Fixes certain surgery failure states not properly updating surgery moods (#83976)
Closes #83956 (which doesn't actually fix the issue that a few possible
ways to fail surgery were missed.)
Fixes #83932

🆑 ShizCalev
fix: Fixed some surgery failure states not properly setting the correct
mood event.
refactor: Minor refactor to how surgery events work, there is now better
support for per-surgery mood events!
/🆑
2024-06-14 23:54:46 -06:00
SkyratBot a87c5b55ac [MIRROR] Getting surgically cut open while conscious will now give you the "THEY'RE CUTTING ME OPEN!!" surgical mood event. (#28074)
* Getting surgically cut open while conscious will now give you the "THEY'RE CUTTING ME OPEN!!" surgical mood event.

* Update surgery_step.dm

---------

Co-authored-by: Afevis <ShizCalev@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-06-10 11:54:57 +05:30
Afevis 9e11a5c71d Getting surgically cut open while conscious will now give you the "THEY'RE CUTTING ME OPEN!!" surgical mood event. (#83797)
Implements an unused mood event found in #83741

🆑 ShizCalev
fix: Getting surgically cut open while conscious will now give you the
"THEY'RE CUTTING ME OPEN!!" surgical mood event.
/🆑
2024-06-08 19:18:55 -04:00
vinylspiders ae3a8acb8e * Turns mush cap into an extorgan
* Trimming the fat

* Trimming the fat

* Update mushpeople.dm

* Adds colorblindness as a mild brain trauma (#76527)

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

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

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

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

---------

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

* Fix species `var/hair_color` not being used for, well, hair color (#82168)

`var/hair_color` for species was intended to be used as a "this species
uses this type of hair color thing"

But at some point that got completely lost and now it's only used for
sprite accessories

This fixes that. That means Slimepeople now have properly slimey hair.
And Ethereals are less snowflake once more.

🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors.
/🆑

* Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)"

This reverts commit c4cb756.

* Revert "Adds colorblindness as a mild brain trauma (#76527)"

This reverts commit eb815f5.

* Update _species.dm

* unused var

* Caps list..

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Update mushpeople.dm

* Attempts to fix CI errors

* Update cap.dm

* Update _external_organ.dm

* Update monkey.dm

* Revert "Update monkey.dm"

This reverts commit 29f54c8.

* Revert "Update _external_organ.dm"

This reverts commit 8de5ea7.

* Update _external_organ.dm

* Revert "Update _external_organ.dm"

This reverts commit 644cc56.

* Fix CI maybe?

* Update cap.dm

* Update DNA.dm

* Some cleanup/updating to upstream

* Update global_lists.dm

* Mush

* Update mushpeople.dm

* Hopefully the last fix

* Doing this differently

* Update organ.dm

* Update organ.dm

* Update organ.dm

* Update organ.dm

* Update organ.dm

* OK

* Update organ.dm

* Update podpeople.dm

* maybe

* Hm

* Hm

* Will this break things?

* Revert "Will this break things?"

This reverts commit bd288c6.

* Test

* Update organ.dm

* Update organ.dm

* Revert "Update organ.dm"

This reverts commit ca77ff9.

* Update organ.dm

* .

* .

* .

* Update snail.dm

* Monkeys now use height offset (and monkey tail works) (#81598)

This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).

This reverts a lot of changes from
tgstation/tgstation#73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.

I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).

Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):

Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)

* Removes unneeded files

* Revert "Removes unneeded files"

This reverts commit 6469d37.

* .

* ok

* Update tails.dm

* Update monkey.dm

* Fix monkey screenshot test

* Update species.dm

* Update reinf_walls.dm

* Maintenance

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
2024-05-23 02:37:43 +02:00
SkyratBot a8ec7cae71 [MIRROR] Makes Bioware into Status Effects because they're just Status Effects but their own datum (#27008)
* Makes Bioware into Status Effects because they're just Status Effects but their own datum (#81989)

- Refactors `/datum/bioware` -> `/datum/status_effect/bioware`.
- Literally everything bioware datum does is done by the status effect
API, including handing dupes / unique keys
- Tallies all blackbox surgeries done rather than just nerve splicing

* Makes Bioware into Status Effects because they're just Status Effects but their own datum

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-04-04 13:32:16 -04:00
MrMelbert a8fc9cf7e2 Makes Bioware into Status Effects because they're just Status Effects but their own datum (#81989)
- Refactors `/datum/bioware` -> `/datum/status_effect/bioware`. 
- Literally everything bioware datum does is done by the status effect
API, including handing dupes / unique keys
- Tallies all blackbox surgeries done rather than just nerve splicing
2024-03-23 21:01:28 +00:00
SkyratBot 3b01d00ada [MIRROR] Makes HMS (and uncurable severity diseases) actually uncurable. [MDB IGNORE] (#22352)
* 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.

* Makes HMS (and uncurable severity diseases) actually uncurable.

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
2023-07-12 19:03:55 +00:00
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
SkyratBot 90f2ff4854 [MIRROR] Moves species brutemod and burnmod to be handled by bodyparts [MDB IGNORE] (#21903)
* Moves species brutemod and burnmod to be handled by bodyparts

* Fixes compilation issues and updates the brute and burn mods on our own species

* Re-ticks the ashwalker bodyparts

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-01 15:25:44 -04:00
ChungusGamer666 f07b74ea90 Moves species brutemod and burnmod to be handled by bodyparts (#76060)
## About The Pull Request

Title.
Brute modifier and burn modifier are now handled by bodyparts. Cold
modifier and heat modifier are still handled by species, though
mmmmmaybe I'll make a PR addressing those later, yes?

## Why It's Good For The Game

Medical abominations will have even more consistent behavior!
Also bloating the species datum less is kinda good.

## Changelog

🆑
refactor: Species brute and burn damage modifiers are now handled by
bodyparts, instead of being universal. Go ham at the surgical bay.
/🆑
2023-06-17 18:46:27 +02:00
SkyratBot 3464b6bfb2 [MIRROR] Refactors Regenerate Organs, and a few organ helpers [MDB IGNORE] (#20094)
* Refactors Regenerate Organs, and a few organ helpers

* MERGE CONFLICTS

* GETORGANSLOT > GET_ORGAN_SLOT

* GETORGAN > get_organ_by_type

* lint repairs

* more lint

* Update tgstation.dme

* Update surgery_step.dm

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 02:51:06 +01:00
SkyratBot 6e029611ac [MIRROR] Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test [MDB IGNORE] (#19959)
* Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test

* MISSED MIRROR https://github.com/tgstation/tgstation/pull/71606

* Update modules_supply.dm

* Update tgstation.dme

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-27 03:26:52 +01: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
san7890 bf6f81a9b5 Implements AddTraits and RemoveTraits procs for adding/removing multiple traits + swag unit test (#74037)
On the tin, doing it like this means we can reduce our overall line
fingerprint whenever we have to add two or more traits from the same
source on the same target. Especially helps when we get to the 4+ range
of traits, a breath of fresh air even.

Doesn't mean we have to do for loops, as that's already handled within
the define as well. I replaced some of the checks with `length()`
checks, let me know if I should switch it over to something else (maybe
`islist()`)? We stack_trace whenever we're not passed a list reference
on purpose, and sometimes var/lists are null by default (or just empty,
making this redundant).
## Why It's Good For The Game

I commonly feel the urge to write "use `AddTraits()`" or something in
reviews, then am sad when I remember it doesn't exist. I will no longer
be sad.

Can ensure a lot more trait safety as well by using static lists- when
both ADD_TRAIT_LIST and REMOVE_TRAIT_LIST re-use the same list, you are
confident (from a static point of view) that everything that you want to
be adding/removing works.

I may have missed a few things where this could be used, but both macros
implemented in this PR still use the same framework that was being used
in the last four years- so stuff won't break if left untouched. Just a
nifty new tool for developers.

also fixed up some code in the area, numerous bugs were found and
exploded
2023-03-18 01:57:06 +00:00
SkyratBot 92397eba00 [MIRROR] Moth Wing Reconstruction surgery works [MDB IGNORE] (#19423)
* Moth Wing Reconstruction surgery works (#73486)

## About The Pull Request

Moth wings only allow themselves to be healed if the proc is called with
HEAL_ORGAN or HEAL_LIMB
So we just make the surgery force healing
## Why It's Good For The Game

Resolves https://github.com/tgstation/tgstation/issues/73485
## Changelog
🆑
fix: Moth wings can now correctly be healed
/🆑

* Moth Wing Reconstruction surgery works

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-02-18 14:09:27 -08:00
Zephyr 069de4f336 Moth Wing Reconstruction surgery works (#73486)
## About The Pull Request

Moth wings only allow themselves to be healed if the proc is called with
HEAL_ORGAN or HEAL_LIMB
So we just make the surgery force healing
## Why It's Good For The Game

Resolves https://github.com/tgstation/tgstation/issues/73485
## Changelog
🆑
fix: Moth wings can now correctly be healed
/🆑
2023-02-18 14:18:06 -07:00
SkyratBot aae3666cd6 [MIRROR] Makes nerve splicing surgery reduce stamina damage [MDB IGNORE] (#18837)
Makes nerve splicing surgery reduce stamina damage (#72661)

## About The Pull Request

Makes nerve splicing surgery also reduce stamina damage by 20% (amount
of stun/stamina reduction can be changed if requested).

## Why It's Good For The Game

Most of stun sources now come from stamina damage, so this surgery is
kinda useless in most cases. This PR makes it more usefull in the
current combat system, while not making it too OP.

## Changelog

🆑
balance: Nerve splicing surgery now additionaly reduces stamina damage
taken by 20%
/🆑

Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
2023-01-20 12:06:56 -08:00
SuperSlayer 5cb8a9843b Makes nerve splicing surgery reduce stamina damage (#72661)
## About The Pull Request

Makes nerve splicing surgery also reduce stamina damage by 20% (amount
of stun/stamina reduction can be changed if requested).

## Why It's Good For The Game

Most of stun sources now come from stamina damage, so this surgery is
kinda useless in most cases. This PR makes it more usefull in the
current combat system, while not making it too OP.

## Changelog

🆑
balance: Nerve splicing surgery now additionaly reduces stamina damage
taken by 20%
/🆑
2023-01-20 18:16:56 +00:00
SkyratBot f31ab6f6c0 [MIRROR] Surgery code improvements [MDB IGNORE] (#17614)
* Surgery code improvements

* missed flag

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-11-25 02:00:09 +00:00
John Willard 3b0794eca9 Surgery code improvements (#71182)
## About The Pull Request

* Changes a lot of things about surgeries to hopefully bring it up to
more modern code standards.
* Removes a ton of single-letter vars used in checking surgeries on
people.
* Makes use of continue/break in for() loops.
* Properly documents the vars on surgeries
* Turns 'ignore clothes', 'self operating', 'lying required', 'require
limb' and 'require real limb' from vars into surgery flags
* Removes a lot re-defines of target_mobtype being set to human, as
that's the base anyways.
* Also tries to organize the vars on each surgery a bit.
* Makes the surgery initiator hopefully a little bit more sane
* Removes the surgery's can_cancel and stomach pump's
accumulated_experience vars, as they were entirely unused.

## Why It's Good For The Game

I looked at surgery code and couldn't stand it, this is hopefully
helping bring it to something we can stand.
This however doesn't touch the individual surgery steps.

## Changelog

im exhausted i don't know if this has in-game effects
2022-11-20 23:22:46 -08:00
SkyratBot 18f5c90c41 [MIRROR] Surgery computers tell which tool to use. [MDB IGNORE] (#17353)
* Surgery computers tell which tool to use. (#70973)

## About The Pull Request

![image](https://user-images.githubusercontent.com/105025397/199194075-d1a3b42a-5c2e-4a02-84d1-84b4be2b601b.png)

All surgery step names, displayed in the surgical computer, will now
show which tool to use for that step in parentheses. In cases where
multiple tools have a 100% success chance, all are listed; if no tool
has a 100% chance then the "correct" one is shown.

Surgery computers will never display "alternate" tools for surgeries
(those with a lower success chance), but this shouldn't be a problem.
Surgical computers are _usually_ in places with surgical tools at hand,
and NanoTrasen wouldn't want to encourage doing brain surgery with a
screwdriver. Y'know, probably.
## Why It's Good For The Game

Firstly, this change is particularly helpful to new players. If you have
little experience with surgery, it's not always clear which tool you're
meant to use for which step. This is especially true for some of the
odder surgeries - if you didn't already know, it's not clear at all that
"brainwash" means "use a hemostat". While there are certainly guides on
the wiki, it's nice to have as much information provided in-game as
possible.

Secondly, this change brings consistency. A _small_ number of surgical
steps (healing broken bones, namely) already do this! I see no reason
why this shouldn't be extended to the remaining surgical steps,
especially because it's not particularly obtrusive to the surgery
computer interface.
## Changelog
🆑
qol: Made surgical computers tell you what tool to use for the current
surgical step.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Surgery computers tell which tool to use.

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-04 10:57:49 -07:00
lizardqueenlexi 588779256e Surgery computers tell which tool to use. (#70973)
## About The Pull Request


![image](https://user-images.githubusercontent.com/105025397/199194075-d1a3b42a-5c2e-4a02-84d1-84b4be2b601b.png)

All surgery step names, displayed in the surgical computer, will now
show which tool to use for that step in parentheses. In cases where
multiple tools have a 100% success chance, all are listed; if no tool
has a 100% chance then the "correct" one is shown.

Surgery computers will never display "alternate" tools for surgeries
(those with a lower success chance), but this shouldn't be a problem.
Surgical computers are _usually_ in places with surgical tools at hand,
and NanoTrasen wouldn't want to encourage doing brain surgery with a
screwdriver. Y'know, probably.
## Why It's Good For The Game

Firstly, this change is particularly helpful to new players. If you have
little experience with surgery, it's not always clear which tool you're
meant to use for which step. This is especially true for some of the
odder surgeries - if you didn't already know, it's not clear at all that
"brainwash" means "use a hemostat". While there are certainly guides on
the wiki, it's nice to have as much information provided in-game as
possible.

Secondly, this change brings consistency. A _small_ number of surgical
steps (healing broken bones, namely) already do this! I see no reason
why this shouldn't be extended to the remaining surgical steps,
especially because it's not particularly obtrusive to the surgery
computer interface.
## Changelog
🆑
qol: Made surgical computers tell you what tool to use for the current
surgical step.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-04 01:00:12 -07:00
SkyratBot f6f9b6f2f3 [MIRROR] The Great Species Dedatumming 2: Makes external organs operable [MDB IGNORE] (#15530)
* The Great Species Dedatumming 2: Makes external organs operable

* Fixes merge conflicts

* Partly fixes taur bodies (makes them external and use the mob sprite as their icon)

Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-08-12 20:01:39 -04:00
Time-Green 7db523ec3e The Great Species Dedatumming 2: Makes external organs operable (#68877)
Finally makes external organs (horns, moth wings, antennae etc.) operable!
Also adds a new surgery: feature manipulation. It's a shorter version of organ manipulation that only lets you operate on species features. Note that organ manipulation can operate only on internal organs.
2022-08-10 21:33:52 +03:00
SkyratBot 6016cf97b4 [MIRROR] individual LOG_GAME [MDB IGNORE] (#15401)
* individual LOG_GAME

* e

* Update teleporter.dm

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-08-08 01:11:55 +01:00
Mooshimi b09f3868f8 individual LOG_GAME (#68683)
About The Pull Request

    replaces a ton of log_game with user.log_message so the log is added to individual and global logs.
    adds a few logs for individual LOG_VICTIM, LOG_ATTACK etc logging.
    adds logging for bluespace launchpad's tele coords being changed.
    took the word "has" out of log_combat, as it's extra and just lengthens the log.

Why It's Good For The Admins

It's extremely laggy to open game.txt so an alternative is individual game logs
Changelog

cl
admin: A lot of game logs will now also be in individual game logs, for convenience in log diving.
admin: Added logging for bluespace launchpad x and y offset changes, which go to individual game logs.
admin: Attack logs will now be slightly shorter, one useless word was removed.
/cl
2022-08-05 09:32:02 +12:00
SkyratBot f8d47a63e7 [MIRROR] Fixes surgical moth wing reconstruction trying to repair not moth wings. [MDB IGNORE] (#15228)
* Fixes surgical moth wing reconstruction trying to repair not moth wings.

* Update wingreconstruction.dm

Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2022-07-31 14:09:26 +01:00
ShizCalev 7082dc4254 Fixes surgical moth wing reconstruction trying to repair not moth wings. (#68774)
Fixes moth wing repair surgery runtime
2022-07-28 00:54:22 +03:00
SkyratBot 0a1f06a2d1 [MIRROR] This tail refactor turned into an organ refactor. Funny how that works. [MDB IGNORE] (#14017)
* This tail refactor turned into an organ refactor. Funny how that works.

* Firstly, fixing all the conflicts.

* Fixes all our maps (hopefully)

* Actually, this should fix pod people hair :)

* Almost everything is working, just two major things to fix

* Fixed a certain kind of external organ

* Cleaning up some more stuff

* Turned tail_cat into tail because why the fuck are they separate?

* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file

* Adds relevant_layers to organs to help with rendering

* Makes stored_feature_id also check mutant_bodyparts

* Fixes the icon_state names of ALL the tails (pain)

* Fixes wagging, gotta refactor most mutant bodyparts later on

* I Love Added Failures

* Fixed some organs that slipped through my searches

* This could possibly fix the CI for this?

* It doesn't look like it did fix it

* This will make it pass, even if it's ugly as sin.

* Fixed Felinids having a weird ghost tail

* Fixes instances of snouts and tails not being properly colored

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2022-06-11 23:20:16 -04:00