Jump to content

Photo

[GUIDE] Documentation for Combat Mechanics


  • Please log in to reply
166 replies to this topic

#1
aznricepuff

aznricepuff
  • Members
  • 255 posts

Updated 07/25/16

 

I think it's pretty obvious by now that there are a lot of aspects of combat that aren't well-documented anywhere, leaving us to essentially figure stuff out as we go. It's not very fun trying to build and optimize your party when you don't know what your choices ultimately mean in terms of gameplay, so I decided to conduct some tests in an effort to de-mystify some of DA:I's less transparent combat mechanics.
 
Below is a summary of my findings; hopefully it clarifies things and answers some common questions people have. I've included descriptions of mechanics that aren't explained in-game and clarifications where in-game descriptions are incomplete, misleading or incorrect. I've also made note of bugs where I was able to find and confirm them.
 
Please keep in mind this is not an exhaustive list when it comes to clarifications or bugs; just because it isn't listed here does not necessarily mean it works exactly as advertised.
 
Also, all results reported here are the results of empirical testing, so there is always the possibility of mistakes in the formulas and values I've derived. If you have reasonable suspicion that I've made a mistake somewhere, let me know and I will fix it once I get a chance to confirm.

 

Note 1: All testing was done on PC.

Note 2: For all [Mistake] and [Bug] tags: If the game version listed in the tag is older than the current version, that does not necessarily mean the mistake/bug does not exist in the most current version; it simply means I have not done any testing to confirm that it still exists. If a tagged item is fixed in a patch and confirmed by testing, I will make a note of it.

 
Attributes

Spoiler

Damage Calculation
Spoiler

General Mechanics
Spoiler

Autoattacks
Spoiler

 

Difficulty Levels

Spoiler

 

Combos

Spoiler

 

Potions

Spoiler

  • WillieStyle, Rynas, Pressedcat and 33 others like this

#2
aznricepuff

aznricepuff
  • Members
  • 255 posts

Warrior Abilities

Spoiler

Rogue Abilities
Spoiler

Mage Abilities
Spoiler

 

Glossary

Spoiler

 

Changelog

Spoiler

 

Credits

Spoiler


#3
Rynas

Rynas
  • Members
  • 412 posts

See here for more detail on damage calculations: http://forum.bioware...ations-updated/



#4
Exalus

Exalus
  • Members
  • 347 posts

Rupture (Eldritch)
Triggers: Stun + Eldritch Detonator

Deals massive spirit damage to the primary target and applies Weakened (10 seconds).

  • DispelMind BlastEnergy BarrageImmolateSpell Purge: 1200% weapon damage.

 

  • I guess this is why templars are so amazing at clearing stunn-able mobs. How did you get these weapon damage modifier? was it solely through testing?

    Also, it might be worth mentioning weakness+shock induces sleep. 

 

 

Looking over all this I stand affirmed in my initial thought that rogue detonators are magnitudes superior to warrior detonators. 



#5
aznricepuff

aznricepuff
  • Members
  • 255 posts

 

I guess this is why templars are so amazing at clearing stunn-able mobs. How did you get these weapon damage modifier? was it solely through testing?

Also, it might be worth mentioning weakness+shock induces sleep. 

 

Yeah, I got everything except the damage formula through testing. Basically me attacking one group of underleveled red templars over and over.

 

Also, thanks for the reminder on the weakness+shock combo. I forgot about that one. I'll do some testing on that one and add it in.



#6
teks

teks
  • Members
  • 407 posts

This is very well made. Man, it should be stickied. Well done.

What are you working on next? Is there anything you would like help with?



#7
Rynas

Rynas
  • Members
  • 412 posts

A couple of things:

 

  • resistances: Either the melee defense, ranged defense, or magic defense stat of the defender, depending on the type of incoming damage. Note that magic defense is the sum of the general "Magic Defense" stat and any applicable elemental resistances (fire, cold, electricity, or spirit)

 

Actually, Defense and Resistance are two separate stats.  Elemental resistances are applied multiplicatively with defenses.  Additionally, defenses only apply to "classed" targets, so all "creatures" have a defense of zero.  See the code block below:

resistanceStat = DA3.GetDamageTypeVictimResistanceStat(DamageModifiers, type)
print("resistanceStat = " .. DA3.ToString(resistanceStat))
resistance = DA3.GetStatValueWithDamageCalculationModifiers(targetCharacter, resistanceStat, sourceCharacter, targetCharacter)
print("resistance to damage type = " .. resistance)
damage = damage * ((100 - resistance) / 100)   <-- TYPE RESISTANCE APPLIED TO DAMAGE
damage = math.max(0, damage)
print("damage after resistance = " .. damage)
defense = 0     <-- DEFAULT DEFENSE SET TO ZERO
if targetclass ~= CLASS_INVALID then      <-- DEFENSE SET TO NONZERO ONLY FOR VALID CLASSES (INCL. PLAYERS)
    defenseMelee = DA3.GetStatValueWithDamageCalculationModifiers(targetCharacter, StatDefenseMelee, sourceCharacter, targetCharacter)
    defenseRanged = DA3.GetStatValueWithDamageCalculationModifiers(targetCharacter, StatDefenseRanged, sourceCharacter, targetCharacter)
    defenseMagic = DA3.GetStatValueWithDamageCalculationModifiers(targetCharacter, StatDefenseMagic, sourceCharacter, targetCharacter)
    defenseAllFront = DA3.GetStatValueWithDamageCalculationModifiers(targetCharacter, Stat_Defense_All_Front, sourceCharacter, targetCharacter)
    print("Melee Defense = " .. defenseMelee)
    print("Ranged Defense = " .. defenseRanged)
    print("Magic Defense = " .. defenseMagic)
    print("Front Defense = " .. defenseAllFront)
    if flanking == false then
        print("Being attacked from front - adding front defense to all other defenses")
        defenseMelee = defenseMelee + defenseAllFront
        defenseRanged = defenseRanged + defenseAllFront
        defenseMagic = defenseMagic + defenseAllFront
    end
    naturalDamageType = false
    if type == 1 or type == 5 then
        naturalDamageType = true
    end
    print("naturalDamageType = " .. DA3.ToString(naturalDamageType))
    print("isMeleeRange = " .. DA3.ToString(isMeleeRange))
    if naturalDamageType == true and isMeleeRange == true then
        defense = defenseMelee
    elseif naturalDamageType == true and isMeleeRange == false then
        defense = defenseRanged
    else
        defense = defenseMagic
    end
    print("defense value used for this attack = " .. defense)
end
damage = damage * ((100 - defense) / 100)     <-- DEFENSE APPLIED TO DAMAGE AFTER TYPE RESISTANCE

[Edit: Ugh, bold doesn't work in code blocks - added comments and formatting]

 

Also:

 
  • armor: armor value of the defender. Armor reduction only applies to physical damage. This value can be found under the Attributes tab of the character menu. For player-controlled characters, if damage is taken from the front, the value listed as "Armor: Front" used, otherwise the value listed as "Armor" is used instead (NPCs only have one armor value, which you can view in tactical mode).

 

This should actually be "effective armor," which is

 

effectiveArmor = math.max(0, armor - armorPenetration) * ((100 - armorPenetrationPercentage) / 100)

 

armorPenetration is a flat amount deducted from armor rating.  It is zero for all players.  For non-players, the value comes from a table and is level-dependent.  The base values vary from 56 at level 1 to 254 at level 23, but there are comments in the file that suggest they should be reduced somewhere down the line (stat_compute_armorpenetration_script).

 

armorPenetrationPercentage is the percentage-based AP that we're familiar with from items.  Apparently.


  • mesmerizedish likes this

#8
Disco Overlord

Disco Overlord
  • Members
  • 36 posts

Great job!  This is so badly needed as Bioware's ingame descriptions are either incredibly lacking or misleading.

 

I think I read somewhere that Warrior's Resolve from the S&S warrior tree applies to barrier/guard loss as well.  However I've tried it in game it seems that barrier-decay doesn't give any noticeable extra stamina.  Can anyone deny/confirm?



#9
Exalus

Exalus
  • Members
  • 347 posts

Why does the tooltip for twin fangs list:

number of hits: 2

damage per hit: 200%

damage bonus: 200% <- is this saying you gain additional 200% damage gain if you are flanking?

 

 

Does this mean with 100 base damage:

twin fangs non flanking = 300 damage

twin fangs with flanking = 500 damage

twin fangs flanking and factoring in flanking bonus(125% bonus with 25 base) =  625 final damage

damage for both daggers then becomes 1250 damage?

 

 

With ripping fangs does this mean you would be doing:

twin fangs non flanking = 300 damage

twin fangs with flanking = 500 damage

twin fangs flanking and factoring in flanking bonus(125% bonus with 25 base) =  625

twin fangs with upgrade modifies flanking bonus to (150% instead of 125%) = 650 

damage for both daggers then becomes 1300 final damage?

 

So really the upgrade is nothing unless your flanking bonus is much higher than 25% base?



#10
aznricepuff

aznricepuff
  • Members
  • 255 posts

Actually, Defense and Resistance are two separate stats.  Elemental resistances are applied multiplicatively with defenses.  Additionally, defenses only apply to "classed" targets, so all "creatures" have a defense of zero. 

 

Good catch. I'll fix this in my post.

 

Great job!  This is so badly needed as Bioware's ingame descriptions are either incredibly lacking or misleading.

 

I think I read somewhere that Warrior's Resolve from the S&S warrior tree applies to barrier/guard loss as well.  However I've tried it in game it seems that barrier-decay doesn't give any noticeable extra stamina.  Can anyone deny/confirm?

 

Just tested this. While barrier decay (i.e. barrier losing strength just from timing out) does not trigger warrior's resolve, damage taken to guard and barrier does trigger it. In all cases, % stamina restored = damage taken / maximum health, but the game does not adjust for the fact that with guard/barrier up, you essentially have a much larger maximum health pool (especially true with barrier). Since damage dealt to barrier ignores armor and generally is much greater than damage dealt to health or guard, it's very easy to restore 100% of your stamina pool from a single hit if you have barrier up.

 

Why does the tooltip for twin fangs list:

number of hits: 2

damage per hit: 200%

damage bonus: 200% <- is this saying you gain additional 200% damage gain if you are flanking?

 

 

Does this mean with 100 base damage:

twin fangs non flanking = 300 damage

twin fangs with flanking = 500 damage

twin fangs flanking and factoring in flanking bonus(125% bonus with 25 base) =  625 final damage

damage for both daggers then becomes 1250 damage?

 

 

With ripping fangs does this mean you would be doing:

twin fangs non flanking = 300 damage

twin fangs with flanking = 500 damage

twin fangs flanking and factoring in flanking bonus(125% bonus with 25 base) =  625

twin fangs with upgrade modifies flanking bonus to (150% instead of 125%) = 650 

damage for both daggers then becomes 1300 final damage?

 

So really the upgrade is nothing unless your flanking bonus is much higher than 25% base?

 

Yeah, Twin Fangs and Ripping Fangs have some issues. The damage formulas I give are odd to be sure but I have an entire excel spreadsheet full of numbers that say that:

 

1) in-game testing is consistent with my published formulas

2) in-game testing is not consistent with other formulas that may make more sense given what the ability description says, including but not limited to:

  • adding a flat 200% to damage_multiplier or ability_multiplier on flank (Twin Fangs)
  • adding an additional flat 100% to flanking_bonus on flank (Ripping Fangs)
  • adding a flat 100% to damage_multiplier or ability_multiplier on flank (Ripping Fangs)

Just to clarify, to calculate damage from Twin/Ripping Fangs, ignore everything said in the in-game description; it will just confuse you. Instead, use the following rules:

 

Twin Fangs:

When not flanking: a simple 200% ability multiplier per strike. Everything else proceeds normally.

When flanking: ability multiplier is still 200% but now add a flat 100% to your flanking bonus.

 

Ripping Fangs:

When not flanking: same as Twin Fangs.

When flanking: ability multiplier is still 200%, multiply your flanking bonus by 2 and then add another flat 100% on top of that.

 

So for example, let's say you have both main and off-hand damage of 50 and a flanking bonus of 30%. For simplicity assume that there are no critical hits and you are attacking an enemy with 0 armor and no other damage mitigation. The results will be:

 

Twin Fangs:

When not flanking: damage = 50 * 200% = 100 per strike

When flanking: damage = 50 * 200% * (100% + 30% + 100%) = 230 per strike

 

Ripping Fangs:

When not flanking: damage = 50 * 200% = 100 per strike

When flanking: damage = 50 * 200% * (100% + 30% * 2 + 100%) = 260 per strike

 

Hope that helped.


  • teks and Exalus like this

#11
Exalus

Exalus
  • Members
  • 347 posts

I was calculating damage entirely wrong in that case.

100% of weapon damage means as much as base damage and 200% means twice as much rather than 200% meaning thrice as much.

 

Even then, the in game formulas for twinfangs+ is..well as good as worthless based on your findings.

Is twinfangs a special case due to it modifying flanking damage and most of the remaining skills will do damage consistent with tooltips?

 

For example is mighty blow as simple as:
50 base damage

100 damage for a standard hit (200% ability_damage) listed as Damage: 200% Weapon Damage for mighty blow

200 damage for a standard hit on a knocked down foe (200% damage_modifier) listed as Damage Bonus: 200% for mighty blow

250 damage for a knocked down enemy with upgrade (50% additional damage_modifier) Incorrectly listed as Damage Bonus: 300% for Easy Target which is a really confusing way to list it

 

So basically, a flanking twin fangs unupgraded will do more twice of the damage of an upgraded mightyblow on a knocked down foe and ripping fangs adds marginal additional damage if you have base flanking bonus. No wonder 2handed warrior is so utterly underwhelming in comparison to rogues unless you hit several enemies that are already knocked down.



#12
Shevy

Shevy
  • Members
  • 1,080 posts

2H shouldn't be seen as a pure damage dealer class. Because with this view it is completely rubbish compared to rogues and even mages. As a melee CC/support/slight damage dealer class it does its job in a decent way. Adding in hidden blades masterwork is necessary though. I know it kind of sucks when you are mighty blow'ing a knocked down foe critical for 3k damage and the rogue besides you pumps out 7-9k crits and kills everything before you can land a hit, but with another view 2H can be enjoyable.



#13
zeypher

zeypher
  • Members
  • 2,910 posts

I was calculating damage entirely wrong in that case.

100% of weapon damage means as much as base damage and 200% means twice as much rather than 200% meaning thrice as much.

 

Even then, the in game formulas for twinfangs+ is..well as good as worthless based on your findings.

Is twinfangs a special case due to it modifying flanking damage and most of the remaining skills will do damage consistent with tooltips?

 

For example is mighty blow as simple as:
50 base damage

100 damage for a standard hit (200% ability_damage) listed as Damage: 200% Weapon Damage for mighty blow

200 damage for a standard hit on a knocked down foe (200% damage_modifier) listed as Damage Bonus: 200% for mighty blow

250 damage for a knocked down enemy with upgrade (50% additional damage_modifier) Incorrectly listed as Damage Bonus: 300% for Easy Target which is a really confusing way to list it

 

So basically, a flanking twin fangs unupgraded will do more twice of the damage of an upgraded mightyblow on a knocked down foe and ripping fangs adds marginal additional damage if you have base flanking bonus. No wonder 2handed warrior is so utterly underwhelming in comparison to rogues unless you hit several enemies that are already knocked down.

Pretty much this game has by far the weakest 2 handed warrior. It is that bad.



#14
LexXxich

LexXxich
  • Members
  • 954 posts

This testing was made before or after Patch 3/Patch 3 hotfix?



#15
aznricepuff

aznricepuff
  • Members
  • 255 posts

This testing was made before or after Patch 3/Patch 3 hotfix?

 

Half of it was done before patch 3, half of it after. However I'm pretty sure patch 3 did not change anything that I tested before it came out (which was mostly whether rogue abilities used main-hand or off-hand damage for their calculations while equipping double daggers).
 
Besides what's in the official patch notes, the only ninja-fix from patch 3 (to do with combat mechanics) I'm aware of is fixing Immolate to actually be a working detonator.

 

I was calculating damage entirely wrong in that case.
100% of weapon damage means as much as base damage and 200% means twice as much rather than 200% meaning thrice as much.

 
Yes, you're on the right track now.
 

Is twinfangs a special case due to it modifying flanking damage and most of the remaining skills will do damage consistent with tooltips?
 
For example is mighty blow as simple as:
50 base damage
100 damage for a standard hit (200% ability_damage) listed as Damage: 200% Weapon Damage for mighty blow
200 damage for a standard hit on a knocked down foe (200% damage_modifier) listed as Damage Bonus: 200% for mighty blow
250 damage for a knocked down enemy with upgrade (50% additional damage_modifier) Incorrectly listed as Damage Bonus: 300% for Easy Target which is a really confusing way to list it

 
Twin fangs is a special case in that its damage formula is so obtuse and unlike anything else I've encountered in my testing. However, a lot of abilities have behavior (damage calculation included) that is not 100% consistent with in-game descriptions. I have a lot of entries for abilities in my guide and if it's listed there, it means I found at least one aspect of the ability's in-game description to be mistaken, incomplete, or misleading.
 
As for the example case you gave for Mighty Blow, it is technically correct, but only if you assume the target has 0 armor, and that the attacker has a 0% attack bonus, no other bonuses to damage_multiplier, and is not benefiting from a creature type bonus (i.e. from creature research). To see how those last three parameters would affect damage, let's assume the following:

  • Attacker with 50 base damage, 25% attack bonus, a 50% damage_multiplier bonus from Horn of Valor (+ upgrade), and a 50% creature type bonus from creature research.
  • Defender with 0 armor and no resistances.
  • We are going to ignore critical hits and flanking bonuses for simplicity.

Vs. standing enemy:

damage = 50 * 200% [ability multiplier] * (100% [default damage_multiplier value] + 50% [bonus from Horn of Valor] + 25% [attack_bonus] + 50% [creature_type_bonus]) = 225

 
Vs. knocked down enemy:

damage = 50 * 200% [ability_multiplier] * (100% [default damage_multiplier value] + 100% [bonus from Mighty Blow for knocked down defender] + 50% [bonus from Horn of Valor] + 25% [attack_bonus] + 50% [creature_type_bonus]) = 325

 
Vs. knocked down enemy (with Easy Target upgrade):

damage = 50 * 200% [ability_multiplier] * (100% [default damage_multiplier value] + 100% [bonus from Mighty Blow for knocked down defender] 50% [bonus from Easy Target for knocked down defender] + 50% [bonus from Horn of Valor] + 25% [attack_bonus] + 50% [creature_type_bonus]) = 375

In this case, hitting a knocked down enemy results in a 44.4% increase in damage vs. a standing enemy without the upgrade (not a 100% or even 200% increase as the description implies). With the upgrade, that number increases to 66.7%, not 300% (in fact I have no idea where Bioware came up with the 300% number).
 
The above shows why I don't like Bioware's decision to refer to damage_multiplier bonuses simply as "damage bonus: X%". That phrasing might lead you to believe that the damage bonus is a straightforward % increase over unaffected damage (i.e. multiplicative), whereas the truth is that damage_multiplier is additive with attack_bonus, type_bonus, and other damage_multiplier bonuses, meaning that if either attack_bonus or type_bonus is positive, or the attacker is already benefiting from a damage_multiplier bonus from somewhere else, an X% bonus to damage_multiplier leads to an increase over unaffected damage of less than X%, sometimes much less.


  • Exalus likes this

#16
Exalus

Exalus
  • Members
  • 347 posts

Thanks for the clarification, I feel much better about the formulas now.

SnS just got a lot better from a pure numbers perspective, daggers still king and 2h is mehhh.



#17
aznricepuff

aznricepuff
  • Members
  • 255 posts

Just added a section on autoattacks. Interestingly, Bioware's formula for calculating weapon DPS seems to be incorrect, making in-game DPS numbers more or less worthless.



#18
Exalus

Exalus
  • Members
  • 347 posts

Just added a section on autoattacks. Interestingly, Bioware's formula for calculating weapon DPS seems to be incorrect, making in-game DPS numbers more or less worthless.

Does this only apply to autoattacks? I saw mages have huge Edps for autoattacks but their skills still be properly calculated by in game weapon damage right?



#19
aznricepuff

aznricepuff
  • Members
  • 255 posts


Does this only apply to autoattacks? I saw mages have huge Edps for autoattacks but their skills still be properly calculated by in game weapon damage right?

 

I was just talking about the weapon DPS numbers that you see in the inventory screen when you select/hover over a weapon. Those numbers have no practical effect on anything else in the game; they are there to help people better compare different weapons. I was just pointing out that those DPS numbers are incorrect because Bioware seems to be using the wrong values for average attack speed.

 

So in short: no, the errors in weapon DPS listed in-game does not mean that ability damage isn't calculated correctly.

 

--------------------------------

P.S. If you or anybody else is curious, this is (part of) the script used to calculate in-game numbers for weapon DPS:

-- 0: none
-- 1: 1-handed
-- 2: 2-handed
-- 3: dual
-- 4: archery
-- 5: staff
-- 6: bianca
-- 7: 2-handed alt
-- 8: 1-handed alt
-- 9: dual alt
-- 10: staff alt
 
hitsPerSecondTable = {1.11, 1.13, 2.57, 1.13, 1.62, 1.13, 1.01, 1.46, 2.49, 1.93}
if(WeaponStyle < 1 or WeaponStyle > 10) then
print("Invalid weapon style value")
return 1;
end
 
weaponStyleValue = hitsPerSecondTable[WeaponStyle]
print("Calculating DPS for item with damage= " .. PrimaryItem .. ", rune damage= " .. PrimaryRune .. ", weapon style= " .. WeaponStyle .. ", weapon style value= " .. weaponStyleValue);
 
DPS = (PrimaryItem + PrimaryRune) * weaponStyleValue;

Note that the values in hitsPerSecondTable do not agree with what I derived with my testing.



#20
WJC3688

WJC3688
  • Members
  • 290 posts

Some observations of my own regarding Block and Slash:

 

--Similar to Parry, you can only block some melee attacks with it, namely "normal" melee swings such as those of standard Sellswords, Outlaws, w/e. Melee attacks that would knock you down, such as a bear's 360 AOE slam or a dragon's claw swipes, cannot be blocked with this. However this is not a 100% consistent rule. For example you CAN block the attacks, both normal overhand swing and bull charge, of the shield-bearing "defender" type enemies which normally would cause knockdown.

 

--The counter-swing seems to have a narrow cone AOE, it is quite possible to hit multiple enemies with it even if only one of them swung at you so long as they are standing close enough together. It seems to be angled towards the direction of the enemy that attacked you, as opposed to being aimed squarely in the direction you're facing.

 

I'm not sure on the angles from which you can block while sustaining the ability, I would assume that it is 180 degrees in front of you similar to the other blocking abilities though. I know for sure that there is some amount of space behind you where you will not be able to block attacks while sustaining the ability, as I've had enemies hit me in the back while using it.

 

Also not sure if, in the case that 2 or more enemies swing at you more or less simultaneously, the ability blocks (as in prevents the damage of) all of the attacks, or only 1.



#21
aznricepuff

aznricepuff
  • Members
  • 255 posts

Some observations of my own regarding Block and Slash:

...

 

Thanks for the info. Did some testing on block and slash, and looks like the arc for the counterattack is actually quite large (I was sometimes able to hit enemies that were standing almost directly behind the caster) but asymmetrical. The ability also consumes a lot more stamina than the in-game description implies. Updated the OP with the new info (along with some other stuff).



#22
WJC3688

WJC3688
  • Members
  • 290 posts

Yea the hitbox on the counterattack is very weird. I have had cases where there were 3 enemies in front of me, the one I blocked got hit, the guy to his right did not, but the guy to the right of that guy DID get hit as well O_o

 

Also if I'm reading this right the Contact Poison upgrade to Toxic Cloud is worthless, and actually does nothing?



#23
aznricepuff

aznricepuff
  • Members
  • 255 posts

Also if I'm reading this right the Contact Poison upgrade to Toxic Cloud is worthless, and actually does nothing?

 

Indeed. Obviously it's a bug, so it may get fixed eventually, but for now you essentially can save an ability point with that one.



#24
Exalus

Exalus
  • Members
  • 347 posts

Is there a combo set for sleep+impact? 

 

edit: thanks, I feel silly :<



#25
aznricepuff

aznricepuff
  • Members
  • 255 posts

Is there a combo set for sleep+impact? 

 

Yes, it's Rupture, the same as stun + precision. It's the fourth from the bottom in the combo section.