Fix SE_FcSpellVulnerability

This commit is contained in:
Michael Cook (mackal) 2017-06-13 21:33:42 -04:00
parent 0c5c6587e5
commit 35c194e2eb
2 changed files with 15 additions and 3 deletions

View File

@ -3829,7 +3829,7 @@ int32 Mob::GetVulnerability(Mob* caster, uint32 spell_id, uint32 ticsremaining)
if((IsValidSpell(buffs[i].spellid) && IsEffectInSpell(buffs[i].spellid, SE_FcSpellVulnerability))){ if((IsValidSpell(buffs[i].spellid) && IsEffectInSpell(buffs[i].spellid, SE_FcSpellVulnerability))){
int32 focus = caster->CalcFocusEffect(focusSpellVulnerability, buffs[i].spellid, spell_id); int32 focus = caster->CalcFocusEffect(focusSpellVulnerability, buffs[i].spellid, spell_id, true);
if (!focus) if (!focus)
continue; continue;
@ -3847,6 +3847,8 @@ int32 Mob::GetVulnerability(Mob* caster, uint32 spell_id, uint32 ticsremaining)
} }
} }
tmp_focus = caster->CalcFocusEffect(focusSpellVulnerability, buffs[tmp_focus].spellid, spell_id);
if (tmp_focus < -99) if (tmp_focus < -99)
tmp_focus = -99; tmp_focus = -99;

View File

@ -5078,8 +5078,18 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
break; break;
case SE_FcSpellVulnerability: case SE_FcSpellVulnerability:
if (type == focusSpellVulnerability) if (type == focusSpellVulnerability) {
if (best_focus) {
if (focus_spell.base2[i] != 0)
value = focus_spell.base2[i];
else
value = focus_spell.base[i]; value = focus_spell.base[i];
} else if (focus_spell.base2[i] == 0 || focus_spell.base[i] == focus_spell.base2[i]) {
value = focus_spell.base[i];
} else {
value = zone->random.Int(focus_spell.base[i], focus_spell.base2[i]);
}
}
break; break;
case SE_FcTwincast: case SE_FcTwincast: