From 213f426db692b6a1d9eebebd92eecd4aea045557 Mon Sep 17 00:00:00 2001 From: nikothedude <59709059+nikothedude@users.noreply.github.com> Date: Wed, 20 May 2026 09:18:41 -0400 Subject: [PATCH] Fixes a number of quirks that dont properly remove themselves (#5618) ## About The Pull Request Title. Venemous bite (both of them), oviparity, family heirloom... The issue is taht we werent passing in the right args/werent using the right procs. ## Why It's Good For The Game bugs bad ## Proof Of Testing
Screenshots/Videos https://github.com/user-attachments/assets/8b694227-e533-4687-8c87-1544789f9671
## Changelog :cl: fix: Certain quirks should now properly remove themselves /:cl: --- .../code/datums/quirks/negative_quirks/family_heirloom.dm | 5 +++++ .../aphrodisiacal_bite/aphrodisiacal_bite_quirk.dm | 2 +- .../code/datums/quirks/neutral_quirks/egg_production.dm | 2 +- .../positive_quirks/venomous_bite/venomous_bite_quirk.dm | 2 +- .../code/modules/quirks/positive_quirks/telepathy.dm | 6 +++--- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/modular_zubbers/code/datums/quirks/negative_quirks/family_heirloom.dm b/modular_zubbers/code/datums/quirks/negative_quirks/family_heirloom.dm index 74d6bc7aa97..5c9ff1a4928 100644 --- a/modular_zubbers/code/datums/quirks/negative_quirks/family_heirloom.dm +++ b/modular_zubbers/code/datums/quirks/negative_quirks/family_heirloom.dm @@ -8,6 +8,11 @@ GLOBAL_LIST_INIT(invalid_heirloom_types, typecacheof(list( /// The temporary mark action we give to users who have opted out of random items. var/datum/action/mark_family_heirloom/mark_action +/datum/quirk/item_quirk/family_heirloom/remove() + . = ..() + + QDEL_NULL(mark_action) + /datum/quirk/item_quirk/family_heirloom/Destroy() . = ..() diff --git a/modular_zubbers/code/datums/quirks/neutral_quirks/aphrodisiacal_bite/aphrodisiacal_bite_quirk.dm b/modular_zubbers/code/datums/quirks/neutral_quirks/aphrodisiacal_bite/aphrodisiacal_bite_quirk.dm index ded2f3f1841..ac263c194c0 100644 --- a/modular_zubbers/code/datums/quirks/neutral_quirks/aphrodisiacal_bite/aphrodisiacal_bite_quirk.dm +++ b/modular_zubbers/code/datums/quirks/neutral_quirks/aphrodisiacal_bite/aphrodisiacal_bite_quirk.dm @@ -18,7 +18,7 @@ if(QDELETED(quirk_holder)) return ..() var/datum/action/cooldown/mob_cooldown/aphrodisiacal_bite/action = locate(/datum/action/cooldown/mob_cooldown/aphrodisiacal_bite) in quirk_holder.actions - action.Remove() + action.Remove(quirk_holder) return ..() diff --git a/modular_zubbers/code/datums/quirks/neutral_quirks/egg_production.dm b/modular_zubbers/code/datums/quirks/neutral_quirks/egg_production.dm index 63bc39ec6c7..b3813d5cba4 100644 --- a/modular_zubbers/code/datums/quirks/neutral_quirks/egg_production.dm +++ b/modular_zubbers/code/datums/quirks/neutral_quirks/egg_production.dm @@ -18,7 +18,7 @@ if(QDELETED(quirk_holder)) return ..() var/datum/action/cooldown/spell/egg_production/action = locate(/datum/action/cooldown/spell/egg_production) in quirk_holder.actions - action.Remove() + action.Remove(quirk_holder) return ..() diff --git a/modular_zubbers/code/datums/quirks/positive_quirks/venomous_bite/venomous_bite_quirk.dm b/modular_zubbers/code/datums/quirks/positive_quirks/venomous_bite/venomous_bite_quirk.dm index ceef3e3bada..2594ceed706 100644 --- a/modular_zubbers/code/datums/quirks/positive_quirks/venomous_bite/venomous_bite_quirk.dm +++ b/modular_zubbers/code/datums/quirks/positive_quirks/venomous_bite/venomous_bite_quirk.dm @@ -21,7 +21,7 @@ if(QDELETED(quirk_holder)) return ..() var/datum/action/cooldown/mob_cooldown/venomous_bite/action = locate(/datum/action/cooldown/mob_cooldown/venomous_bite) in quirk_holder.actions - action.Remove() + action.Remove(quirk_holder) return ..() diff --git a/modular_zubbers/code/modules/quirks/positive_quirks/telepathy.dm b/modular_zubbers/code/modules/quirks/positive_quirks/telepathy.dm index 647050c8d5c..171e601c8f9 100644 --- a/modular_zubbers/code/modules/quirks/positive_quirks/telepathy.dm +++ b/modular_zubbers/code/modules/quirks/positive_quirks/telepathy.dm @@ -146,10 +146,10 @@ var/datum/weakref/tele_action_ref /datum/quirk/telepathic/add(client/client_source) - var/datum/action/cooldown/spell/pointed/telepathy/tele_action = new + var/datum/action/cooldown/spell/pointed/telepathy/tele_action = new - tele_action.Grant(quirk_holder) - tele_action_ref = WEAKREF(tele_action) + tele_action.Grant(quirk_holder) + tele_action_ref = WEAKREF(tele_action) /datum/quirk/telepathic/remove() var/datum/action/cooldown/spell/pointed/telepathy/tele_action = tele_action_ref?.resolve()