Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

A bunch of quirk refactors + improvements #4642

Merged
merged 18 commits into from
Dec 31, 2024

Conversation

Absolucy
Copy link
Member

@Absolucy Absolucy commented Dec 21, 2024

About The Pull Request

Why It's Good For The Game

nice for things to work, it's cleaner code, and just better overall

Changelog

🆑
refactor: Cleaned up and refactored quite a bit of code related to quirks.
fix: Quirks should properly transfer on cloning now.
fix: Fixed the dwarfism and gigantism quirks being broken with bloodsuckers and such.
fix: Stowaways should no longer have the chance to spawn in lockers where they will immediately die from no air or something.
/:cl:

@Absolucy Absolucy added do not merge don't merge this ffs Fix fix da bug Refactor/Rework Completely redoing a larger thing / recoding a thing labels Dec 21, 2024
@Absolucy Absolucy marked this pull request as ready for review December 25, 2024 21:00
@Absolucy Absolucy removed the do not merge don't merge this ffs label Dec 25, 2024
Coll6 added a commit to Coll6/Monkestation2.0 that referenced this pull request Dec 26, 2024
ThePooba pushed a commit that referenced this pull request Dec 29, 2024
* Restores Oozling wetness system. Bring a Towel.
-Restores dormant Oozling wetness system
-Makes wetness affect unconscious Oozlings.
-Removes flat bloodloss from getting wet.

* Oozling core gps Fix
-Fixes bug where core still broadcasting after crushing
-Fixes bug being unable to crush a core with a off gps
-Adds a bit of flavor text for crushing cores with off gps

* fix: Dup/Del Bug with chasms.
- Ensures items are properly transferred to the core to prevent conflicts between overlapping movement mechanics. e.g. Chasms

* fix: Limb implants being voided when dismemebered
-If the limb has an implant it will drop them to the floor instead of voiding it.

* Readds oozling melting from touch water sources.

* fix: Chest and Cavity implants. Revive visual bug
-Implants that go into the chest now drop unpon revival
-Cavity implant objects now drop unpon revival
-Fixes visual bugs caused by reviving a oozling core
-Minor grammar fixes

* Restores Oozling healing and tones it down
-Restores oozlings healing ability from plasma
-Heals 2.5 shared between heal and brute
-Healing is disabled by hydrophobia or if Oozlings skin reaches cold limit

* Refactor item core storage system
-General refactoring
-Added filters for banned items and allowed implants and organs
-Fixes bug with Nuclear Authentation Disk. Resolve other protected items with the banned items list.

* Allows external organs to be stored and saved
-External features (Not Anime Traits) such as tails wings antenna will be removed and stored in the core

* fix: Core can now case and store injector implants
-Oozling cores now recase injector implants before storing
-Minor fixes

* add: Oozlings scream and jitter upon revive

* fix: Resolves (#4219)

* Minor text fix

* Removes hyno plasma remineder when souless.

* fix:Legions absorb oozling core and drops on death

* Should make gibbing deaths delete the core

* Fix Oozling ability status effects remaining

* Refix eyesight repair clean up from #4584

* For code testing

* Refactored core item proccessing. Deep item filter

* Fixes quirk item duplications and rerolls

* Fixes hydrophobia blocking touch water

* bal moves revival effects to nugget revivals

* Properly removes and fixes blindess.

* Revival limb removal refeactor.
	-Moves the slime blood drop from drop_limb to dismemberment
	-nugget revival now uses drop_limb allowing for the body and UI to update properly.
	-head decapitations now drop contents except normal eyes
	-makes revival compatable with bright eyes. No more duping eyes.

* Various small fixes picked 09cc588 from PR #4269

* Quick compat fix for TM #4642
@Absolucy Absolucy merged commit d33c200 into Monkestation:master Dec 31, 2024
24 checks passed
@Absolucy Absolucy deleted the quirk-improvements branch December 31, 2024 07:54
github-actions bot added a commit that referenced this pull request Dec 31, 2024
ThePooba pushed a commit that referenced this pull request Jan 7, 2025
* Restores Oozling wetness system. Bring a Towel.
-Restores dormant Oozling wetness system
-Makes wetness affect unconscious Oozlings.
-Removes flat bloodloss from getting wet.

* Oozling core gps Fix
-Fixes bug where core still broadcasting after crushing
-Fixes bug being unable to crush a core with a off gps
-Adds a bit of flavor text for crushing cores with off gps

* fix: Dup/Del Bug with chasms.
- Ensures items are properly transferred to the core to prevent conflicts between overlapping movement mechanics. e.g. Chasms

* fix: Limb implants being voided when dismemebered
-If the limb has an implant it will drop them to the floor instead of voiding it.

* Readds oozling melting from touch water sources.

* fix: Chest and Cavity implants. Revive visual bug
-Implants that go into the chest now drop unpon revival
-Cavity implant objects now drop unpon revival
-Fixes visual bugs caused by reviving a oozling core
-Minor grammar fixes

* Restores Oozling healing and tones it down
-Restores oozlings healing ability from plasma
-Heals 2.5 shared between heal and brute
-Healing is disabled by hydrophobia or if Oozlings skin reaches cold limit

* Refactor item core storage system
-General refactoring
-Added filters for banned items and allowed implants and organs
-Fixes bug with Nuclear Authentation Disk. Resolve other protected items with the banned items list.

* Allows external organs to be stored and saved
-External features (Not Anime Traits) such as tails wings antenna will be removed and stored in the core

* fix: Core can now case and store injector implants
-Oozling cores now recase injector implants before storing
-Minor fixes

* add: Oozlings scream and jitter upon revive

* fix: Resolves (#4219)

* Minor text fix

* Removes hyno plasma remineder when souless.

* fix:Legions absorb oozling core and drops on death

* Should make gibbing deaths delete the core

* Fix Oozling ability status effects remaining

* Refix eyesight repair clean up from #4584

* For code testing

* Refactored core item proccessing. Deep item filter

* Fixes quirk item duplications and rerolls

* Fixes hydrophobia blocking touch water

* bal moves revival effects to nugget revivals

* Properly removes and fixes blindess.

* Revival limb removal refeactor.
	-Moves the slime blood drop from drop_limb to dismemberment
	-nugget revival now uses drop_limb allowing for the body and UI to update properly.
	-head decapitations now drop contents except normal eyes
	-makes revival compatable with bright eyes. No more duping eyes.

* Various small fixes picked 09cc588 from PR #4269

* Quick compat fix for TM #4642

* Undoes gibbing core deletion fix.

* Restores DNA gib removal check. GC changes.
Gw0sty pushed a commit to Gw0sty/Monkestation2.0 that referenced this pull request Jan 9, 2025
* Restores Oozling wetness system. Bring a Towel.
-Restores dormant Oozling wetness system
-Makes wetness affect unconscious Oozlings.
-Removes flat bloodloss from getting wet.

* Oozling core gps Fix
-Fixes bug where core still broadcasting after crushing
-Fixes bug being unable to crush a core with a off gps
-Adds a bit of flavor text for crushing cores with off gps

* fix: Dup/Del Bug with chasms.
- Ensures items are properly transferred to the core to prevent conflicts between overlapping movement mechanics. e.g. Chasms

* fix: Limb implants being voided when dismemebered
-If the limb has an implant it will drop them to the floor instead of voiding it.

* Readds oozling melting from touch water sources.

* fix: Chest and Cavity implants. Revive visual bug
-Implants that go into the chest now drop unpon revival
-Cavity implant objects now drop unpon revival
-Fixes visual bugs caused by reviving a oozling core
-Minor grammar fixes

* Restores Oozling healing and tones it down
-Restores oozlings healing ability from plasma
-Heals 2.5 shared between heal and brute
-Healing is disabled by hydrophobia or if Oozlings skin reaches cold limit

* Refactor item core storage system
-General refactoring
-Added filters for banned items and allowed implants and organs
-Fixes bug with Nuclear Authentation Disk. Resolve other protected items with the banned items list.

* Allows external organs to be stored and saved
-External features (Not Anime Traits) such as tails wings antenna will be removed and stored in the core

* fix: Core can now case and store injector implants
-Oozling cores now recase injector implants before storing
-Minor fixes

* add: Oozlings scream and jitter upon revive

* fix: Resolves (Monkestation#4219)

* Minor text fix

* Removes hyno plasma remineder when souless.

* fix:Legions absorb oozling core and drops on death

* Should make gibbing deaths delete the core

* Fix Oozling ability status effects remaining

* Refix eyesight repair clean up from Monkestation#4584

* For code testing

* Refactored core item proccessing. Deep item filter

* Fixes quirk item duplications and rerolls

* Fixes hydrophobia blocking touch water

* bal moves revival effects to nugget revivals

* Properly removes and fixes blindess.

* Revival limb removal refeactor.
	-Moves the slime blood drop from drop_limb to dismemberment
	-nugget revival now uses drop_limb allowing for the body and UI to update properly.
	-head decapitations now drop contents except normal eyes
	-makes revival compatable with bright eyes. No more duping eyes.

* Various small fixes picked 09cc588 from PR Monkestation#4269

* Quick compat fix for TM Monkestation#4642
Gw0sty pushed a commit to Gw0sty/Monkestation2.0 that referenced this pull request Jan 9, 2025
* A bunch of quirk refactors + improvements

* Fix a runtime with the heterochromatic quirk (usually during credits)

* properly clone heterochromatic and phobia, dont clone junkie/smoker, prevent runtimes in bilingual

* fix test failures related to clown disbelief

* Add some medical record text, exclude some others from scans, and sort variables

* okay this ain't needed

* ???

* okay im just trying to see wtf is going on with CI now

* lmao of fucking course

* yeah fuck it lets visually align all of those bc why not

* Fix invalid args being passed to `on_clone`

* move sign language to `add()`

* fix clowns not believing in themselves

* get rid of `QUIRK_BRIGHT_EYES`

* change filename to avoid conflict with Monkestation#4140 hopefully??
Gw0sty pushed a commit to Gw0sty/Monkestation2.0 that referenced this pull request Jan 9, 2025
Gw0sty pushed a commit to Gw0sty/Monkestation2.0 that referenced this pull request Jan 9, 2025
* Restores Oozling wetness system. Bring a Towel.
-Restores dormant Oozling wetness system
-Makes wetness affect unconscious Oozlings.
-Removes flat bloodloss from getting wet.

* Oozling core gps Fix
-Fixes bug where core still broadcasting after crushing
-Fixes bug being unable to crush a core with a off gps
-Adds a bit of flavor text for crushing cores with off gps

* fix: Dup/Del Bug with chasms.
- Ensures items are properly transferred to the core to prevent conflicts between overlapping movement mechanics. e.g. Chasms

* fix: Limb implants being voided when dismemebered
-If the limb has an implant it will drop them to the floor instead of voiding it.

* Readds oozling melting from touch water sources.

* fix: Chest and Cavity implants. Revive visual bug
-Implants that go into the chest now drop unpon revival
-Cavity implant objects now drop unpon revival
-Fixes visual bugs caused by reviving a oozling core
-Minor grammar fixes

* Restores Oozling healing and tones it down
-Restores oozlings healing ability from plasma
-Heals 2.5 shared between heal and brute
-Healing is disabled by hydrophobia or if Oozlings skin reaches cold limit

* Refactor item core storage system
-General refactoring
-Added filters for banned items and allowed implants and organs
-Fixes bug with Nuclear Authentation Disk. Resolve other protected items with the banned items list.

* Allows external organs to be stored and saved
-External features (Not Anime Traits) such as tails wings antenna will be removed and stored in the core

* fix: Core can now case and store injector implants
-Oozling cores now recase injector implants before storing
-Minor fixes

* add: Oozlings scream and jitter upon revive

* fix: Resolves (Monkestation#4219)

* Minor text fix

* Removes hyno plasma remineder when souless.

* fix:Legions absorb oozling core and drops on death

* Should make gibbing deaths delete the core

* Fix Oozling ability status effects remaining

* Refix eyesight repair clean up from Monkestation#4584

* For code testing

* Refactored core item proccessing. Deep item filter

* Fixes quirk item duplications and rerolls

* Fixes hydrophobia blocking touch water

* bal moves revival effects to nugget revivals

* Properly removes and fixes blindess.

* Revival limb removal refeactor.
	-Moves the slime blood drop from drop_limb to dismemberment
	-nugget revival now uses drop_limb allowing for the body and UI to update properly.
	-head decapitations now drop contents except normal eyes
	-makes revival compatable with bright eyes. No more duping eyes.

* Various small fixes picked 09cc588 from PR Monkestation#4269

* Quick compat fix for TM Monkestation#4642

* Undoes gibbing core deletion fix.

* Restores DNA gib removal check. GC changes.
Jacquerel pushed a commit to tgstation/tgstation that referenced this pull request Jan 26, 2025
## About The Pull Request

Several quirks that process have some common checks and patterns: only
processing if the mob's stat is conscious or not dead, or not processing
if they have certain traits.

This refactors quirk processing so those checks are a part of
`/datum/quirk` itself, and the quirk will automatically be start/stop
being processed by `SSquirks` based on those conditions, by registering
signals to re-check if the quirk should be processing or not.

This ports said refactor from my downstream PR,
Monkestation/Monkestation2.0#4642 (and is
unaffected by the bug that
Monkestation/Monkestation2.0#4836 fixes, due to
additional refactors regarding trait handling)

## Why It's Good For The Game

Less repetitive code is always better, and leaves less room for errors.
Also, completely stopping the quirk from being processed by `SSquirks`
can save a minuscule amount of CPU time.

## Changelog
:cl:
refactor: Refactored how quirks handle starting/stopping processing.
/:cl:
vinylspiders pushed a commit to NovaSector/NovaSector that referenced this pull request Jan 28, 2025
## About The Pull Request

Several quirks that process have some common checks and patterns: only
processing if the mob's stat is conscious or not dead, or not processing
if they have certain traits.

This refactors quirk processing so those checks are a part of
`/datum/quirk` itself, and the quirk will automatically be start/stop
being processed by `SSquirks` based on those conditions, by registering
signals to re-check if the quirk should be processing or not.

This ports said refactor from my downstream PR,
Monkestation/Monkestation2.0#4642 (and is
unaffected by the bug that
Monkestation/Monkestation2.0#4836 fixes, due to
additional refactors regarding trait handling)

## Why It's Good For The Game

Less repetitive code is always better, and leaves less room for errors.
Also, completely stopping the quirk from being processed by `SSquirks`
can save a minuscule amount of CPU time.

## Changelog
:cl:
refactor: Refactored how quirks handle starting/stopping processing.
/:cl:
# Conflicts:
#	code/datums/quirks/_quirk.dm
Iajret pushed a commit to Fluffy-Frontier/FluffySTG that referenced this pull request Jan 30, 2025
## About The Pull Request

Several quirks that process have some common checks and patterns: only
processing if the mob's stat is conscious or not dead, or not processing
if they have certain traits.

This refactors quirk processing so those checks are a part of
`/datum/quirk` itself, and the quirk will automatically be start/stop
being processed by `SSquirks` based on those conditions, by registering
signals to re-check if the quirk should be processing or not.

This ports said refactor from my downstream PR,
Monkestation/Monkestation2.0#4642 (and is
unaffected by the bug that
Monkestation/Monkestation2.0#4836 fixes, due to
additional refactors regarding trait handling)

## Why It's Good For The Game

Less repetitive code is always better, and leaves less room for errors.
Also, completely stopping the quirk from being processed by `SSquirks`
can save a minuscule amount of CPU time.

## Changelog
:cl:
refactor: Refactored how quirks handle starting/stopping processing.
/:cl:
# Conflicts:
#	code/datums/quirks/_quirk.dm
vinylspiders pushed a commit to NovaSector/NovaSector that referenced this pull request Jan 31, 2025
## About The Pull Request

Several quirks that process have some common checks and patterns: only
processing if the mob's stat is conscious or not dead, or not processing
if they have certain traits.

This refactors quirk processing so those checks are a part of
`/datum/quirk` itself, and the quirk will automatically be start/stop
being processed by `SSquirks` based on those conditions, by registering
signals to re-check if the quirk should be processing or not.

This ports said refactor from my downstream PR,
Monkestation/Monkestation2.0#4642 (and is
unaffected by the bug that
Monkestation/Monkestation2.0#4836 fixes, due to
additional refactors regarding trait handling)

## Why It's Good For The Game

Less repetitive code is always better, and leaves less room for errors.
Also, completely stopping the quirk from being processed by `SSquirks`
can save a minuscule amount of CPU time.

## Changelog
:cl:
refactor: Refactored how quirks handle starting/stopping processing.
/:cl:
# Conflicts:
#	code/datums/quirks/_quirk.dm
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Fix fix da bug Refactor/Rework Completely redoing a larger thing / recoding a thing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant