How often does "crush_through" (or extra penetration) proc/activate?

Users who are viewing this thread

Sahran

Grandmaster Knight
I've been trying to boost the lethality of spears, since they are the primary weapon in SITD. While speed and damage will work it still faces the problem of the AI & player able to simply hold block down and constantly be able to block not just one spear but as many spears as possible thrusting from the front. It was in the context of a big beefy npc noble that I had the idea of giving his spear alone an ability to break through a block but I'm starting to wonder about applying it to most or all spears.

Some folks might disagree with that conclusion, but I was wondering how often does the crush-through attribute (which I assume to be what lets a maul and such break through a block) activate? Is there any way to tweak how often it does? Or could scripting allow a spear to break through a block if it achieves a certain damage threshold?

Ideally this would only effect 1 handed weapon blocking, since I have no problem with shields (which can block all directions anyway) but rather "Herp derp lemme hold down my letter opener and face hug and slice and dice you". Could just make those 1 handed weapons unable to block a downward thrust, but while that works for daggers it's a bit harder to swallow with swords - even though most are going to be short sword sized as it is.
 
Have you experimented with crush_through on spears yet? It seems to be effected by the speed or swing length of the blow whether the weapon will crush through a block.
 
Have not, purely theoretical at this point so I should see about that. Thanks for the tip.  :smile:
 
Comparative weapon weights, swing speed (proficiency + weapon speed + agility), speed bonus, and holding the swing all factor into crush through.

 
From cmp:

if (damage_type is cut)
damage_modifier = 2.0
else
damage_modifier = 3.0

crush_factor = base_damage * 0.02 * damage_modifier

if (attacking_item.type is 'polearm' or 'two_handed')
crush_factor *= 2

crush_factor = (attacking_item/weight + 4.0) / 5.0 * crush_factor

if (some_unknown_variable > 1.25)
crush_factor *= 1.3

if (attack_type is thrust)
crush_factor *= 0.5

block_factor = 1.0

if (defender.has_item)
block_factor = blocking_item.weight * 0.2 + 5.0

if (blocking_item.type is polearm or 2h)
block_factor *= 1.2

crushes_through = (crush_factor / block_factor) > crush_through_threshold
 
xenoargh said:
some_unknown_variable is either length or velocity.  Probably velocity.

When I spoke to cmp about it, he said that he had never seen it called at a value above 1.125, thus I'd imagine it isn't either of those and is perhaps instead just the remnants of some (now no longer implemented) code.

I think the weapon's velocity is covered in base_damage as well, which takes into account speed-bonus of the attack.
 
Hmm.  So it's not a check for whether it's chambered?  Maybe a check for the swing animation time, since slower-swing weapons are the ones they wanted to have crush-through.  Pity they bury these mechanics engine-side instead of exposing them, though.
 
Animation timing might allude to an implementation of a special sweetspot thingy that gives an extra bonus on hitting at perfect range/perfect moment in the swing animation.
 
cmpxchg8b said:
To what Alexander said I can add that the unknown thing seems related to animation timing (but is not holding bonus).

I am sorry for necroposting, but I have read somewhere (probably, on Wikia), that it is and angle bonus - they say, guard crush is more likely to succeed on angles like 90 degrees and more likely to fail on low angles.
 
cmpxchg8b said:
No, it's not an angle bonus. It was a variable that reduces damage/crushthrough power when you hit a rider after hitting the horse in the same attack.

Sorry for some more questions about it.
I make a mod, where I want spears and pikes to crush blocks, so it is important for me to understand that formula very good.

1) How is that "some_unknown_variable" formed? How often is it >1,25? How to influence it?
2) Does something change if blocking item is shield?
3) What is the exact value of "crush_through_threshold"?
4) How hardcoded is that all, is it possible to change it in a mod?
5) If defender has no item, what can crushtrough do? Crushthrough fist block?
6)
 
Baskakov_Dima said:
I make a mod, where I want spears and pikes to crush blocks, so it is important for me to understand that formula very good.
Keep in mind that if you are unmounted only overhead attacks will crush through. It's hardcoded to do that and there is no way to disable it.
Baskakov_Dima said:
1) How is that "some_unknown_variable" formed? How often is it >1,25? How to influence it?
IIRC it gets up to 1.3 by holding your attack.
Baskakov_Dima said:
2) Does something change if blocking item is shield?
No.
Baskakov_Dima said:
3) What is the exact value of "crush_through_threshold"?
It's in module.ini.
Baskakov_Dima said:
4) How hardcoded is that all, is it possible to change it in a mod?
No, apart from crush_through_threshold.
Baskakov_Dima said:
5) If defender has no item, what can crushtrough do? Crushthrough fist block?
Fists don't block weapons, so there's nothing to crush through.
 
Somebody said:
If you're going to add pikes, make sure to add the overhead stab anyway.

Will have to replace some animations, so we don't do it at first release.

We actually think now about removing the downblock, so thrusts could only be blocked with shields and chambered. Is a really hard thing to do, but if we succeed...
If we don't, we will add overhead stab.

Now we make spears with very big weight and crushing through.
 
thanks for the answer. Let me just confirm that;

Is it strictly impossible by tweaking values to make crushtrought block affecting non-overhead attack ?
 
cmpxchg8b said:
Baskakov_Dima said:
I make a mod, where I want spears and pikes to crush blocks, so it is important for me to understand that formula very good.
Keep in mind that if you are unmounted only overhead attacks will crush through. It's hardcoded to do that and there is no way to disable it.
Hmmm, that is sad. Very sad. So, in WFAS they have fixed that, right?
I would like to try another feature then, is it possible to disable downblock for all weapons? It will make thrusts only chamberable.
cmpxchg8b said:
Baskakov_Dima said:
1) How is that "some_unknown_variable" formed? How often is it >1,25? How to influence it?
IIRC it gets up to 1.3 by holding your attack.
So, an addition to hold bonus, yep? But hold bonus also adds damage.
cmpxchg8b said:
Baskakov_Dima said:
5) If defender has no item, what can crushtrough do? Crushthrough fist block?
Fists don't block weapons, so there's nothing to crush through.

Why is it needed then?
 
Baskakov_Dima said:
I would like to try another feature then, is it possible to disable downblock for all weapons? It will make thrusts only chamberable.

Open up header_items, then search for these things:
Code:
itcf_parry_forward_onehanded                         = 0x0000010000000000
itcf_parry_forward_twohanded                         = 0x0000100000000000
itcf_parry_forward_polearm                           = 0x0001000000000000

Then set all 3 values to 0 and that is all, so it will be:
Code:
itcf_parry_forward_onehanded                         = 0
itcf_parry_forward_twohanded                         = 0
itcf_parry_forward_polearm                           = 0
 
Back
Top Bottom