phaseReport.append("\n  Attacker takes " + damageTaken + " damage.");
phaseReport.append("\n  Attacker takes " ).append( damageTaken ).append( " damage.");
    private void resolveChargeDamage(Entity ae, Entity te, ToHitData toHit, int direction) {        // we hit...        int damage = Compute.getChargeDamageFor(ae);        int damageTaken = Compute.getChargeDamageTakenBy(ae, te);	PilotingRollData chargePSR = null;	// If we're upright, we may fall down.	if ( !ae.isProne() ) {	    chargePSR = new PilotingRollData(ae.getId(), 2, "charging");	}                phaseReport.append("hits.");        phaseReport.append("\n  Defender takes " + damage + " damage" + toHit.getTableDesc() + ".");        while (damage > 0) {            int cluster = Math.min(5, damage);            HitData hit = te.rollHitLocation(toHit.getHitTable(), toHit.getSideTable());            phaseReport.append(damageEntity(te, hit, cluster));            damage -= cluster;        }        phaseReport.append("\n  Attacker takes " + damageTaken + " damage.");        while (damageTaken > 0) {            int cluster = Math.min(5, damageTaken);            HitData hit = ae.rollHitLocation(ToHitData.HIT_NORMAL, toHit.SIDE_FRONT);            phaseReport.append(damageEntity(ae, hit, cluster));            damageTaken -= cluster;        }        // move attacker and target, if possible        Coords src = te.getPosition();        Coords dest = src.translated(direction);        if (Compute.isValidDisplacement(game, te.getId(), te.getPosition(), direction)) {            phaseReport.append("\n");            doEntityDisplacement(te, src, dest, new PilotingRollData(te.getId(), 2, "was charged"));            doEntityDisplacement(ae, ae.getPosition(), src, chargePSR);        } else {            if (game.getOptions().booleanOption("push_off_board") && !game.board.contains(dest)) {                game.moveToGraveyard(te.getId());                send(createRemoveEntityPacket(te.getId()));                phaseReport.append("\n*** " + te.getDisplayName() + " target has been forced from the field. ***\n");                doEntityDisplacement(ae, ae.getPosition(), src, chargePSR);            } else {                // they stil have to roll                pilotRolls.addElement(new PilotingRollData(te.getId(), 2, "was charged"));		pilotRolls.addElement(chargePSR);            }        }                phaseReport.append("\n");    } // End private void resolveChargeDamage( Entity, Entity, ToHitData )