* Fully removes devil and affiliated shitcode (#53612)
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
* Fully removes devil and affiliated shitcode
* weh
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Merge pull request #53855 from imsxz/twaticus
About The Pull Request
i made a PR just like this like a year or 2 ago and it got closed under dubious circumstances, especially since it had more upvotes than downvotes. this is a feature that the community wants. it is a 5 line change PR, not much to note on it, very simple.
Why It's Good For The Game
/tg/ is lacking in roleplay tailored mechanics and instead relies on the good graces of the players to interact politely with each other.
Changelog
🆑 imsxz
add: you can now pat carbon mobs on the head.
/🆑
* adds headpatting
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
* Flower Buds now have a countdown for ghosts for when they're going to hatch (#53648)
They're two minute timers with no indication, which makes kudzu kinda annoying to spectate.
* Flower Buds now have a countdown for ghosts for when they're going to hatch
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Allow AI camera to move up Z-levels as well as down. (#53875)
* Fix eye
* Betterfeex
* Don't code while cooking
* Allow AI camera to move up Z-levels as well as down.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Don't allow sentient ice demons to teleport (#53888)
If you know, you know. I think this affects more than just teleporting, but hm.
* [s] Don't allow sentient ice demons to teleport
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Healium is too powerful we need to nerf it! (#53766)
Healium was too stronk, nerfed it to behave like a good gas.
Added coughing and euphoria mood if breathed in small quantities to alert the player.
Sleep if it is 3 moles in the air for 3 to 5 seconds
Sleep you if is more than 6 moles and it heals you while knocked down.
Lowered the amount of healing done
Edit: It doesnt knock you out, it makes you sleep now, since the knockdown effect was so strong that people wouldn't wake up
* Healium is too powerful we need to nerf it!
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Fixes TRAIT_NOHUNGER on digestion and fat species that never stop being fat (#53764)
Issue was encountered during a Manuel round when a fatass became an Android.
Incorrect check for TRAIT_NOHUNGER in handle_digestion meant it was ignored and digestion code would always run.
Androids don't hunger, don't metabolise, don't eat. When a player turns into an android, if they were fat, they become a fat anrdroid. It then becomes incredibly difficult and annoying for admins to restore them back to normal. Admins trying to fix this manually can also create excess screen alerts, traits and moodlets as they triage the issue alongside the TRAIT_NOHUNGER bug that will constantly restore negative moodlets and throw screen alerts unless they set the status JUST RIGHT.
As a result, as well as fixing TRAIT_NOHUNGER I'm also hitting TRAIT_NOHUNGER species. I created a new proc to set hunger values to safe levels and call it on_species_gain for every TRAIT_NOHUNGER species.
Thanks to the Eric Fatsby who let me experiment on him to identify as many problem areas as I could.
* Fixes TRAIT_NOHUNGER on digestion and fat species that never stop being fat
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes oversight with "tactical combat spinning" and flashes (#53823)
Using the spin emote can no longer let you RNG your way out of new flash mechanics.
Mobs have a new flag that is set to when they start spinning and unset when they stop.
Flashes now use this new flag when calcing deviation.
Tactical combat spinning using the spin emote now results in a full deviation flash when it may previously have resulted in a failure or half-deviation flash.
Emotes should either not influence combat at all (spin on floor when both players share the same loc, this was already handled by same-loc code), or negatively influence combat for the emote user (spin in all other circumtances, which is what this PR addresses).
* Fixes oversight with "tactical combat spinning" and flashes
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Optimizes Conveyors (#53220)
Less proc overhead
Made the actual moving speedier
removed a unused var
* Optimizes Conveyors
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Fix runtime when pAIs access their menu then makes the runtime look their default look. (#53714)
Runtime was fixed by implementing the new, proper asset cache system. Up until the point where I realised this was the intended look for the pAI's internal interface...
I get the Geocities look, but I'm not going to inflict this back on pAIs. Even if it intentionally looks awful, I don't feel that it adds anything to the pAI experience. They're meant to be more advanced in some respects than NanoTrasen AI.
As such, I've removed this background asset entirely, removed the associated code and turned the runtime's behaviour into the default outcome - No Geocities background. Just plain white.
* Fix runtime when pAIs access their menu then makes the runtime look their default look.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes a dismemberment runtime (#53695)
Bunch of undocumented procs relating to wounds.
can_dismember is being called on the head from send_item_attack_message after the head is dismembered. At that point is has no owner and we get ourselves a bit of juicy runtime.
I suspect it's an order-of-operations issue. The wording of the text messages in send_item_attack_message seem to indicate that it's warning about the attack that is just about to happen. In /mob/living/attacked_by() the very first thing it does is call send_item_attack_message(), before apply_damage.
As such, I've made sure send_item_attack_message() is called before apply_damage in this instance too.
* Attempted fix at dismemberment runtime
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Excessive spinning makes you woozy (#53805)
When attempting to spin while it's on cooldown carbons get a bit of dizziness and confusion in increments, and once it reaches a certain point they no longer get more confused, instead puking without purging their reagents.
This doesn't affect simplemobs, silicons, or using fists of the northstar to beyblade as a tot.
* Excessive spinning makes you woozy
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
* Monkeys now examine themselves instead of self hugging (#53745)
More consistent with how humans interact. Fixes#53743.
* Monkeys now examine themselves instead of self hugging
Co-authored-by: infoman-cor <64935694+infoman-cor@users.noreply.github.com>
* Robits!
* stuffs
* Pfixes
* bugfixes
* smol balance
* fixxx
* hello
* Update alcohol_reagents.dm
* WHAT DOES IT WANT OF ME
* oh right those too
* Update alcohol_reagents.dm
* Update alcohol_reagents.dm
* grrr
* Silicon deletion cleanup (#53680)
Law datums were referencing owner
Law datums were not being delled
Some MMI code was organized strangely
* Silicon deletion cleanup
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Makes visible messages not be obstructed by darkness if you're next to the source (#53706)
If you're doing emotes in full darkness right next to someone, then the person won't see them, despite seeing your mob, which is counter-intuitive. This fixes that issue
* Makes visible messages not be obstructed by darkness if you're next to the source
Co-authored-by: Azarak <azarak10@gmail.com>
* Plasmamen psychologists now have an outfit. (#53750)
Not a new outfit, mind you. But this gives plasmamen psychologists a more fitting outfit, until one specifically for them gets sprited.
I think giving them a medical plasmaman helmet, enviroslacks (as given to the bartender, lawyer, detective), and white envirogloves is better than them looking mostly like plasma assistants.
* Plasmamen psychologists now have an outfit.
Co-authored-by: uomo <51800976+uomo91@users.noreply.github.com>
* Makes the Ghost Whispers pref. toggle work with or without Ghost Ears enabled (#53738)
Adds the condition of !eavesdrop_range to the logic for determining weather or not a non-whispered speech message should be displayed based on our CHAT_GHOSTEARS preference. Making it so that the Ghost Ears setting is no longer checked if the message is whispered and therefore long distance whispers will no longer be suppressed if both preferences are not set to TRUE.
* Makes the Ghost Whispers pref. toggle work with or without Ghost Ears enabled
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool. (#53305)
* Arcane finishes the fight and adds all the missing belt sprites and a worn sprite Admin Tool.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Fixes issue where self-resp and enabling Godmode may not clear the suffocating moodlet (#53715)
Clears suffocation-related flags while the user doesn't need to breathe due to the self-resp virus symptom or Godmode.
* Fixes issue where self-resp and enabling Godmode may not clear the suffocating moodlet
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Cyborg inventory runtime fix. (#53741)
Following the cyborg inventory refactor, code changed a bit.
Cyborg inventory screens are inited in the HUD, however AI Shells don't generate a HUD until an AI assumes direct control.
Damaging an AI shell before the AI created a HUD in it would cause runtimes as modules disabled and enabled.
To remedy this, we now initialize the core inventory slots on the robit Init() and then update them as necessary in the HUD code later on if an AI ever deigns to grace your shell with their exalted presence instead of asking for it and then never using it.
* Cyborg inventory runtime fix.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix ventcrawling bug I merged (#53704)
#53672 introduced a bug because held_items always has the same number of indexes as the mob has hands
* Fix ventcrawling bug I merged
Co-authored-by: spookydonut <github@spooksoftware.com>
* Optimize stat panel and fix guardian verbs (#53463)
Optimizes stat panel code for better performance, including icon caching and removing some unnecessary processing
Also fixes#53432fix#53381fix#53724
Changelog
add: icons are back on alt clicks
fix: horrible performance from alt clicking turfs with multiple objects
tweak:browser should notify the SS when it's ready to receive data
* Update statbrowser.html
* Apply suggestions from code review
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* hidden = TRUE
* almost ready
* Browser should notify when ready to receive data
* Apply MSO's suggestions
* reset cache if something in it gets deleted
* Fix runtime
* fix my stupid code
* send href_token when adding admin tabs
* fix an issue with cyborg suit topic
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* Optimize stat panel and fix guardian verbs
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@ users.noreply.github.com>
* Fixes some issues with sign language & makes some things more clear (#53610)
Changes the name of the recipe for the gloves to make them more clear
Adds a note in the tongue file to make sure it's clear you SHOULDN'T SEE THAT TONGUE.
Adds a unique chat message for mimes who use sign language, to make it clearer you can't cheese as a mime
Adds a unique slurring verb for drunkards
Removes the ability for sign languagers to use megaphones, which I forgot existed in the game.
Punctuation removal now replaces all punctuation used with periods rather than with blank space, to reduce run-on sentences.
* Fixes some issues with sign language & makes some things more clear
Co-authored-by: Wallemations <66052067+Wallemations@users.noreply.github.com>
* Adds better feedback related to husks (#53599)
Husks currently have basically zero ingame feedback other than the grey sprite. It should be abundantly obvious when somebody is a husk, given that it's such a huge physical change that it changes the sprite. This PR adds examine text to husks, and adds a message to the health scanner. The regular scanner will only tell you that they are a husk, the advanced scanner will tell you if they were husked by burns or by "extreme fluid loss" AKA lings (but burnt takes precedence so you can still burn your ling corpses to a crisp to help hide your tracks). The defib now also gives a message specifically for husks instead of a generic "tissue damage" message which normally means brute/burn damage.
I also updated the description of sythflesh and rezadone to mention that they can restore burnt husks, and replaced some hardcoded "burn" with the BURN constant.
* Adds better feedback related to husks
Co-authored-by: msgerbs <msgerbs@users.noreply.github.com>
* Fixes several things not unlocking when hit with an ID in a tablet. (#53600)
The following will now be unlockable by hitting them with an ID in a tablet:
Bots
Express supply console
Air Alarms
* Fixes several things not unlocking when hit with an ID in a tablet
Co-authored-by: msgerbs <msgerbs@users.noreply.github.com>
* limb disabled refactor (#53374)
Fixes#53219
Nukes is_disabled()
Turns several variable value changes into events.
bodypart_disabled turned into a boolean value.
BODYPART_DISABLED_WOUND turned into TRAIT_DISABLED_BY_WOUND. Not the cleanest thing out there, but it works.
Cleans some code and reduces number of updates, as only the extremities have a disabled effect.
* limb disabled refactor
Co-authored-by: Rohesie <rohesie@gmail.com>
* Remove references to old singularity machines (#53509)
Removes the singularity generator and the particle accelerator. The former had no sprite, and the latter only existed because of a leftover type path. This does not affect gameplay at all.
Removes the "Start Singularity" verb that was only intended for debug use.
Fixes#53508.
* Remove references to old singularity machines
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* fixes a copy+paste error in synthcode (#53573)
handle_body() was called when handle_mutant_bodyparts() should have been called instead. I've fixed this issue.
I've also doc'd the disguise_fail_health variable, because the comment that's currently next to it doesn't accurately describe what the variable actually does.
* fixes a copy+paste error in synthcode
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Fix incorrect proc signature for /mob/living/proc/Life (#53565)
#52981 changed how Life() procs were called. It also forgot to
re-define the Life proc signature after doing so. This gives Life the
appropriate signature.
Our intended breathing mechanic of once every 4 life ticks became every
single life tick, effectively making mobs breathe 4 times as often as
they should. Oh, my dear Atmos subsystem, how you must be crying in
pain!
* Fix incorrect proc signature for /mob/living/proc/Life
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Merge pull request #53540 from itseasytosee/bonk
Nightmares no longer bash people over the head with the blunt end of their light eater.
* Nightmares no longer bash people over the head with the blunt end of their light eater.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Allows you to use the ability of vatbeasts when riding them (#53266)
* Allows you to use the ability of vatbeasts when riding them
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)
* Process procs now properly use deltatime when implementing rates, timers and probabilities
* Review fixes
* Geiger counters cleanup
Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now
* Moved SS*_DT defines to subsystems.dm
* Rebase fix
* Redefined the SS*_DT defines to use the subsystem wait vars
* Implemented suggested changes by @AnturK
* Commented /datum/proc/process about the deltatime stuff
* Send delta_time as a process parameter instead of the defines
Also DTfied acid_processing
* Dtfied new acid component
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Moves over cakes to newfood and transfers reagents when crafting (#53316)
* Moves over cakes to newfood and transfers reagents when crafting
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Zombies can be decapped again, un-nerfs esword/armblade/etc wounding power, improvised cauterization tweaks (#53349)
#53117 introduced a few minor bugs with the health system, in this case, zombies being un-decappable due to an oversight in the head/chest dismember requiring full death rather than either full crit or death. As zombies (or anything with TRAIT_NODEATH) can only reach hard crit and not death, this meant they couldn't be decapped/disemboweled. This fixes that. It also fixes krokodil addict zombies being unwoundable due to not having flesh or bone traits.
Next up, I originally set really high negative wound bonuses for high damage weapons like eswords and armblades since they already had high damage and dismember power by themselves. Now that dismembering is tied to wounding power (and I have a better sense of balance values), these harsh nerfs are no longer needed or wanted, and you can actually dismember people worth a damn with an esword again. I also punched up the wounding power of a few other weapons like saws and scalpels to less awful (but still not optimal) against armor.
Attacks currently have an 80% chance to hit the limb you're aiming at, which can make destroying a limb a complete pain even if the target is already down and out. As such, attacks against prone targets now have a 90% chance to hit the targeted limb, cutting the miss rate in half.
Lastly, trying to cauterize bleeding wounds with improvised tools (anything hot that isn't a cautery) is now slightly less efficient than a real cautery and requires an aggro grab on the patient to apply. No more trying to cauterize the person you just attacked with an esword because you were on help intent!
* Zombies can be decapped again, un-nerfs esword/armblade/etc wounding power, improvised cauterization tweaks
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
This changes the has_reagent check to work with stomachs.
Several supporting procs have been added to fully support this behavior.
end_metabolization will work as expected again
expose is working with INGEST items again
on_mob_add working as intended
on_mob_life has been reviewed and worked over.
Health Analyzers now show stomach contents, same with the medical kiosk.
Included the unit test to validate reagent checks.
Unit tests for the new procs on mob
Co-authored-by: NightRed <nightred@gmail.com>
Makes acid levels a component.
Merges the acid effect object into the component.
Reworks acids decay rates slightly.
Rebalances xenos acid spit so that they can still melt through walls.
Misc. associated changes:
Adds defines for a lot of the acid associated constants.
Documents clean types and adds CLEAN_TYPE_ACID
Adds and implements a return bitflag for COMSIG_COMPONENT_CLEAN_ACT
Adds a looping sound for acid.
Makes /atom/proc/acid_act return a boolean.
Fixes waterclosets creating a new reagent holder datum every time they are used.
Removes waterclosets regenerating reagents on-use and restricts their reaction volume to 5 units.
Adds and implements a couple reagent signals.
Renames a few vars so Rohesie can stop telling me to rename more vars.
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>