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
<details>
<summary>Screenshots/Videos</summary>


https://github.com/user-attachments/assets/8b694227-e533-4687-8c87-1544789f9671

</details>

## Changelog
🆑
fix: Certain quirks should now properly remove themselves
/🆑
This commit is contained in:
nikothedude
2026-05-20 15:18:41 +02:00
committed by GitHub
parent 7e179ad45e
commit 213f426db6
5 changed files with 11 additions and 6 deletions
@@ -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()
. = ..()
@@ -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 ..()
@@ -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 ..()
@@ -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 ..()
@@ -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()