From 30fda7adab99e899a4e9d5193db73f5033702acc Mon Sep 17 00:00:00 2001 From: Red <47158596+Red-byte3D@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:33:53 +0300 Subject: [PATCH] Xenomorphs now retain lisps if the body they bursted from had that trait (#8214) # About the pull request Gives xenomorphs lisp trait if the person they bursted from has it as well , only affects non hivemind communication # Explain why it's good for the game I think its cool and small interacitons like this make the game slightly more interesting # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Xenomorphs now get lisps if the person they bursted from had that trait /:cl: --------- Co-authored-by: InsaneRed --- code/modules/mob/living/carbon/xenomorph/Embryo.dm | 2 ++ code/modules/mob/living/carbon/xenomorph/Evolution.dm | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/Embryo.dm b/code/modules/mob/living/carbon/xenomorph/Embryo.dm index efdaa765bf75..04af79513e9b 100644 --- a/code/modules/mob/living/carbon/xenomorph/Embryo.dm +++ b/code/modules/mob/living/carbon/xenomorph/Embryo.dm @@ -266,6 +266,8 @@ window_flash(new_xeno.client) SSround_recording.recorder.track_player(new_xeno) + if(HAS_TRAIT(affected_mob, TRAIT_LISPING)) + ADD_TRAIT(new_xeno, TRAIT_LISPING, affected_mob) to_chat(new_xeno, SPAN_XENOANNOUNCE("You are a xenomorph larva inside a host! Move to burst out of it!")) to_chat(new_xeno, "Your job is to spread the hive and protect the Queen. If there's no Queen, you can become the Queen yourself by evolving into a drone.") diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index bcb61ecc1703..91fdc569ccbb 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -188,6 +188,7 @@ hive.living_xeno_queen.overwatch(new_xeno) src.transfer_observers_to(new_xeno) + new_xeno._status_traits = src._status_traits qdel(src) new_xeno.xeno_jitter(25) @@ -312,7 +313,7 @@ var/mob/living/carbon/xenomorph/new_xeno = transmute(newcaste) if(new_xeno) log_game("EVOLVE: [key_name(src)] de-evolved into [new_xeno].") - + return /mob/living/carbon/xenomorph/proc/transmute(newcaste) @@ -324,7 +325,6 @@ var/level_to_switch_to = get_vision_level() var/xeno_type = GLOB.RoleAuthority.get_caste_by_text(newcaste) var/mob/living/carbon/xenomorph/new_xeno = new xeno_type(get_turf(src), src) - if(!istype(new_xeno)) //Something went horribly wrong to_chat(src, SPAN_WARNING("Something went terribly wrong here. Your new xeno is null! Tell a coder immediately!")) @@ -368,6 +368,7 @@ SPAN_XENODANGER("We regress into our previous form.")) transfer_observers_to(new_xeno) + new_xeno._status_traits = src._status_traits if(GLOB.round_statistics && !new_xeno.statistic_exempt) GLOB.round_statistics.track_new_participant(faction, -1) //so an evolved xeno doesn't count as two.