Jump to content

Loren Tyr

Members
  • Posts

    856
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Loren Tyr

  1. Given that the increase in crit multiplier isn't explicitly shown in the combat log, how did you verify that it doesn't work?
  2. Having dug around a bit in the code, the bug seems relatively straightforward to trace. Confident Aim applies a multiplier of 1.2 to ModifiedStat of type WeapMinDamageMult. In the StatusEffect.ApplyEffectHelper function this multiplier is applied to the WeaponDamageMinMult member variable of the CharacterStats class (which defaults to 1). In the AttackBase class this WeaponDamageMinMult multiplier is applied to the Minimum variable of the DamagePacket (if using a weapon; this is presumably also where 'unarmed' gets skipped over, it gets lumped in with all other non-weapon damage). As this multiplier is set to 1.2 by Confident Aim (if not otherwise modified), this indeed results in the desired 20% increase in the minimum damage. This Minimum later gets used in the DamagePacket.RollDamage function, which crucially does not check whether Minimum < Maximum (nor does the RNG function it feeds into; though mathematically it would be redundant anyway). Anyway, that's when the Confident Aim effect gets applied directly, ie. when leveling up the character. The same WeaponDamageMinMult variable is also set by the CharacterStats.Restored() function, which I am assuming gets called when loading a saved game. I have the relevant bit of code as if (num31 != this.WeaponDamageMinMult) { this.WeaponDamageMinMult = num31; } I expect that there is a bit of mangling going on here by being run through the disassembler, but it should be recognisable enough (the if-statement also seems a bit redundant, but anyway...). This value 'num31' is a local variable which gets referenced exactly twice more in this function: float num31 = 1f; ... case StatusEffect.ModifiedStat.WeapMinDamageMult: num31 += statusEffect2.CurrentAppliedValue; goto IL_1019; } Thus, it gets initialized to 1 and is then later incremented by the StatusEffect parameter value. This gets washed through some potential modifiers in the CurrentAppliedValue getter, but that wouldn't do much in this case. So the parameter value will be the 1.2 from Confident Aim, which means 'num31' indeed ends up as the predicted 2.2. And as noted above, the RollDamage function doesn't check whether MIN < MAX, so a [MIN, MAX] base damage range is flipped into a [MAX, 2.2 x MIN] damage range and Confident Aim becomes way to powerful upon loading a saved game. Which can be fixed by substituting '*=' for '+=' in the above code fragment. Which cannot possibly be too much effort to still do, I would think.
  3. Presumably they will just update the 3.03 entry here: https://forums.obsidian.net/blog/7-pillars-of-eternity-support-blog/ (that was originally posted for the 3.03 beta)
  4. The Confident Aim loading bug still persists in the current 3.03 (.1047) release: https://forums.obsidian.net/topic/87873-303-confident-aim-loading-damage-bug/ As noted, this appears to be a loading-specific problem (as it doesn't stack, doesn't happen directly after leveling up and taking CA, it didn't happen when reverting back to 3.02, etc.; see link), and upon some further testing I suspect that the 1.2 multiplier is incremented by one and becomes 2.2 instead; ie. the minimum base damage becomes the old maximum, and the maximum becomes the old minimum x 2.2. This is as at least consistent with the observed base ranges for different weapons (since these were done by hitting my own NPC lot and observing the minimum/maximum (corrected for multipliers to get base range), they likely didn't quite reach the exact lower and upper bounds). In square brackets are full range if the above theory is correct, as well as the range it should have if CA worked as intended. Dagger: - without CA: 9 - 13 - with CA: 13 - 19.3 [ theorized = 13 - 19.8, intended = 10.8 - 13 ] Mace: - without CA: 11 - 16 - with CA: 17 - 23.8 [ theorized = 16 - 24.2, intended = 13.2 - 16 ] Sabre: - without CA: 13 - 19 - with CA: 19 - 28.3 [ theorized = 19 - 28.6, intended = 15.6 - 19 ] Hunting Bow: - without CA: 10 - 15 - with CA: 15.1 - 22 [ theorized = 15 - 22, intended = 12 - 15 ] Arquebus: - without CA: 24 - 36 - with CA: 36.4 - 50.6 [ theorized = 36 - 52.8, intended = 28.8 - 36 ] Unarmed seems to be completely unaffected by Confident Aim (no conversions either), but it might be that it's not intended to. Anyway, obviously this makes Confident Aim quite overpowered. Mean base damage is increased by about 48% (whereas if it worked as intended this would only be about 8%, and wouldn't increase the upper bound on it), which is then further amplified by every damage multiplication effect. As shown, it essentially gives for example a Dagger the base damage range of a Sabre.
  5. Hmm, that's a pity, that means that Confident Aim is still bugged (and thus very overpowered).
  6. Is this the 3.03.1047 version? I'm on Steam, switched back from beta release to the normal version branch, but Steam is frustratingly vague about download and update histories so I'm unclear on whether this is the most recent version.
  7. As an addendum, I've paid a bit more attention to it and the empty circle also shows when your character can't reach something, eg. he's ordered to melee attack an enemy but the path is entirely blocked by other characters (ie. it's a general "unable to act", not just when disabled in some sense).
  8. Ellipses are also doing nothing, I think the distinction between the two is primarily that ellipses is essentially "waiting for a command" and empty circle is when you aren't able to do something (eg. knocked prone).
  9. I can recommend the high CON barbarian build, they're quite fun to play. Running one in a new playthrough right now (just on hard though, not PotD), just a bit into Act 2 but he's already got a base 23 CON (+3 from stronghold resting bonus, +2 from a healthy chicken diet for a juicy 28 CON early game) for a ridiculous amount of health and endurance as well as a very high Fortitude defense. I'm actually also going for maximum DR (plate mail armour, Blunting Belt, sided with the Crucible Knights, chugging down ale like rampant alcoholic, etc.), so he just waddles into combat like a dwarven metal piñata. Deflection is poor so you get hit all the time, but you hardly notice Endurance-wise (especially since Shod-in-faith is guaranteed to kick in quite early as well). Also, many enemies seem to like sticking to low deflection targets, so that works out nicely as well. It's more of a tank build than the typical barbarian, with heavy armour and low DEX and PER he doesn't hit quite as much. But it's fun having my barbarian charge into battle and be the center of the melee shrugging off damage (with Aloth occasionally lobbing a Rolling Flame into the fray for added mayhem; orCrackling Bolt, but my Shock DR is predicably poor due to the plate armour). Having said that, this kind of build isn't the best fit for a Nature godlike since you'd have a hard time getting rid of 50% Endurance. I would be inclined to go more for a light armour (Hide Armour is very Barbarian-ish, to my mind) and (very) high CON route, that might be a better fit for that. You could consider dual-wielding long swords and axes, you'll get Whispers of Yenwood very early and it gives a nice +2 CON.
  10. Keep in mind though that Blunderbuss doesn't play nice with Backstab, so in terms of max. damage that needs to be taken into account as well. Inherently it will also indeed count as (at most) six different crits, since they're rolled independently.
  11. Last time I tested (3.03 beta; I think that was after the intermediate beta update, but not 100% sure) Backstab more or less worked with Strike abilities. That is to say, Stealth + Backstab + Strike works, but Shadowing Beyond + Backstab + Strike does not; you get the Strike but not the Backstab (I didn't test it, but presumably this applies to all invisibility effects). In addition, Stealth + Backstab + Strike + dual-wielding half works: you get the Strike effect on two attacks, but the Backstab only on the second of those two; this seems to be related to the fact that when using these types of abilities the off-hand attacks first (so the Backstab on the second attack is actually with the main hand weapon).
  12. Actually, the +20% from Scion of Flame doesn't work like a regular +X% damage, it is a genuine multiplier. So for Firebrand, you first compute the damage after applying all regular +X% damage bonuses, and *that* gets multiplied by 1.2.
  13. ^ indeed. Though that does indirectly increase the MIN damage as well, which in that case would go from 2 damage to 2.4 damage. But this is just a by-product of it increasing the lower damage bound, not a direct effect of Confident Aim (as I originally thought it was intended to do).
  14. Ah, hang on... It seems that I've always completely misunderstood that part of Confident Aim! I've always understood it to increase the minimum damage you do against high DR, the ones with the all caps MIN next to it. It never even occurred to me that it might refer to the lower bound on the weapon damage range. Anyway, I stand corrected. A quick test in 3.03 beta shows that that does indeed work (now it only has the loading bug).
  15. Aside from the other 3.03 bug with Confident Aim (see here: https://forums.obsidian.net/topic/87873-303-confident-aim-loading-damage-bug/ ) ... EDIT: never mind, apparently I have always misunderstood what "+20% to minimum damage" was intended to mean. The other bug linked above still stands though...
  16. Indeed, could well be that. It'd require an awful lot of stacking to get to that value though. If it is that bug, it's fixed in 3.03 beta though, far as I know. Although Confident Aim has a non-stacking load bug now, hopefully they'll fix before final. I also have the impression that (at least in 3.03 beta) the minimum damage bonus isn't actually doing anything. So although I would probably prefer Confident Aim over WS if it was working properly (though I might indeed well take both anyway), for the moment I would stay away from it.
  17. Hmm, that does seem a tad excessive. Have you experienced it more than once, or was it just a one-off? Either way, it'd probably be a good idea to report it in the Troubleshooting forum, maybe they can check it out before the final version of the 3.03 update.
  18. Vital Essence (both spell and potion) seems to be giving far more Health than it should be. The character gets +50 current and max Endurance as per the description, but both current and maximum Health are increased by 50 x (class Health multiplier) x (CON health gain % bonus), so eg. 50 x 4 x 1 = 200 for Aloth and 50 x 5 x 1.3 = 325 for Eder. The increase in current Endurance and Health also sticks around after the spell/potion wears off. It's a bit unclear whether this is intentional or not, especially since the descriptions aren't quite consistent. The spell description text says it gives a temporary increase to maximum endurance and health (saying nothing about the increase in current endurance and health being permanent), and the 'effect' line correspondingly reads "+50 Endurance, +50 Health" (the second of which is obviously wrong). The potion has the same 'effect' line, but the text here says that it gives a temporary increase to current and maximum endurance (saying nothing about increasing health or the increase in current endurance being permanent). Anyway, between the effects themselves and the descriptions something isn't quite right, so I thought I'd report it here.
  19. Yeah, I'd just go for Steam with 3.03 beta; only avoid Confident Aim on Fighter, it's rather overpowered at the moment. Also: curses don't exist outside of fiction. So no reason to worry on that account either.
  20. Basically, you need to consider four damage numbers: - base damage: damage before +X% bonuses; this is a specific property of the weapon (or spell) - total damage (A): base damage with +X% bonuses applied - total damage (B): total damage (B) with damage type bonuses (like Scion of Flames) applied - dealt damage: total damage (B) reduced by the target's DR. The +X% damage bonuses are all calculated from the base damage. These are *additive*: you just add up the total damage percentage, and apply that. So if you have two +100% bonuses you get a +200% bonus, and you do three times the base damage. This number is total damage (A). If applicable, this number is multiplied by damage type bonuses like Scion. Because this is applied after the +X% bonuses, on weapons like Firebrand can up to rather a lot. The resulting number is total damage (B). Lashes (including Flames of Devotion) and weapon-damage-specific DoTs like Wounding Shot and Enduring Flames are based on this total damage (B), which means they implicitly benefit from all the +X% damage and damage type bonuses applied to the original base weapon damage. They don't interact with each other though, so Wounding Shot won't get any additional benefit from a Lash on the weapon. Note also that things like Lashes also benefit from any damage type bonuses like Scion where applicable, even if the weapon itself already benefitted from it. So if you use Firebrand and get a total damage (A) of 100, then Scion of Flame will bump this up to 120 damage. A Flames of Devotion off of that hit will then do 60 x 1.2 is 72 damage. Without Scion the FoD would have only done 50 damage, so effectively it confers a +44% damage bonus on the FoD in such a case (applies with Durance's staff as well by the way, but only if the target has Fire DR < Crushing DR). (and yes, I do rather like numbers; it's an occupational hazard )
  21. Yeah, Firebrand definitely wins that. From the weapon itself you get +145% damage, compared to +75% for legendary arquebus. Also, Firebrand has better base damage (29-44) than arquebus (24-36), which is equivalent to about +20% damage. With Scion of Flames and fire lash on arquebus the total damage is post-multiplied by 1.2 vs 1.3 so that gives a slight advantage to the arquebus. However, there would need to be about +825% *additional* bonus damage from somewhere for that to compensate for the lower total damage the arquebus has to begin with. So doing the math on that... let's assume there are an assorted +65% damage from might, 2H style, etc., +145% from Firebrand crit, and +300% from Sneak+Deathblows+Backstab for a nice +500%. Add in x1.2 from Scion, and you get final damage = 7.2x(base damage) = 209 - 317 damage. Which is nice However, for Paladin the weapon damage (with the same +200% damage and Scion) is already 3.6x(base damage) as well. FoD + Intense Flames effectively adds a 1.9x multiplier on that for 6.84x(base damage), close to the rogue. Add Rakhan Fields + Spirit of Decay and the multiplier goes to 2.2, for 7.92x(base damage) = 230 - 348 damage. The rogue would need an additional +60% rogue-specific damage bonus to compensate. Despite the large rogue-specific bonuses, the much larger post-multiplier for the Paladin means that every +10% damage bonus is worth +12% for the rogue, but +26.4% for the Paladin.
  22. Actually, in terms of potential maximum I think a paladin with Flames of Devotion can give the rogue a run for his money, since those lash-type bonuses are based on total weapon damage whereas damage multipliers like you get from crit work from base weapon damage. So at +X% damage, a Paladin with FoD and Intense Flames would in practice do 75% + 1.75*X% bonus damage. So if we suppose just a simple scenario with +50% crit and +50% assorted other (might, etc.), the Paladin effectively gets a +250% bonus. Thus, a rogue would need to do get additional unique +150% to keep up; which is certainly doable of course, but it does illustrate how quickly that big FoD lash bonus starts to add up. Add in Rakhan Field and you're up to +300% already, with every additional +Y% damage bonus effectively counting double for the paladin.
  23. The reason they're reported separately is probably because they are computed independently for the main effect and AoE, and come to different numbers. For whatever reason the AoE effect is computed as not having the +1 ACC / level bonus; for example Concussive Missiles has the same thing. Note that this is a cosmetic bug only, in practice you do get the correct accuracy when you cast the spell, same for both components.
  24. Ah yes, true. I don't Chanter much, it must be said. Looking at it, the code actually doesn't allow it to be restricted to weapons only, it is indeed a general % bonus to damage dealt (through hit rolls anyway, it is referenced by the OnImpact functions of AttackBase and AttackAOE). Interestingly, it is quite unrelated to the implementation to weapon lashes, doesn't use the same mechanism at all. In any case, still quite a bit simpler than what CW needs to do though, that can't be implemented in this way.
  25. Lashes wouldn't trigger it anyway, since those hit automatically. Though if it did work with DoTs before I suspect it was originally an OnDamage trigger rather than the OnHit trigger it is now. I suspect the main reason for doing it this way is more thematical than mechanical: they're Combusting Wounds, the wounds are ignited and burn for a while. Having a lash on hit wouldn't quite fit that. Moreover, I'm not sure how easy that would be mechanically anyway. The Chanter phrase applies an effect to the weapons of allies, giving them a bonus when attacking. It isn't a given that CW could very easily be made to work that way because a) it has to work on all damage, not just weapons; and b) it interferes much later in the attack sequence. Whereas the Chanter basically just hands out Fire lashes to everyone in range which are just added into the character's stack of active StatusEffects, the CW effect only kicks in when the particular enemy is being attacked. CW cannot simply modify the attacking character or his weapons, or even that particular attack (since an attack can have multiple targets), so it is a lot trickier even had they opted for a lash rather than a DoT anyway.
×
×
  • Create New...