mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Update attack.cpp (#1892)
This commit is contained in:
parent
d460fb3db8
commit
898b1ea4d1
@ -5286,28 +5286,31 @@ bool Mob::TryRootFadeByDamage(int buffslot, Mob* attacker) {
|
||||
- Root break chance values obtained from live parses.
|
||||
*/
|
||||
|
||||
if (!attacker || !spellbonuses.Root[SBIndex::ROOT_EXISTS] || spellbonuses.Root[SBIndex::ROOT_BUFFSLOT] < 0)
|
||||
if (!attacker || !spellbonuses.Root[SBIndex::ROOT_EXISTS] || spellbonuses.Root[SBIndex::ROOT_BUFFSLOT] < 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IsDetrimentalSpell(buffs[spellbonuses.Root[SBIndex::ROOT_BUFFSLOT]].spellid) && spellbonuses.Root[SBIndex::ROOT_BUFFSLOT] != buffslot) {
|
||||
|
||||
if (IsDetrimentalSpell(spellbonuses.Root[SBIndex::ROOT_BUFFSLOT]) && spellbonuses.Root[SBIndex::ROOT_BUFFSLOT] != buffslot) {
|
||||
int BreakChance = RuleI(Spells, RootBreakFromSpells);
|
||||
|
||||
BreakChance -= BreakChance * buffs[spellbonuses.Root[SBIndex::ROOT_BUFFSLOT]].RootBreakChance / 100;
|
||||
int level_diff = attacker->GetLevel() - GetLevel();
|
||||
|
||||
//Use baseline if level difference <= 1 (ie. If target is (1) level less than you, or equal or greater level)
|
||||
|
||||
if (level_diff == 2)
|
||||
if (level_diff == 2) {
|
||||
BreakChance = (BreakChance * 80) / 100; //Decrease by 20%;
|
||||
|
||||
else if (level_diff >= 3 && level_diff <= 20)
|
||||
}
|
||||
else if (level_diff >= 3 && level_diff <= 20) {
|
||||
BreakChance = (BreakChance * 60) / 100; //Decrease by 40%;
|
||||
|
||||
else if (level_diff > 21)
|
||||
}
|
||||
else if (level_diff > 21) {
|
||||
BreakChance = (BreakChance * 20) / 100; //Decrease by 80%;
|
||||
}
|
||||
|
||||
if (BreakChance < 1)
|
||||
if (BreakChance < 1) {
|
||||
BreakChance = 1;
|
||||
}
|
||||
|
||||
if (zone->random.Roll(BreakChance)) {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user