diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index 0db0ddcf34..5c35c78274 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -537,13 +537,7 @@ /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "pE" = ( -/obj/structure/alien/weeds/node, -/mob/living/simple_animal/hostile/alien/queen/large{ - desc = "A gigantic alien who is in charge of the hive and all of its loyal servants."; - name = "alien queen"; - pixel_x = -16; - plants_off = 1 - }, +/obj/effect/mob_spawn/alien/corpse/humanoid/queen, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "yf" = ( @@ -559,7 +553,7 @@ /area/ruin/unpowered/xenonest) "JM" = ( /obj/structure/alien/weeds/node, -/mob/living/simple_animal/hostile/alien/drone, +/obj/effect/mob_spawn/alien/corpse/humanoid/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) "Uh" = ( @@ -847,7 +841,7 @@ ac af ak ag -al +lG ac ac ag @@ -899,7 +893,7 @@ ag ag ag ag -ag +aF ag ag ag @@ -956,7 +950,7 @@ ac ac ac am -ag +aF ag ag ac @@ -1258,7 +1252,7 @@ af ag af aw -ag +aF am ac an @@ -1357,7 +1351,7 @@ ac af ag ar -al +lG ag ag ag @@ -1564,7 +1558,7 @@ ac ah ag ac -ag +aF ag ag ag @@ -1869,7 +1863,7 @@ af ai af ag -ag +aF ag ag aw diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index bc85cc3ddf..0b87ee870e 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -105,8 +105,8 @@ "mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "mcolor2" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "mcolor3" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "tail_lizard" = "None", - "tail_human" = "None", + "tail_lizard" = pick(GLOB.tails_list_lizard), + "tail_human" = pick(GLOB.tails_list_human), "wings" = "None", "snout" = pick(GLOB.snouts_list), "horns" = pick(GLOB.horns_list), @@ -120,11 +120,12 @@ "taur" = "None", "mam_body_markings" = "None", "mam_ears" = "None", + "mam_tail" = pick(GLOB.mam_tails_list), "mam_tail" = "None", "mam_tail_animated" = "None", - "xenodorsal" = "standard", - "xenohead" = "standard", - "xenotail" = "standard", + "xenodorsal" = "Standard", + "xenohead" = "Standard", + "xenotail" = "Xenomorph Tail", "exhibitionist" = FALSE, "genitals_use_skintone" = FALSE, "has_cock" = FALSE, diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index dbffe61595..68baeb51e9 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -73,7 +73,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/skin_tone = "caucasian1" //Skin color var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race - var/list/features = list("mcolor" = "FFF", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain") + var/list/features = list("mcolor" = "FFF", + "tail_lizard" = "Smooth", "tail_human" = "None", + "snout" = "Round", "horns" = "None", "ears" = "None", + "wings" = "None", "frills" = "None", "spines" = "None", + "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain") var/list/custom_names = list() var/prefered_security_department = SEC_DEPT_RANDOM @@ -2058,6 +2062,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) else if("xenotail" in pref_species.default_features) character.dna.species.mutant_bodyparts |= "xenotail" + if(("legs" in pref_species.default_features) && character.dna.features["legs"] == "Digitigrade Legs") + pref_species.species_traits += DIGITIGRADE + character.Digitigrade_Leg_Swap(TRUE) + if(DIGITIGRADE in pref_species.species_traits) + character.Digitigrade_Leg_Swap(FALSE) + if(icon_updates) character.update_body() character.update_hair() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 416f02b40c..617e62773d 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -4,14 +4,14 @@ id = "lizard" say_mod = "hisses" default_color = "00FF00" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,FACEHAIR) + species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_REPTILE) mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur") mutanttongue = /obj/item/organ/tongue/lizard mutanttail = /obj/item/organ/tail/lizard coldmod = 1.5 heatmod = 0.67 - default_features = list("mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "taur" = "None") + default_features = list("mcolor" = "0F0", "mcolor2" = "0F0", "mcolor3" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "taur" = "None") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -70,6 +70,19 @@ mutant_bodyparts |= "spines" H.update_body() +/datum/species/lizard/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) + if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") + species_traits += DIGITIGRADE + if(DIGITIGRADE in species_traits) + C.Digitigrade_Leg_Swap(FALSE) + return ..() + +/datum/species/lizard/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) + if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs") + species_traits -= DIGITIGRADE + if(DIGITIGRADE in species_traits) + C.Digitigrade_Leg_Swap(TRUE) + /* Lizard subspecies: ASHWALKERS */ diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index bbc747bf1d..212b8d4d17 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -82,16 +82,24 @@ var/mob/living/L = target if(L.stat != DEAD) if(vore_active == TRUE && L.devourable == TRUE) - dragon_feeding(src,L) + if(L.Adjacent(targets_from)) + dragon_feeding(src,L) + else if(!client && ranged && ranged_cooldown <= world.time) + OpenFire() if(L.loc == src.contents) - L = null + LoseTarget() + return 0 + else if(!client && ranged && ranged_cooldown <= world.time) OpenFire() else if(L.stat >= SOFT_CRIT) if(vore_active == TRUE && L.devourable == TRUE) - dragon_feeding(src,L) + if(L.Adjacent(targets_from)) + dragon_feeding(src,L) + if(L.loc == src.contents) - L = null + LoseTarget() + return 0 else devour(L) diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index 6611b1da1a..927d324e23 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -42,9 +42,9 @@ "mam_ears" = "None", "mam_tail" = "None", "mam_tail_animated" = "None", - "xenodorsal" = "None", - "xenohead" = "None", - "xenotail" = "None", + "xenodorsal" = "Standard", + "xenohead" = "Standard", + "xenotail" = "Xenomorph Tail", "taur" = "None", "exhibitionist" = FALSE, "genitals_use_skintone" = FALSE, diff --git a/modular_citadel/code/modules/mining/mining_ruins.dm b/modular_citadel/code/modules/mining/mining_ruins.dm index f1cc55b420..66b6fd0482 100644 --- a/modular_citadel/code/modules/mining/mining_ruins.dm +++ b/modular_citadel/code/modules/mining/mining_ruins.dm @@ -11,7 +11,8 @@ death = TRUE name = "alien drone" mob_name = "alien drone" - /obj/effect/mob_spawn/alien/corpse/humanoid/queen + +/obj/effect/mob_spawn/alien/corpse/humanoid/queen mob_type = /mob/living/carbon/alien/humanoid/royal/queen death = TRUE name = "alien queen" diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index ece58dcf3a..b2d51ce985 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -30,7 +30,7 @@ return ("mam_waggingtail" in mutant_bodyparts) /datum/species/mammal/start_wagging_tail(mob/living/carbon/human/H) - if("tail_human" in mutant_bodyparts) + if("mam_tail" in mutant_bodyparts) mutant_bodyparts -= "mam_tail" mutant_bodyparts |= "mam_waggingtail" H.update_body() @@ -85,7 +85,7 @@ return ("mam_waggingtail" in mutant_bodyparts) /datum/species/avian/start_wagging_tail(mob/living/carbon/human/H) - if("tail_human" in mutant_bodyparts) + if("mam_tail" in mutant_bodyparts) mutant_bodyparts -= "mam_tail" mutant_bodyparts |= "mam_waggingtail" H.update_body() @@ -115,7 +115,7 @@ species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("mam_tail", "mam_body_markings", "mam_ears", "taur") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "shark", "mam_body_markings" = "Shark", "mam_ears" = "None") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF","mam_tail" = "Shark", "mam_body_markings" = "Shark", "mam_ears" = "None") attack_verb = "bite" attack_sound = 'sound/weapons/bite.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -139,7 +139,7 @@ return ("mam_waggingtail" in mutant_bodyparts) /datum/species/aquatic/start_wagging_tail(mob/living/carbon/human/H) - if("tail_human" in mutant_bodyparts) + if("mam_tail" in mutant_bodyparts) mutant_bodyparts -= "mam_tail" mutant_bodyparts |= "mam_waggingtail" H.update_body() @@ -169,7 +169,7 @@ species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "taur", "moth_wings") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "moth", "mam_tail" = "None", "mam_ears" = "None", "moth_wings" = "Plain") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_body_markings" = "