so if I recall this was about the way the resistance code worked in the Combat file
the resistances (heat, cold, so on) are all utilized for damage reduction when you are hit and that was the "broken" part I believe per @neatz09
if (victim->IsEntity())
bonus -= ((Entity*)victim)->GetDamageTypeResistPercentage(damage_type);
Entity* entity_victim = (Entity*)victim;
float chance = 80 + bonus; //80% base chance that the victim will get hit (plus bonus)
sint16 roll_chance = 100;
if(skill)
roll_chance -= skill->current_val / 25;
we have support for spell avoidance that is "resisting" outright which should work fine:
skill = entity_victim->GetSkillByName("Spell Avoidance", true);
if(skill)
chance -= skill->current_val / 25;
if(rand()%roll_chance >= chance) {
return DAMAGE_PACKET_RESULT_RESIST; //successfully resisted
}
so if I recall this was about the way the resistance code worked in the Combat file
the resistances (heat, cold, so on) are all utilized for damage reduction when you are hit and that was the "broken" part I believe per @neatz09
we have support for spell avoidance that is "resisting" outright which should work fine:
for this we need to setup Entity::CalculateDamageAmount to reduce damage for spell based damage. We already reduce melee damage with mitigation.