@Override public int attackProc(Char enemy, int damage) { KindOfWeapon wep = rangedWeapon != null ? rangedWeapon : belongings.weapon; if (wep != null) { wep.proc(this, enemy, damage); switch (subClass) { case GLADIATOR: if (wep instanceof MeleeWeapon) { damage += Buff.affect(this, Combo.class).hit(enemy, damage); } break; case BATTLEMAGE: if (wep instanceof Wand) { Wand wand = (Wand) wep; if (wand.curCharges >= wand.maxCharges) { wand.use(); } else if (damage > 0) { wand.curCharges++; wand.updateQuickslot(); ScrollOfRecharging.charge(this); } damage += wand.curCharges; } case SNIPER: if (rangedWeapon != null) { Buff.prolong(this, SnipersMark.class, attackDelay() * 1.1f).object = enemy.id(); } break; default: } } return damage; }