Difference between revisions of "Talk:Flaming"
Line 7: | Line 7: | ||
:"it makes quickblade of flaming worse than an executioner's axe of freezing" This makes no '''practical''' sense, regardless of how the game calculates weapon damage. [[User:Ge0ff|Ge0ff]] ([[User talk:Ge0ff|talk]]) 17:36, 27 November 2023 (CET) | :"it makes quickblade of flaming worse than an executioner's axe of freezing" This makes no '''practical''' sense, regardless of how the game calculates weapon damage. [[User:Ge0ff|Ge0ff]] ([[User talk:Ge0ff|talk]]) 17:36, 27 November 2023 (CET) | ||
− | ::Re: "it makes quickblade of flaming worse than an executioner's axe of freezing", that meant something along the lines of "do quickblades receive a less than 25% boost from the flaming brand?" | + | ::Re: "it makes quickblade of flaming worse than an executioner's axe of freezing", that meant something along the lines of "do quickblades receive a less than an avg. 25% boost from the flaming brand?" a.k.a "is ''flaming'' on a quickblade less helpful than ''flaming'' on an exe's axe". |
− | :: E.g. say the game | + | ::E.g. say the game rolled a number from 1/100 to 50/100, multiplied it, then rounded down. A given quickblade swing might go from 7 -> 8 (14% boost) while a similar executioner's axe swing might go from 19 -> 23 (+21% boost). If it rounds down, then flaming/freezing/etc. have a smaller % boost with short blades and co. This ''does'' make a practical difference, like if you wanted to compare venom v flaming for a quickblade. |
+ | |||
+ | ::With the code provided, I don't think the rounding problem I presented matters (before resistances). | ||
+ | :*A QB that dealt 7 damage would have a range of {0,1,2,3,4,5,6} from the random2 function. | ||
+ | :*C++ defaults to round down, and resist_adjust_damage() doesn't have any special rounding that I found. So this range would be divided by 2 and rounded down, or {0,0,1,1,2,2,3} + 1 | ||
+ | :*Average damage is (0+0+1+1+2+2+3}/7 + 1 = 1.286 + 1 -> 2.286. So 2.286 (added damage) / 7 (base damage) = +32.65% damage on average. |
Revision as of 18:43, 27 November 2023
Rounding for %-based brands
Simple question. How is the damage for flaming/freezing/etc. calculated? Because if it truncates, it makes quickblade of flaming worse than an executioner's axe of freezing. Hordes (talk) 07:19, 27 November 2023 (CET)
- Start at apply_damage_brand() in attack.cc, and check for
case SPWPN_FLAMING:
. It has a call to calc_elemental_brand_damage() there, which doesspecial_damage = resist_adjust_damage(defender, flavour, random2(damage_done) / 2 + 1);
, which is flaming's +0-50% damage. Then there's a check for the target's resists in resist_adjust_damage(), and so on and so forth. Ge0ff (talk) 17:32, 27 November 2023 (CET)
- "it makes quickblade of flaming worse than an executioner's axe of freezing" This makes no practical sense, regardless of how the game calculates weapon damage. Ge0ff (talk) 17:36, 27 November 2023 (CET)
- Re: "it makes quickblade of flaming worse than an executioner's axe of freezing", that meant something along the lines of "do quickblades receive a less than an avg. 25% boost from the flaming brand?" a.k.a "is flaming on a quickblade less helpful than flaming on an exe's axe".
- E.g. say the game rolled a number from 1/100 to 50/100, multiplied it, then rounded down. A given quickblade swing might go from 7 -> 8 (14% boost) while a similar executioner's axe swing might go from 19 -> 23 (+21% boost). If it rounds down, then flaming/freezing/etc. have a smaller % boost with short blades and co. This does make a practical difference, like if you wanted to compare venom v flaming for a quickblade.
- With the code provided, I don't think the rounding problem I presented matters (before resistances).
- A QB that dealt 7 damage would have a range of {0,1,2,3,4,5,6} from the random2 function.
- C++ defaults to round down, and resist_adjust_damage() doesn't have any special rounding that I found. So this range would be divided by 2 and rounded down, or {0,0,1,1,2,2,3} + 1
- Average damage is (0+0+1+1+2+2+3}/7 + 1 = 1.286 + 1 -> 2.286. So 2.286 (added damage) / 7 (base damage) = +32.65% damage on average.