[MIRROR] More redspace modifier tweaks (#12131)

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-12-18 06:05:26 -05:00
committed by GitHub
co-authored by Cameron Lennox
parent 765fcd057f
commit 8fd4fe2285
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"]
@@ -295,7 +295,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))
@@ -372,7 +372,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."))