02-15-2015, 01:19 PM | #31 |
Initiate
Join Date: Aug 2013
Posts: 103
|
So to be clear, resistances are not proportionate to the amounts of damage, only to the number of damage types?
so if u have 300 fire, 100 ice, 100 light damage.... armor resistances are an equal 1/3? |
02-16-2015, 07:26 PM | #32 | |
Initiate
Join Date: Jan 2014
Posts: 202
|
Quote:
Example for hunter: you have 120 dexterity, dexterity damage is (120 - 20) * 1 = 100 1) You have 100 slash and 100 pierce damage, 50 dex will become slash, 50 dex will became pierce, You will deal 150 slash and 150 pierce damage. Armor resistances will be divided by 2, because you have 2 damages. 2) Now you have 85 slash, 100 pierce, 9 lightning (replaced DS ring with RoL). Damage from dex will become 44 slash, 51 pierce and 5 lightning. You will do 129 slash, 151 pierce and 14 lighning damage. But you have 3 damages now, so armor resists will be divided by 3. Now say we have armor with these resists and we calculate the damage Code:
226 AP set, N, VG, N, B, B, N: | resistance | 1st example | 2nd example ------------------------------------------------------ slash 150 | 150 - 150/2 = 75 | 129 - 150/3 = 79 pierce 240 | 150 - 240/2 = 30 | 151 - 240/3 = 71 blunt 150 | 0 - 150/2 = 0 | 0 - 150/3 = 0 fire 105 | 0 - 105/2 = 0 | 0 - 105/3 = 0 ice 105 | 0 - 105/2 = 0 | 0 - 105/3 = 0 light 150 | 0 - 150/2 = 0 | 14 - 150/3 = 0 |
|
02-22-2015, 12:30 PM | #33 | |
Initiate
Join Date: Mar 2008
Location: Greece
Posts: 112
|
Quote:
So, assuming that it is like that, I tried to make a simple excel sheet in order to summarize your conclusions. The final goal is to exploit the "/6" armor division by having all types of damage and simultaneously try to stack specific damage types in order to pass through as much damage as one can. Of course, there are specific constrains, resulting from specific weapon types etc. For example, bow is always pierce etc. So, as an example, I used my marks (Haven / Syrtis / Lawz). In the following figure, one can see the character sheet damage calculation, and the min / max distribution according to your theory. However, in order to move on and exploit the damage type distribution, I need some answers to the following questions: 1. Each bow has an upper bracket damage. Do you know what type of damage this is? At the moment, I assumed that it is "P", i.e. piercing. 2. As you explained, the Dexterity has a multi "M" type of damage. So, according to your theory, I distributed this damage to all types, according to the ratio (sum of each type damage)/(total sum of damage). The sum is calculated based on the well-known theory found here. This sum also includes any weapon_damage_passives (like specialist and recharged arrows), which are considered universal "U" and are applied to all types uniformly. Can you confirm this please? If everything goes well, I ll try to think a clever algorithm in order to exploit both the "/6" armor division and the stacking damage into specific types (probably one physical and one elemental), so as to have the maximum delivered damage. I have some questions considering the opponent armor calculation system, but I will express them, after I finalize with the above here. Thx in advance,
__________________
RuleZ - LawZ
Inquisition Last edited by LawZ; 02-22-2015 at 02:38 PM. |
|
02-22-2015, 08:07 PM | #34 | |
Initiate
Join Date: Jan 2014
Posts: 202
|
Quote:
2) Damages which scale with +% weapon damage powers (Recharged arrow, specialist, dirty fighting, cold blood) are
Code:
SCALABLE_DAMAGE_LOW = (2*15 + 49) slash + 85 pierce + 10 blunt + (6+13) fire + 8 ice = 79 slash + 85 pierce + 10 blunt + 19 fire + 8 ice = 201 (+40% recharged arrow, +10% specialist, total +50%) SCALED_DAMAGE_LOW = 118.5 slash + 127.5 pierce + 15.0 blunt + 28.5 fire + 12.0 ice = 301.5 (+12 light gem) TYPED_DAMAGE = = 118.5 slash + 127.5 pierce + 15.0 blunt + 28.5 fire + 12.0 ice + 12.0 light = 313.5 (120 dex, +21 from bow in bracket) UNTYPED_DAMAGE = (120 - 20) * 1.5 + 21 = 171 TYPED_DMG_FACTOR = = 118.5 / 313.5 slash + 127.5 / 313.5 pierce + 15.0 / 313.5 blunt + 28.5 / 313.5 fire + 12.0 / 313.5 ice + 12.0 / 313.5 light = 0.378 slash + 0.407 pierce + 0.048 blunt + 0.091 fire + 0.038 ice + 0.038 light = ~1.0 UNTYPED_TO_TYPED = = 0.378 * 171 slash + 0.407 * 171 pierce + 0.048 * 171 blunt + 0.091 * 171 fire + 0.038 * 171 ice + 0.038 * 171 light = 64.638 slash + 69.597 pierce + 8.208 blunt + 15.561 fire + 6.498 ice + 6.498 light = ~171 TOTAL = TYPED_DAMAGE + UNTYPED_TO_TYPED = 118.5 + 64.638 slash + 127.5 + 69.597 pierce + 15.0 + 8.208 blunt + 28.5 + 15.561 fire + 12.0 + 6.498 ice + 12.0 + 6.498 light = 484.5 |
|
02-23-2015, 12:50 PM | #35 | |
Initiate
Join Date: Mar 2008
Location: Greece
Posts: 112
|
Quote:
I did exactly the same calculations, so we agree on this part too. Thanks. Now allow me to post an example of my marks again, in order to raise some new questions. 1. Considering the damage calculation part in the left side of the photo, do you know how exactly are numbers rounded-off? In this example, the minimum part is equal to 649.5, while in character window is 649. It's not a big deal, but it may affect the results on the right side of the photo, where the Damage Dealing Calculation is calculated according to your theory. 2. Considering the armor calculation part in the right side of the photo, I used the theory found here, but without including enhancements or other buffs yet. I think that you used the same theory on your small example in a previous post (here), so I assume that it is still valid. The problem here is that I calculated a bit lower Total AP, than the corresponding in the photo. Algorithm gives 363 (also validated with algorithm here), while character sheet gives 366. This was also mentioned to Kitsuni's posts and was explained here by the round-off errors that occur in several stages of the calculation process. Do you agree on this? I feel that the difference is too high to be explained with this. Is it possible that the Prescaling factor is something different than 133% (for archers & melees)? A value of 135% would lead to much closer results. 3. Finally, combining the two calculation parts, and according to your theory, we move on to the Damage Dealing Calculation, where the number of different damage types is taken into account. I did some initial tests in arena (with very mixed damage, like the one in photo), and i think that it is quite close to reality. I missed like 2-3 damage, which actually must be resulted from the limited number of hits I made. However, I ll do some more exhaustive tests. 4. Are you totally sure that when the damage is less than (damage_resistance)/(number_of_different_types) (check blunt in this example), it leads to absolute zero? Is it possible to lead to a minimum fixed limit? I think i saw a very old post about this, but cannot find it at the moment :/ If I finalize the above, I ll start exploiting this system in order to find the best combination of damage types to maximize the output damage. Thanks in advance,
__________________
RuleZ - LawZ
Inquisition |
|
02-23-2015, 02:21 PM | #36 | |
Initiate
Join Date: Jan 2014
Posts: 202
|
Quote:
2. I found this armor calculation not precise enough too. That is why I determined resists experimentaly in my test. I tried to find these values more precisely, but I got mixed up results. Closest where I got was for warrior/archer with 'prescale' already in, so don't use prescale with these numbers (kits actually uses 1+1/3 in her armor calculator, not 1.33): Code:
class BarbarianArmor(Enum): HELM = Fraction(34, 120) PAULDRON = Fraction(30, 120) BP = Fraction(37, 120) GAUNTLET = Fraction(27, 120) LEGS = Fraction(32, 120) # 79/3/100 => 31.6 (26.3%), 80/3/100 => 32 (26.7%), [81/3/100 => 32.4 (27%)] class BarbarianArmor2(Enum): HELM = Fraction(39, 136) # 86/3 /100 PAULDRON = Fraction(34, 136) # 75/3 /100 25% BP = Fraction(42, 136) # 92/3 /100 93/3 /100 31% GAUNTLET = Fraction(31, 136) # 68/3 /100 => 30.8, 69/3/100 => 31.28 (23%) LEGS = Fraction(36, 136) # 79/3 /100 => 35.8 (26.3%), 80/3/100 => 36.3 (26.7%) 3. As I said earlier I sometimes couldn't reach the minimum-maximum, only by one value. That leads me to think the value in character sheet is rounded, while real one isn't (or not that much, in terms of float/double precision). 4. I didn't test minimum damage. I believe I saw 5% somewhere. Whether this is per-damage type, or 5% of total, I can't tell. More likely of total damage, after you sum and reduce all damage types, you then compare to 5%. I have experience with my hunter sometimes hitting very low, under 20, so yes, it could be 5% as my min is around 300 (that would make it ~15 minimum). My brother is currently too busy and have no time for more (time consuming) tests, so I can't continue with these, at least for a while. One thing worth to mention. In kits calculator, in part where she calculates resistances. She adds the bonus in brackets to all individual damage type armors, then reduces by factor to get a resistance (0.5, 0.55 or 0.60). I believe that this value from brackets should be added after, not before, the resistance is scaled, as in few (but really only few) tests I did with such armor parts, the damage reduction was reduced by full number in brackets compared to armor without such extra armor points. Again I will past part of my unfinished python script, to see what I mean: Code:
def get_resistance(parts, resist_mod, *bufs): protection = Damage() protection_extra = 0 for part in parts: protection_extra += part.ap_extra part_protection = part.get_protection() protection.slash += part_protection.slash protection.pierce += part_protection.pierce protection.blunt += part_protection.blunt protection.fire += part_protection.fire protection.ice += part_protection.ice protection.light += part_protection.light # apply bufs here for buf in bufs: protection.slash *= 1 + buf protection.pierce *= 1 + buf protection.blunt *= 1 + buf protection.fire *= 1 + buf protection.ice *= 1 + buf protection.light *= 1 + buf # Scale by resistance modifier to get resistances protection.slash *= resist_mod.value protection.pierce *= resist_mod.value protection.blunt *= resist_mod.value protection.fire *= resist_mod.value protection.ice *= resist_mod.value protection.light *= resist_mod.value # add extra armor points to resistances protection.slash += protection_extra protection.pierce += protection_extra protection.blunt += protection_extra protection.fire += protection_extra protection.ice += protection_extra protection.light += protection_extra return protection Last edited by forum_26m8j65892lz0895; 02-23-2015 at 02:30 PM. Reason: Added a note |
|
02-23-2015, 03:57 PM | #37 | |||||
Initiate
Join Date: Mar 2008
Location: Greece
Posts: 112
|
Quote:
Quote:
Quote:
Quote:
Quote:
Thank you again for all your comments. PS. I haven't added armor enhancements and buffs yet. But I am not sure if I ll do it, since what I want to do is to check my damage types on typical armors. I ll think of it a bit more if it is necessary to model them.
__________________
RuleZ - LawZ
Inquisition |
|||||
02-24-2015, 09:31 AM | #38 |
Initiate
Join Date: Mar 2008
Location: Greece
Posts: 112
|
So the situation at the moment is the following:
I did some arena tests (thank you Allerina for your patience!) and I was not really satisfied with my model. Measurements were out (and higher) the expected damage window by approximately 8-10 damage. The positive thing is that the model is on the safe side (at least...). So, I tried to find where the issue is, and I strongly believe that armor part contribution factors are the main reason. All calculations are very sensitive on these factors... I believe that both Kitsuni and forum_26m8j65892lz08951823995's factors are a bit off (underestimated), that's why we get less AP than from the corresponding in character sheet. So, in order to get new factors one should wear different armor parts (as single but also combined) in order to calculate the armor part contribution. This is not an easy task since the value on character sheet is rounded, thus the actual value could be everywhere within the rounded window. E.g. for a value of 366, it can be everywhere between 365.5 and 366.4. The positive in this story is that according to armor calculation theory, these factors are both non-weighted and linear, thus we have a simple linear problem. In order to minimize the error from the rounded effect, the problem must be solved in a least-squares sense, using as much combinations as one can get. Due to lack of time/gold/characters/etc. I actually got 80 combinations (only for archer) and I solved the overdetermined linear non-weighted problem. So I got the new factors and fine-tuned my model. Moreover, results confirm that bracket armor should be added after the scaling reduction of protections. So I think that forum_26m8j65892lz08951823995 is right on that. Results in the following photo are still a bit off, but not that much as in the previous model version. We are now closer and always on the safe side. However, a small change I also did was with the minimum damage threshold. I believe that this 5 % (actually found here) is applied to each damage type separately. So I changed this also, and in this example I got that threshold in blunt damage for both min and max values. As I said in previous posts, I am not willing to create a new armor calculation model, but rather trying to exploit the damage dealing calculation algorithm to maximize my damage. I just posted my thoughts and remarks here for some feedback and, why not, some fresh ideas to fine-tune calculations even more. I am satisfied with these results, so I guess I ll move on finding the optimized element combination to maximize damage. I ll keep you informed with any other improvement I get or with any interesting results coming from this investigation. Best,
__________________
RuleZ - LawZ
Inquisition |
02-26-2015, 08:36 AM | #39 |
Apprentice
Join Date: Sep 2014
Posts: 56
|
Conclusion: More different dmg types = more damage?
|
02-26-2015, 10:24 PM | #40 |
Marquis
Join Date: Aug 2007
Location: Germany
Posts: 1,843
|
Nice finds.
No not really, if your damage is evenly distributed over 1, 2 ...6 damagetypes it will not be more damage. But i.e. if you manage to stack one damage alot and have only small values on all other damage types it could boost your damage well. (If i understood that correct on the quick skim) |
|
|