@Override public void onStart(BuffInfo info) { if (info.getEffected().isPlayer() && (getTicks() > 0) && (info.getSkill().getAbnormalType() == AbnormalType.HP_RECOVER)) { info.getEffected().sendPacket(new ExRegenMax(info.getAbnormalTime(), getTicks(), _power)); } }
@Override public boolean onActionTime(BuffInfo info) { if (info.getEffected().isDead() || info.getEffected().isDoor()) { return false; } double hp = info.getEffected().getCurrentHp(); final double maxhp = info.getEffected().getMaxRecoverableHp(); // Not needed to set the HP and send update packet if player is already at max HP if (hp >= maxhp) { return false; } hp += _power * getTicksMultiplier(); hp = Math.min(hp, maxhp); info.getEffected().setCurrentHp(hp); return info.getSkill().isToggle(); }
@Override public boolean calcSuccess(BuffInfo info) { return Formulas.calcProbability( _chance, info.getEffector(), info.getEffected(), info.getSkill()); }