xeno princesses no longer lose their unique identifier (#87917)

This commit is contained in:
Fikou
2024-11-16 11:43:30 +01:00
committed by GitHub
parent 29ab4ff1cb
commit c8e49fd01b
3 changed files with 14 additions and 19 deletions
@@ -56,14 +56,16 @@ GLOBAL_LIST_INIT(strippable_alien_humanoid_items, create_strippable_list(list(
..()
//For alien evolution/promotion/queen finder procs. Checks for an active alien of that type
/proc/get_alien_type(alienpath)
for(var/mob/living/carbon/alien/adult/A in GLOB.alive_mob_list)
if(!istype(A, alienpath))
/proc/get_alien_type(alien_path, mob/ignored)
for(var/mob/living/carbon/alien/alien in GLOB.carbon_list)
if(alien == ignored)
continue
if(!A.key || A.stat == DEAD) //Only living aliens with a ckey are valid.
if(!istype(alien, alien_path))
continue
return A
return FALSE
if(!alien.key || alien.stat == DEAD) //Only living aliens with a ckey are valid.
continue
return alien
return null
/mob/living/carbon/alien/adult/check_breath(datum/gas_mixture/breath)
if(breath?.total_moles() > 0 && !HAS_TRAIT(src, TRAIT_SNEAK))
@@ -44,18 +44,6 @@
alien_speed = 2
/mob/living/carbon/alien/adult/royal/queen/Initialize(mapload)
//there should only be one queen
for(var/mob/living/carbon/alien/adult/royal/queen/Q in GLOB.carbon_list)
if(Q == src)
continue
if(Q.stat == DEAD)
continue
if(Q.client)
name = "alien princess ([rand(1, 999)])" //if this is too cutesy feel free to change it/remove it.
break
real_name = src.name
var/static/list/innate_actions = list(
/datum/action/cooldown/alien/promote,
/datum/action/cooldown/spell/aoe/repulse/xeno,
@@ -72,6 +60,11 @@
organs += new /obj/item/organ/alien/eggsac
return ..()
/mob/living/carbon/alien/adult/royal/queen/set_name()
if(get_alien_type(/mob/living/carbon/alien/adult/royal/queen, ignored = src))
name = "alien princess"
return ..()
//Queen verbs
/datum/action/cooldown/alien/make_structure/lay_egg
name = "Lay Egg"
@@ -22,7 +22,7 @@
gib_type = /obj/effect/decal/cleanable/xenoblood/xgibs
unique_name = TRUE
var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|queen)( \\(\\d+\\))?")
var/static/regex/alien_name_regex = new("alien (larva|sentinel|drone|hunter|praetorian|princess|queen)( \\(\\d+\\))?")
var/static/list/xeno_allowed_items = typecacheof(list(
/obj/item/clothing/mask/facehugger,
/obj/item/toy/basketball, // playing ball against a xeno is rigged since they cannot be disarmed, their game is out of this world