@Override public void hit(final Mob attacker, final Mob victim) { super.hit(attacker, victim); // System.out.println("In hit ytmejkot"); if (!attacker.isNPC()) { return; // this should be an NPC! } NPC npc = (NPC) attacker; CombatStyle style = CombatStyle.MELEE; int maxHit; int damage; int randomHit; int hitDelay; boolean blockAnimation; final int hit; switch (style) { default: case MELEE: Animation anim = attacker.getAttackAnimation(); attacker.playAnimation(anim); hitDelay = 1; blockAnimation = true; maxHit = npc.getCombatDefinition().getMaxHit(); damage = damage( maxHit, attacker, victim, attacker.getCombatState().getAttackType(), Skills.ATTACK, Prayers.PROTECT_FROM_MELEE, false, false); randomHit = random.nextInt(damage < 1 ? 1 : damage + 1); if (randomHit > victim.getSkills().getLevel(Skills.HITPOINTS)) { randomHit = victim.getSkills().getLevel(Skills.HITPOINTS); } hit = randomHit; break; } attacker.getCombatState().setAttackDelay(5); attacker.getCombatState().setSpellDelay(5); World.getWorld() .submit( new Tickable(hitDelay) { @Override public void execute() { victim.inflictDamage(new Hit(hit), attacker); smite(attacker, victim, hit); recoil(attacker, victim, hit); this.stop(); } }); vengeance(attacker, victim, hit, 1); victim.getActiveCombatAction().defend(attacker, victim, blockAnimation); }