Resist system

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jungle_Boy
    Swordsman
    • Nov 2008
    • 434

    Resist system

    I was thinking about trying to come up with a more universal, or at least easier to understand, resistance system. Do people think this is a worthwhile thing to look at? If so can someone point me to where I can find the max attack for each element and the current reductions due to resistance?
    My first winner: http://angband.oook.cz/ladder-show.php?id=10138
  • buzzkill
    Prophet
    • May 2008
    • 2939

    #2
    I take it that you're already familiar with FA/O style cumulative resists.
    www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
    My banding life on Buzzkill's ladder.

    Comment

    • fizzix
      Prophet
      • Aug 2009
      • 3025

      #3
      Originally posted by Jungle_Boy
      I was thinking about trying to come up with a more universal, or at least easier to understand, resistance system. Do people think this is a worthwhile thing to look at? If so can someone point me to where I can find the max attack for each element and the current reductions due to resistance?
      max attack for elements can be found in list-mon-spells.h

      for the resistances you have to piece them together from: constants.h and list-gf-types.h

      Comment

      • dhegler
        Swordsman
        • Sep 2009
        • 252

        #4
        Why don't the resistances be some % resistance from 10% to 50%, and then immunity, and make them cumulative? That way you can have 4 items that resist fire, etc and it may make some things more relevant if you make the resists cumulative...

        Comment

        • Jungle_Boy
          Swordsman
          • Nov 2008
          • 434

          #5
          Originally posted by buzzkill
          I take it that you're already familiar with FA/O style cumulative resists.
          I am familiar with the fact that they have cumulative resists and if I remember right they are all percent based and items can have varying levels of resist foo.

          What I am thinking of is a simpler system that would not involve changing items at all. At least for the basic four something like this, first resist works as now, second resist blocks half remaining, temp resist blocks 1/6 remaining. This works out to the same as double resisting currently, there is just an extra level of resist in the middle. this might work for the basic four but I have no numbers for the others so not sure how well it would do there. I'm not even sure it is possible to come up with a simple system that works for all elements without changing resists on items but I thought I might look at it just to see. Plus I love playing with numbers.

          max attack for elements can be found in list-mon-spells.h

          for the resistances you have to piece them together from: constants.h and list-gf-types.h
          Crap, I was hoping it would be in a nice edit file. guess I'll have to download the source.
          My first winner: http://angband.oook.cz/ladder-show.php?id=10138

          Comment

          • Timo Pietilä
            Prophet
            • Apr 2007
            • 4096

            #6
            Originally posted by dhegler
            Why don't the resistances be some % resistance from 10% to 50%, and then immunity, and make them cumulative? That way you can have 4 items that resist fire, etc and it may make some things more relevant if you make the resists cumulative...
            There is a problem with that approach that you easily either get too many resists, or single one isn't enough and you don't find more. I prefer not to hunt more than one resist for each of the ones I need.

            Resistances as damage reduction are pretty much irrelevant except for basic four and poison. We could as well remove them completely for rest of the elements and replace them with side-effect prevention and leave basic four & poison as they are.

            Comment

            • Jungle_Boy
              Swordsman
              • Nov 2008
              • 434

              #7
              Here's a little something I whipped up this evening. Should be pretty easy to code and test but I don't have a compiler.

              Current resistance system:

              Code:
              Element	Max	Divisor	    Res Adj	Dbl Res Adj	Vuln Adj		Res damage		Dbl Res damage	Vuln damage
              Acid	1600	3	(dam+2)/3	(dam+8)/9	(dam*4)/3		534		178.667	         2133.333
              Elec	1600	3	(dam+2)/3	(dam+8)/9	(dam*4)/3		534		178.667	         2133.333
              Fire	1600	3	(dam+2)/3	(dam+8)/9	(dam*4)/3		534		178.667	         2133.333
              Cold	1600	3	(dam+2)/3	(dam+8)/9	(dam*4)/3		534		178.667	         2133.333
              Poison	800	3	(dam+2)/3	(dam+8)/9			        267.333		89.778	
              							                                   Min res damage	Average Max res damage	
              Nether	550	6	(((dam) * 6) / (damcalc(1, 6, dam_aspect) + 6))				471.429	347.368	275	
              Light	400	6	(((dam) * 4) / (damcalc(1, 6, dam_aspect) + 6))				228.571	168.421	133.333	
              Dark	400	6	(((dam) * 4) / (damcalc(1, 6, dam_aspect) + 6))				228.571	168.421	133.333	
              Sound	500	6	(((dam) * 5) / (damcalc(1, 6, dam_aspect) + 6))				357.143	263.158	208.333	
              Chaos	500	6	(((dam) * 6) / (damcalc(1, 6, dam_aspect) + 6))				428.571	315.789	250	
              Disench	500	6	(((dam) * 6) / (damcalc(1, 6, dam_aspect) + 6))				428.571	315.789	250	
              Nexus	400	6	(((dam) * 6) / (damcalc(1, 6, dam_aspect) + 6))				342.857	252.632	200	
              Shards	500	6	(((dam) * 6) / (damcalc(1, 6, dam_aspect) + 6))				428.571	315.789	250	
              Time	150	3	No resist		
              Inertia	200	6	No resist
              Gravity	200	3	No resist			
              Plasma	150	6	No resist				
              Force	200	6	No resist				
              Mana	1600		No resist
              Proposed New System:

              Code:
              Element	Max		Max	Average	Min	Dbl Max	Average	Dbl Min	Vuln Max	Average	Vuln Min			
              Acid	1600		533.333	426.667	320	320	256	192	2133.333	2026.667	1920			
              Elec	1600		533.333	426.667	320	320	256	192	2133.333	2026.667	1920		Single Res Adj	((dam*(damcalc(1,5, dam_aspect)+5))/30)
              Fire	1600		533.333	426.667	320	320	256	192	2133.333	2026.667	1920		Double Res Adj	((dam*(damcalc(1,5, dam_aspect)+5))/50)
              Cold	1600		533.333	426.667	320	320	256	192	2133.333	2026.667	1920		Vuln Adj	        ((dam*(damcalc(1,3, dam_aspect)+17))/15)
              Poison	1000		333.333	266.667	200	200	160	120						
              														
              Nether	550		412.5	343.75	275									
              Light	400		300	250	200									
              Dark	400		300	250	200									
              Sound	500		375	312.5	250		Res Adj							
              Chaos	500		375	312.5	250		((dam*(damcalc(1,5, dam_aspect)+7))/16)							
              Disench	500		375	312.5	250									
              Nexus	400		300	250	200									
              Shards	500		375	312.5	250									
              Time	150													
              Inertia	200													
              Gravity	200													
              Plasma	150													
              Force	200													
              Mana	1600
              Basic 5 One resist blocks 67% to 80%
              Double resist blocks 80% to 88%
              Poison max damage changed from 800 to 1000

              Result: Single resist is on average about 7% better than previous, while double resist is about 5% worse. Poison more dangerous

              Others One resist blocks 25% to 50%
              Result: Light, Dark and Sound are slightly more dangerous than previously, others have a slightly lower max but same min and same average damage

              Vulnerabilities increase damage taken by 20% - 33% vs the previous 33%

              Using the damcalc function in the numerator allows us to get an average in the middle of the range vs the previous skewing toward the low end of damage taken

              Overall high resists and the basic four are more valuable while temporary resists are slightly less helpful but still a good thing to have. This is a boost to warriors and low level characters who cannot easily get the resist spell but also helps characters who's temporary resist has worn off unnoticed or ends in the middle of a fight
              My first winner: http://angband.oook.cz/ladder-show.php?id=10138

              Comment

              • Magnate
                Angband Devteam member
                • May 2007
                • 5110

                #8
                Hmmm. I wonder if I can just clarify the basic proposition here. It seems to have two parts:

                1. Resists should be cumulative in some way a la O/FA. (Currently only one perm plus one temp are cumulative.)

                2. Resists should be variable in their effect. (Currently some are and some aren't.)

                The first point was in the OP but not the reworked table. I'm quite open to the idea of moving to cumulative resists, but why wouldn't we just adopt the O/FA system? It's tried and tested; I'm not sure what its deficiencies are but I'd want to know that if there were any we were proposing something that improved upon them.

                On the second point, I really don't like variable resists. IMO they are something that adds "realism" at the expense of gameplay (having to memorise the worst-case of the variable range). If there are good reasons for having variable resists, can we at least make them all vary by the same amount, and make the amount smaller, like 5-10%?

                On the whole it's not clear how this improves on the current system.
                Last edited by Magnate; August 22, 2011, 13:45. Reason: misplaced apostrophe
                "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                Comment

                • buzzkill
                  Prophet
                  • May 2008
                  • 2939

                  #9
                  Originally posted by Jungle_Boy
                  What I am thinking of is a simpler system that would not involve changing items at all. At least for the basic four something like this, first resist works as now, second resist blocks half remaining, temp resist blocks 1/6 remaining.
                  I second Magnate's (FA/O) point.

                  In your above example, it would be an item with a 66% resist (numbers that big are uncommon/non-existent IIRC), a second item with a 50% resist (common), plus a temp resist (not sure how those work in FA/O).

                  As you progress through FA/O you end wearing many identical resists, so the individual resist numbers are a bit smaller, single resists are generally a bit weaker. 50% resist for base elements is common and 10% to 20% for high resists, with 20% being the magic number to avoid side effects.

                  Not trying to harsh your buzz, but it looks very similar to me.
                  www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
                  My banding life on Buzzkill's ladder.

                  Comment

                  • Timo Pietilä
                    Prophet
                    • Apr 2007
                    • 4096

                    #10
                    Originally posted by buzzkill
                    I second Magnate's (FA/O) point.

                    In your above example, it would be an item with a 66% resist (numbers that big are uncommon/non-existent IIRC), a second item with a 50% resist (common), plus a temp resist (not sure how those work in FA/O).

                    As you progress through FA/O you end wearing many identical resists, so the individual resist numbers are a bit smaller, single resists are generally a bit weaker. 50% resist for base elements is common and 10% to 20% for high resists, with 20% being the magic number to avoid side effects.

                    Not trying to harsh your buzz, but it looks very similar to me.
                    In vanilla with single resist being only 50% you are toast for most games. This kind of change would require complete overhaul of entire item base.

                    No thank you, I rather stick with current system than play several iterations of unbalanced games for few years to get them right.

                    Comment

                    • Magnate
                      Angband Devteam member
                      • May 2007
                      • 5110

                      #11
                      Originally posted by Timo Pietilä
                      In vanilla with single resist being only 50% you are toast for most games. This kind of change would require complete overhaul of entire item base.

                      No thank you, I rather stick with current system than play several iterations of unbalanced games for few years to get them right.
                      Whereas I would be happy to iterate over several dev versions in order to balance a new system, if I was convinced of the advantages of moving to it.

                      ;-)
                      "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

                      Comment

                      • buzzkill
                        Prophet
                        • May 2008
                        • 2939

                        #12
                        Originally posted by Timo Pietilä
                        In vanilla with single resist being only 50% you are toast for most games. This kind of change would require complete overhaul of entire item base.
                        While I personally favor the FA/O system, I have no opinion on whether V should adopt it or not, and wasn't suggesting that it be ported to V.

                        However, only in the early game, would you be likely to only have a single resist (or none at all). By the time resists start to really matter, there will be stacking. It would be hard to avoid.

                        Ripped from the FA ladder, a CL42 character.

                        Code:
                         Acid:+.....+......  66% Confu:...+...+.....  86%
                         Elec:+.....+.+....  72% Sound:....+........  45%
                         Fire:+..+..+.+....  93% Shard:.......+.....  55%
                         Cold:+.....+......  67% Nexus:.............   0%
                         Pois:.............   0% Nethr:.............   0%
                         Lite:.............   0% Chaos:......+......  44%
                         Dark:........+....  39% Disen:.......+.....  43%
                        www.mediafire.com/buzzkill - Get your 32x32 tiles here. UT32 now compatible Ironband and Quickband 9/6/2012.
                        My banding life on Buzzkill's ladder.

                        Comment

                        • EpicMan
                          Swordsman
                          • Dec 2009
                          • 455

                          #13
                          And while we're at it, we should remove the variable damage resist from the high elements. Right now they are useless as damage reducers and high elements have low maximums to compensate. They work very differently from the base 5 resists and that is not really explained to new players.

                          Why not make the high resists also block damage the same (down to 1/3) as the base 5? That way they work like the player expects them to. Otherwise we might as well remove the resistances and replace them with status effect protection. That situation would be mostly the same as today except that it is much more apparent to players what the "high resistances" really are.

                          Comment

                          • Nomad
                            Knight
                            • Sep 2010
                            • 958

                            #14
                            I would definitely be in favour of removing the random element from the higher resists. With different damage caps for the elements plus multiple different random resist ranges with bizarre, hard to conceptualise limits (Quick! No stopping to calculate it properly, what's 5/7 to 5/12 of 500 HP as a rough range?) the most information I am ever capable of retaining about how higher resists work is "resist = less damage than no resist".

                            Base resists, I know I can just divide the max damage by three and get a ballpark estimate of how low my HP can dip before I'm in danger of instadeath. And really, that actually encourages me to play a more risky game, sticking around to melee things because I think I know my margin for error instead of fleeing the scene early because I've got no clear idea of how much damage I might take in a turn.

                            Comment

                            • Timo Pietilä
                              Prophet
                              • Apr 2007
                              • 4096

                              #15
                              Originally posted by buzzkill
                              While I personally favor the FA/O system, I have no opinion on whether V should adopt it or not, and wasn't suggesting that it be ported to V.

                              However, only in the early game, would you be likely to only have a single resist (or none at all). By the time resists start to really matter, there will be stacking. It would be hard to avoid.

                              Ripped from the FA ladder, a CL42 character.

                              Code:
                               Acid:+.....+......  66% Confu:...+...+.....  86%
                               Elec:+.....+.+....  72% Sound:....+........  45%
                               Fire:+..+..+.+....  93% Shard:.......+.....  55%
                               Cold:+.....+......  67% Nexus:.............   0%
                               Pois:.............   0% Nethr:.............   0%
                               Lite:.............   0% Chaos:......+......  44%
                               Dark:........+....  39% Disen:.......+.....  43%
                              Looks like defender weapon. A bad choice in vanilla. Cold 50% meet Tarrasque = toast.

                              It's really really easy in vanilla to go with only one item with basic four resist for majority of the game, because you simply can't get better gear with multiple. Have combination of Caspanion and Thorin and you are already in trouble finding all basic four covered.

                              I really don't see any reason to change this too to more complex version (which every single suggestion has been this far).

                              Comment

                              Working...
                              😀
                              😂
                              🥰
                              😘
                              🤢
                              😎
                              😞
                              😡
                              👍
                              👎