From d705ca9128c547a3dc49f3e25f602ade96b80f4f Mon Sep 17 00:00:00 2001 From: GoldenDarkness55 <103884785+GoldenDarkness55@users.noreply.github.com> Date: Wed, 19 Jul 2023 06:48:17 +0200 Subject: [PATCH] Ravager and Hedgehog changes (#3729) # About the pull request Nerfing base ravager by trimming the excess power without changing how the kit plays at its core. Buffing hedge rav and slightly fleshing out the management of shards unique to the strain. # Explain why it's good for the game Balance good. Base rav changes pretty straightforward - maintaining current empower combo, but nerfing excess shield and stun. +1 slash per cd reset to force rav to stay longer to pull it off - should have significantly less leeway against large groups and be easier to punish. Empower cd buff to compensate for second empower cast nerf, since the cooldown for empower starts counting on first cast and experienced players used the long timer to empower twice in rapid succession/skip a portion of the cooldown - the cooldown is effectively longer now than it was before. Scissor cut felt rather underused and this buff should help make it more relevant, especially against static marines/sieges now that the shield is weaker. As for Hedge - speed reduction to this extent without any dashes just doesn't work whatsoever, (for more evidence look at oppressor prae suffering the same issue) so this has to go as a prerequisite for this strain ever being good. Slash damage cut to reduce excessive power and punishment in 1v1 and put more emphasis on this being a tank/support/debuff strain (ideally it would get slash damage or slash speed during shard lockout to reward risky aggressive play and not just an escape tool, but im gonna leave that to someone who can code if someone likes the idea). Shield duration feels a bit too low currently, but this might end up making it overtuned, unsure. Shard damage raised cause shield isn't threatening enough and marines - myself included - often happily magdump into it even PB to kill the hedge faster. Shed and slow durations reduced because they're horrendously excessive. Slow on 3 might be too short though, considered 4-5 instead but best to test first. Shard toss range increased to help with engagements, likely still needed despite the speed buff, rest of abilities has separate ranges. Shard "economy" changes to put more emphasis into this unique system being a thing - currently it might aswell not exist, the shards regenerate nigh instantly so the ability costs do not matter. These changes should put more importance on managing it and reward marines for good play - for example if they didn't feed the shards back up by shooting during the shield timer, it's going to take the hedge longer to recover its armor, making it take slightly more damage. Shard per slash gain to help out with rare situations where it's doing well yet struggles to recover shards due to marines either not shooting at all or using exclusively low RoF weapons. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: balance: Base rav cooldown regain per slash reduced (4 to 3), empowered charge stun duration reduced (2 to 1.3), empower duration increased (5 to 6.5), empower cooldown reduced (22 to 18), duration window for second empower cast reduced (15 to 6), base shield gain reduced (75 to 50), shield gain per marine reduced (80 to 50), maximum empower targets increased (5 to 6), scissor slash cooldown reduced (10 to 6), and damage reduced (45 to 40) balance: Hedge rav doesn't lose speed anymore, but loses 10 slash damage instead. Shield duration increased (2 to 2.5), Fire Spikes shard range increased (5 to 6), Spike Shed shard lockout duration reduced (30 to 15), shard lock speed reduced to maintain same speed as previously. Shard damage increased (5 to 8), shard slowdown duration reduced (8 to 3), shard gain per tick reduced (10 to 5), shard gain per bullet reduced (20 to 10), added shard gain per slash (15) /:cl: --- .../abilities/ravager/ravager_abilities.dm | 18 +++++++++--------- .../abilities/ravager/ravager_powers.dm | 2 +- .../living/carbon/xenomorph/castes/Ravager.dm | 4 ++-- .../mutators/strains/ravager/hedgehog.dm | 18 ++++++++++++------ code/modules/projectiles/ammo_datums.dm | 8 ++++---- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm index 6960dd6f369a..4f9c5f298637 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_abilities.dm @@ -26,15 +26,15 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_2 plasma_cost = 50 - xeno_cooldown = 22 SECONDS + xeno_cooldown = 18 SECONDS // Config values (mutable) var/empower_range = 3 - var/max_targets = 5 + var/max_targets = 6 var/main_empower_base_shield = 0 - var/initial_activation_shield = 75 - var/shield_per_human = 80 - var/time_until_timeout = 15 SECONDS + var/initial_activation_shield = 50 + var/shield_per_human = 50 + var/time_until_timeout = 6 SECONDS // State var/activated_once = FALSE @@ -47,11 +47,11 @@ macro_path = /datum/action/xeno_action/verb/verb_scissorcut action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_3 - xeno_cooldown = 10 SECONDS + xeno_cooldown = 6 SECONDS plasma_cost = 25 // Config - var/damage = 45 + var/damage = 40 var/superslow_duration = 3 SECONDS @@ -118,10 +118,10 @@ action_type = XENO_ACTION_CLICK ability_primacy = XENO_PRIMARY_ACTION_1 plasma_cost = 0 - xeno_cooldown = 9 SECONDS + 2 SECONDS // Left operand is the actual CD, right operand is the buffer for the shield duration + xeno_cooldown = 9 SECONDS + 2.5 SECONDS // Left operand is the actual CD, right operand is the buffer for the shield duration // Config values - var/shield_duration = 20 // Shield lasts 2 seconds by default. + var/shield_duration = 25 // Shield lasts 2.5 seconds by default. var/shield_amount = 500 // Shield HP amount var/shield_shrapnel_amount = 7 // How much shrapnel each shield hit should spawn var/shard_cost = 150 // Minimum spikes to use this ability diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm index 8c6c0834eebc..9107a9670048 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/ravager/ravager_powers.dm @@ -75,7 +75,7 @@ color += num2text(alpha, 2, 16) xeno.add_filter("empower_rage", 1, list("type" = "outline", "color" = color, "size" = 3)) - addtimer(CALLBACK(src, PROC_REF(weaken_superbuff), xeno, behavior), 3.5 SECONDS) + addtimer(CALLBACK(src, PROC_REF(weaken_superbuff), xeno, behavior), 5 SECONDS) /datum/action/xeno_action/onclick/empower/proc/weaken_superbuff(mob/living/carbon/xenomorph/xeno, datum/behavior_delegate/ravager_base/behavior) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm index d8d4a2349f98..35938ff7f808 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm @@ -66,8 +66,8 @@ // Mutator delegate for base ravager /datum/behavior_delegate/ravager_base var/shield_decay_time = 15 SECONDS // Time in deciseconds before our shield decays - var/slash_charge_cdr = 4 SECONDS // Amount to reduce charge cooldown by per slash - var/knockdown_amount = 2 + var/slash_charge_cdr = 3 SECONDS // Amount to reduce charge cooldown by per slash + var/knockdown_amount = 1.3 var/fling_distance = 3 var/empower_targets = 0 var/super_empower_threshold = 3 diff --git a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm b/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm index 7878bd4113f1..913883549fba 100644 --- a/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm +++ b/code/modules/mob/living/carbon/xenomorph/mutators/strains/ravager/hedgehog.dm @@ -1,6 +1,6 @@ /datum/xeno_mutator/hedgehog name = "STRAIN: Ravager - Hedgehog" - description = "You lose your empower, charge, and scissor cut and a decent amount of your speed for a bit more explosive resistance, immunity to small explosions, and you gain several new abilities that allow you to become a spiky tank. You build up shards internally over time and also when taking damage that increase your armor's resilience. You can use these shards to power three new abilities: Spike Shield, which gives you a temporary shield that spits bone shards around you when damaged, Fire Spikes, which launches spikes at your target that slows them and does extra damage if they move, and finally, Spike Shed, which launches spikes all around yourself and gives you a temporary speed boost as an escape plan at the cost of all your stored shards and being unable to gain shards for thirty seconds." + description = "You lose your empower, charge, scissor cut and some slash damage, for a bit more explosive resistance, immunity to small explosions, and you gain several new abilities that allow you to become a spiky tank. You build up shards internally over time and also when taking damage that increase your armor's resilience. You can use these shards to power three new abilities: Spike Shield, which gives you a temporary shield that spits bone shards around you when damaged, Fire Spikes, which launches spikes at your target that slows them and does extra damage if they move, and finally, Spike Shed, which launches spikes all around yourself and gives you a temporary speed boost as an escape plan at the cost of all your stored shards and being unable to gain shards for thirty seconds." flavor_description = "They will be of iron will and steely muscle. In great armor shall they be clad, and with the mightiest spikes will they be armed." cost = MUTATOR_COST_EXPENSIVE individual_only = TRUE @@ -29,7 +29,7 @@ ravager.plasma_max = 0 ravager.small_explosives_stun = FALSE ravager.explosivearmor_modifier += XENO_EXPOSIVEARMOR_MOD_SMALL - ravager.speed_modifier += XENO_SPEED_SLOWMOD_TIER_8 + ravager.damage_modifier -= XENO_DAMAGE_MOD_SMALL apply_behavior_holder(ravager) @@ -43,11 +43,12 @@ // Shard config var/max_shards = 300 - var/shard_gain_onlife = 10 - var/shards_per_projectile = 20 + var/shard_gain_onlife = 5 + var/shards_per_projectile = 10 + var/shards_per_slash = 15 var/armor_buff_per_fifty_shards = 2.50 - var/shard_lock_duration = 300 - var/shard_lock_speed_mod = 0.85 + var/shard_lock_duration = 150 + var/shard_lock_speed_mod = 0.45 // Shard state var/shards = 0 @@ -126,3 +127,8 @@ if (!shards_locked) shards = min(max_shards, shards + shards_per_projectile) return + +/datum/behavior_delegate/ravager_hedgehog/melee_attack_additional_effects_self() + if (!shards_locked) + shards = min(max_shards, shards + shards_per_slash) + return diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm index de5821fea52a..7114c924fe61 100644 --- a/code/modules/projectiles/ammo_datums.dm +++ b/code/modules/projectiles/ammo_datums.dm @@ -2808,8 +2808,8 @@ damage_type = BRUTE bonus_projectiles_type = /datum/ammo/xeno/bone_chips/spread - damage = 5 - max_range = 5 + damage = 8 + max_range = 6 accuracy = HIT_ACCURACY_TIER_8 accuracy_var_low = PROJECTILE_VARIANCE_TIER_7 accuracy_var_high = PROJECTILE_VARIANCE_TIER_7 @@ -2824,8 +2824,8 @@ return if(ishuman_strict(M) || isxeno(M)) playsound(M, 'sound/effects/spike_hit.ogg', 25, 1, 1) - if(M.slowed < 8) - M.apply_effect(8, SLOW) + if(M.slowed < 3) + M.apply_effect(3, SLOW) /datum/ammo/xeno/bone_chips/spread name = "small bone chips"