From fe4378a8df5d4037e292b1effc2338cb8b40c22e Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 5 Jul 2021 16:55:04 +0200 Subject: [PATCH] [MIRROR] Non-changeling spawned headslugs now burst non-antag changeling variant again (#6735) * Non-changeling spawned headslugs now burst non-antag changeling variant again (#59944) * Non-changeling spawned headslugs now burst non-antag changeling variant again Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- code/__DEFINES/role_preferences.dm | 3 ++- .../antagonists/changeling/changeling.dm | 20 +++++++++++++++++ .../living/simple_animal/hostile/headcrab.dm | 22 +++++++++---------- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 5f5c8d76c7b..7525a1adcbd 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -42,7 +42,8 @@ #define ROLE_FAMILIES "Familes Antagonists" #define ROLE_SYNDICATE_CYBERSUN "Cybersun Space Syndicate" //Ghost role syndi from Forgottenship ruin #define ROLE_SYNDICATE_CYBERSUN_CAPTAIN "Cybersun Space Syndicate Captain" //Forgottenship captain syndie -#define ROLE_FREE_GOLEM "Free Golem" +#define ROLE_FREE_GOLEM "Free Golem" +#define ROLE_HEADSLUG_CHANGELING "Headslug Changeling" /// This defines the antagonists you can operate with in the settings. /// Keys are the antagonist, values are the number of days since the player's diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 50bdb1f11fd..dc74a29f4ce 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -712,3 +712,23 @@ return parts.Join("
") +// Changelings spawned from non-changeling headslugs (IE, due to being transformed into a headslug as a non-ling). Weaker than a normal changeling. +/datum/antagonist/changeling/headslug + name = "Headslug Changeling" + show_in_antagpanel = FALSE + give_objectives = FALSE + soft_antag = TRUE + + geneticpoints = 5 + total_geneticspoints = 5 + chem_charges = 10 + chem_storage = 50 + total_chem_storage = 50 + +/datum/antagonist/changeling/headslug/greet() + var/policy = get_policy(ROLE_HEADSLUG_CHANGELING) + if(you_are_greet) + to_chat(owner, span_boldannounce("You are a fresh changeling birthed from a headslug! You aren't as strong as a normal changeling, as you are newly born.")) + if(policy) + to_chat(owner, policy) + owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ling_aler.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE) diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 88caf19e4a9..8fe10e988e8 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -69,23 +69,23 @@ qdel(src) /obj/item/organ/body_egg/changeling_egg/proc/Pop() - var/mob/living/carbon/human/species/monkey/M = new(owner) + var/mob/living/carbon/human/species/monkey/spawned_monkey = new(owner) for(var/obj/item/organ/I in src) - I.Insert(M, 1) + I.Insert(spawned_monkey, 1) if(origin && (origin.current ? (origin.current.stat == DEAD) : origin.get_ghost())) - origin.transfer_to(M) - var/datum/antagonist/changeling/C = origin.has_antag_datum(/datum/antagonist/changeling) - if(!C) - C = origin.add_antag_datum(/datum/antagonist/changeling) - if(C.can_absorb_dna(owner)) - C.add_new_profile(owner) + origin.transfer_to(spawned_monkey) + spawned_monkey.key = origin.key + var/datum/antagonist/changeling/changeling_datum = origin.has_antag_datum(/datum/antagonist/changeling) + if(!changeling_datum) + changeling_datum = origin.add_antag_datum(/datum/antagonist/changeling/headslug) + if(changeling_datum.can_absorb_dna(owner)) + changeling_datum.add_new_profile(owner) var/datum/action/changeling/humanform/hf = new - C.purchasedpowers += hf - C.regain_powers() - M.key = origin.key + changeling_datum.purchasedpowers += hf + changeling_datum.regain_powers() owner.gib() #undef EGG_INCUBATION_TIME