HitData hit = entity.rollHitLocation(Minefield.TO_HIT_TABLE, Minefield.TO_HIT_SIDE); phaseReport.append(damageEntity(entity, hit, mf.getDamage())).append("\n");
if (mf.getType() == Minefield.TYPE_VIBRABOMB) {  HitData hit = entity.rollHitLocation(Minefield.TO_HIT_TABLE, Minefield.TO_HIT_SIDE); phaseReport.append(damageEntity(entity, hit, mf.getDamage())).append("\n"); } else if (mf.getType() == Minefield.TYPE_THUNDER_VIBRABOMB) {  int damage = mf.getDamage(); while (damage > 0) { int cluster = Math.min(5, damage); HitData hit = entity.rollHitLocation(Minefield.TO_HIT_TABLE, Minefield.TO_HIT_SIDE); phaseReport.append(damageEntity(entity, hit, cluster)); damage -= cluster; } }
    private void explodeVibrabomb(Minefield mf) {        Enumeration targets = game.getEntities(mf.getCoords());        while (targets.hasMoreElements()) {            Entity entity = (Entity) targets.nextElement();            phaseReport.append(entity.getShortName() + " is hit by a vibrabomb attack.");            HitData hit = entity.rollHitLocation(Minefield.TO_HIT_TABLE, Minefield.TO_HIT_SIDE);            phaseReport.append(damageEntity(entity, hit, mf.getDamage())).append("\n");            resolvePilotingRolls(entity, true, entity.getPosition(), entity.getPosition());            // we need to apply Damage now, in case the entity lost a leg,            // otherwise it won't get a leg missing mod if it hasn't yet            // moved and lost a leg, see bug 1071434 for an example            entity.applyDamage();            send(createEntityPacket(entity.getId()));        }        if (!mf.isOneUse()) {            revealMinefield(mf);        } else {            removeMinefield(mf);        }    }