* Ports #10649 from Citadel: An attempt at making hijack not shit and more about point defence (#54146)
So essentially there was discussion already here (https://tgstation13.org/phpBB/viewtopic.php?f=33&t=27620) about how hijack is one of the few objectives on Manuel that you can murderbone with, which is mildly at odds with the intention of the server.
Personally, I think hijack is just straight up terrible regardless of what server you're on. The way it functions is dreadful. Nobody must be aboard the shuttle in any part of the shuttle at all. This means you have people hiding in the walls or hiding in some invisible corner of the shuttle, cucking you of the hijack. For the most part, the only way to actually hijack the shuttle is to render it completely inhospitable or destroying it utterly save for, maybe, one square. The one you are standing on.
It's absurd. So, I knew kev made a pretty honest attempt at reworking hijack. And it works pretty well. It doesn't necessarily solve the problem of hijackers being mandatory mass shooters, but it goes some ways to improving the objective in a more interesting fashion, and allows for the discussion around the objective to be a little more open ended for the sake of the higher roleplay servers without actually detracting from the lower roleplay servers at all. If anything, this should improve the experience of being that gamer to stage a hijacking all the more interesting and about robustness, and less of hide-and-go-seek.
* Ports #10649 from Citadel: An attempt at making hijack not shit and more about point defence
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Temporal Scarring is now per-character-slot, changelings now fake scars when disguising (#54311)
* Temporal Scarring is now per-character-slot, changelings now fake scars when disguising
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Add game logging to abductor gland mind control. (#54266)
* Add game logging to abductor gland mind control.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix some potential sleeps as detected by SpacemanDMM improvements (#54230)
overrides weren't detected by should not sleep, i think i've mostly
fixed that with SpaceManiac/SpacemanDMM#214
Some of these are wacky but overall this pr is harmless
signals shouldnt sleep even in weird 1 in a million situations or due
to other people adding bad code
overrides of changeling can_sting() use alert() and input() and that's
just too fucked for me to fix in this pr
* Fixes some potential sleeps as detected by SpacemanDMM improvements
Co-authored-by: spookydonut <github@spooksoftware.com>
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune (#53975)
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
* Add stasis beds
* Fix forcefields going away, leading to hull breaches
* Use set instead of list
* Use subtype for forcefield walls
* Adds Shuttle 667 as a buyable shuttle for dispelling a cult rune
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Merge pull request #53702 from zxaber/kiltborg
[READY] Highlander mode now includes silicons
* [READY] Highlander mode now includes silicons
Co-authored-by: nemvar <47324920+nemvar@users.noreply.github.com>
* Heretic tweak patch: changes a few false descriptions and balances a few things. (#53952)
* Heretic tweak patch: changes a few false descriptions and balances a few things.
Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
* Space Cops now spawn with a Disabler alongside their existing weapon, and no longer have Gang HUDs. (#54068)
Space Cops now spawn with a Disabler alongside their existing weapon, and no longer have Gang HUDs.
* Space Cops now spawn with a Disabler alongside their existing weapon, and no longer have Gang HUDs.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* replaces the two "sorry, you don't get to have fun this round" revenant fluff objectives with better ones (#54077)
* replaces the two "sorry, you don't get to have fun this round" revenant fluff objectives with better ones
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Fixes up addictions reporting on scanners, and admin full heal (#54056)
* Fixes up addictions reporting on scanners, and admin full heal
Co-authored-by: NightRed <nightred@gmail.com>
* ash!mansus grasp now blinds people instead of yeeting them (#53396)
* pokemon
* pocket sand
* halved the blind time
* accidentally added a return
* ash!mansus grasp now blinds people instead of yeeting them
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!. (#53655)
* HERETICS: Balancing Mega patch - Changes to ash, flesh ascension and much more!.
Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
* Fix antag datum runtimes when they deleted their own owners and make other silent errors now runtime. (#53721)
heretic_monster antag datums nulled their own owner before calling code that relied on them having an owner to function. This has been fixed. Antag datum subtypes should not be modifying their own owners. Leave that to the parent code.
This could lead to situations where a mind has null antag datums sitting around in its list of antag_datums. This has also probably been fixed.
There are various checks dotted throughout the code to check if antag datums have owners. Most would either return early, continue in a for loop or silently skip over it. Antag datums should never be without an owner. These have all been removed.
When an ownerless antag datum is detected, it should not die silently. It should die loudly and proudly, declaring that something, somewhere went wrong and that there is a willing and necessary martyr to the cause of addressing WHY something runtimes instead of just having it silently skipped over.
* Fix antag datum runtimes when they deleted their own owners and make other silent errors now runtime.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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>
* Fix runtime in shade transformation when done via russian revolver (#53739)
/obj/item/gun/ballistic/revolver/russian/proc/shoot_self starts a transfer_soul chain with a null user, because it's the target who inflicted it on themselves. There is no user.
Later on in when we init the shade, we attempt to copy the "master"/user's language to the shade too.
No user, classic runtime.
Moving the user language transfer behind a conditional check addresses this oversight.
* Fix runtime in shade transformation when done via russian revolver
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* 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>
* 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>
* Makes highlander turn off pacifism (#53504)
Makes gaining the highlander antagonist status turn disable the pacifism quirk. It will re-enable if you lose the status, although that doesn't happen often.
* Makes highlander turn off pacifism
Co-authored-by: Coffee <63162339+CoffeeDragon16@users.noreply.github.com>
* Cleans up an unused var added for smugglers satchels (#53501)
* Cleans up an unused var added for smugglers satchels
Co-authored-by: msgerbs <msgerbs@users.noreply.github.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>
* Lesser Summon Bees (#53297)
Adds a single spell to the wizard's arsenal, lesser summon bees, which summons... bees.
* Lesser Summon Bees (But this time I didn't delete the branch)
Co-authored-by: Paxilmaniac <57122098+Paxilmaniac@users.noreply.github.com>
* Allow heretic flesh ghouls to use ashen eyes and sickly blades #53308
* Allow heretic flesh ghouls to use ashen eyes and sickly blades
Co-authored-by: Rohesie <rohesie@gmail.com>
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is
Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
* Merge pull request #53005 from Wayland-Smithy/ayy_send_self_AI
Duplicates the "turret_protected/ai" area type check found on the alien abductors camera console Send To command so it also applies to the Send Self command.
Getting snatched by abductors as AI Post #52718 is bad.
This is not an IDED because it was caused by a glitch. I was playing as AI and found myself carded by some ayylines. It turns out while they can not send their agent to do the deed they were more than capable of sending self as I suspected and confirmed with some local testing.
* AI core is now Abductor-proof. Part 2: This time they really can't get in, promise.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Blob spore tweaks (#53188)
This PR removes default blob spores from the gold slime core spawning pool, but adds independent blob spores to the gold slime core spawning pool in their place.
Independent blob spores and blobbernauts can now speak over blob chat like overmind-dependent blob mobs do. This also means that, like overmind-dependent blob mobs, they can't speak out loud (trying to speak will just send your message out over blob chat). They should still be able to emote, though.
Blob spores can no longer harm objects/structures before they become blob zombies (once they possess a corpse, though, they'll start damaging stuff again).
Default blob spores can't drag stuff, but independent ones can (independent ones can't walk through blob tiles freely, however). Also, independent blobbernauts are in the gold slime core pool, but normal blobbernauts are not, so it seems pretty clear that the independent blob creatures are the ones that're supposed to be in the gold slime core pool, not the overmind-dependent ones.
Independent blob spores and blobbernauts could hear blob chat before this PR, but couldn't speak over it. Now, if a xenobiologist amasses an army of blob mobs, they can all metacomm with each other, making blobbernauts slightly more unique in comparison to the other available "unga dunga me smash" mobs.
Finally, the blobs spore structure damage thing is in here because #52998 mentioned it in its "About The Pull Request" section and its changelog, but then forgot to actually, well, implement it. Since that PR's merged and I'm editing the blob spore file anwyay, I figured that I might as well fix that so that Indieana doesn't have to make another PR and so that my vat-grown blob spores won't destroy my vats and delicate plumbing machinery.
* Blob spore tweaks
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* [Ready]Optimalizes rust_spread loop (#52680)
Makes edge_turfs not rebuild literally every process, but every few ticks, depending on the size of the list.
Also changes a few flavour texts.
Also fixes a bug i left acidentaly in rustbringers oath. oops
* [Ready]Optimalizes rust_spread loop
Co-authored-by: EdgeLordExe <42111655+EdgeLordExe@users.noreply.github.com>
* Bloody feet update (#53109)
Componentized the bloody feet feature.
* Hardsuits and other feet-covering clothing can now get bloody feet as well and spread gunk around.
* Bare feet can now get bloody as well and spread gunk around.
* Shoes/feet won't get bloody if something is covering them.
* Improved blood spreading behaviour. Previously, magic numbers were used in the blood pick up and drop off process. Now, when you step in blood, you and the floor share the blood volume. When you step on a non-bloody tile, you give away half of your shoe blood to the tile, and so on. This means the total blood volume always stays constant when moving around. * Blood doesn't appear out of thin air, nor get flushed to bluespace.
* Lowered footprint minimum opacity. Because it looks better, imo.
* Improved footprint exit/enter dirs.
* Improved footprint examine.
* Removed code for cult magic where a spell can suck up blood on your shoes. I'm pretty sure this code didn't work anyway. Implementing that for this new system would require a new signal and I just don't think it's worth it.
How can this game make you spend 20 hours on fucking spaceman footprints
Hardsuits will become "fully bloody" by just stepping in blood. This is a limitation of the current forensics system, as that is what is used to determine if an item is bloody or not. I'm aware of this but I don't think it fits to fix that in this PR.
cl
add: Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
fix: Shoes will no longer get bloody while wearing something that covers them.
/cl
* Bloody feet update
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Splits the Summon Equipment spell into two different spells, fixes a bug with Summon Equipment (#52685)
* Splits the Summon Equipment spell into two different spells, fixes a bug with Summon Equipment
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Changes to a bunch of the blob types
* Spores Now Have 0 Structure Damage, Buffs Reflective Blob
* Reroll Pool Increased From 3 to 5
* Removes Fragile Spores from Xenobio
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Merge pull request #53020 from Qustinnus/fatgrowing
[READY] Vatgrowing: Third time's the charm
* [READY] Vatgrowing: Third time's the charm
Co-authored-by: 81Denton <32391752+81Denton@users.noreply.github.com>