|Summary||attack speed, combat moves, effect of attributes and weapon differentiation|
|Tavern||Fighting reform 2014-01-07's revision|
|Added on||2012-07-12 11:13|
I see 3 main problems with the current fighting system:
Addressing the first one has a big effect on balance, maybe we can use the latter 2 to restore it?
Also, ranged implementation is being merged with melee. Some of the things in this page might be used for ranged too.
Effect of stats has been doubled, feedback welcome.
Here is a revision to the delay proposal:
delay = base_delay / (1 + 2 * skill / 27)
The base delay needs to be increased a bit to compensate:
I have made a google spreadsheet to easily check any weapon's new and old formulas and compare them in delay and speed charts. It's also very easy to tweak the base delay or the formula and see the result. Of course, this will offset the balance, but we can also compensate by also tweaking the damage and accuracy stats of some weapons. The real question isn't about balance, but about differentiation. I think it succeeds in keeping weapon differentiation but it might be hard to tell without actual playtesting. — galehar 2014-01-08 13:41
Before talking about min delay, let's start with linearity. Unarmed Combat's min delay is at 27 skill level, but the attack delay decreases linearly with skill level which gives attack speed an hyperbolic growth. In practice, it means that higher skill levels have a stronger impact on attack speed (which is directly linked to damage output) than lower levels. Changing the delay formula from 10 - sk / 5.4 to 270 / (27 + sk) would make attack speed linear to skill as illustrated below:
Generalizing the formula with min delay = base delay / 2 reached at skill level 27:
delay = (base_delay * 27) / (27 + skill)
Elliptic suggested this formula:
delay = base_delay / (1 + C * skill * base_delay)
speed = base_speed + C * skill
C doesn't have to be the same for all weapons. Can be set per weapon, or per weapon type.
Maybe something like this could work better:
delay = base_delay / (1 + 2 * skill / 27)
Here are 3 examples with some changes to base delay:
— galehar 2013-04-18 00:09
With the change to the speed formula, balance is broken. So don't think of each proposed change as “This is a nerf to x” or “It makes y overpowered”. First, let's find the good system and formulae, then we'll turn the knobs and find the good numbers. To keep trunk playable while this is being balanced, this is going to be tested in a branch (melee_linear_speed).
After some thoughts and discussions, it seems the attributes formula is good, the only problem being that its effect is too weak. I suggest we try to triple it in the melee_linear_speed branch.
The problem with accuracy is that it's very important early on, and worthless later. elliptic is suggesting that the problem doesn't come from the to_hit formula, but how it is compared to EV in melee_attack::test_hit(). Or maybe it's about how it's rolled (mhit = maybe_random2(mhit, random)) in calc_to_hit(), I'm not sure. I have no idea how to improve it, suggestions are welcome.
In this page, I won't discuss the details of the design of each effect, this should be done on the Combat Maneuvers & Weapon Reform. I'll just mention which effect we use and how they are affected by attributes and skills. In general, I think skill should affect the chance for the effect to trigger, and attributes affect the power of the effect. There is always a chance for the effect, even at skill 0, and it's never guaranteed, even at skill 27.
It would be good if weapon effects are affected by skill and/or attributes, because right now both reaching and cleaving trigger all the time at full effect. It doesn't seem quite right that a DEFE with 0 Axes can cleave as well as a MiFi with 27 Axes.
Alternatively, I'd like to propose reflavouring weapon effects into learned combat techniques instead. So cleaving isn't a property of the axe, it's a passive ability of the axe wielder. Melee backgrounds (Fi/Gl) can start with the appropriate passive ability, but for other backgrounds, they'll have to learn it from a manual or something. This would also give some more differentiation to the melee backgrounds, which are kind of weak compared to backgrounds that start with a god or a book. — DracheReborn 2013-08-06 16:30
Also, I don't think any weapon should have a defensive effect. No parrying and no counter attacks.
Cleave is in trunk.
Seems to be too strong with some brands, like vampirism, elec or pain. We could forbid some brands on axes or have them only trigger on the main target.
Some also have suggested reducing its range to 5 cells. I think it could be interesting to have the range scale with the axe size:
I don't think it would have a strong effect, because early on, cleave range isn't very relevant anyway. It's only latter that you can get swarmed by monsters and survive, and by then, you'd have found a bigger axe. But I think it could be interesting anyway. Cleaving is now the defining feature of the weapon class, it's good that upgrading your axe doesn't just buff the damage, but also increase the cleaving effectiveness. — galehar 2012-10-08 17:04
Armour piercing (only a fraction of monster's AC applies) is realistic but very boring. No need for a special effect when the same result can be achieved with weapon stats (high damage and low speed). No special effect for those weapons, better stats to compensate. Differentiate them by having M&F with high damage and low speed and long blades with lower damage and better speed. Exceptions are fine (whips and triple swords).
Chance for a double attack on the same monster (not magical staff). Or nothing, magical staves are already the gimmick of this weapon class.
Mostly unchanged, just remove the stabbing skill and use the short blades skill instead. But what of felid unarmed stabbing? Maybe just remove it.
No change. It's tempting to try to introduce a difference in adjacent and reached attacks with skills or attributes bonus or malus. I think it wouldn't be fun at all.
There were some further ideas on this Mantis ticket: https://crawl.develz.org/mantis/bug_change_status_page.php