From 0fb3392f668d3a320f6a4bfaf67892f342b26f2d Mon Sep 17 00:00:00 2001 From: Chubbygummibear Date: Wed, 26 Jan 2022 20:03:35 -0800 Subject: [PATCH 1/3] weird kinda working interrum but doesn't play nice with other races --- code/__DEFINES/DNA.dm | 4 ++-- code/datums/mutations/hulk.dm | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index a3ed9e72d5e1..85a6ca3e5cf2 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -4,8 +4,8 @@ //Defines copying names of mutations in all cases, make sure to change this if you change mutation's type #define HULK /datum/mutation/human/hulk -#define ACTIVE_HULK /datum/mutation/human/active_hulk -#define GENETICS_HULK /datum/mutation/human/genetics_hulk +#define ACTIVE_HULK /datum/mutation/human/hulk/genetics_hulk/active_hulk +#define GENETICS_HULK /datum/mutation/human/hulk/genetics_hulk #define XRAY /datum/mutation/human/thermal/x_ray #define SPACEMUT /datum/mutation/human/space_adaptation #define HEATMUT /datum/mutation/human/heat_adaptation diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 36ca5566a75d..f14c38af4b86 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -48,7 +48,7 @@ wrapped_message[1] = message return COMPONENT_UPPERCASE_SPEECH -/datum/mutation/human/genetics_hulk +/datum/mutation/human/hulk/genetics_hulk name = "Hulk" quality = POSITIVE @@ -57,8 +57,9 @@ text_gain_indication = span_notice("You suddenly feel very angry.") species_allowed = list("human") //no skeleton/lizard hulk health_req = 25 + locked = FALSE -/datum/mutation/human/active_hulk +/datum/mutation/human/hulk/genetics_hulk/active_hulk name = "Hulk State" quality = POSITIVE class = MUT_OTHER @@ -70,7 +71,7 @@ power = /obj/effect/proc_holder/spell/aoe_turf/repulse/hulk -/datum/mutation/human/active_hulk/on_acquiring(mob/living/carbon/human/owner) +/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return owner.SetParalyzed(0) @@ -93,16 +94,16 @@ owner.physiology.stamina_mod = 0.3 owner.update_body() -/datum/mutation/human/active_hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target) +/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target) if(prob(3)) owner.Jitter(10) owner.adjustStaminaLoss(-0.5) return target.attack_hulk(owner) -/datum/mutation/human/active_hulk/on_life() +/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_life() owner.adjustStaminaLoss(0.9) -/datum/mutation/human/active_hulk/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_losing(mob/living/carbon/human/owner) if(..()) return REMOVE_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_HULK) @@ -113,9 +114,9 @@ owner.physiology.stamina_mod = initial(owner.physiology.stamina_mod) owner.update_body_parts() -/datum/mutation/human/active_hulk/proc/handle_speech(original_message, wrapped_message) - var/message = wrapped_message[1] - if(message) - message = "[replacetext(message, ".", "!")]!!" - wrapped_message[1] = message - return COMPONENT_UPPERCASE_SPEECH +// /datum/mutation/human/hulk/genetics_hulk/active_hulk/proc/handle_speech(original_message, wrapped_message) +// var/message = wrapped_message[1] +// if(message) +// message = "[replacetext(message, ".", "!")]!!" +// wrapped_message[1] = message +// return COMPONENT_UPPERCASE_SPEECH From dd4c124939453b262043f3f8638a79a525c3f037 Mon Sep 17 00:00:00 2001 From: Chubbygummibear Date: Fri, 28 Jan 2022 22:35:35 -0800 Subject: [PATCH 2/3] stam regen on hit works, losing the base mutation removes the active state, and the active state can also be killed with mutadone. also no more assistants randomly rolling hulk --- code/datums/mutations/hulk.dm | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index f14c38af4b86..12650006d16f 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -3,12 +3,10 @@ name = "Mutation" desc = "A poorly understood genome that causes the holder's muscles to expand, inhibit speech and gives the person a bad skin condition." quality = POSITIVE - locked = TRUE difficulty = 16 text_gain_indication = span_notice("Your muscles hurt!") - species_allowed = list("human") //no skeleton/lizard hulk health_req = 25 - instability = 65 + instability = 50 class = MUT_OTHER locked = TRUE @@ -55,17 +53,20 @@ get_chance = 10 lowest_value = 256 * 14 text_gain_indication = span_notice("You suddenly feel very angry.") - species_allowed = list("human") //no skeleton/lizard hulk health_req = 25 - locked = FALSE + +/datum/mutation/human/hulk/genetics_hulk/on_losing(mob/living/carbon/human/owner) + . = ..() + dna.remove_mutation(ACTIVE_HULK) + return /datum/mutation/human/hulk/genetics_hulk/active_hulk name = "Hulk State" + desc = "The single most angry genome ever seen. Mutating this will incite a one-time immediate Hulkformation in the mutatee." quality = POSITIVE + instability = 30 class = MUT_OTHER - locked = TRUE text_gain_indication = span_notice("Your muscles hurt!") - species_allowed = list("human") //no skeleton/lizard hulk health_req = 1 var/health_based = 0 power = /obj/effect/proc_holder/spell/aoe_turf/repulse/hulk @@ -94,11 +95,12 @@ owner.physiology.stamina_mod = 0.3 owner.update_body() -/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_attack_hand(mob/living/carbon/human/owner, atom/target) - if(prob(3)) - owner.Jitter(10) - owner.adjustStaminaLoss(-0.5) - return target.attack_hulk(owner) +/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_attack_hand(atom/target, proximity) + if(..()) + if(prob(3)) + owner.Jitter(10) + owner.adjustStaminaLoss(-0.5) + return /datum/mutation/human/hulk/genetics_hulk/active_hulk/on_life() owner.adjustStaminaLoss(0.9) @@ -113,10 +115,3 @@ owner.dna.species.no_equip.Remove(SLOT_WEAR_SUIT, SLOT_W_UNIFORM) owner.physiology.stamina_mod = initial(owner.physiology.stamina_mod) owner.update_body_parts() - -// /datum/mutation/human/hulk/genetics_hulk/active_hulk/proc/handle_speech(original_message, wrapped_message) -// var/message = wrapped_message[1] -// if(message) -// message = "[replacetext(message, ".", "!")]!!" -// wrapped_message[1] = message -// return COMPONENT_UPPERCASE_SPEECH From 3c57c79615bd19a5fd6375e918c594ba6abd8374 Mon Sep 17 00:00:00 2001 From: Chubbygummibear Date: Sat, 19 Mar 2022 03:00:16 -0700 Subject: [PATCH 3/3] FIXED NORMAL PEOPLE HAVING HULK POWERS WHILE NORMAL --- code/__DEFINES/DNA.dm | 4 +- code/datums/mutations/hulk.dm | 40 +++++++++++++------ .../carbon/human/species_types/plantpeople.dm | 2 + 3 files changed, 31 insertions(+), 15 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 85a6ca3e5cf2..a3ed9e72d5e1 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -4,8 +4,8 @@ //Defines copying names of mutations in all cases, make sure to change this if you change mutation's type #define HULK /datum/mutation/human/hulk -#define ACTIVE_HULK /datum/mutation/human/hulk/genetics_hulk/active_hulk -#define GENETICS_HULK /datum/mutation/human/hulk/genetics_hulk +#define ACTIVE_HULK /datum/mutation/human/active_hulk +#define GENETICS_HULK /datum/mutation/human/genetics_hulk #define XRAY /datum/mutation/human/thermal/x_ray #define SPACEMUT /datum/mutation/human/space_adaptation #define HEATMUT /datum/mutation/human/heat_adaptation diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm index 12650006d16f..1dda3a4d07ac 100644 --- a/code/datums/mutations/hulk.dm +++ b/code/datums/mutations/hulk.dm @@ -46,21 +46,25 @@ wrapped_message[1] = message return COMPONENT_UPPERCASE_SPEECH -/datum/mutation/human/hulk/genetics_hulk - +/datum/mutation/human/genetics_hulk name = "Hulk" + desc = "A seemingly dormant genome, but reacts violently to aggitation." + difficulty = 16 + instability = 50 + class = MUT_OTHER + locked = TRUE quality = POSITIVE get_chance = 10 lowest_value = 256 * 14 - text_gain_indication = span_notice("You suddenly feel very angry.") + text_gain_indication = span_notice("You feel an anger welling inside you.") health_req = 25 -/datum/mutation/human/hulk/genetics_hulk/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/genetics_hulk/on_losing(mob/living/carbon/human/owner) . = ..() dna.remove_mutation(ACTIVE_HULK) return -/datum/mutation/human/hulk/genetics_hulk/active_hulk +/datum/mutation/human/active_hulk name = "Hulk State" desc = "The single most angry genome ever seen. Mutating this will incite a one-time immediate Hulkformation in the mutatee." quality = POSITIVE @@ -71,11 +75,10 @@ var/health_based = 0 power = /obj/effect/proc_holder/spell/aoe_turf/repulse/hulk - -/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_acquiring(mob/living/carbon/human/owner) +/datum/mutation/human/active_hulk/on_acquiring(mob/living/carbon/human/owner) if(..()) return - owner.SetParalyzed(0) + owner.remove_CC() //RAGE RAGE RAGE, RISE RISE RISE ADD_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_HULK) ADD_TRAIT(owner, TRAIT_PUSHIMMUNE, TRAIT_HULK) ADD_TRAIT(owner, TRAIT_IGNORESLOWDOWN, TRAIT_HULK) @@ -95,17 +98,20 @@ owner.physiology.stamina_mod = 0.3 owner.update_body() -/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_attack_hand(atom/target, proximity) - if(..()) +/datum/mutation/human/active_hulk/on_attack_hand(atom/target, proximity) + if(proximity) //no telekinetic hulk attack if(prob(3)) owner.Jitter(10) owner.adjustStaminaLoss(-0.5) - return + return target.attack_hulk(owner) -/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_life() +/datum/mutation/human/active_hulk/on_life() owner.adjustStaminaLoss(0.9) + if(owner.health < 0) + on_losing(owner) + to_chat(owner, span_danger("You suddenly feel very weak. Your rage dies out.")) -/datum/mutation/human/hulk/genetics_hulk/active_hulk/on_losing(mob/living/carbon/human/owner) +/datum/mutation/human/active_hulk/on_losing(mob/living/carbon/human/owner) if(..()) return REMOVE_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_HULK) @@ -115,3 +121,11 @@ owner.dna.species.no_equip.Remove(SLOT_WEAR_SUIT, SLOT_W_UNIFORM) owner.physiology.stamina_mod = initial(owner.physiology.stamina_mod) owner.update_body_parts() + owner.dna.species.handle_mutant_bodyparts(owner) + +/datum/mutation/human/active_hulk/proc/handle_speech(original_message, wrapped_message) + var/message = wrapped_message[1] + if(message) + message = "[replacetext(message, ".", "!")]!!" + wrapped_message[1] = message + return COMPONENT_UPPERCASE_SPEECH diff --git a/yogstation/code/modules/mob/living/carbon/human/species_types/plantpeople.dm b/yogstation/code/modules/mob/living/carbon/human/species_types/plantpeople.dm index ec2d81750f11..21e27d658fe6 100644 --- a/yogstation/code/modules/mob/living/carbon/human/species_types/plantpeople.dm +++ b/yogstation/code/modules/mob/living/carbon/human/species_types/plantpeople.dm @@ -6,6 +6,8 @@ id = "pod" // We keep this at pod for compatibility reasons default_color = "59CE00" species_traits = list(MUTCOLORS,EYECOLOR,HAS_FLESH,HAS_BONE) + mutant_bodyparts = list() + default_features = list() rare_say_mod = list("rustles" = 10) attack_verb = "slash" attack_sound = 'sound/weapons/slice.ogg'