minmay wrote:galehar wrote:Why would you care if you are at 7.05 or 7.95? The next 0.05 gain will provide the same benefit anyway.
Why would you care if you're at skill 1 or skill 26? The next gain of 1 will provide the same benefit anyway.
Because the difference in gameplay effect is huge? Whereas the difference between 7.05 and 7.95 is too insignificant to matter. Realistically, if the scale is continuous and the display shows some decimals, there's not a single question you would answer differently based on this added information. Knowing if you're at 7.05 or 7.95 is as useful as knowing if you're a bit above resistant to magic or a bit below very resistant to magic.
KoboldLord wrote:bonuses are usually reducible to a specific level of granularity and no farther
My proposal is to increase this level of granularity until it doesn't matter anymore.
KoboldLord wrote:Take dodging for instance. Really, players don't actually care what their dodging skill level is, at least beyond the simple pleasure of getting the level-up ding. They want the EV. If dodging is re-scaled so that it gives a bonus in the middle of the level and not necessarily on the level itself, we'll just grind it until we see our EV tick up, and then shut it off immediately.
What I'm saying is give EV a higher precision internally. You want some EV or not. You don't have to worry about micro-managing your EV more than your skill level. And before you ask, AC also have a higher precision, but HP does not. If you've got 4.56 AC, you roll random2(456) and div_rand_round the result by 100 to find out damage reduction. Those are just examples, it can be applied to all formulas, with varying levels of precision . Although using a scale of 100 per skill level would probably be good for 99% of the cases.
KoboldLord wrote:Take weapon skills as a rather more troublesome example. It's generally considered extremely important to manipulate your weapon skill carefully. It gives huge bonuses up until you hit minimum delay, but then it gives extremely small bonuses.
My proposal doesn't prevent you from disabling your skill when you hit minimum delay, I don't see what's the problem here. This is off-topic, but I thought of adding a message when you reach minimum delay and have an option to automatically disable the weapon skill in this case. I hope that such an option will not be needed in the future, but for now it would be better to have it.
Now, thinking about weapon delay, I realised the time system could use smaller steps to. If we increase BASELINE_DELAY from 10 to 100 (which means dividing the value of aut by 10 so a normal turn take 100 aut instead of 10) this could help too. The increase in attack speed could be smoother instead of bumping every 2 levels, monster speed randomisation could be improved to not be so gameable and swiftness bonus could be more easily scaled with spell power.
dolphin wrote:I like the idea, but I'm not sure of some implementation
you.skill() takes a scale parameter (default to 1). If you're at level 7, with 89% progression to 8, you.skill(sk) returns 7 (as now), you.skill(sk, 10) returns 78 and you.skill(sk, 100) returns 789. Can add you.xl() function which works similarly for XL.
dolphin wrote:for Spellcasting and spells slots
- Code:
num_slot = (you.xl(100) + 2 * you.skill(SK_SPELLCASTING, 100)) / 100.
You gain the slots one at a time and you've got a new message to warn you when you gain one if it's relevant (have spellcasting, not a Be, can learn a spell you couldn't before).
MP and HP can use the higher precision. I don't see the problem with having max HP and MP raise one point at a time as skills progress.
dolphin wrote:or the proposed summoning cap
It's just a proposal for now, so I wouldn't worry. But it could be adapted too, like capping the sum of summons' HD to you.skill(SK_SUMMONING, 10) for example.
dolphin wrote:I wonder if you could make XL continuous, too.
For spell slot calculation yes, HP maybe too. But we have to keep some of those "dings", and you can't micro-manage your XL anyway.
By fuzzing out those articial steps we remove the tedium of micro-managing them. I'll put a more detailed proposal on the wiki.
<+Grunt> You dereference an invalid pointer! Ouch! That really hurt! The game dies...