mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-09 16:09:15 +00:00
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.
36 lines
1.1 KiB
Plaintext
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 |