Commit graph

63 commits

Author SHA1 Message Date
Rachel
927ad18d81
Zombies now have hands (less metagameable in the strip menu) - but they're too clumsy to hold anything. (#45721)
* Solving #43723 by making zombies clumsy (they are unable to hold anything in their hands, passing items to them will fail).

Also made zombies uncuff themselves whenever they transform (seeing as they no longer lose their hands meaning that cuffs would otherwise remain on them)

* Cleaning up the code

* Renamed ClumsyHoldStatusEffectComponent.cs to ClumsyGrabStatusEffectComponent.cs (and renamed associated files).

I think "ClumsyGrab" works better than "ClumsyHold" (as the effect happens when the item is first grabbed, not whilst the item is being held).

everything still works

Reordered appropriate functions in ClumsyStatusTest.cs and ClumsyStatusEffectSystem.cs to retain alphabetical order.

* oopsies :p

* Appeased the YAMLLinter (at the cost of a somewhat hackier implementation).

ZombieSystem.Transform.cs now applies the zombie clumsiness via creating a new PermanentStatusEffectComponent with StatusEffectClumsyZombie as its status effect.

* requested changes have been made

(also re-added newline to end of clumsy-component.ftl because it has a newline at the end of it on the master branch, I guess it's probably supposed to be there)

* reordering so private members (including new one) are before the internal member

* hands are forcibly emptied - even if something's glued to them.

* UnZombify should remove the lingering ZombieClumsy status effect

(still needs to revert the rest of the zombification process, but at least the new bit I added can be undone)

* Minor refactor of my own refactor. New order of operations:

1. Uncuffs zombie (if needed)
2. Attempts to `DropAll` items from hands
3. Iterates through hand containers to empty them (removes otherwise unremovable items from hands)

Will refactor process to force drop all items if #45844 becomes implementable + is merged.

* formatting

* how the hell did the metabolizer code go missing!?

* uncuffing now happens in a safer way

less likely to accidentally infinitely loop

* tweaking that one comment I was asked to tweak (this is unrelated to the hand malarkey)

hopefully it won't lead to any merge conflicts later on

* formatting

* file style

---------

Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
2026-09-27 19:04:52 +00:00
Domanik Maresch
d9e0832085
Zombified bloodstreams no longer have a max of 1u (#45465)
* change solution from 1u max to 600u max

* Added in a helper method to BloodstreamSystem to account for changing the BloodRefreshAmount. Added datafield to ZombieComponent to store the original BloodRefreshAmount on UnZombify. Added a tag 'CannotRegainBlood', that applies in Bloodstream's TryModifyBloodLevel, to account for Saline or other reagents directly modifying blood level.

* we properly use a bool this time and not a tag

* should probably remove a tag that's unused. makes sense why test failed

* remove the tag causing the errors. i forgot the second spot.

* remove unneeded reference to TagSystem, scale new BloodReferenceSolution to the previous MaxVolume

* set the hardcoded 600 back to a 1 for scaling purposes

* removed MetabolizerComponent from organs of zombies during Zombify
2026-09-07 09:16:08 +00:00
Prole
502af6955d
Predict Forensics V2.0 (Ready for Review) (#40693)
* What sitting on code does to a branch + no mo owner v2

* Replacing ViewVariables with AutoNetworkedField + Missed One V2

* Removing Virtual Methods & Renaming ForensicsSystem to SharedForensicsSystem (Also made it abstract) V2

* IProduceWidgets Review Changes & some of my own V2

* Lil Cleanup V2

* Part 1 of Review Changes (Only thing left is the BUI stuff and the constructor) V2

* It now WORKS!!! (Still needs the BUI and constuctor changes, ill figure it out later)

* Test (Removal of ServerSide VomitSystem.cs)

* Ok...

* Moved System BloodstreamSystem.cs to SharedBloodstreamSystem.cs & deleted client BloodStreamSystem.cs to make SharedBloodstreamSystem.cs sealed. (No Unregistered errors)

* Prediction

* Fix?

* No mo log error?

* Revert "No mo log error?"

This reverts commit 50c15a3deab6af9dffd7baed45820bae5558e41f.

* Constructor going up

* No ForensicScannerBoundUserInterface.cs (It doesnt wanna scan anymore but it doesnt crash)

* For Conflicts

* Guh

* Yea

* Organization & no ErrorHell (maybe)

* Dirtying

* Dirtying take 2

* Revert "Dirtying take 2"

This reverts commit 5735012e21f43808db3ae010fce268eac24d0583.

* the dirties dont do much here

* For Conflict

* Readded

* Another Conflict Commit Fix

* Conflict Fix Thrice

* Empty Space

* Keep it simple

* Add it back in

* Move BloodstreamSystem stuff thats causing the error back to system. This'll prob fix the conflict

* Conflict fix?

* Trust the fix

* Looked at other prediction PR's, they had better code.

* To not mix up the system in client

* Removing Conflict

* For conflict

* For the conflic fix, will be removed later

* Scuffed Fix

* Removal & Adding the Decouple

* Took some HEAVY pointers from SirWarocks work. The Roadblock has been CLEARED, DOAFTERS WORK NOW!!

* Cleanup & Optimizing, mostly comps.

* More Optimization, most of this is just imported Warock Code, his QOL included. Did not want to remove SolutionDNA's tho, mostly due to a Log.Debug in OnPrint.

* Forgot that the Print Refreshes, more of Warocks work.

* Removing Loc.GetString

* All of BloodStream to Shared, hopefully no errors.

* Sketchy Dirty Removed

* Removed Timer.Spawn, added FrameUpdate cause anything else only updated when the window opened, & a bit of cleanup.

* No mo Mispredict

* GenerateDnaEvent Predicted

* Forgot the user

* I knew it was real, bloodstutter is REAL and now GONE.

* Cant dirty NewEntityBloodData due to potential stutter, so its safer to put it all back into server. again...

* Clearer

* Thank you leahcat, no more identity leak.

* Routine Maintenance

* sealing the class

* it checks for this now?!

* While im here, FileScope Namespaces & removing unused namespaces

* Update Attribute Type (SirWarock Import), it works and is much easier to read.

* Forever Fixing Conflicts

* Readonly Genocide & Partial Maxing

* LGTM, BloodstreamSystem moved to SharedBloodstreamSystem!

* Sohn

* If OG Github back push this commit

* One Billionth Commit Fix

* Removed client/server stuff

* Made implicit

* NewLine & comment on why AutoGenCompState is true

* Updatin the rest of the Popups to use Entity

* I think that's what they meant? It looks cleaner at least.

* Mass Attribute for LocalEvents that are safe to change.

* Putting it back as abstract

* maybe?

* Guhh, rolling back empty client/server of BloodStream

* Removed Client/Server BloodstreamSystems, changed access modifier from protected to private, & renamed SharedBloodstreamSystem to BloodstreamSystem

* From Protected to Private

* Removed comment & made it explicit on what changed to true

* Guh, hopefully thats all of it...

* Forgot

* Review

* Test Push

* Line 316 in SharedForensicsSystem was causing the errors, better to play it safe

* Review Changes

* Update Content.Shared/Forensics/Events.cs

Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>

* The only thing SolutionDNAs does is search and clears itself. I see no reason to keep it

* The print.disabled didnt properly disable when cleared. So ill just use the old if check

* Figured out the rest of the SubscribeLocalEvents and networking BloodData cause its fully in Shared

---------

Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
2026-08-08 22:48:36 +00:00
Pok
7a8fab78e3
Move Accents to Shared v2 (#44772)
* move-accents-to-shared

* Update AccentSystem.cs

* Update ListeningSystem.cs

* aaaaaa

* Update AccentSystem.cs

* oh god

* aaooao

* //

* review

* fix

* Update VocalSystem.cs
2026-07-25 22:29:39 +00:00
KeTuFaisPiKiNut
57653e4551
Zombie Ghost Role Fix (#44691)
* stub

* Revert "stub"

This reverts commit c1204b88d3ae1bbdca2deeb075a9dd0d6c529326.

* PoC

* As a successful member of society with a stable unflinching psyche and limitless drive, natural affinity for finance and domination, you have been selected, no, you have been effortlessly guided by divine (biological) trauma towards this moment. The gates of destiny fling open, and once again you're left standing on pulsating nothingness. A strobing headache of the soul.

* i feel bad

* Revert "PoC"

This reverts commit fafafac77f9cbd62497376c70e078e0155cb7ef6.

---------

Co-authored-by: nomdéraisonnablementlong <you@example.com>
2026-07-16 18:35:17 +00:00
Whatstone
f42f8df6d1
Cleanup: ProtoMan Part 2 - remove Client and Server EntitySystem IPrototypeManager instances (#44416)
* Remove all IPrototypeManager instances

* Remove redundant IComponentFactory instances too

* Found some stragglers

* DestructibleSystem.PrototypeManager: no dependency

* not based
2026-06-29 21:33:56 +00:00
themias
864b741942
Cleanup - remove zombie hardcoding in RevolutionaryRuleSystem (#43986)
* Cleanup - remove zombie hardcoding in RevolutionaryRuleSystem

* Update Content.Shared/Revolutionary/SharedRevolutionary.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* fix

* review

* didnt save for some reason

---------

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
2026-05-20 20:50:43 +00:00
Pieter-Jan Briers
5168b5f3d4
IoC source gen compatibility (#43863)
* IoC source gen compatibility

Can be merged before or after https://github.com/space-wizards/RobustToolbox/pull/6549 doesn't really matter.

* Missed a spot
2026-05-09 03:29:58 +00:00
pathetic meowmeow
8cf744ec55
Visual nubody (humanoid appearance refactor) (#42476)
* initial visual nubody

* oops overlay

* im so pheeming rn

* conversion...

* tests

* comeback of the underwear

* oops eyes

* blabbl

* zeds

* yaml linted

* search and visible count constraints

* reordering

* preserve previously selected markings colors

* fix test

* some ui niceties

* ordering

* make DB changes backwards-compatible/downgrade-friendly

* fix things again

* fix migration

* vulpkanin markings limit increase

* wrapping

* code cleanup and more code cleanup and more code cleanup and more code cleanup and

* fix slop ports

* better sampling API

* make filter work + use the method i made for its intended purpose

* fix test fails real quick

* magic mirror cleanup, remove TODO

* don't 0-init the organ profile data

* remove deltastates

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 07:07:53 +00:00
neomoth
2dca0785d7
Fix Zombie Resistance Probability (#42451)
free merge
2026-01-16 08:25:15 +00:00
Ignaz "Ian" Kraft
6213c51fd5
multi reagent bloodstream (#41489)
* multi reagent bloodstream

* pluralize the comments

* fix TryModifyBloodLevel return logic

* now with quantity

* now with solution

* implement suggestions

* fix forensics

* minor thing

* Nevermind undo that caps matters.

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-01 05:35:21 +00:00
Hannah Giovanna Dawson
cdbe92d37d
Update DamageableSystem to modern standards (#39417)
* Update DamageableSystem to modern standards

* DamageContainerId -> DamageContainerID with lint flag

* Replace strings with protoids

* Make CVar subscription declarations all consistently whitespaced

* ChangeDamage -> TryChangeDamage, cope with C# jank

* Revert event signature changes

* Restore a comment

* Re-add two queries

* Init the queries

* Use appearanceQuery in DamageChanged

* Use damageableQuery in TryChangeDamage

* Use damageableQuery in SetDamageModifierSetId

* Final cleanup, fix sandboxing

* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage

* Re-organize DamageableSystem

* first big fuck you breaking change.

* THATS A LOT OF DAMAGE!!!

* Fix test fails

* test fixes 2

* push it

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-10-27 19:53:04 +00:00
Princess Cheeseballs
43e6c524a4
Zombies can't hurt II. (#41007)
* Make zombie system not fard

* Actually who cares if our owner is not a zombie, let melee weapons be zombies that's funny as fuck

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-10-20 17:55:34 +00:00
slarticodefast
ee9d1032bb
Move ChatSystem.Emotes to shared (#40866)
* move to shared

* entity effect to shared

* refactor: whitespaces+xml-doc typo fixups

* refactor: a little bit more of xml-doc typos fixups

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-10-13 18:06:01 +00:00
GitHubUser53123
4aab1319ad
NonSpreaderZombieComponent prevents infection of crit mobs (#40857)
prevent the most critical bug in the history of station space 14
2025-10-13 01:13:30 +00:00
Pieter-Jan Briers
0c97520276
Fix usages of TryIndex() (#39124)
* Fix usages of TryIndex()

Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)

This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)

This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.

Fixes #39115

Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.

* fix tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-09-09 18:17:56 +02:00
slarticodefast
2743dcf67f
Move mind role components to shared (#39606) 2025-08-13 12:51:46 +02:00
Tayrtahn
45fe7d5093
Remove prototype caching from ZombieComponent (#38979)
Remove prototype caching from ZombieComponent
2025-07-14 04:05:18 +02:00
SyaoranFox
0518be5d38
Zombies won't attack Initial Infected (#38128)
* Added Zombie faction roles everywhere that makes sense for initial infected to be associated with Zombies.

* Adding faction component to round start zombie. (not hopeful)

* Removed stupid attempts and added zombie faction component to the zombie system when the player is given the ability to force themself to zombify.

* Changed use of "zombie" for ProtoId<NpcFactionPrototype>

* Update Content.Server/Zombies/ZombieSystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Server/Zombies/ZombieSystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Removed faction component from ZombieOutbreak event. Shouldn't cause problems with the event as II gets component with their ability to self zombify.

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-06-13 17:56:57 -07:00
Errant
bf76ba28e2
MindRemoveRole refactor (#34880)
* MindRemoveRole refactor

* role removal logstring rework

* zombiesystem fix
2025-05-17 16:24:32 +10:00
ScarKy0
9b5ddb87f5
Fix brains, borgs etc not counting as marooned (#37148)
* init

* comments

* comment

* no more debug
2025-05-06 13:24:26 -04:00
IProduceWidgets
d69738a9f4
Fix two zombie bugs (#34472)
* fix two zombie bugs

* add comment
2025-04-18 20:38:33 -04:00
UpAndLeaves
1c7e6592e9
Zombification resistance rework (#36485)
* initial commit

* Commit cuz beck said so 👍

* Implement balance changes, and revert some stuff

* fix yaml test real

* Added full stop, ensured display of infection chance, buffed biosuit speed

* Maint reviews, I commit

* Review completed, winter coats nerfed, CMO bio suit removed for future PR

* Final-final commit-REAL (2)-COPY
2025-04-16 14:21:45 -04:00
slarticodefast
ceff2bea00
Cloning Refactor and bugfixes (#35555)
* cloning refactor

* cleanup and fixes

* don't pick from 0

* give dwarves the correct species

* fix dna and bloodstream reagent data cloning

* don't copy helmets

* be less redundant
2025-03-02 16:50:12 +01:00
Patrik Caes-Sayrs
8f2d16aabf
Zombies keep their anomalies on zombification (#33867)
* Zombies keep their anomalies on zombification

* Refactor anombies to isolate anomalies and zombies

InnerBodyAnomalies now send an event when the host dies.
Zombies cancels this event if the host is turning into a zombie.

* Anomazombies: deprecate CancellableEntityEventArgs

CancellableEntityEventArgs is deprecated. Use structs
with bool Cancelled instead.
2024-12-17 14:56:47 +03:00
Tayrtahn
89a9f07c3a
Add a system for modifying entity names without causing conflicts (#27863) 2024-06-16 15:38:53 -04:00
Mr. 27
fe5f4162ac
Prevent non-inital infected from getting the succumb to zombie action (#27820)
* b

* Update ZombieRuleSystem.cs

* hi
2024-05-09 17:45:23 -04:00
Nemanja
161fd6c83c
Mega Antag Refactor (#25786)
* Mega Antag Refactor

* last minute delta save

* more workshopping

* more shit

* ok tested this for once

* okkkkk sure

* generic delays for starting rules

* well darn

* nukies partially

* ouagh

* ballin' faded and smonkin wed

* obliterated the diff

* Spread my arms and soak up congratulations

* I've got plenty of love, but nothing to show for it

* but there’s too much sunlight
Shining on my laptop monitor, so I
Can’t see anything with any amount of clarity

* ok this junk

* OOK!

* fubar

* most of sloth's review

* oh boy

* eek

* hell yea!

* ASDFJASDJFvsakcvjkzjnhhhyh
2024-04-25 11:31:45 +10:00
Jake Huxell
59e46aab93
Reduced Warning Count By 130 For Full Rebuilds (#26518)
* remove deprecated entity coordinate extension functions. Reduces warning count by approximately 50

* final toCoords Removed

* Remove all unused variables and dead code paths

* remove always true variable, should be a cvar or something instead

* remove superfluous variables from tests
2024-03-29 16:28:16 +11:00
Mr. 27
87386ca0ba
make romerol work on the dead (#26222)
* a

* review

* g
2024-03-18 17:25:36 +11:00
Debug
8c6a8c3c5c
Remove drones, fix InnateToolSystem (#25372)
* Fix drones

* They dont need a full bloodstream

* Incorrect indentation

* Nuke drones

* Fix ClothingHeadHatCatEars

* Remove last mention of drones

* Implement requested changes
2024-02-20 23:23:04 -07:00
Leon Friedrich
287d22cc49
Inventory slot enumerator rejig (#21788) 2023-12-08 08:20:51 +11:00
nikthechampiongr
99cdff2b87
Tiny mobs can no longer pass on the zombie disease (#21676)
This reverts f391ff28 and implements an alternate messure where mice and other small animals can no longer infect people as zombies.

This is done through a component which if present cancels the check that would cause zombie components to be added on people that get infected due to a bite.

This still allows other special stuff that happens in that function that may affect already infected individuals.
This is a compromise between what's discussed in discord which would much rather see mice and other animals just die from the infection and people on github which would see no change happen.

Since bats can't go under doors it may not be necessary to make them non spreaders.
If someone disagrees please tell me to just add it back.
2023-11-19 14:28:05 -08:00
themias
843a7d1d46
Fix ambuzol zombie damage (#21432) 2023-11-04 13:57:21 -04:00
keronshb
17f3fc1287
Moves cloning comp & cloning event to shared (#21253) 2023-10-28 09:47:42 -04:00
DrSmugleaf
a44fa86b68
Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
DrSmugleaf
3f3ba6ac62
Move minds, roles, jobs and objectives to shared (#19679) 2023-08-30 21:46:11 -07:00
Doru991
ecd145b274
Fix zombie eye appearance (#19427) 2023-08-23 00:51:59 -04:00
Nemanja
6a125b55df
Fix various IC states not counting as dead (#19049) 2023-08-13 23:34:18 -04:00
Nemanja
d55cd23b0a
Zombie Mode 𝓡𝓮𝓭𝓾𝔁 (#18199)
* zombie mode redux

* the great zombie changes

* fix this

* 65 down to 50

* empty

* Changes to address stalling

* make zombie nukies no longer nukies

* actually work
2023-07-25 15:31:35 -06:00
LankLTE
9e6bd30aa4
Ambuzol Plus (#17884)
* Added component and functionality.

* Fixed ZombieImmune.

* Zombies now have zombie blood.

* Ambuzol plus.

* Ambuzol plus spawns in bundle.

* Fine CBURN get one too.

* Reworked the reaction

* No more magic blood refilling.

* ok CE i fixed it

* Component change.
2023-07-09 16:01:35 -06:00
Tom Leys
d3b6bb62c0
Zombie virus delayed from 20-30 minutes from rule start. (#16346) 2023-05-16 01:59:39 -04:00
Tom Leys
eab0121744
Zombies recover faster from crit. They heal Piercing damage (#16325) 2023-05-15 23:58:36 -04:00
Tom Leys
878272ecf3
Zombie disease is easier to spread and deadly in minutes. Zombies heal over time. (#16235)
* Nerf Space zombies, get DoT in space (barotrauma) and spawn stunned.

- Also discard any helmet or mask you might be wearing.

* Zombies have heal over time, infection far more fatal

- Stun time reduced to 2 seconds

* Zombification occurs after you die, rather than after you crit.

- Zombies cannot inflict Zombification DoT on other zombies.

* Heal shock damage, space zombies are back.

* Lower the chance of infection per hit

* Removed the stun, reduced zombification virus slightly
2023-05-08 22:24:40 -04:00
metalgearsloth
0e81cb4319
Remove diseases (#15684) 2023-05-07 17:50:37 +10:00
0x6273
21e5aea8ca
Add EmoteOnDamage comp/system for zombies (#14371) 2023-03-23 10:52:46 -04:00
0x6273
72269c7a77
Add AutoEmote comp/system, updates to zombie code (#13932)
* Add AutoEmote comp/system

* Reduce groan chance so it's the same as before

Old code did 0.2 and then 0.5, now it's just one Prob(0.1)

* Fix typo, curTime var, don't log Resolve

* Maybe fix pausing?

* Fix mistake

* Update NextEmoteTime if an auto emote is removed

* Fix stuff

Get CurTime outside update loop
Use MapInit instead of ComponentInit
Fix a typo in a comment
Debug assert prototype ID in RemoveEmote
Do += PausedTime in OnUnpaused
Add prototype as arg to ResetTimer to avoid an indexing
2023-03-02 11:23:56 -08:00
Alex Evgrashin
ef452b38a9
Audible emotes (#12708)
Co-authored-by: Visne <39844191+Visne@users.noreply.github.com>
2023-01-25 08:29:41 -08:00
Leon Friedrich
48bcd30ef9
Makes humanoid appearance component networked. (#13009)
Fixes https://github.com/space-wizards/space-station-14/issues/12248
2023-01-24 11:38:19 +11:00
corentt
6cebc2d733
Zombie cloning fix (#12520) 2023-01-22 19:36:03 -04:00