mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
Merge branch 'master' of github.com:KayenEQ/Server
Conflicts: changelog.txt
This commit is contained in:
+25
-16
@@ -2875,33 +2875,42 @@ uint32 Mob::GetZoneID() const {
|
||||
}
|
||||
|
||||
int Mob::GetHaste() {
|
||||
int h = spellbonuses.haste + spellbonuses.hastetype2 + itembonuses.haste;
|
||||
int h = spellbonuses.haste + spellbonuses.hastetype2;
|
||||
int cap = 0;
|
||||
int overhaste = 0;
|
||||
int level = GetLevel();
|
||||
|
||||
if(level < 30) { // Rogean: Are these caps correct? Will use for now.
|
||||
cap = 50;
|
||||
} else if(level < 50) {
|
||||
cap = 74;
|
||||
} else if(level < 55) {
|
||||
cap = 84;
|
||||
} else if(level < 60) {
|
||||
cap = 94;
|
||||
} else {
|
||||
// 26+ no cap, 1-25 10
|
||||
if (level > 25) // 26+
|
||||
h += itembonuses.haste;
|
||||
else // 1-25
|
||||
h += itembonuses.haste > 10 ? 10 : itembonuses.haste;
|
||||
|
||||
// 60+ 100, 51-59 85, 1-50 level+25
|
||||
if (level > 59) // 60+
|
||||
cap = RuleI(Character, HasteCap);
|
||||
}
|
||||
else if (level > 50) // 51-59
|
||||
cap = 85;
|
||||
else // 1-50
|
||||
cap = level + 25;
|
||||
|
||||
if(h > cap) h = cap;
|
||||
if(h > cap)
|
||||
h = cap;
|
||||
|
||||
h += spellbonuses.hastetype3;
|
||||
// 51+ 25 (despite there being higher spells...), 1-50 10
|
||||
if (level > 50) // 51+
|
||||
overhaste = spellbonuses.hastetype3 > 25 ? 25 : spellbonuses.hastetype3;
|
||||
else // 1-50
|
||||
overhaste = spellbonuses.hastetype3 > 10 ? 10 : spellbonuses.hastetype3;
|
||||
|
||||
h += overhaste;
|
||||
h += ExtraHaste; //GM granted haste.
|
||||
|
||||
if (spellbonuses.inhibitmelee){
|
||||
if (spellbonuses.inhibitmelee) {
|
||||
if (h >= 0)
|
||||
h -= spellbonuses.inhibitmelee;
|
||||
|
||||
else
|
||||
h -=((100+h)*spellbonuses.inhibitmelee/100);
|
||||
h -= ((100 + h) * spellbonuses.inhibitmelee / 100);
|
||||
}
|
||||
|
||||
return(h);
|
||||
|
||||
Reference in New Issue
Block a user