if (atype.isExplosive() == false) { return ""; }
    private String explodeAmmo(Entity en, int loc, int slot) {        String desc = "";        // check amount of damage        Mounted mounted = en.getEquipment(en.getCritical(loc, slot).getIndex());        if (!(mounted.getType() instanceof AmmoType)) {            System.err.println("server: explodeAmmo called on non-ammo"                               + " crititical slot (" + loc + " , " + slot + ")");            return "";        }        AmmoType atype = (AmmoType)mounted.getType();        if (mounted.isHit() || mounted.isDestroyed()) {            System.err.println("server: explodeAmmo called on already exploded ammo"                               + " crititical slot (" + loc + " , " + slot + ")");            return "";        }        int damage = atype.getDamagePerShot() * atype.getRackSize() * mounted.getShotsLeft();        if (damage <= 0) {            return "";        }        // if there is damage, it's probably a lot        desc += "\n*** AMMO EXPLOSION!  " + damage + " DAMAGE! ***";        mounted.setHit(true);        desc += damageEntity(en, new HitData(loc), damage, true) + "\n\n";        // if the mech survives, the pilot takes damage        if (!en.isDoomed() && !en.isDestroyed()) {            desc += damageCrew(en, 2) + "\n";        }        return desc;    }