More redspace modifier tweaks (#18903)

* More redspace tweaks

Makes more tweaks to the redspace modifiers meant for horror areas.

* Update horror.dm

* Update voicebox.dm

* Update voicebox.dm

* yoink ghosts instead

* Update horror.dm

* Update horror.dm

* Update horror.dm

* THE POWER OF

* Update horror.dm

* Update horror.dm

* names
This commit is contained in:
Cameron Lennox
2025-12-18 05:44:54 -05:00
committed by GitHub
parent 938a186459
commit 7bba33fd2b
13 changed files with 592 additions and 19 deletions
+3 -3
View File
@@ -49,7 +49,7 @@ BLOOD_VOLUME_SURVIVE = 40
if(isSynthetic())
B.data["species"] = "synthetic"
B.data["changeling"] = (!isnull(mind) && is_changeling(mind)) || species?.ambulant_blood
B.data["changeling"] = (!isnull(mind) && is_changeling(mind)) || species?.ambulant_blood || HAS_TRAIT(src, TRAIT_REDSPACE_CORRUPTED)
B.color = B.data["blood_colour"]
B.name = B.data["blood_name"]
@@ -288,7 +288,7 @@ BLOOD_VOLUME_SURVIVE = 40
B.data["resistances"] |= GetResistances()
B.data["blood_DNA"] = copytext(src.dna.unique_enzymes,1,0)
B.data["blood_type"] = copytext(src.dna.b_type,1,0)
B.data["changeling"] = (!isnull(mind) && is_changeling(mind)) || species?.ambulant_blood
B.data["changeling"] = (!isnull(mind) && is_changeling(mind)) || species?.ambulant_blood || HAS_TRAIT(src, TRAIT_REDSPACE_CORRUPTED)
// Putting this here due to return shenanigans.
if(ishuman(src))
@@ -365,7 +365,7 @@ BLOOD_VOLUME_SURVIVE = 40
if(!our)
log_runtime("Failed to re-initialize blood datums on [src]!")
return
if(is_changeling(src)) //Changelings don't reject blood!
if((is_changeling(src) || HAS_TRAIT(src, TRAIT_REDSPACE_CORRUPTED))) //Changelings don't reject blood!
vessel.add_reagent(REAGENT_ID_BLOOD, amount, injected.data)
vessel.update_total()
else if(blood_incompatible(injected.data["blood_type"],our.data["blood_type"],injected.data["species"],our.data["species"]) )
+7 -7
View File
@@ -223,18 +223,19 @@
decays = FALSE
can_reject = FALSE
meat_type = /obj/item/reagent_containers/food/snacks/meat/worm
will_assist_languages = list(LANGUAGE_DAEMON)
will_assist_languages = list(LANGUAGE_REDSPACE)
var/speak_chance = 25 //25% chance to speak Daemon every 10 ticks
var/datum/language/daemon //Storage for demon language so we don't have to constantly set it.
var/datum/language/redspace
mute = TRUE //You can only speak the hivemind language~
/obj/item/organ/internal/voicebox/horror/Initialize(mapload)
. = ..()
daemon = GLOB.all_languages[LANGUAGE_DAEMON]
redspace = GLOB.all_languages[LANGUAGE_REDSPACE]
/obj/item/organ/internal/voicebox/horror/replaced(var/mob/living/carbon/human/target,var/obj/item/organ/external/affected)
..()
target.add_language(LANGUAGE_DAEMON) //Learn Daemon
target.default_language = daemon //Begin speaking Daemon.
target.add_language(LANGUAGE_REDSPACE)
target.default_language = redspace
/obj/item/organ/internal/voicebox/horror/process()
..()
@@ -243,6 +244,5 @@
if(is_bruised()) //They heal theirselves.
damage -= 1
if(owner.life_tick % 10 == 0 && prob(speak_chance))
owner.default_language = daemon //Swap back to Daemon.
if(prob(5)) //1/20 on a 1/4 chance. 1/80 chance every 10 ticks.
owner.say(pick("Join us", "Become one with us", "Join the Flesh", "Come to us", "[owner.real_name] is just a vessel.", "You can be just like us."))
owner.say(pick("; Accept our gift.", "; Become one with us.", "; Join our embrace.", "; Come to us.", "; We welcome all that can hear.", "; You can be just like us."))