Merge Changeling hive upload and download into one spell (#32663)

* merge into one

* Update hivemind.dm

* Update hivemind.dm

* Update absorb_dna.dm

* Update absorb_dna.dm

* Update absorb_dna.dm

* Update healthanalyzerpro.dm
This commit is contained in:
adacovsk
2022-06-03 21:48:00 -04:00
committed by GitHub
parent 022cacab12
commit 2a91e4f776
8 changed files with 56 additions and 92 deletions

View File

@@ -61,20 +61,12 @@
allowduringhorrorform = 0
// Hivemind
/datum/power/changeling/hive_upload
name = "Hive Channel"
desc = "We can channel a DNA into the airwaves, allowing our fellow changelings to absorb it and transform into it as if they acquired the DNA themselves."
helptext = "Allows other changelings to absorb the DNA you channel from the airwaves. Will not help them towards their absorb objectives."
/datum/power/changeling/hivemind
name = "Hivemind"
desc = "We can transmit and receive DNA. We can use this DNA to transform as if we acquired the DNA ourselves."
helptext = "Allows changelings to transmit and recieve DNA. This DNA will not help toward absorb objectives."
cost = 0
spellpath = /spell/changeling/hiveupload
allowduringhorrorform = 0
/datum/power/changeling/hive_download
name = "Hive Absorb"
desc = "We can absorb a single DNA from the airwaves, allowing us to use more disguises with help from our fellow changelings."
helptext = "Allows you to absorb a single DNA and use it. Does not count towards your absorb objective."
cost = 0
spellpath = /spell/changeling/hivedownload
spellpath = /spell/changeling/hivemind
allowduringhorrorform = 0
/datum/power/changeling/lesser_form

View File

@@ -163,7 +163,7 @@
if(!scan_success)
to_chat(user, "<span class='warning'>Insuffient data retrieved. Please ensure that subject has proper surgical incisions.</span>")
else
to_chat(user, "<span class='info'>Autopsy analysis of [M] cocluded.</span>")
to_chat(user, "<span class='info'>Autopsy analysis of [M] concluded.</span>")
user << browse(dat, "window=borerscan;size=430x600")
last_reading = dat
last_scantime = world.time

View File

@@ -67,6 +67,8 @@
to_chat(user, "<span class='warning'>Our absorption of [T] has been interrupted!</span>")
return
usr.add_blood(T)
var/datum/organ/external/chest/chest_organ = T.get_organ(UPPER_TORSO)
chest_organ.add_autopsy_data("unknown", 1)
to_chat(user, "<span class='notice'>We have absorbed [T]!</span>")
user.visible_message("<span class='danger'>[user] sucks the fluids from [T]!</span>")

View File

@@ -1,38 +0,0 @@
/spell/changeling/hivedownload
name = "Hivemind Absorb (20)"
desc = "We can absorb a single DNA from the airwaves, allowing us to use more disguises with help from our fellow changelings."
abbreviation = "HA"
hud_state = "hivedownload"
spell_flags = NEEDSHUMAN
horrorallowed = 0
chemcost = 20
/spell/changeling/hivedownload/cast(var/list/targets, var/mob/living/carbon/human/user)
var/datum/role/changeling/changeling = user.mind.GetRole(CHANGELING)
var/datum/faction/changeling/hivemind = find_active_faction_by_type(/datum/faction/changeling)
if(!hivemind)
return
var/list/names = list()
for(var/datum/dna/DNA in hivemind.hivemind_bank)
if(!(DNA in changeling.absorbed_dna))
names[DNA.real_name] = DNA
if(names.len <= 0)
to_chat(user, "<span class='notice'>There's no new DNA to absorb from the air.</span>")
return
var/S = input("Select a DNA absorb from the air: ", "Absorb DNA", null) as null|anything in names
if(!S)
return
var/datum/dna/chosen_dna = names[S]
if(!chosen_dna)
return
changeling.absorbed_dna += chosen_dna
to_chat(user, "<span class='notice'>We absorb the DNA of [S] from the air.</span>")
feedback_add_details("changeling_powers","HD")
..()

View File

@@ -0,0 +1,47 @@
/spell/changeling/hivemind
name = "Hivemind (25)"
desc = "We can transmit and receive DNA. We can use this DNA to transform as if we acquired the DNA ourselves."
abbreviation = "HC"
hud_state = "hivemind"
spell_flags = NEEDSHUMAN
horrorallowed = 0
chemcost = 25
/spell/changeling/hivemind/cast(var/list/targets, var/mob/living/carbon/human/user)
var/datum/role/changeling/changeling = user.mind.GetRole(CHANGELING)
var/datum/faction/changeling/hivemind = find_active_faction_by_type(/datum/faction/changeling)
if(!hivemind)
return
var/list/names
//Transmit DNA
names = list()
for(var/datum/dna/DNA in changeling.absorbed_dna)
if(!(DNA in hivemind.hivemind_bank))
names += DNA.real_name
if(names.len <= 0)
to_chat(user, "<span class='notice'>We have transmitted all of our DNA.</span>")
else
for(var/S in names)
var/datum/dna/chosen_dna = changeling.GetDNA(S)
if(chosen_dna)
hivemind.hivemind_bank += chosen_dna
to_chat(user, "<span class='notice'>We transmit the DNA of [S].</span>")
feedback_add_details("changeling_powers","HU")
//Receive DNA
names = list()
for(var/datum/dna/DNA in hivemind.hivemind_bank)
if(!(DNA in changeling.absorbed_dna))
names[DNA.real_name] = DNA
if(names.len <= 0)
to_chat(user, "<span class='notice'>There's no new DNA transmitted.</span>")
else
for(var/S in names)
var/datum/dna/chosen_dna = names[S]
if(chosen_dna)
changeling.absorbed_dna += chosen_dna
to_chat(user, "<span class='notice'>We receive the DNA of [S].</span>")
feedback_add_details("changeling_powers","HD")
..()

View File

@@ -1,38 +0,0 @@
/spell/changeling/hiveupload
name = "Hivemind Channel (10)"
desc = "We can channel DNA into the airwaves, allowing our fellow changelings to absorb it and transform into it as if they acquired the DNA themselves."
abbreviation = "HC"
hud_state = "hiveupload"
spell_flags = NEEDSHUMAN
horrorallowed = 0
chemcost = 10
/spell/changeling/hiveupload/cast(var/list/targets, var/mob/living/carbon/human/user)
var/datum/role/changeling/changeling = user.mind.GetRole(CHANGELING)
var/datum/faction/changeling/hivemind = find_active_faction_by_type(/datum/faction/changeling)
if(!hivemind)
return
var/list/names = list()
for(var/datum/dna/DNA in changeling.absorbed_dna)
if(!(DNA in hivemind.hivemind_bank))
names += DNA.real_name
if(names.len <= 0)
to_chat(user, "<span class='notice'>The airwaves already have all of our DNA.</span>")
return
var/S = input("Select a DNA to channel: ", "Channel DNA", null) as null|anything in names
if(!S)
return
var/datum/dna/chosen_dna = changeling.GetDNA(S)
if(!chosen_dna)
return
hivemind.hivemind_bank += chosen_dna
to_chat(user, "<span class='notice'>We channel the DNA of [S] to the air.</span>")
feedback_add_details("changeling_powers","HU")
..()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 139 KiB

View File

@@ -2652,8 +2652,7 @@
#include "code\modules\spells\changeling\armblade.dm"
#include "code\modules\spells\changeling\changeling_spell.dm"
#include "code\modules\spells\changeling\evolutionmenu.dm"
#include "code\modules\spells\changeling\hivedownload.dm"
#include "code\modules\spells\changeling\hiveupload.dm"
#include "code\modules\spells\changeling\hivemind.dm"
#include "code\modules\spells\changeling\horrorform.dm"
#include "code\modules\spells\changeling\lesser_form.dm"
#include "code\modules\spells\changeling\rapidregen.dm"