Difference between revisions of "Combat damage h.nss"

From Dragon Age Toolset Wiki
Jump to: navigation, search
(Combat_Damage_GetBackstabDamage)
m (Category:Scripts)
 
(4 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
=== Notable Functions ===
 
=== Notable Functions ===
  
 +
==== GetCriticalDamageModifier ====
 +
 +
Returns the multiplier for critical hit damage.
 +
 +
<dascript>
 +
const float COMBAT_CRITICAL_DAMAGE_MODIFIER = 1.5f; // critical hits increase damage increase.
 +
 +
float GetCriticalDamageModifier(object oAttacker)
 +
{
 +
    return COMBAT_CRITICAL_DAMAGE_MODIFIER + (GetCreatureProperty(oAttacker, 54 /*PROPERTY_ATTRIBUTE_CRITICAL_RANGE*/) / 100.0);
 +
}
 +
</dascript>
  
 
==== Combat_Damage_GetBackstabDamage ====
 
==== Combat_Damage_GetBackstabDamage ====
  
Determines the backstab damage given attacker, weapon and attack damage.
+
Determines the backstab damage given an attacker and attack damage. (weapon is passed in for future use)
 
Note: This function was slightly modified from the toolset version to remove some non-essential elements for clarity.
 
Note: This function was slightly modified from the toolset version to remove some non-essential elements for clarity.
  
Line 16: Line 28:
 
{
 
{
 
     //  ------------------------------------------------------------------------
 
     //  ------------------------------------------------------------------------
     // Each backstab is an auto crit.
+
     // Each backstab does critical damage.
 
     //  ------------------------------------------------------------------------
 
     //  ------------------------------------------------------------------------
 
     fDamage *= GetCriticalDamageModifier(oAttacker);
 
     fDamage *= GetCriticalDamageModifier(oAttacker);
Line 33: Line 45:
 
}
 
}
 
</dascript>
 
</dascript>
 +
 +
[[Category:Scripts]]

Latest revision as of 18:47, 14 January 2010

Overview

combat_damage_h.nss handles the core rule resolution logic for non-spell damage.


Notable Functions

GetCriticalDamageModifier

Returns the multiplier for critical hit damage.

const float COMBAT_CRITICAL_DAMAGE_MODIFIER = 1.5f; // critical hits increase damage increase.
 
float GetCriticalDamageModifier(object oAttacker)
{
    return COMBAT_CRITICAL_DAMAGE_MODIFIER + (GetCreatureProperty(oAttacker, 54 /*PROPERTY_ATTRIBUTE_CRITICAL_RANGE*/) / 100.0);
}

Combat_Damage_GetBackstabDamage

Determines the backstab damage given an attacker and attack damage. (weapon is passed in for future use) Note: This function was slightly modified from the toolset version to remove some non-essential elements for clarity.

float Combat_Damage_GetBackstabDamage(object oAttacker, object oWeapon, float fDamage)
{
    //  ------------------------------------------------------------------------
    // Each backstab does critical damage.
    //  ------------------------------------------------------------------------
    fDamage *= GetCriticalDamageModifier(oAttacker);
 
    // -------------------------------------------------------------------------
    // Exploit Weakness:  Backstab Damage + max(CUN-10,0) / 3.0
    // -------------------------------------------------------------------------
    if (HasAbility(oAttacker,ABILITY_TALENT_EXPLOIT_WEAKNESS))
    {
        float fBase = MaxF(0.0,(GetAttributeModifier(oAttacker,PROPERTY_ATTRIBUTE_CUNNING)/3.0)) ;
        float fMod = MaxF(0.2,RandomFloat());
        fDamage += (fBase * fMod);
    }
 
    return fDamage;
}