[7265] Move feral bonus get to struct ItemPrototype

Signed-off-by: DiSlord <[email protected]>

--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-11 11:54:16 -06:00
parent 6e84a2f3a5
commit 757037ce54
3 changed files with 29 additions and 10 deletions
+23
View File
@@ -630,6 +630,29 @@ struct ItemPrototype
} }
uint32 GetMaxStackSize() const { return Stackable > 0 ? uint32(Stackable) : uint32(0x7FFFFFFF-1); } uint32 GetMaxStackSize() const { return Stackable > 0 ? uint32(Stackable) : uint32(0x7FFFFFFF-1); }
float getDPS() const
{
if (Delay == 0)
return 0;
float temp = 0;
for (int i=0;i<5;++i)
temp+=Damage[i].DamageMin + Damage[i].DamageMax;
return temp*500/Delay;
}
int32 getFeralBonus() const
{
// 0x02A5F3 - is mask for Melee weapon from ItemSubClassMask.dbc
if (Class == ITEM_CLASS_WEAPON && (1<<SubClass)&0x02A5F3)
{
int32 bonus = int32(getDPS()*14.0f) - 767;
if (bonus < 0)
return 0;
return bonus;
}
return 0;
}
}; };
struct ItemLocale struct ItemLocale
+2 -6
View File
@@ -6998,17 +6998,13 @@ void Player::_ApplyItemBonuses(ItemPrototype const *proto, uint8 slot, bool appl
SetBaseWeaponDamage(attType, MAXDAMAGE, damage); SetBaseWeaponDamage(attType, MAXDAMAGE, damage);
} }
if (proto->Class == ITEM_CLASS_WEAPON && proto->Delay)
{
// Druids get feral AP bonus from weapon dps // Druids get feral AP bonus from weapon dps
if(getClass() == CLASS_DRUID && (slot==EQUIPMENT_SLOT_MAINHAND || slot==EQUIPMENT_SLOT_OFFHAND)) if(getClass() == CLASS_DRUID)
{ {
float dps = (proto->Damage[0].DamageMin + proto->Damage[0].DamageMax)/(2*proto->Delay/1000.0f); int32 feral_bonus = proto->getFeralBonus();
int32 feral_bonus = int32(dps*14.0f) - 767;
if (feral_bonus > 0) if (feral_bonus > 0)
ApplyFeralAPBonus(feral_bonus, apply); ApplyFeralAPBonus(feral_bonus, apply);
} }
}
if(!IsUseEquipedWeapon(slot==EQUIPMENT_SLOT_MAINHAND)) if(!IsUseEquipedWeapon(slot==EQUIPMENT_SLOT_MAINHAND))
return; return;
+1 -1
View File
@@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "7264" #define REVISION_NR "7265"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__