diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 00c199d7332..0b18cbcdde8 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -9,7 +9,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
config_tag = "changeling"
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Brig Physician", "Internal Affairs Agent")
- protected_species = list("Machine", "Slime People")
+ protected_species = list("Machine", "Slime People", "Plasmaman")
required_players = 2
required_players_secret = 10
required_enemies = 1
@@ -304,6 +304,10 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
user << "We do not know how to parse this creature's DNA!"
return
+ if(T.species.flags & NO_BLOOD)
+ user << "We are not able to use the DNA of a creature without a circulatory system."
+ return
+
if(has_dna(target.dna))
user << "We already have this DNA in storage!"
diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm
index 0490b00d820..b772cfca49a 100644
--- a/code/game/gamemodes/changeling/powers/tiny_prick.dm
+++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm
@@ -62,10 +62,11 @@
/obj/effect/proc_holder/changeling/sting/transformation
name = "Transformation Sting"
desc = "We silently sting a human, injecting a retrovirus that forces them to transform."
- helptext = "Does not provide a warning to others. The victim will transform much like a changeling would."
+ helptext = "The victim will transform much like a changeling would. The effects will be obvious to the victim, and the process will damage our genomes."
sting_icon = "sting_transform"
chemical_cost = 40
dna_cost = 2
+ genetic_damage = 100
var/datum/dna/selected_dna = null
/obj/effect/proc_holder/changeling/sting/transformation/Click()
@@ -77,12 +78,11 @@
selected_dna = changeling.select_dna("Select the target DNA: ", "Target DNA")
if(!selected_dna)
return
- ..()
/obj/effect/proc_holder/changeling/sting/transformation/can_sting(var/mob/user, var/mob/target)
if(!..())
return
- if((HUSK in target.mutations) || (!ishuman(target)) )
+ if((HUSK in target.mutations) || (!ishuman(target)))
user << "Our sting appears ineffective against its DNA."
return 0
if(ishuman(target))
@@ -90,20 +90,31 @@
if(H.species.flags & NO_SCAN) //Prevents transforming slimes and killing them instantly
user << "This won't work on a creature with abnormal genetic material."
return 0
+ if(H.species.flags & NO_BLOOD)
+ user << "This won't work on a creature without a circulatory system."
+ return 0
return 1
/obj/effect/proc_holder/changeling/sting/transformation/sting_action(var/mob/user, var/mob/target)
add_logs(target, user, "stung", object="transformation sting", addition=" new identity is [selected_dna.real_name]")
var/datum/dna/NewDNA = selected_dna
if(issmall(target))
- user << "We stealthily sting [target.name]."
- target.dna = NewDNA.Clone()
- target.real_name = NewDNA.real_name
- var/mob/living/carbon/human/H = target
- if(istype(H))
- H.set_species()
- target.UpdateAppearance()
- domutcheck(target, null)
+ user << "Our genes cry out as we sting [target.name]!"
+
+ if(iscarbon(target) && (target.status_flags & CANWEAKEN))
+ var/mob/living/carbon/C = target
+ C.do_jitter_animation(500)
+
+ target.visible_message("[target] begins to violenty convulse!","You feel a tiny prick and a begin to uncontrollably convulse!")
+
+ spawn(10)
+ target.dna = NewDNA.Clone()
+ target.real_name = NewDNA.real_name
+ var/mob/living/carbon/human/H = target
+ if(istype(H))
+ H.set_species()
+ target.UpdateAppearance()
+ domutcheck(target, null)
feedback_add_details("changeling_powers","TS")
return 1
@@ -172,7 +183,7 @@ obj/effect/proc_holder/changeling/sting/LSD
target.hallucination = max(400, target.hallucination)
feedback_add_details("changeling_powers","HS")
return 1
-/*
+
obj/effect/proc_holder/changeling/sting/cryo //Enable when mob cooling is fixed so that frostoil actually makes you cold, instead of mostly just hungry.
name = "Cryogenic Sting"
desc = "We silently sting a human with a cocktail of chemicals that freeze them."
@@ -188,4 +199,4 @@ obj/effect/proc_holder/changeling/sting/cryo //Enable when mob cooling is fixed
target.reagents.add_reagent("ice", 30)
feedback_add_details("changeling_powers","CS")
return 1
-*/
+