Skip to content

Commit

Permalink
Remove stealth ling dna sting (Aurorastation#8194)
Browse files Browse the repository at this point in the history
  • Loading branch information
Alberyk authored Feb 7, 2020
1 parent 85c0f94 commit 78e481c
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 85 deletions.
8 changes: 1 addition & 7 deletions code/game/gamemodes/changeling/helpers/_store.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,9 @@ var/list/datum/power/changeling/powerinstances = list()

/datum/power/changeling/absorb_dna
name = "Absorb DNA"
desc = "Permits us to syphon some of the DNA from a another sentient creature. They will take some toxin damage as a result of our extraction. Does not work on other changelings."
genomecost = 0
verbpath = /mob/proc/changeling_absorb_dna

/datum/power/changeling/extract_dna
name = "Full DNA Extraction"
desc = "Permits us to forcibly absorb a massive quantity DNA from another sentient creature. They will perish during the process, and we become stronger, especially if they were another changeling. Have caution, this takes some time."
genomecost = 0
verbpath = /mob/proc/changeling_extract_dna
verbpath = /mob/proc/changeling_absorb_dna

//Transformation

Expand Down
1 change: 1 addition & 0 deletions code/game/gamemodes/changeling/implements/powers/body.dm
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,7 @@
flick("summoning", effect)
QDEL_IN(effect, 10)
M.forceMove(ling) //move inside the new dude to hide him.
ling.occupant = M
M.status_flags |= GODMODE //dont want him to die or breathe or do ANYTHING
addtimer(CALLBACK(src, .proc/revert_horror_form,ling), 10 MINUTES)

Expand Down
78 changes: 0 additions & 78 deletions code/game/gamemodes/changeling/implements/powers/suck.dm
Original file line number Diff line number Diff line change
Expand Up @@ -2,84 +2,6 @@
set category = "Changeling"
set name = "Absorb DNA"

var/datum/changeling/changeling = changeling_power(0, 0, 100)
if(!changeling)
return
if (changeling.justate + 60 SECONDS > world.time)
to_chat(src, "<span class='warning'>We are still processing our last DNA sample!</span>")
return
if(changeling.isabsorbing)
to_chat(src, "<span class='warning'>We are already engaged in an absorption!</span>")
return

var/mob/living/carbon/human/T = input(usr, "Who are we extracting from?", "Target selection") in typecache_filter_list(oview(1), typecacheof(/mob/living/carbon/human))|null
if (!T)
return
if(changeling.isabsorbing)
to_chat(src, "<span class='warning'>We are already engaged in an absorption!</span>")
return
if(!istype(T))
to_chat(src, "<span class='warning'>[T] is not compatible with our biology.</span>")
return
if(T.species.flags & NO_SCAN)
to_chat(src, "<span class='warning'>We do not know how to parse this creature's DNA!</span>")
return
if (T.mind?.changeling)
to_chat(src, "<span class='warning'>This creature's DNA is already as complex as yours!</span>")
return
if(islesserform(T))
to_chat(src, "<span class='warning'>This creature DNA is not compatible with our form!</span>")
return
if(HUSK in T.mutations)
to_chat(src, "<span class='warning'>This creature's DNA is ruined beyond useability!</span>")
return
for(var/datum/absorbed_dna/D in changeling.absorbed_dna)
if(D.dna == T.dna)
to_chat(src, "<span class='warning'>We have already collected this creature's DNA!</span>")
return

changeling.isabsorbing = TRUE
for(var/stage = 1, stage <= 2, stage++)
switch(stage)
if(1)
to_chat(src, "<span class='notice'>We will attempt to infest and steal [T]'s DNA. We must remain next to them.</span>")
if(2)
to_chat(src, "<span class='notice'>We subtly touch [T], and begin to infest their genetic structure.</span>")
feedback_add_details("changeling_powers","A[stage]")
if(!do_mob(src, T, 75))
to_chat(src, "<span class='warning'>Our extraction of [T] has been interrupted!</span>")
changeling.isabsorbing = FALSE
return

to_chat(src, "<span class='notice'>We have finished infesting [T], and withdraw from their flesh, taking some of their genetic data.</span>")
to_chat(src, "<span class='notice'>We will need a minute to process this sample, before we can begin absorbing another.</span>")

T.reagents.add_reagent("toxin", rand(10, 15))

changeling.justate = world.time

changeling.chem_charges += 5
changeling.geneticpoints += 1
for(var/language in T.languages)
if(!(language in changeling.absorbed_languages))
changeling.absorbed_languages += language

changeling_update_languages(changeling.absorbed_languages)

var/datum/absorbed_dna/newDNA = new(T.real_name, T.dna, T.species.get_cloning_variant(), T.languages)
absorbDNA(newDNA)

changeling.absorbedcount++
changeling.isabsorbing = FALSE

admin_attack_log(usr, T, "extracted the DNA of", "had their DNA extracted by", "extracted DNA from")

return TRUE

/mob/proc/changeling_extract_dna()
set category = "Changeling"
set name = "Full DNA Extraction"

var/datum/changeling/changeling = changeling_power(0, 0, 100)
if(!changeling)
return
Expand Down
3 changes: 3 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/changeling.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
max_tox = 0

var/is_devouring = FALSE
var/mob/living/carbon/human/occupant = null

/mob/living/simple_animal/hostile/true_changeling/Initialize()
. = ..()
Expand All @@ -64,6 +65,8 @@
if(!gibbed)
visible_message("<b>[src]</b> lets out a waning scream as it falls, twitching, to the floor!")
playsound(loc, 'sound/effects/creepyshriek.ogg', 30, 1)
if(occupant)
qdel(occupant)
gibs(src.loc)
qdel(src)
return
Expand Down
7 changes: 7 additions & 0 deletions html/changelogs/alberyk_fucklings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
author: Alberyk

delete-after: True

changes:
- rscdel: "Removed stealth changeling absorb DNA power."
- bugfix: "Fixed horror ling changeling mobs not destroying the human inside of them properly when killed."

0 comments on commit 78e481c

Please sign in to comment.