Skip to content

Commit

Permalink
Ravager and Hedgehog changes (#3729)
Browse files Browse the repository at this point in the history
# 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
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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:
  • Loading branch information
GoldenDarkness55 committed Jul 19, 2023
1 parent f93a14b commit d705ca9
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
4 changes: 2 additions & 2 deletions code/modules/mob/living/carbon/xenomorph/castes/Ravager.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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)

Expand All @@ -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
Expand Down Expand Up @@ -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
8 changes: 4 additions & 4 deletions code/modules/projectiles/ammo_datums.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand Down

0 comments on commit d705ca9

Please sign in to comment.