diff options
author | win32 <> | 2010-01-21 13:48:27 +0200 |
---|---|---|
committer | win32 <> | 2010-01-21 13:48:27 +0200 |
commit | 2572e9ef8eacdd5944e8a63cf313c8a3c9ac7faf (patch) | |
tree | 9f0fedf87c181ea9a851754e70b3336769bea8f2 /src/game/Creature.h | |
parent | 1c310c887b40c8a415f4eb10c5aa7319c6855f4a (diff) |
* Add support for basedmg and baserangeddmg values in creature_classlevelstats.
* Remove mindmg, maxdmg, attackpower and ranged field in creature_template and add Dmg_Mod, Rangeddmg_Mod field.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Creature.h')
-rw-r--r-- | src/game/Creature.h | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/game/Creature.h b/src/game/Creature.h index ad8dfc2b01c..d3bee8d2eca 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -89,10 +89,7 @@ struct CreatureInfo float speed; float scale; uint32 rank; - float mindmg; - float maxdmg; uint32 dmgschool; - uint32 attackpower; float dmg_multiplier; uint32 baseattacktime; uint32 rangeattacktime; @@ -104,9 +101,6 @@ struct CreatureInfo uint32 trainer_spell; uint32 trainer_class; uint32 trainer_race; - float minrangedmg; - float maxrangedmg; - uint32 rangedattackpower; uint32 type; // enum CreatureType values uint32 type_flags; // enum CreatureTypeFlags mask values uint32 lootid; @@ -129,6 +123,8 @@ struct CreatureInfo float ModHealth; float ModMana; float ModArmor; + float ModDmg; + float ModRangedDmg; bool RacialLeader; uint32 questItems[6]; uint32 movementId; @@ -175,6 +171,8 @@ struct TRINITY_DLL_SPEC CreatureBaseStats uint32 BaseHealth[MAX_CREATURE_BASE_HP]; uint32 BaseMana; uint32 BaseArmor; + uint32 BaseDmg; + uint32 BaseRangedDmg; // Helpers @@ -197,6 +195,26 @@ struct TRINITY_DLL_SPEC CreatureBaseStats return uint32((BaseArmor * info->ModArmor) + 0.5f); } + uint32 GenerateMinDmg(CreatureInfo const* info) const + { + return uint32((BaseDmg * (info->baseattacktime / 1000.0f) / 2.5f) * info->ModDmg + 0.5f); + } + + uint32 GenerateMaxDmg(CreatureInfo const* info) const + { + return uint32((BaseDmg * (info->baseattacktime / 1000) - GenerateMinDmg(info)) * info->ModDmg + 0.5f); + } + + uint32 GenerateAttackPower(CreatureInfo const* info) const + { + return uint32(((GenerateMinDmg(info) + GenerateMaxDmg(info)) / 2.0f * 0.3f) * info->ModDmg + 0.5f); + } + + uint32 GenerateRangedDmg(CreatureInfo const* info) const + { + return uint32((BaseDmg * (info->baseattacktime / 1000.0f) * info->ModRangedDmg) + 0.5f); + } + static CreatureBaseStats const* GetBaseStats(uint32 level, uint8 unitClass); }; |