aboutsummaryrefslogtreecommitdiff
path: root/src/game/Creature.h
diff options
context:
space:
mode:
authorwin32 <>2010-01-21 13:48:27 +0200
committerwin32 <>2010-01-21 13:48:27 +0200
commit2572e9ef8eacdd5944e8a63cf313c8a3c9ac7faf (patch)
tree9f0fedf87c181ea9a851754e70b3336769bea8f2 /src/game/Creature.h
parent1c310c887b40c8a415f4eb10c5aa7319c6855f4a (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.h30
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);
};