mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <KashL@t-online.de>
45 lines
1.5 KiB
Plaintext
45 lines
1.5 KiB
Plaintext
//Suggested to leave unchecked because this is why we can't have nice things.
|
|
/datum/power/changeling/transformation_sting
|
|
name = "Transformation Sting"
|
|
desc = "We silently sting a human, injecting a retrovirus that forces them to transform into another."
|
|
helptext = "Does not provide a warning to others. The victim will transform much like a changeling would."
|
|
ability_icon_state = "ling_sting_transform"
|
|
genomecost = 3
|
|
verbpath = /mob/proc/changeling_transformation_sting
|
|
|
|
/mob/proc/changeling_transformation_sting()
|
|
set category = "Changeling"
|
|
set name = "Transformation sting (40)"
|
|
set desc="Sting target"
|
|
|
|
var/datum/changeling/changeling = changeling_power(40)
|
|
if(!changeling)
|
|
return 0
|
|
|
|
var/list/names = list()
|
|
for(var/datum/dna/DNA in changeling.absorbed_dna)
|
|
names += "[DNA.real_name]"
|
|
|
|
var/S = tgui_input_list(src, "Select the target DNA:", "Target DNA", names)
|
|
if(!S)
|
|
return
|
|
|
|
var/datum/dna/chosen_dna = changeling.GetDNA(S)
|
|
if(!chosen_dna)
|
|
return
|
|
|
|
var/mob/living/carbon/T = changeling_sting(40,/mob/proc/changeling_transformation_sting)
|
|
if(!T)
|
|
return 0
|
|
if((HUSK in T.mutations) || (!ishuman(T) && !issmall(T)))
|
|
to_chat(src, span_warning("Our sting appears ineffective against its DNA."))
|
|
return 0
|
|
add_attack_logs(src,T,"Transformation sting (changeling)")
|
|
T.visible_message(span_warning("[T] transforms!"))
|
|
T.dna = chosen_dna.Clone()
|
|
T.real_name = chosen_dna.real_name
|
|
T.UpdateAppearance()
|
|
domutcheck(T, null)
|
|
feedback_add_details("changeling_powers","TS")
|
|
return 1
|