mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-21 12:02:31 +01:00
54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
/mob/living/carbon/alien/verb/evolve()
|
|
|
|
set name = "Moult"
|
|
set desc = "Moult your skin and become an adult."
|
|
set category = "Abilities"
|
|
|
|
if(stat != CONSCIOUS)
|
|
return
|
|
|
|
if(!adult_form)
|
|
remove_verb(src, /mob/living/carbon/alien/verb/evolve)
|
|
return
|
|
|
|
if(handcuffed || legcuffed)
|
|
to_chat(src, SPAN_WARNING("You cannot evolve when you are cuffed."))
|
|
return
|
|
|
|
if(amount_grown < max_grown)
|
|
to_chat(src, SPAN_WARNING("You are not fully grown."))
|
|
return
|
|
|
|
// confirm_evolution() handles choices and other specific requirements.
|
|
var/new_species = confirm_evolution()
|
|
if(!new_species || !adult_form )
|
|
return
|
|
|
|
var/mob/living/carbon/human/adult = new adult_form(get_turf(src))
|
|
adult.set_species(new_species)
|
|
show_evolution_blurb()
|
|
// TODO: drop a moulted skin. Ew.
|
|
|
|
if(mind)
|
|
mind.transfer_to(adult)
|
|
else
|
|
adult.key = src.key
|
|
|
|
for (var/obj/item/W in src.contents)
|
|
src.drop_from_inventory(W)
|
|
|
|
for(var/datum/language/L in languages)
|
|
adult.add_language(L.name)
|
|
qdel(src)
|
|
|
|
/mob/living/carbon/alien/proc/update_progression()
|
|
if(amount_grown < max_grown)
|
|
amount_grown++
|
|
return
|
|
|
|
/mob/living/carbon/alien/proc/confirm_evolution()
|
|
return
|
|
|
|
/mob/living/carbon/alien/proc/show_evolution_blurb()
|
|
return
|