diff --git a/code/datums/status_effects/debuffs/genetic_damage.dm b/code/datums/status_effects/debuffs/genetic_damage.dm index 9a694409077..91cfc593fcc 100644 --- a/code/datums/status_effects/debuffs/genetic_damage.dm +++ b/code/datums/status_effects/debuffs/genetic_damage.dm @@ -34,7 +34,7 @@ /datum/status_effect/genetic_damage/tick(seconds_between_ticks) if(ismonkey(owner) && total_damage >= GORILLA_MUTATION_MINIMUM_DAMAGE && SPT_PROB(GORILLA_MUTATION_CHANCE_PER_SECOND, seconds_between_ticks)) var/mob/living/carbon/carbon_owner = owner - carbon_owner.gorillize() + carbon_owner.gorillize(genetics_gorilla = TRUE) qdel(src) return diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm index d1b1aebf9eb..3a70afd7b62 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm @@ -167,4 +167,21 @@ ADD_TRAIT(src, TRAIT_PACIFISM, INNATE_TRAIT) AddComponent(/datum/component/crate_carrier) +/// A version of the gorilla achieved by reaching enough genetic damage as a monkey +/mob/living/basic/gorilla/genetics + name = "Lab Gorilla" + maxHealth = 180 + health = 180 + desc = "A gorilla created via \"advanced genetic science\". While not quite as strong as their wildborne brethren, this simian still packs a punch." + melee_damage_lower = 15 + melee_damage_upper = 18 + obj_damage = 25 + speed = 0.1 + paralyze_chance = 0 + current_size = 0.9 + +/mob/living/basic/gorilla/genetics/Initialize(mapload) + . = ..() + qdel(GetComponent(/datum/component/amputating_limbs)) + #undef GORILLA_HANDS_LAYER diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 28de95ff94d..45e54a8475c 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -311,7 +311,7 @@ qdel(src) return new_crab -/mob/living/carbon/proc/gorillize() +/mob/living/carbon/proc/gorillize(genetics_gorilla = FALSE) if(HAS_TRAIT(src, TRAIT_NO_TRANSFORM)) return ADD_TRAIT(src, TRAIT_NO_TRANSFORM, PERMANENT_TRANSFORMATION_TRAIT) @@ -327,7 +327,8 @@ regenerate_icons() icon = null SetInvisibility(INVISIBILITY_MAXIMUM) - var/mob/living/basic/gorilla/new_gorilla = new (get_turf(src)) + var/gorilla_type = genetics_gorilla ? /mob/living/basic/gorilla/genetics : /mob/living/basic/gorilla + var/mob/living/basic/gorilla/new_gorilla = new gorilla_type(get_turf(src)) new_gorilla.set_combat_mode(TRUE) if(mind) mind.transfer_to(new_gorilla)