Files
fulpstation/code/game/gamemodes/changeling/powers/transform.dm
Incoming 595bb0c8e4 Generalizes lizard parts to "features" for future non-lizard fields, at the same time merging mutant color into this list
Random lizard bodies will finally have color!

Pushes features almost all the way to the DNA side of thing, the mob side is only needed during character creation.

Note that changes to the save file will invoke a one time per character runtime for legacy characters as the save file purges mutant_color, this is as far as I can tell harmless, has no effect on the player, and is self correcting.
2015-06-12 00:43:35 -04:00

36 lines
1.1 KiB
Plaintext

/obj/effect/proc_holder/changeling/transform
name = "Transform"
desc = "We take on the appearance and voice of one we have absorbed."
chemical_cost = 5
dna_cost = 0
req_dna = 1
req_human = 1
max_genetic_damage = 3
//Change our DNA to that of somebody we've absorbed.
/obj/effect/proc_holder/changeling/transform/sting_action(var/mob/living/carbon/human/user)
var/datum/changeling/changeling = user.mind.changeling
var/datum/dna/chosen_dna = changeling.select_dna("Select the target DNA: ", "Target DNA")
if(!chosen_dna)
return
user.dna = chosen_dna
user.real_name = chosen_dna.real_name
hardset_dna(user, null, null, null, null, chosen_dna.species.type, chosen_dna.features)
updateappearance(user)
domutcheck(user)
feedback_add_details("changeling_powers","TR")
return 1
/datum/changeling/proc/select_dna(var/prompt, var/title)
var/list/names = list()
for(var/datum/dna/DNA in (absorbed_dna+protected_dna))
names += "[DNA.real_name]"
var/chosen_name = input(prompt, title, null) as null|anything in names
if(!chosen_name)
return
var/datum/dna/chosen_dna = get_dna(chosen_name)
return chosen_dna