From c6b98bec526c002a1ef991ab041a9a306e33e91d Mon Sep 17 00:00:00 2001 From: Star Kings Date: Sun, 11 May 2025 18:04:06 -0400 Subject: [PATCH] Adds a new Quirk: Unblinking (#3735) ## About The Pull Request This adds a zero-cost neutral quirk that prevents the holder from blinking at all without any mechanical downsides. ## Why It's Good For The Game The tg upstream added automated blinking which just doesn't mesh well with customization options. The Fluoride Stare quirk gave far too large a mechanical downside for what could've otherwise been a flavor change. EDIT: ~~This change now actually DOES replace the Fluoride Stare quirk, per request of the maintainers.~~ EDIT 2: It doesn't replace Fluoride Stare, wanna experience the torture of needing to use eye drops every 60 seconds? Have at thee, a separate PR to remove this later down the line still isn't impossible though. I'm tired boss. ## Proof Of Testing Emissive eyes also work fine from our testing.
Screenshots/Videos ![image](https://github.com/user-attachments/assets/a0fe7ae4-f339-44a5-94e4-ccf90e9532fe) ![Screenshot 2025-05-07 042635](https://github.com/user-attachments/assets/41418554-d68b-4697-8f12-970afb8517f3)
## Changelog :cl: AstrumLernaean add: Added a new neutral quirk: Unblinking. Prevents blinking; now with 100% less 'going blind' involved. /:cl: --------- Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com> --- .../subsystem/processing/quirks.dm | 1 + .../quirks/neutral_quirks/unblinking.dm | 32 +++++++++++++++++++ tgstation.dme | 1 + 3 files changed, 34 insertions(+) create mode 100644 modular_zubbers/code/datums/quirks/neutral_quirks/unblinking.dm diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index a98ce4ac7dd..3d213c2f462 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -48,6 +48,7 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/dominant_aura, /datum/quirk/well_trained), list(/datum/quirk/equipping/entombed, /datum/quirk/equipping/seamless_clothes), list(/datum/quirk/equipping/entombed, /datum/quirk/badback), + list(/datum/quirk/unblinking, /datum/quirk/item_quirk/fluoride_stare), //BUBBER EDIT ADDITION END )) diff --git a/modular_zubbers/code/datums/quirks/neutral_quirks/unblinking.dm b/modular_zubbers/code/datums/quirks/neutral_quirks/unblinking.dm new file mode 100644 index 00000000000..afd5a9e8c6e --- /dev/null +++ b/modular_zubbers/code/datums/quirks/neutral_quirks/unblinking.dm @@ -0,0 +1,32 @@ +/datum/quirk/unblinking + name = "Unblinking" + desc = "For whatever reason, you do not need to blink to keep your eyes (or equivalent visual apparatus) functional." + icon = FA_ICON_FACE_FLUSHED + value = 0 + gain_text = span_danger("You no longer feel the need to blink.") + lose_text = span_notice("You feel the need to blink again.") + medical_record_text = "Patient is incapable of blinking." + mob_trait = TRAIT_NO_EYELIDS //Also prevents eye shutting in knockout state and death. + +/datum/quirk/unblinking/add(client/client_source) + . = ..() + var/obj/item/organ/eyes/eyes = quirk_holder.get_organ_slot(ORGAN_SLOT_EYES) + if(!eyes) + return + + eyes.blink_animation = FALSE + + // interrupt the animations + if(eyes.eyelid_left) + animate(eyes.eyelid_left, alpha = 0, time = 0) + if(eyes.eyelid_right) + animate(eyes.eyelid_right, alpha = 0, time = 0) + +/datum/quirk/unblinking/remove() + . = ..() + var/obj/item/organ/eyes/eyes = quirk_holder.get_organ_slot(ORGAN_SLOT_EYES) + if(!eyes) + return + + eyes.blink_animation = TRUE + quirk_holder.update_body() diff --git a/tgstation.dme b/tgstation.dme index 692bc60760e..84b0f181ebe 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8926,6 +8926,7 @@ #include "modular_zubbers\code\datums\quirks\neutral_quirks\oversized_quirk.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\pet_owner.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\seamless_clothes.dm" +#include "modular_zubbers\code\datums\quirks\neutral_quirks\unblinking.dm" #include "modular_zubbers\code\datums\quirks\neutral_quirks\waddle.dm" #include "modular_zubbers\code\datums\quirks\positive_quirks\defensive.dm" #include "modular_zubbers\code\datums\quirks\positive_quirks\dominant_aura.dm"