Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for(Effect e : _effectList)
- {
- if(negated < _negateCount)
- {
- double eml = e.getSkill().getMagicLevel();
- double dml = (double) getSkill().getMagicLevel() - (eml != 0 ? eml : _effected.getLevel());
- int buffTime = e.getTimeLeft();
- double cancel_res_multiplier = _effected.getCancelResist() * e.getDispelSelfResist();
- double prelimChance = (2 * dml + (double)_cancelRate + (double)(buffTime / 120)) * cancel_res_multiplier;
- double final_chance = calcSkillChanceLimits(prelimChance);
- if(Rnd.chance(final_chance))
- {
- negated++;
- _effected.sendPacket(new SystemMessage2(SystemMsg.THE_EFFECT_OF_S1_HAS_BEEN_REMOVED).addSkillName(e.getSkill().getId(), e.getSkill().getLevel()));
- e.exit();
- }
- }
- }
- private double calcSkillChanceLimits(double prelimChance)
- {
- if(_dispelType.equals("bane"))
- {
- if(prelimChance < 40)
- return 40;
- else if(prelimChance > 90)
- return 90;
- }
- else if(_dispelType.equals("cancellation"))
- {
- if(prelimChance < 25)
- return 25;
- else if(prelimChance > 75)
- return 75;
- }
- else if(_dispelType.equals("cleanse"))
- return _cancelRate;
- return prelimChance;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement