protected void hitTarget(boolean hit, Player owner, Selectable target) { if (hit) damageTarget(target); AttackScanFilter filter = new AttackScanFilter(owner, MAX_BOUNDS_LENGTH); owner.getWorld().getUnitGrid().scan(filter, target.getGridX(), target.getGridY()); Selectable s = filter.removeTarget(); if (s != null && owner.getWorld().getRandom().nextFloat() > .5f) { setTarget(s); } else super.hitTarget(hit, owner, target); }