Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 9:41 PM - [ARM] Ultraken: BZ2 armor and shield effects basically multiply together. The "none" value is the baseline for the other values
- 9:42 PM - [ARM] Ultraken: so, armor is the none, light, and heavy (as one would expect), and the three shields use none as their baseline to become multipliers
- 9:44 PM - [ARM] Ultraken: Here's an example of how the damage values get read in:
- // get base damage value
- ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0xAD9A37C1 /* "damageValue(N)" */, &damageValue, proto->damageValue);
- // get armor damage scales
- armorScale[ARMOR_NONE] = 1.0f;
- if (ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0x0D68A9CE /* "damageValue(L)" */, &armorScale[ARMOR_LIGHT], proto->armorScale[ARMOR_LIGHT]))
- armorScale[ARMOR_LIGHT] = damageValue ? armorScale[ARMOR_LIGHT] / damageValue : 0.0f;
- if (ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0x484C8867 /* "damageValue(H)" */, &armorScale[ARMOR_HEAVY], proto->armorScale[ARMOR_HEAVY]))
- armorScale[ARMOR_HEAVY] = damageValue ? armorScale[ARMOR_HEAVY] / damageValue : 0.0f;
- // get shield damage scales
- shieldScale[SHIELD_NONE] = 1.0f;
- if (ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0xA0BE0FF5 /* "damageValue(S)" */, &shieldScale[SHIELD_STASIS], proto->shieldScale[SHIELD_STASIS]))
- shieldScale[SHIELD_STASIS] = damageValue ? shieldScale[SHIELD_STASIS] / damageValue : 0.0f;
- if (ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0x8720EA9C /* "damageValue(D)" */, &shieldScale[SHIELD_DEFLECT], proto->shieldScale[SHIELD_DEFLECT]))
- shieldScale[SHIELD_DEFLECT] = damageValue ? shieldScale[SHIELD_DEFLECT] / damageValue : 0.0f;
- if (ParameterDB::GetFloat(crcOdf, 0x5DA6CB99 /* "OrdnanceClass" */, 0x101D0AE9 /* "damageValue(A)" */, &shieldScale[SHIELD_ABSORB], proto->shieldScale[SHIELD_ABSORB]))
- shieldScale[SHIELD_ABSORB] = damageValue ? shieldScale[SHIELD_ABSORB] / damageValue : 0.0f;
- 9:44 PM - Real: interesting
- 9:44 PM - Real: I always assumed they just replaced the armor class as-is
- 9:45 PM - Real: I've played BZ2 15 years and never knew this
- 9:45 PM - [ARM] Ultraken: It's not well documented
- 9:46 PM - [ARM] Ultraken: So (N) damage value is the baseline for everything else
- 9:46 PM - [ARM] Ultraken: L and H armor divide by N
- 9:46 PM - [ARM] Ultraken: S, D, and A shield also divide by N
- 9:46 PM - [ARM] Ultraken: and then when applying damage, it's the N value times the armor scale times the shield scale
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement