Ogryn's Unstoppable Force Blessing Doesn't Work

Issue Type (Required):

Blessings

Issue Description (Required):

Unlike Brutal Momentum or Deathblow, this blessing just doesn’t work FULLY. The “ignore enemy hit mass” efffect on cleavers doesn’t seem to work the same as with Brutual Momentum and Deathblow blessing.

On fully charged heavy attack with a cleaver only the first target receives the full damage of the strike. With Brutal Momentum and Deathblow full damage is applied to multiple (up to 4) targets hit. Unstoppable Force doesn’t seem to have that benefit.

Steps to Reproduce (Required):

Hit multiple enemies with a fully charged heavy attack of a cleaver with Unstoppable Force blessing. Observe that only the first target hit receives the full damage of the attack.

2 Likes

Test this one out with armored enemies. It lets you cleave bulwark shields, crushers and damage 5 maulers (the cleave cap). The problem is more that the slash is bad on unyielding/carapace and it requires full charge heavies. More interesting than the average pointless or boring blessing, but still not good.

The description suggests it supposed to work as BM and DB blessings, which allow you to do full damage to multiple enemies before damage falls off. I see no evidence of this here. Extra cleave isn’t everything which is supposed to be hidden behind the “ignore enemy hit mass” effect, afaik.

Telpots made a nice overview of how BM and DB blessings work. Assuming Fatshark intends to be consistent with blessings, descriptions and mechanics, I would imagine this is what should also apply to Unstoppable Force. I’m happy for them to clarify if this is a bug or not. Atm, this feels like one.

The blessing description is a bit inaccurate. It works with all heavy attacks, not only with fully charged ones

1 Like

I think this is wrong.
Where are you getting this from? It doesn’t line up with results.
I see it working differently for fully charged (auto-release) vs. a quick heavy, both in source and in-game (psykanium).
The ActionSweep._calculate_max_hit_mass function checks for fully charged and buff (blessing) keyword and Unstoppable Force actually returns an infinite max mass/cleave budget for swing rather than the normal swings. Note : some things like sunder reduce mas rather than increasing the maximum mass that can be cleaved. Like the other “ignore armor” it also doesn’t get stopped by crusher/bulwarks.

It does behave very differently compared to Brutal Mom, sadly.
From what I can see in-game with some trace hooks: the diminishing damage is applied and the last mob and subsequent ones all get the same last-target damage dealt (which may be 0 dmg on a mk3 cleaver H1, minimal on mk6). Weapon stats and behaviours are respected but it never runs out of mass budget on fully charged auto-released heavy, not really useful.
It’s weird to see it “hit” 30 crushers…
I’m guessing it’s more of a wording issue (?) as it’s not actually ignoring mass, it just has an infinite maximum budget.

ActionSweep._calculate_max_hit_mass = function (self, damage_profile, power_level, charge_level, critical_strike)
	local buff_extension = self._buff_extension
	local fully_charged = self._auto_completed

	if fully_charged then
		local infinite_cleave_keyword = buff_extension:has_keyword(buff_keywords.fully_charged_attacks_infinite_cleave)

		if infinite_cleave_keyword then
			return math.huge
		end
	end

	local infinite_cleave_keyword = buff_extension:has_keyword(buff_keywords.melee_infinite_cleave)

	if infinite_cleave_keyword then
		return math.huge
	end

	local infinite_cleave_critical_strike_keyword = buff_extension:has_keyword(buff_keywords.melee_infinite_cleave_critical_strike)

	if infinite_cleave_critical_strike_keyword and critical_strike then
		return math.huge
	end

	local attack_type = AttackSettings.attack_types.melee
	local player_unit = self._player_unit
	local damage_profile_lerp_values = DamageProfile.lerp_values(damage_profile, player_unit)
	local max_hit_mass_attack, max_hit_mass_impact = DamageProfile.max_hit_mass(damage_profile, power_level, charge_level, damage_profile_lerp_values, critical_strike, player_unit, attack_type)

	return math.max(max_hit_mass_attack, max_hit_mass_impact)
end
3 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.