reasons.append(modifier.getDesc()); roll.addModifier(modifier.getValue(), modifier.getDesc());
reasons.append(modifier.getPlainDesc()); roll.append(modifier);
    private void resolvePilotingRolls() {        for (Enumeration i = game.getEntities(); i.hasMoreElements();) {            final Entity entity = (Entity)i.nextElement();            if (entity.isProne() || entity.isDoomed() || entity.isDestroyed()) {                continue;            }            int rolls = 0;            StringBuffer reasons = new StringBuffer();            PilotingRollData roll = Compute.getBasePilotingRoll(game, entity.getId());            for (Enumeration j = pilotRolls.elements(); j.hasMoreElements();) {                final PilotingRollData modifier = (PilotingRollData)j.nextElement();                if (modifier.getEntityId() == entity.getId()) {                    rolls++;                    if (reasons.length() > 0) {                        reasons.append(", ");                    }                    reasons.append(modifier.getDesc());                    roll.addModifier(modifier.getValue(), modifier.getDesc());                }            }            // any rolls needed?            if (rolls == 0) {                continue;            }            if (roll.getValue() == PilotingRollData.AUTOMATIC_FALL) {                phaseReport.append("\n" + entity.getDisplayName() + " must make " + rolls + " piloting skill roll(s) and automatically fails (" + roll.getDesc() + ").\n");                doEntityFall(entity, roll.getValue());            } else {                phaseReport.append("\n" + entity.getDisplayName() + " must make " + rolls + " piloting skill roll(s) (" + reasons + ").\n");                phaseReport.append("The target is " + roll.getValue() + " [" + roll.getDesc() + "].\n");                for (int j = 0; j < rolls; j++) {                    final int diceRoll = Compute.d6(2);                    phaseReport.append("    " + entity.getDisplayName() + " needs " + roll.getValue() + ", rolls " + diceRoll + " : ");                    phaseReport.append((diceRoll >= roll.getValue() ? "remains standing" : "falls") + ".\n");                    if (diceRoll < roll.getValue()) {                        doEntityFall(entity, roll.getValue());                        // break rolling loop                        break;                    }                }            }        }        pilotRolls.removeAllElements();    }