mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[7265] Move feral bonus get to struct ItemPrototype
Signed-off-by: DiSlord <dislord@nomail.com>
This commit is contained in:
parent
4792d20b4e
commit
bb7d68347f
3 changed files with 29 additions and 10 deletions
|
|
@ -628,6 +628,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
|
||||||
|
|
|
||||||
|
|
@ -6806,16 +6806,12 @@ 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
|
||||||
|
if(getClass() == CLASS_DRUID)
|
||||||
{
|
{
|
||||||
// Druids get feral AP bonus from weapon dps
|
int32 feral_bonus = proto->getFeralBonus();
|
||||||
if(getClass() == CLASS_DRUID && (slot==EQUIPMENT_SLOT_MAINHAND || slot==EQUIPMENT_SLOT_OFFHAND))
|
if (feral_bonus > 0)
|
||||||
{
|
ApplyFeralAPBonus(feral_bonus, apply);
|
||||||
float dps = (proto->Damage[0].DamageMin + proto->Damage[0].DamageMax)/(2*proto->Delay/1000.0f);
|
|
||||||
int32 feral_bonus = int32(dps*14.0f) - 767;
|
|
||||||
if (feral_bonus > 0)
|
|
||||||
ApplyFeralAPBonus(feral_bonus, apply);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!IsUseEquipedWeapon(slot==EQUIPMENT_SLOT_MAINHAND))
|
if(!IsUseEquipedWeapon(slot==EQUIPMENT_SLOT_MAINHAND))
|
||||||
|
|
|
||||||
|
|
@ -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__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue