Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Development

Reply
 
Thread Tools Display Modes
Old August 21, 2011, 23:10   #1
Jungle_Boy
Swordsman
 
Join Date: Nov 2008
Posts: 434
Jungle_Boy is on a distinguished road
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
Jungle_Boy is offline   Reply With Quote
Old August 22, 2011, 00:54   #2
buzzkill
Prophet
 
buzzkill's Avatar
 
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
buzzkill is on a distinguished road
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.
buzzkill is offline   Reply With Quote
Old August 22, 2011, 02:16   #3
fizzix
Prophet
 
Join Date: Aug 2009
Location: Madison, Wisconsin, US
Posts: 3,002
fizzix is on a distinguished road
Quote:
Originally Posted by Jungle_Boy View Post
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
fizzix is offline   Reply With Quote
Old August 22, 2011, 02:55   #4
dhegler
Adept
 
Join Date: Sep 2009
Posts: 249
dhegler is on a distinguished road
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...
dhegler is offline   Reply With Quote
Old August 22, 2011, 03:50   #5
Jungle_Boy
Swordsman
 
Join Date: Nov 2008
Posts: 434
Jungle_Boy is on a distinguished road
Quote:
Originally Posted by buzzkill View Post
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.

Quote:
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
Jungle_Boy is offline   Reply With Quote
Old August 22, 2011, 07:04   #6
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,096
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by dhegler View Post
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.
Timo Pietilš is offline   Reply With Quote
Old August 22, 2011, 07:32   #7
Jungle_Boy
Swordsman
 
Join Date: Nov 2008
Posts: 434
Jungle_Boy is on a distinguished road
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
Jungle_Boy is offline   Reply With Quote
Old August 22, 2011, 11:47   #8
Magnate
Angband Devteam member
 
Join Date: May 2007
Location: London, UK
Posts: 5,057
Magnate is on a distinguished road
Send a message via MSN to Magnate Send a message via Yahoo to Magnate
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.
__________________
"3.4 is much better than 3.1, 3.2 or 3.3. It still is easier than 3.0.9, but it is more convenient to play without being ridiculously easy, so it is my new favorite of the versions." - Timo Pietila

Last edited by Magnate; August 22, 2011 at 14:45. Reason: misplaced apostrophe
Magnate is offline   Reply With Quote
Old August 22, 2011, 14:15   #9
buzzkill
Prophet
 
buzzkill's Avatar
 
Join Date: May 2008
Location: Indiana, USA
Posts: 2,939
Donated: $8
buzzkill is on a distinguished road
Quote:
Originally Posted by Jungle_Boy View Post
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.
buzzkill is offline   Reply With Quote
Old August 22, 2011, 14:25   #10
Timo Pietilš
Prophet
 
Join Date: Apr 2007
Location: Climbing up from hole I just dug.
Posts: 4,096
Timo Pietilš is on a distinguished road
Quote:
Originally Posted by buzzkill View Post
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.
Timo Pietilš is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Resist poison after 2000' jbu Vanilla 6 August 3, 2010 14:36
Resist question... Fendell Orcbane Vanilla 2 June 1, 2010 10:49
Resist Poison z118 Vanilla 1 January 7, 2010 15:01
Resist slowing but not speeding :( Nightmarjoo Vanilla 3 September 5, 2009 05:23
Possible Bug in 3.1.0 - Temp Resist reduces damage by 1/2? Nikodemos Vanilla 2 January 20, 2009 00:17


All times are GMT +1. The time now is 10:22.


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