Update attack.cpp (#1892)

This commit is contained in:
KayenEQ 2021-12-16 07:23:11 -05:00 committed by GitHub
parent d460fb3db8
commit 898b1ea4d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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)) {