Angband Forums

Angband Forums (http://angband.oook.cz/forum/index.php)
-   Idle chatter (http://angband.oook.cz/forum/forumdisplay.php?f=6)
-   -   Resistances: additive vs boolean (http://angband.oook.cz/forum/showthread.php?t=4115)

Philip February 12, 2011 06:48

The FA system might be tricky, but as long as the code is easy to get, I think there is no trouble in letting the computer figure it out. As long as the character screen tells you what percent resists you have, I fully support it. It makes multiple resistance items less and less important, but still useful.
3 is the Un way if I am not mistaken. Also interesting, but I still prefer the O/FA system(yeah, well that applies pretty much everywhere)

half February 12, 2011 10:40

Quote:

Originally Posted by Derakon (Post 48539)
My general opinion is that important algorithms should be as transparent as possible while still achieving the desired effect. Thus I'd suggest simply that resists divide damage by (N + 1), where N is the number of sources of resistance (thus 1/2, 1/3, 1/4, 1/5, etc.). Simple, scalable, easy to understand, doesn't distinguish between permanent and temporary resists or between basic 4, poison, and the rest. Basic elements are made about 16% more dangerous (which if necessary could be compensated for by tweaking damage formulae and caps), high element resistance is regularized.

So this is what I called (3). One thing to note about it is that you may need to reduce the damage done by breathers of the big 5, if you want to avoid insta-death with one resistance (also true of (2)). Also note that it requires 8 sources of resistance to get to the stage of current 'double resists' and that we are already happy to hand out immunities more easily than that.

half February 12, 2011 10:43

Quote:

Originally Posted by Nick (Post 48543)
Yes, FA. I like to think of it (and it is coded) as reduction of damage - so in your example the first item reduces damage to 60%, and then the second item cuts off 20% of that, leaving damage at 48%.

Exactly. You could think of 'vulnerabilities' instead of resistances. You start with a vulnerability of 100% (normal) and then find an item of vulnerability 60% and one of vulnerability 80% and then your vulnerability is only 48% (meaning you only take 48% of normal damage). Immunity is 0% vulnerability. In the FA system the vulnerabilities multiply or, equivalently, the resistances co-multiply.

bron February 14, 2011 19:02

I voted in favor of "boolean" (i.e. the way it is now). I don't object to the idea of "additive," I just feel the current system works fine and don't feel like having it changed.

I will say however that if there *is* a move to another form of resist calculation, then I would favor the version where each extra instance of a resist cuts the damage by a fixed percentage, with 50% being the number of choice mostly because it is easy to express and makes sense: each additional instance of a resist, whether permanent or temporary, cuts the damage in half. This also neatly captures the current special-case 50% acid-resist that armor gives by simply counting armor as one level of acid resist (I realize the *code* may not be able to unify that all together, but the *concept* in the player's mind is uniform and easy to express).

Pete Mack February 15, 2011 05:28

Quote:

Originally Posted by bron (Post 48699)
I will say however that if there *is* a move to another form of resist calculation, then I would favor the version where each extra instance of a resist cuts the damage by a fixed percentage, with 50% being

Just to be contrary, I think if we must go with additive resistances, the ratio should be 1/(0.5*(1+sqrt(5)). That's a much prettier ratio than 1/2.

PowerDiver February 15, 2011 08:21

Quote:

Originally Posted by Pete Mack (Post 48708)
Just to be contrary, I think if we must go with additive resistances, the ratio should be 1/(0.5*(1+sqrt(5)). That's a much prettier ratio than 1/2.

Isn't there a design paradigm favoring integer style stuff? The obvious :) compromise is to divide by Fibonacci numbers, i.e. divide damage by F_{n+2} for n resists.

Pete Mack February 16, 2011 04:20

Quote:

Originally Posted by PowerDiver (Post 48710)
Isn't there a design paradigm favoring integer style stuff? The obvious :) compromise is to divide by Fibonacci numbers, i.e. divide damage by F_{n+2} for n resists.

I suspect you mean F_{n+1}, for this to make any sense at n=0...
But quite so, your pure integer paradigm is much better.

PowerDiver February 16, 2011 04:36

Quote:

Originally Posted by Pete Mack (Post 48740)
I suspect you mean F_{n+1}, for this to make any sense at n=0...
But quite so, your pure integer paradigm is much better.

The standard def is F_1 = F_2 = 1, with F_0 = 0.. I double-checked before I posted. If you want damage reduction for 1 resist but not for 0 resists I think I got it right.

Did you know that F_n = round(\phi^n / \sqrt{5})? Your earlier comment made you sound like a \phi fanatic, so you might want to remember that. You can express \sqrt{5} in terms of \phi as well if that tickles your fancy.

Pete Mack February 16, 2011 04:41

Whoops, you are right. And I knew you could represent the two as a closed formula, but I forgot what the formula is.

dos350 March 8, 2011 06:32

Bool!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


All times are GMT +1. The time now is 19:04.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.