From 9fc669b4ea7725f99256a6ae6966d55f601187f1 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 22 Jul 2020 02:09:49 -0700 Subject: [PATCH 1/5] Update changeling.dm --- code/modules/antagonists/changeling/changeling.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 3267f2bdc1..d06ebe9d9d 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -20,6 +20,8 @@ var/datum/changelingprofile/first_prof = null var/dna_max = 6 //How many extra DNA strands the changeling can store for transformation. var/absorbedcount = 0 + /// did we get succed by another changeling + var/hostile_absorbed = FALSE var/trueabsorbs = 0//dna gained using absorb, not dna sting var/chem_charges = 20 var/chem_storage = 75 From 30e7483e893e51fbbaa9f2b6d88d9d6418fa322d Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 22 Jul 2020 02:10:24 -0700 Subject: [PATCH 2/5] Update absorb.dm --- code/modules/antagonists/changeling/powers/absorb.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 3e2ff6f3dd..208fefee70 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -92,7 +92,7 @@ var/datum/antagonist/changeling/target_ling = target.mind.has_antag_datum(/datum/antagonist/changeling) - if(target_ling)//If the target was a changeling, suck out their extra juice and objective points! + if(target_ling && !target_ling.hostile_absorbed)//If the target was a changeling, suck out their extra juice and objective points! to_chat(user, "[target] was one of us. We have absorbed their power.") target_ling.remove_changeling_powers() changeling.geneticpoints += round(target_ling.geneticpoints/2) @@ -102,6 +102,7 @@ changeling.chem_storage += round(target_ling.chem_storage/2) changeling.chem_charges += min(target_ling.chem_charges, changeling.chem_storage) target_ling.chem_charges = 0 + target_ling.hostile_absorbed = TRUE target_ling.chem_storage = 0 changeling.absorbedcount += (target_ling.absorbedcount) target_ling.stored_profiles.len = 1 From 919edfa2fd08cf940d0d6218466d892381415821 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 22 Jul 2020 02:11:20 -0700 Subject: [PATCH 3/5] Update revive.dm --- code/modules/antagonists/changeling/powers/revive.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 6c2220648d..f98c2e8ee4 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -36,8 +36,10 @@ . = ..() if(!.) return - - if(HAS_TRAIT(user, CHANGELING_DRAIN) || ((user.stat != DEAD) && !(HAS_TRAIT(user, TRAIT_DEATHCOMA)))) + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist_changeling) + if(!changeling) + return FALSE + if(changeling.hostile_absorbed || ((user.stat != DEAD) && !(HAS_TRAIT(user, TRAIT_DEATHCOMA)))) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src return FALSE From 0acf7b82d5a35f852fad55b6522fe7dcd5e228f1 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 22 Jul 2020 02:20:10 -0700 Subject: [PATCH 4/5] Update revive.dm --- code/modules/antagonists/changeling/powers/revive.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index f98c2e8ee4..e7e83a6796 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -36,7 +36,7 @@ . = ..() if(!.) return - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist_changeling) + var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) if(!changeling) return FALSE if(changeling.hostile_absorbed || ((user.stat != DEAD) && !(HAS_TRAIT(user, TRAIT_DEATHCOMA)))) From e0e2cd561a6d59d776ee6d69cab3615a0303ee08 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 22 Jul 2020 11:38:26 -0700 Subject: [PATCH 5/5] Update revive.dm --- code/modules/antagonists/changeling/powers/revive.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index e7e83a6796..f193fb6736 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -40,7 +40,6 @@ if(!changeling) return FALSE if(changeling.hostile_absorbed || ((user.stat != DEAD) && !(HAS_TRAIT(user, TRAIT_DEATHCOMA)))) - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.purchasedpowers -= src return FALSE