vPhaseReport.addElement(r); vPhaseReport.addAll(
addReport(r); addReport(
    private void resolveBrushOffAttack( PhysicalResult pr,                                        int lastEntityId ) {        final BrushOffAttackAction baa = (BrushOffAttackAction)pr.aaa;        final Entity ae = game.getEntity(baa.getEntityId());        // PLEASE NOTE: buildings are *never* the target        // of a "brush off", but iNarc pods **are**.        Targetable target = game.getTarget( baa.getTargetType(),                                            baa.getTargetId() );        Entity te = null;        final String armName = baa.getArm() == BrushOffAttackAction.LEFT            ? "Left Arm" : "Right Arm";        Report r;        if (target.getTargetType() == Targetable.TYPE_ENTITY) {            te = game.getEntity(baa.getTargetId());        }        // get damage, ToHitData and roll from the PhysicalResult        // ASSUMPTION: buildings can't absorb *this* damage.        int damage = baa.getArm() == BrushOffAttackAction.LEFT        ? pr.damage : pr.damageRight;        final ToHitData toHit = baa.getArm() == BrushOffAttackAction.LEFT        ? pr.toHit : pr.toHitRight;        int roll = baa.getArm() == BrushOffAttackAction.LEFT        ? pr.roll : pr.rollRight;        if (lastEntityId != baa.getEntityId()) {            //who is making the attacks            r = new Report(4005);            r.subject = ae.getId();            r.addDesc(ae);            vPhaseReport.addElement(r);        }        r = new Report(4085);        r.subject = ae.getId();        r.indent();        r.add(target.getDisplayName());        r.newlines = 0;        vPhaseReport.addElement(r);        if (toHit.getValue() == ToHitData.IMPOSSIBLE) {            r = new Report(4090);            r.subject = ae.getId();            r.add(toHit.getDesc());            vPhaseReport.addElement(r);            return;        }        // report the roll        r = new Report(4025);        r.subject = ae.getId();        r.add(toHit.getValue());        r.add(roll);        r.newlines = 0;        vPhaseReport.addElement(r);        // do we hit?        if (roll < toHit.getValue()) {            //miss            r = new Report(4035);            r.subject = ae.getId();            vPhaseReport.addElement(r);            // Missed Brush Off attacks cause punch damage to the attacker.            toHit.setHitTable( ToHitData.HIT_PUNCH );            toHit.setSideTable( ToHitData.SIDE_FRONT );            HitData hit = ae.rollHitLocation( toHit.getHitTable(),                                              toHit.getSideTable() );            r = new Report(4095);            r.subject = ae.getId();            r.addDesc(ae);            r.add(ae.getLocationAbbr(hit));            r.newlines = 0;            vPhaseReport.addElement(r);            vPhaseReport.addAll(                                  damageEntity(ae, hit, damage));            Report.addNewline(vPhaseReport);            return;        }        // Different target types get different handling.        switch ( target.getTargetType() ) {        case Targetable.TYPE_ENTITY:            // Handle Entity targets.            HitData hit = te.rollHitLocation( toHit.getHitTable(),                                              toHit.getSideTable() );            r = new Report(4045);            r.subject = ae.getId();            r.add(toHit.getTableDesc());            r.add(te.getLocationAbbr(hit));            r.newlines = 0;            vPhaseReport.addElement(r);            vPhaseReport.addAll(                                  damageEntity(te, hit, damage));            Report.addNewline(vPhaseReport);            // Dislodge the swarming infantry.            ae.setSwarmAttackerId( Entity.NONE );            te.setSwarmTargetId( Entity.NONE );            r = new Report(4100);            r.subject = ae.getId();            r.add(te.getDisplayName());            vPhaseReport.addElement(r);            break;        case Targetable.TYPE_INARC_POD:            // Handle iNarc pod targets.            // TODO : check the return code and handle false appropriately.            ae.removeINarcPod( (INarcPod) target );//             // TODO : confirm that we don't need to update the attacker. //killme//             entityUpdate( ae.getId() ); // killme            r = new Report(4105);            r.subject = ae.getId();            r.add(target.getDisplayName());            vPhaseReport.addElement(r);            break;            // TODO : add a default: case and handle it appropriately.        }    }