Commit Graph

1606 Commits

Author SHA1 Message Date
John Willard
ee1aba7a32 pumping your heart doesnt require to be conscious (#63290)
Simply removes the requirement to be conscious to pump your blood with a cursed heart.
Why It's Good For The Game

Entering crit or falling asleep is basically a life sentence since you are unable to pump your blood while asleep. The player still is manually pumping it, I don't see any reason why the user has to be awake for it.
This also means medical can't revive you, as you'll instantly lose all your blood before you have enough time to wake up to start pumping again. The only IC fix would be to remove your heart entirely, something most doctors wouldn't even notice.
Changelog

cl
fix: You can manually pump your blood while asleep/in crit, rather than instantly lose all your blood and die forever.
/cl
2022-09-30 10:53:05 +13:00
John Willard
edafd89abe Native FOV is tied to eyes, Flypeople don't have native FOV (#69913)
About The Pull Request
Native FOV is now tied to the eyes instead of the mob, and Flypeople are immune to it.
This doesn't affect TG because it's disabled in config, but I played on a server that does have it enabled, and I found it strange that Flypeople had it.

Why It's Good For The Game
Quickly searching it up says that Flies can see nearly in 360, so I think this should be reflected in-game too.
It give Flypeople a small benefit to being flashable from all directions, and while it could be implanted in regular humans, they'd have to then live with them big ol' eyes.
2022-09-29 10:30:27 -07:00
John Willard
dafbcf29bd Prosthetic surgery now checks if you can attach the bodypart (#70157)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-09-27 22:30:24 -07:00
John Willard
243231eb48 Properly checks flags with & instead of == (#70130)
* Makes flags properly check themselves

Byond ref: https://www.byond.com/docs/ref/#/operator/&
Basically, flags should use & instead of ==
We can have more than 1 slot on any item, so it's preferred that we do this instead. Even if it doesn't immediately fix any problems, it's something that should be the standard anyways to prevent it from ever being a problem.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-09-27 21:51:45 +00:00
LemonInTheDark
23bfdec8f4 Multiz Rework: Human Suffering Edition (Contains PLANE CUBE) (#69115)
About The Pull Request

I've reworked multiz. This was done because our current implementation of multiz flattens planes down into just the openspace plane. This breaks any effects we attach to plane masters (including lighting), but it also totally kills the SIDE_MAP map format, which we NEED for wallening (A major 3/4ths resprite of all wall and wall adjacent things, making them more then one tile high. Without sidemap we would be unable to display things both in from of and behind objects on map. Stupid.)

This required MASSIVE changes. Both to all uses of the plane var for reasons I'll discuss later, and to a ton of different systems that interact with rendering.

I'll do my best to keep this compact, but there's only so much I can do. Sorry brother.
Core idea

OK: first thing.
vis_contents as it works now squishes the planes of everything inside it down into the plane of the vis_loc.
This is bad. But how to do better?

It's trivially easy to make copies of our existing plane masters but offset, and relay them to the bottom of the plane above. Not a problem. The issue is how to get the actual atoms on the map to "land" on them properly.

We could use FLOAT_PLANE to offset planes based off how they're being seen, in theory this would allow us to create lens for how objects are viewed.
But that's not a stable thing to do, because properly "landing" a plane on a desired plane master would require taking into account every bit of how it's being seen, would inherently break this effect.

Ok so we need to manually edit planes based off "z layer" (IE: what layer of a z stack are you on).

That's the key conceit of this pr. Implementing the plane cube, and ensuring planes are always offset properly.
Everything else is just gravy.
About the Plane Cube

Each plane master (except ones that opt out) is copied down by some constant value equal to the max absolute change between the first and the last plane.
We do this based off the max z stack size detected by SSmapping. This is also where updates come from, and where all our updating logic will live.

As mentioned, plane masters can choose to opt out of being mirrored down. In this case, anything that interacts with them assuming that they'll be offset will instead just get back the valid plane value. This works for render targets too, since I had to work them into the system as well.

Plane masters can also be temporarily hidden from the client's screen. This is done as an attempt at optimization, and applies to anything used in niche cases, or planes only used if there's a z layer below you.
About Plane Master Groups

BYOND supports having different "maps" on screen at once (IE: groups of items/turfs/etc)
Plane masters cannot cover 2 maps at once, since their location is determined by their screen_loc.
So we need to maintain a mirror of each plane for every map we have open.

This was quite messy, so I've refactored it (and maps too) to be a bit more modular.

Rather then storing a list of plane masters, we store a list of plane master group datums.
Each datum is in charge of the plane masters for its particular map, both creating them, and managing them.

Like I mentioned, I also refactored map views. Adding a new mapview is now as simple as newing a /atom/movable/screen/map_view, calling generate_view with the appropriate map id, setting things you want to display in its vis_contents, and then calling display_to on it, passing in the mob to show ourselves to.

Much better then the hardcoded pattern we used to use. So much duplicated code man.

Oh and plane master controllers, that system we have that allows for applying filters to sets of plane masters? I've made it use lookups on plane master groups now, rather then hanging references to all impacted planes. This makes logic easier, and prevents the need to manage references and update the controllers.

image

In addition, I've added a debug ui for plane masters.
It allows you to view all of your own plane masters and short descriptions of what they do, alongside tools for editing them and their relays.

It ALSO supports editing someone elses plane masters, AND it supports (in a very fragile and incomplete manner) viewing literally through someone else's eyes, including their plane masters. This is very useful, because it means you can debug "hey my X is yorked" issues yourself, on live.

In order to accomplish this I have needed to add setters for an ungodly amount of visual impacting vars. Sight flags, eye, see_invis, see_in_dark, etc.

It also comes with an info dump about the ui, and plane masters/relays in general.

Sort of on that note. I've documented everything I know that's niche/useful about our visual effects and rendering system. My hope is this will serve to bring people up to speed on what can be done more quickly, alongside making my sin here less horrible.
See https://github.com/LemonInTheDark/tgstation/blob/multiz-hell/.github/guides/VISUALS.md.
"Landing" planes

Ok so I've explained the backend, but how do we actually land planes properly?
Most of the time this is really simple. When a plane var is set, we need to provide some spokesperson for the appearance's z level. We can use this to derive their z layer, and thus what offset to use.

This is just a lot of gruntwork, but it's occasionally more complex.
Sometimes we need to cache a list of z layer -> effect, and then use that.
Also a LOT of updating on z move. So much z move shit.

Oh. and in order to make byond darkness work properly, I needed to add SEE_BLACKNESS to all sight flags.
This draws darkness to plane 0, which means I'm able to relay it around and draw it on different z layers as is possible. fun darkness ripple effects incoming someday

I also need to update mob overlays on move.
I do this by realiizing their appearances, mutating their plane, and then readding the overlay in the correct order.

The cost of this is currently 3N. I'm convinced this could be improved, but I've not got to it yet.
It can also occasionally cause overlays to corrupt. This is fixed by laying a protective ward of overlays.Copy in the sand, but that spell makes the compiler confused, so I'll have to bully lummy about fixing it at some point.
Behavior changes

We've had to give up on the already broken gateway "see through" effect. Won't work without managing gateway plane masters or something stupid. Not worth it.
So instead we display the other side as a ui element. It's worse, but not that bad.

Because vis_contents no longer flattens planes (most of the time), some uses of it now have interesting behavior.
The main thing that comes to mind is alert popups that display mobs. They can impact the lighting plane.
I don't really care, but it should be fixable, I think, given elbow grease.

Ah and I've cleaned up layers and plane defines to make them a bit easier to read/reason about, at least I think.
Why It's Good For The Game
<visual candy>

Fixes #65800
Fixes #68461
Changelog

cl
refactor: Refactored... well a lot really. Map views, anything to do with planes, multiz, a shit ton of rendering stuff. Basically if you see anything off visually report it
admin: VV a mob, and hit View/Edit Planes in the dropdown to steal their view, and modify it as you like. You can do the same to yourself using the Edit/Debug Planes verb
/cl
2022-09-27 20:11:04 +13:00
Tim
9b9337de49 Add speech modifier to zombie tongue (#69899)
About The Pull Request

A zombie rotten tongue has a complex language modifier.
The language modifier works by:

    All occurrences of characters "eiou" (case-insensitive) are replaced with "r".
    All characters other than "zhrgbmna .!?-" (case-insensitive) are stripped.
    Multiple spaces are replaced with a single.
    Lower-case "r" at the end of words replaced with "rh".
    An "a" or "A" by itself will be replaced with "hra".
    The first character is capitalised.

Some interesting dialogue examples:

    Bab, am gaa habbah abah zah namrh ah Bh!rh!b?
    Bob, are you happy about the death of Philip?

    Zah bang bang man ganna harm mah zambah?
    Will the Zombie Hunter attack me?

    Mah zambah nah harm brazzarz.
    I do not hurt brothers.

    Mah zambah ganna gangbang harmanz zammarrar.
    I will kill humans tomorrow.

    Mah zambah am nah habbah, an mah zambah gab, -Graaaagh!-
    I am not happy, and I say "Graaaagh!"

The language idea was taken from a zombie game back in 2005 called Urban Dead. It's no longer developed and I made all the code myself while following the given language rule structures.

Zombie Speech Translator
Zombie Language Examples
Zombie Dictionary
Why It's Good For The Game
Abracadabra - The Steve Miller Band

    Ah raab zha brahnz ahn zarh hagh, (I love the brains in your head)
    Ah ganna barg abgrah gangbang, (I'm gonna eat them when you're dead)
    Az rahnah zarh ranz ahn hahg ahahz, (Now as you run and hide away)
    Zarh harh mah zambah az hah zahz: (You hear my zombie as he says:)
    Abra-abra-gababra, (Abra-abra-cadabra)
    Ah ganna rahg arg ahn grab zarh! (I'm gonna reach out and grab ya!)
    Abra-abra-gababra, (Abra-abra-cadabra)
    Ah ganna rahg arg ahn grab zarh! (I'm gonna reach out and grab ya!)

Changelog

cl
add: Rotten zombie tongue has a new speech modifier that converts spoken language into zombie sentences. If the person speaking is a high-functioning zombie this is bypassed.
/cl
2022-09-25 13:25:01 +13:00
MrMelbert
45516f4741 Adds macros to help with common set_- and adjust_timed_status_effect uses (#69951)
* Adds helpers for status effect application
2022-09-24 11:04:26 -04:00
Marina
d5b3bcc299 Oops! All prosthetics! Adds -6 quirk with all prosthetic limbs + Icon Tutorial (#69743)
Co-authored-by: BordListian <bordlistian@hotmail.de>
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-09-23 23:39:26 -07:00
Kapu1178
ab6dcbf4ca Virtual Limbsanity (#69841)
* virtual limbsanity

* remove old file

* indent fail

* dumbassery cleanup

* unlint + tweak

* stop coding while high

* internal screaming

* kill another species dependancy

* make sure it has a default

* makes the unit test actually work

* fix monkeys
2022-09-21 20:07:10 -07:00
MrMelbert
6baebf47a1 Completely refactors hallucinations, and also adds a few (#69706)
* Refactors hallucinations slightly, organizes them

* Refactors hallucination into a status effect

* Further hallucination proper refactoring

* Refactors battle hallucinations

* Refactors "fake item other" hallucination

* Gets it a bit closer to working state

* Refactors screwydoll and fake alerts

* Refactors fake inhand items

* Refactors a few more.
- Fake death
- Fake messages
- Fake sounds
- Projectiles

* Refactoring delusions, hallucination effects

* Furthering the hallucination status effect
- removes copypaste of hallucination pulses

* Almost finalizes the changeover to status effect

* Last staus effect stuff

* Delusion business

* Airlocks, fire, and more delusion stuff

* Finishes screwyhud. It compiles now!

* Swaps screwyhud over to a grouped status effect

* Removes hal_screwyhud

* Comment

* Bugfixing

* image cleaning

* Get rid of this it came back

* What if I finished this branch?

* Oops

* Messing with the randomness

* Mass hallucination tweaks

* +

* Some more mass tweaks

* Review

* Updates

* Unit tests hallucination icons

* More tweaks

* Move folder

* Another re-name

* Minor tweaks

* Anomaly unity

* Mass hallucination buffs

* t

* Sig

* Merge

* Lints

* Unit test already coming in clutch

* Another failure

* Use named args for cause_hallucination via some define trickery

* Some cleanup

* This is better

* adds some hallucinations

* Oops

* More sounds

* Tweaks

* Some additional documentation

* Flash

* Fixes mass hallucination

* Json changes

* Updates documentation

* Json conflicts

* Makes it work

* Missed that one too

* Helpers

* More signalization (WIP)

* Fixes bump

* Missed a helper use

* Dumb
2022-09-21 01:30:04 -04:00
Jackraxxus
9a34da74d1 Updates Liver Failure Eyes Examine Text (#69967)
So when livers fail it adds something about eyes to the carbon's examine text. The 2nd state of eye yellowness used a static he, that has been replaced by a helper to get the correct pronoun. The 3rd state didn't capitalise the first pronoun use and followed it up with a static they, that has also been replaced by a pronoun helper.
2022-09-18 13:27:51 -07:00
itseasytosee
48250f603e Makes flash hyper vulnerability based on negative flash resistance modifier, removes snowflake trait. (#69530) 2022-09-16 19:27:08 -07:00
Profakos
c4d58d2ff5 Robot heads no longer have bleeding eyeholes (#69830)
* Repainting cyborg limbs fixed

* Robotic eyeholes no longer bleed

* Moves check for bleeding robot eyes to a different section

* Revert "Repainting cyborg limbs fixed"

This reverts commit 201f1688460f662565246d8cf71ee8eeea579c39.
2022-09-14 14:01:04 -04:00
Wallem
9db3ccd13b Fixes the tonal indicator for sign language (#69834)
About The Pull Request

fixes #69229

I originally had it so the indicator would only be forcibly removed whenever a new message with a tone would be sent, so people could more easily see what mood was being conveyed on the little emoji. That didn't turn out to work as well as I thought it would, as it turns out it just caused an error whenever you sent a normal message right after a tonal one.
Now, every message sent will remove the previous tonal indicator
2022-09-11 21:04:04 -07:00
Marina
fcaa0b24db Alphabetized, fixed spelling error, clarifying event descriptions. Polish (#69707)
About The Pull Request

Alphabetized several long lists of strings so its easier for us to look through them, just code polish, nothing the players would see.

Fixed some minor spelling errors as well.

Clarified door bolt state to be less ambiguous in the door wiring gui.
Originally it would say the door bolts have fallen, and the door bolts "Look up". i dont know about you but that was very not clear for me to read. Like where are the bolts? In the door or the frame? Arnt there bolts on top and bottom? Just didn't make sense to me.

Now it says "Have engaged!" & "Have disengaged"
hopefully that makes the state clearer at a glance.

I also added a small handful of funny texts to some string files. See changelog
Why It's Good For The Game

Well, who doesn't like a bit of polish? Just makes the game a little easier for people.
Also funny text funny text.
Changelog

spelling: improves spelling and adds more flavortext
2022-09-11 21:51:01 +12:00
John Willard
a02ae46bb4 Fixes SaturnX (#69765) 2022-09-08 17:28:50 -07:00
itseasytosee
c8b89a6e21 Stomach get_availability() now checks for NO_HUNGER instead of broken trait that no mobs have. (#69674)
* Organtraits

* spellcheck

* etheral

* plasma change

* plasma p2

* appendix

* appendix fix

* Improvments
2022-09-05 22:16:41 -04:00
GuillaumePrata
a9e4aae900 Breathing Pluox while sleeping slowly heals organ damage Take 2: No broken github edition. (#69320)
* Breathing Pluox while sleeping heals organ damage. Also organizes atmos chems, and fixes n2o's var name in lung breathing.
2022-09-03 22:04:59 -04:00
skylord-a52
be0e6efdf6 [IDB IGNORE] [MDB IGNORE] Makes the icons/mob folder sane (#69302)
About The Pull Request

Reorganizes the entire icons/mob folder.

Added the following new subfolders:

    nonhuman-player (this was initially just called "antag", but then I realized guardians aren't technically antags)
    simplemob
    silicon
    effects (for bloodstains, fire, etc)
    simplemob/held-pets (for exactly that -- I wasn't sure if this should go in inhands instead)
    species/monkey

Moves the following stuff:

    All human parts moved into species, with moth, lizard, monkey, etc parts moved to corresponding subfolders. Previously, there were some moth parts in mob/species/moth, and others just loose in mob. Other species were similar.
    icemoon, lavaland, and jungle folders made into subfolders of simplemob
    All AI and silicon stuff, as well as Beepsky et al. into the silicon folder, simplemobs into the simplemob folder, aliens into the nonhuman-player folder, etc.
    Split up animal_parts.dmi into two bodyparts.dmi which were put in their respective folders (species/alien and species/monkey)

Code changes:

    Filepath changes to account for all of this
    Adds a check when performing surgery on monkeys and xenos, because we can no longer assume their limbs are in the same file
    Turns some hardcoded statues and showcases that were built into maps into objects instead

Things I'd like to do in the future but cant be assed right now:

    Remove primarily-antag sprites from simplemob/mob.dmi (Revenant, Morph, etc.) and put them in the nonhuman-player folder
    Split up mutant_bodyparts.dmi into different files for Tizirans, Felinids, monkeys, etc and put them in their own folders. Those may have once been meant primarily for mutated humans but that's now how they're being used right now.
2022-09-03 11:52:54 -07:00
Fikou
79ca96d8bc fixes a few small modsuit bugs (#69618)
the admin suit now has the advanced jetpack instead of the normal one
fixes chestplate unequipping no longer retracting the suit storage item
fixes the surgical processor causing runtimes with medborgs after the modsuit pr
fixes #68166
fixes #68574
2022-09-02 13:52:21 +01:00
tralezab
a88a2f8132 Shadowpeople's healing is from their brain, splits up surgery.dmi (#69543)
About The Pull Request

    Shadowpeople
        brain now holds their healing properties.
            while possible to extract the brain and put them in another species, the burn-in-light downside really makes it a lot more worth it to just stay a shadowperson and enjoy their other benefits than to swap.
        Now use burning eyes from nightmares instead of an unsprited nightvision granting eyeball.
    surgery.dmi split up
        surgery_ui.dmi holds zone selection ui things for research
        surgery_tools.dmi holds surgical tools
        /organs folder holds organs.dmi, and species specific organ files for flies and shadowpeople
            flies don't put in their random organs because of dmi memes, all their UNIQUE organs will be in the .dmi

Why It's Good For The Game

moving behavior onto the organ moves us closer to species as a blueprint, not species as something that magically grants immutable bonuses.
surgery.dmi is poorly described, holds many different things, and conflicts often because of it.
Changelog

cl
add: Shadowpeople now heal from their brains! Their brain-tumor-thingy!
code: split up surgery.dmi
/cl
2022-09-02 10:07:24 +12:00
kawoppi
3504684b12 visualizes *cry emote + getting peppersprayed makes you cry (#69492)
About The Pull Request

Using the *cry emote makes tears come out of your eyes for the next 12.8 seconds (4 loops of the animation). You now cry when you get sprayed with pepperspray. See the demo here.
image

The crying overlay is placed by the eyes organ. I went back to the blush overlay and made it so that it's placed by the head bodypart. Also the blush overlay now gets adjusted based on OFFSET_FACE.

Why It's Good For The Game

It makes the characters more visually expressive. The crying gives pepperspray some more visual feedback, not just when you get hit but while you're recovering from it afterwards as well.
2022-09-01 11:55:54 -07:00
Fikou
e82f728b09 medical/security modsuit updates and modules (#69194)
tweaks the colors on the security modsuit to be lighter, i think i did that on the original pr but it got reverted due to merge conflicts
makes the standard quick carry module have nitrile level carrying instead of latex level
environmental bodybags are now always pressurized
adds medical and security hardlight bags, which are environmental bags you can use to move people through space, security ones can be sinched to prevent escape
adds a medical version of the prisoner capture module, for patient transport, prisoner capture and patient transport now use the medical/security holobags, medical one deploying them faster. when you move too far out of range the holobag dissipates
adds a defibrillator module, extends shock paddles
adds a thread ripper module, this module temporarily rips away the matter of clothing, to allow stuff like injections, surgery, defibrillation etc through it
adds a surgery processor module, essentially a portable surgery computer like borgs have
fixes a bug where you can unwield defibrillator paddles just after starting the do_after to defib onehanded
fixes a bug where the modsuit gps would have a broken name when renamed
2022-08-31 16:59:39 -07:00
itseasytosee
497fa7b23f Monkey trip mechanic removed from AI controller and added to brain. Adds organ based trait system. (#69496)
Alright, big exciting PR.

First big thing! Traits can now be tried to organs which are granted and removed from the mob with the organ.
The traits PRIMATIVE, LITERATE, CAN_STRIP, and ADVANCED_TOOL_USER have been removed from species inherent traits list, because they apply to the species brain in specific, not their whole body.
The baseline brain gives the traits LITERATE, CAN_STRIP, and ADVANCED_TOOL_USER, all species that had these traits have a baseline brain.
Ashwalkers have been given a "primitive brain" which gives ADVANCEDTOOLUSER, CAN_STRIP, PRIMITIVE, and notably not literacy. These give them the same traits as before, but their privative nature and lack of reading followers their brain no matter which body they inhabit.

Monkeys have been given the "primate brain" which gives CAN_STRIP and PRIMITIVE. The monkey's brain now holds the logic for the monkey tripping mechanic instead of the AI datum which is a huge win. Monkeys with clients can also now toggle if they would like to be tripped by people, in order to better blend in. AI monkeys will always have tripping on. I also have implemented my qol monkey tripping changes from #69478 (the videos on that PR are still accurate)

What this means, is a human's brain in a monkey's body will still be able to use tools, read, and even operate mechs. but will still have the other non mental monkey traits like being able to crawl though vents while naked. So lovely.

Conversely a monkey's brain (even a sentient one) that is put in a human body will still be illiterate, and will be unable to use complex tools.

Transforming into a monkey via genetics or other means will also change your brain into a monkey brain (this mechanic existed before now, it just wasn't applicable)

Some of this code might not be up to standard, please give me your corrections.
2022-08-29 11:41:26 -07:00
itseasytosee
506ecc7445 Being in combat mode hits your target with the surgical tool during an ongoing surgery. (#69489)
This is how it worked at some point, I couldn't find what messed it up.
This makes sense, and kills the very odd strategy of starting any surgery on yourself in order to make yourself completely immune from people trying to attack you with scalpels, energy swords, knifes, glass shards, and in fact, any sharp item.
Also, this kills ai monkeys being able to preform surgery on people out of raw monkey spite. Surgery should also probably require IS_ADVANCED_TOOL_USER, but that's a PR for a different day.
2022-08-29 11:35:19 -07:00
tattle
d91390a447 [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) (#69416)
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
2022-08-24 20:49:35 -03:00
MrMelbert
5eedd7aeb1 Fixes runtime when a bodypart recieves damage while disconnected from a body (#69309)
Fixes bodypart recieve damage runtime
2022-08-20 14:20:30 -04:00
Seth Scherer
f1a363c825 Converts a shitload of istypes to their more concise macros (#69260)
* Converts a lot of istypes() to use their istype macro helpers.
2022-08-18 22:08:44 -04:00
Kapu1178
dcd84e1bdc It's 2 am and im having a manic episode so i fixed hair (#69092)
* 2 am coding

* lazylists like this are stupid

* reviews
2022-08-17 17:20:04 -07:00
Kapu1178
2eccf3cea0 Cleans up update_icons, makes the update_icon_updates_onmob element bespoke, updates CODEOWNERS (#69179)
* I just realised this is all one commit.

* hail marry

* fix.

* FIXES IT FOR REAL

* Update code/datums/elements/update_icon_updates_onmob.dm
2022-08-16 13:50:21 -04:00
FernandoJ8
aa2eee2ded De-hardcodes randomize_human() and fixes some related issues along the way (#68876)
* First draft on this branch. Should work.

* Whoopsie

* Some fixes

* And again

* Final draft, question mark?

* Please enter the commit message for your changes

* Uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

* please work

* Saving for the week offline

* Final draft

* Final final draft

* Oh and clean this up

* eah

* Okay, final for real.

* I lied.

* Sure thing boss

* clinclin

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>

* That's all of em I think

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-08-14 19:55:13 -07:00
Kapu1178
622ddda80a Small organ code clean up (#69123)
* Cleans up organ code, removing the EXTERNAL_ORGAN flag, as it can just simply use the external organ subtype instead

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-08-14 11:30:24 -04:00
ShizCalev
7fda960af3 Fixes dental implant pills not working (#69154) 2022-08-13 13:33:57 +08:00
Imaginos16
c7e5ca401c Improved Medical Tools and Medkits by Onule! (#69109)
imageadd: Completely resprites all medkits!
imageadd: Completely resprites all medical tools!
2022-08-12 16:56:58 -04:00
Seth Scherer
34b4034777 Replaces the mood component with a mood datum (#68592)
About The Pull Request

Mood was abusing signals and get component pretty badly, so I redid it as a datum to stop this.
Why It's Good For The CODEBASE

Better code pratices, also gives admins easier tools to manage mood
Changelog

cl
admin: Added two new procs into the VV dropdown menu to add and remove mood events from living mobs.
/cl
2022-08-12 08:59:20 +12: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
Mooshimi
a3121f15c4 [GBP No Update] Perish, individual logging runtime (#69024)
missed 2 or 3(lol it was more when I look back at the files), LOG_GAME tags on the log_message line, and did some cleaning up since i was looking through every log_message again

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2022-08-10 07:56:40 -07:00
ShizCalev
123f68387f Fixes incise heart surgery runtime (#69032)
* Fixes incise heart surgery runtime
2022-08-09 23:30:39 -04:00
Jacquerel
2f492bd88a Splits up 'Gross' food from 'Gore' and reshuffles taste preferences accordingly (#68899)
* Splits up 'gross' food from 'carrion'

* Adds a couple of missed burgers.
Moths dislike Carrion rather than it being poison to them.

* BEES is now BUGS

* It's always safe and a good idea to use find/replace
2022-08-10 04:33:42 +02:00
ShizCalev
a9ec6618b5 fixes warning message that occurs every single time an ethereal dies (#68868)
[20:47:13] Runtime in stack_trace.dm,3: atom_examine overridden. Use override = TRUE to suppress this warning
  proc name: stack trace (/proc/stack_trace)
  src: null
  call stack:
  stack trace("atom_examine overridden. Use o...")
  the crystal core (/obj/item/organ/internal/heart/ethereal): RegisterSignal(Crux V (/mob/living/carbon/human), "atom_examine", /obj/item/organ/internal/heart... (/obj/item/organ/internal/heart/ethereal/proc/on_examine), 0)
  the crystal core (/obj/item/organ/internal/heart/ethereal): on stat change(Crux V (/mob/living/carbon/human), 4, 0)
  Crux V (/mob/living/carbon/human):  SendSignal("mob_statchange", /list (/list))
  Crux V (/mob/living/carbon/human): set stat(4)
  Crux V (/mob/living/carbon/human): set stat(4)
  Crux V (/mob/living/carbon/human): set stat(4)
  Crux V (/mob/living/carbon/human): death(null)
  Crux V (/mob/living/carbon/human): death(null)
  Crux V (/mob/living/carbon/human): death(null)
  Dead Body placer (/obj/effect/mapping_helpers/dead_body_placer): LateInitialize()
  Atoms (/datum/controller/subsystem/atoms): InitializeAtoms(null, null)
  Atoms (/datum/controller/subsystem/atoms): Initialize(27974)
  Master (/datum/controller/master): Initialize(10, 0, 1)
2022-08-05 12:41:14 +12: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
Riggle
8ba84a7469 Removes needless drop_if_replaced (#68880)
* CTRL-V go brrrrrr

* That should be all

* guh
2022-08-02 01:35:45 -04:00
Riggle
8a680eb9ec Purrbation toggle and organ insert code refactor (#68738)
This PR improves the purrbation toggle code. Admins can now put any human species on purrbation.
2022-07-30 20:57:10 +02:00
StormCloud
f7b79e3f93 Cyber Stomach consistency (#68790)
* missing a 0

* If you change the code, update the comments..
2022-07-30 04:57:16 -04:00
Higgin
99652439ef Makes liver/stomach repair surgery consistent with heart/lung repair. (#68766)
* Makes liver/stomach repair consistent with heart/lung repair - everybody gets one.

* Replicates operated vars for stomach/liver.

* It'd be good if the surgery wasn't repeatable.

* And if the fix didn't break it.
2022-07-30 04:50:25 -04: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
ShizCalev
030ada2513 Cleans up drop_organ() to use drop_location() (#68772)
Standardizes drop_organ with drop_location()
2022-07-28 00:53:30 +03:00
Salex08
8a8fa9c99c Replaces GetComponent in Mining items with Signalers (#68575)
* Replaces many instances of GetComponents in mining items with signals and better uses overall of Components, in drills and the GPS handcuffs.
* To do this, also added 3 new signals to mechs when you are adding/removing mech equipment onto one.
2022-07-27 14:30:04 -04:00
tattle
b859ca8ae7 Properly removes tonal indicators (#68653)
* properly removes tonal indicators

* timer_delete_me

Co-authored-by: tattle <article.disaster@gmail.com>
2022-07-23 11:53:29 -04:00
Coffee
ffc2a746df Fixes xenomorph corrosive acid being used on mobs & fixes xeno limb examines (#68246)
* Removes the xenomorph's corrosive acid from being used on mobs, as they oneshot them.
* Makes defines for species' limbs, and makes use of those. Also replaces some hardcodes with defines.
* Makes Xenomorph bodyparts all alien bodytypes, so xenomorphs with something embedded will not state that they have something in their human limb.
2022-07-19 12:16:49 -04:00