mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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")
|
||||
|
||||
..()
|
||||
47
code/modules/spells/changeling/hivemind.dm
Normal file
47
code/modules/spells/changeling/hivemind.dm
Normal 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")
|
||||
..()
|
||||
@@ -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 |
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user