Makes the monkey mutation remember your species through transformations (#55844)

* Makes the monkey mutation remember your species through transformations

* Implements suggestions by ghommie
This commit is contained in:
necromanceranne
2021-01-06 10:43:21 +01:00
committed by GitHub
parent d18a015fc2
commit cdf16a2170
2 changed files with 9 additions and 5 deletions
+5 -1
View File
@@ -173,18 +173,22 @@
/datum/mutation/human/race
name = "Monkified"
desc = "A strange genome, believing to be what differentiates monkeys from humans."
text_gain_indication = "You feel unusually monkey-like."
text_lose_indication = "You feel like your old self."
quality = NEGATIVE
time_coeff = 2
locked = TRUE //Species specific, keep out of actual gene pool
var/datum/species/original_species = /datum/species/human
/datum/mutation/human/race/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
original_species = owner.dna.species.type
. = owner.monkeyize()
/datum/mutation/human/race/on_losing(mob/living/carbon/human/owner)
if(owner && owner.stat != DEAD && (owner.dna.mutations.Remove(src)) && ismonkey(owner))
. = owner.humanize()
. = owner.humanize(original_species)
/datum/mutation/human/glow
name = "Glowy"
+4 -4
View File
@@ -30,7 +30,7 @@
////////////////////////// Humanize //////////////////////////////
//Could probably be merged with monkeyize but other transformations got their own procs, too
/mob/living/carbon/proc/humanize()
/mob/living/carbon/proc/humanize(species = /datum/species/human)
if (notransform || transformation_timer)
return
@@ -45,15 +45,15 @@
invisibility = INVISIBILITY_MAXIMUM
new /obj/effect/temp_visual/monkeyify/humanify(loc)
transformation_timer = addtimer(CALLBACK(src, .proc/finish_humanize), TRANSFORMATION_DURATION, TIMER_UNIQUE)
transformation_timer = addtimer(CALLBACK(src, .proc/finish_humanize, species), TRANSFORMATION_DURATION, TIMER_UNIQUE)
/mob/living/carbon/proc/finish_humanize()
/mob/living/carbon/proc/finish_humanize(species = /datum/species/human)
transformation_timer = null
to_chat(src, "<B>You are now a human.</B>")
notransform = FALSE
icon = initial(icon)
invisibility = 0
set_species(/datum/species/human)
set_species(species)
return src
/mob/living/carbon/human/AIize(transfer_after = TRUE, client/preference_source)