mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 15:17:01 +01:00
Reworks Adrenaline Glands into Repurposed Glands (Realingment) (#83474)
## About The Pull Request Adrenaline Glands have been removed and replaced with Repurposed Glands. This ability removes use of your arms in exchange for regenerating your legs, breaking cuffs, giving you speed, damage slowdown immunity, and regenerating and doubling your stamina temporarily. It's probably a bit overtuned right now. I remembered how useless this ability is and it made me mad. ## Why It's Good For The Game I'm tired of AG being a completely useless noob trap that doesn't do anything of value and isn't even accurate to its description or flavor. Taking inspiration from Realignment, this turns it into what skoglol tried and failed to turn it into: An escape plan that can't be used as free stimulants. ## Changelog 🆑 balance: Reworks Adrenaline Glands into Repurposed Glands (Realingment). Lose the use of your arms, but you can escape any situation! /🆑
This commit is contained in:
@@ -285,6 +285,7 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
|
||||
GLOBAL_LIST_INIT(all_body_zones, list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
|
||||
GLOBAL_LIST_INIT(limb_zones, list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
|
||||
GLOBAL_LIST_INIT(arm_zones, list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
|
||||
GLOBAL_LIST_INIT(leg_zones, list(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
|
||||
|
||||
#define BODY_ZONE_PRECISE_EYES "eyes"
|
||||
#define BODY_ZONE_PRECISE_MOUTH "mouth"
|
||||
|
||||
@@ -1,19 +1,50 @@
|
||||
/datum/action/changeling/adrenaline
|
||||
name = "Adrenaline Sacs"
|
||||
desc = "We evolve additional sacs of adrenaline throughout our body. Costs 30 chemicals."
|
||||
helptext = "Removes all stuns instantly and adds a short-term reduction in further stuns. Can be used while unconscious. Continued use poisons the body."
|
||||
name = "Repurposed Glands"
|
||||
desc = "We shift almost all available muscle mass from the arms to the legs, disabling the former but making us unable to be downed for 15 seconds. Costs 10 chemicals."
|
||||
helptext = "Disables your arms and retracts bioweaponry, but regenerates your legs, grants you speed, and wakes you up from any stun."
|
||||
button_icon_state = "adrenaline"
|
||||
chemical_cost = 30
|
||||
dna_cost = 2
|
||||
req_human = TRUE
|
||||
req_stat = UNCONSCIOUS
|
||||
chemical_cost = 10
|
||||
dna_cost = 1
|
||||
req_human = FALSE
|
||||
req_stat = CONSCIOUS
|
||||
|
||||
//Recover from stuns.
|
||||
/datum/action/changeling/adrenaline/sting_action(mob/living/user)
|
||||
/datum/action/changeling/adrenaline/sting_action(mob/living/carbon/user)
|
||||
..()
|
||||
to_chat(user, span_notice("Energy rushes through us."))
|
||||
user.SetKnockdown(0)
|
||||
user.set_resting(FALSE)
|
||||
to_chat(user, span_changeling("Our arms feel weak, but our legs become unstoppable!"))
|
||||
|
||||
for(var/datum/action/changeling/weapon/weapon_ability in user.actions)
|
||||
weapon_ability.unequip_held(user)
|
||||
|
||||
// Destroy legcuffs with our IMMENSE LEG STRENGTH.
|
||||
if(user.legcuffed)
|
||||
var/obj/O = user.get_item_by_slot(ITEM_SLOT_LEGCUFFED)
|
||||
if(!istype(O))
|
||||
return FALSE
|
||||
qdel(O)
|
||||
user.visible_message(span_warning("[user]'s legs suddenly rip [O] apart!"), \
|
||||
span_warning("We rip apart our leg restraints!"))
|
||||
|
||||
// Regenerate our legs only.
|
||||
var/our_leg_zones = (GLOB.all_body_zones - GLOB.leg_zones)
|
||||
user.regenerate_limbs(excluded_zones = our_leg_zones) // why is this exclusive rather than inclusive
|
||||
|
||||
user.add_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT)
|
||||
|
||||
// Revert above mob changes.
|
||||
addtimer(CALLBACK(src, PROC_REF(unsting_action), user), 20 SECONDS)
|
||||
|
||||
// Get us standing up.
|
||||
user.SetAllImmobility(0)
|
||||
user.setStaminaLoss(0)
|
||||
user.set_resting(FALSE, instant = TRUE)
|
||||
|
||||
// Add fast reagents to go fast.
|
||||
user.reagents.add_reagent(/datum/reagent/medicine/changelingadrenaline, 4) //20 seconds
|
||||
user.reagents.add_reagent(/datum/reagent/medicine/changelinghaste, 3) //6 seconds, for a really quick burst of speed
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/action/changeling/adrenaline/proc/unsting_action(mob/living/user)
|
||||
to_chat(user, span_changeling("The muscles in our limbs shift back to their usual places."))
|
||||
user.remove_traits(list(TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM), CHANGELING_TRAIT)
|
||||
return
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
return
|
||||
..()
|
||||
var/limb_regen = 0
|
||||
if(HAS_TRAIT_FROM_ONLY(user, TRAIT_PARALYSIS_L_ARM, CHANGELING_TRAIT) || HAS_TRAIT_FROM_ONLY(user, TRAIT_PARALYSIS_R_ARM, CHANGELING_TRAIT))
|
||||
user.balloon_alert(user, "not enough muscle!") // no cheesing repuprosed glands
|
||||
return
|
||||
if(user.active_hand_index % 2 == 0) //we regen the arm before changing it into the weapon
|
||||
limb_regen = user.regenerate_limb(BODY_ZONE_R_ARM, 1)
|
||||
else
|
||||
|
||||
@@ -1358,7 +1358,7 @@
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
metabolizer.AdjustAllImmobility(-20 * REM * seconds_per_tick)
|
||||
if(metabolizer.adjustStaminaLoss(-10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(metabolizer.adjustStaminaLoss(-30 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
metabolizer.set_jitter_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
metabolizer.set_dizzy_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
|
||||
Reference in New Issue
Block a user