G
Guest
Guest
Archived from groups: rec.games.roguelike.angband (More info?)
Hi,
I have been thinking for a while about adding an incremental
resistance system to Oangband. I really do not like the traditional
approach of additive percentile bonuses. This system is fundamentally
flawed in that there is a magical "increasing returns" implicit to it.
Until you reach total immunity, each X% bonus is actually more
valuable than the previous X% in terms of survivability.
I favor is system of "resistance points" - rpoints below - indexing a
lookup table of damage modification. The player would start with 0
rpoints to all elements. 10 rpoints would yield true immunity, and
negative rpoints would represent a susceptibility.
Note that the actual rpoints system can be kept below the hood. The
player, if not interested, need only know that:
- Each successive resistance item further reduces damage.
- It is wise to stack resistances or find "immunity" items for common
elements.
- Temporary resists are very powerful.
Here are my thoughts so far.
******
Items:
******
Immunity flags are replaced by greater resistance flags. Items that
currently have immunity will have both greater and normal flags which
together normally provide immunity. Other items may be upgraded from
normal to greater resistance.
*****************
Resistance Table:
*****************
Rpoints Damage
<0 130%
0 100
1 75
2 55
3 40
4 30
5 25
6 20
7 15
8 10
9 5
10+ 0
Base rpoints is 0.
Normal resistance flags give +2
Greater resistance flags give +4
Normal + greater flags on the same item give +10
Temporary resistance is worth +4
Temporary resistance with Enhance Magic gets +5
Note: This really cleans up the horrible implementation
currently in place for Enhance Magic on temp resistances.
Ents get -1 for fire
Shadow Fairies get -1 for Light
Shapeshift Ent-form gives -2 for fire and caps rpoints at 4
Shapeshift Vampire-form gives -2 for light and caps rpoints at 1
Rpoints > 0 prevents most side-effects. Poison will be reduced by some
formula TBD.
***************
Infrastructure:
***************
rpoints will be determined in calc_bonuses.
In addition, there will a function:
byte check_resistance(byte element, byte random_factor)
Returns: Percentage from the table above.
"random_factor" is the possible variation in the return value. A
random_factor of "100" will allow the return value to fluctuation with
an amplitude sufficient to reach whichever is closer of 0 or 100
(i.e. rpoints = 2 and random_factor = 100 returns a value from 10 to
100). Most high-element resistance checks will have a random factor
of 10 (roughly 50% to 60% damage at rpoints 2). Chaos will have a
random factor of 20 (roughly 45% to 65% damage at rpoints 2).
******
Notes:
******
- To achieve roughly the same resistance a single item currently
provides, two resist items or one greater resist item is needed.
- With one resist item high elements will be doing about 10% more
damage than before.
- With one resist item poison will be doing about 66% more damage.
That should be OK with the dramatic reduction in base poison damage a
few patches ago.
- It is possible to take a small amount of damage with an "immunity"
item equipped, if you have a susceptibility. This should be
insignificant.
- The ability to stack permanent resists threatens to devalue
temporary resists. This is why the temporary resists provide the
rpoints of two normal resist items.
- Items that provide multiple low resists will be much more useful in
the late game - wear a Crown of the Magi AND a Robe of Permanence!
Some items may need a tweak to reflect this.
--
Bahman Rabii
Hi,
I have been thinking for a while about adding an incremental
resistance system to Oangband. I really do not like the traditional
approach of additive percentile bonuses. This system is fundamentally
flawed in that there is a magical "increasing returns" implicit to it.
Until you reach total immunity, each X% bonus is actually more
valuable than the previous X% in terms of survivability.
I favor is system of "resistance points" - rpoints below - indexing a
lookup table of damage modification. The player would start with 0
rpoints to all elements. 10 rpoints would yield true immunity, and
negative rpoints would represent a susceptibility.
Note that the actual rpoints system can be kept below the hood. The
player, if not interested, need only know that:
- Each successive resistance item further reduces damage.
- It is wise to stack resistances or find "immunity" items for common
elements.
- Temporary resists are very powerful.
Here are my thoughts so far.
******
Items:
******
Immunity flags are replaced by greater resistance flags. Items that
currently have immunity will have both greater and normal flags which
together normally provide immunity. Other items may be upgraded from
normal to greater resistance.
*****************
Resistance Table:
*****************
Rpoints Damage
<0 130%
0 100
1 75
2 55
3 40
4 30
5 25
6 20
7 15
8 10
9 5
10+ 0
Base rpoints is 0.
Normal resistance flags give +2
Greater resistance flags give +4
Normal + greater flags on the same item give +10
Temporary resistance is worth +4
Temporary resistance with Enhance Magic gets +5
Note: This really cleans up the horrible implementation
currently in place for Enhance Magic on temp resistances.
Ents get -1 for fire
Shadow Fairies get -1 for Light
Shapeshift Ent-form gives -2 for fire and caps rpoints at 4
Shapeshift Vampire-form gives -2 for light and caps rpoints at 1
Rpoints > 0 prevents most side-effects. Poison will be reduced by some
formula TBD.
***************
Infrastructure:
***************
rpoints will be determined in calc_bonuses.
In addition, there will a function:
byte check_resistance(byte element, byte random_factor)
Returns: Percentage from the table above.
"random_factor" is the possible variation in the return value. A
random_factor of "100" will allow the return value to fluctuation with
an amplitude sufficient to reach whichever is closer of 0 or 100
(i.e. rpoints = 2 and random_factor = 100 returns a value from 10 to
100). Most high-element resistance checks will have a random factor
of 10 (roughly 50% to 60% damage at rpoints 2). Chaos will have a
random factor of 20 (roughly 45% to 65% damage at rpoints 2).
******
Notes:
******
- To achieve roughly the same resistance a single item currently
provides, two resist items or one greater resist item is needed.
- With one resist item high elements will be doing about 10% more
damage than before.
- With one resist item poison will be doing about 66% more damage.
That should be OK with the dramatic reduction in base poison damage a
few patches ago.
- It is possible to take a small amount of damage with an "immunity"
item equipped, if you have a susceptibility. This should be
insignificant.
- The ability to stack permanent resists threatens to devalue
temporary resists. This is why the temporary resists provide the
rpoints of two normal resist items.
- Items that provide multiple low resists will be much more useful in
the late game - wear a Crown of the Magi AND a Robe of Permanence!
Some items may need a tweak to reflect this.
--
Bahman Rabii