desc += " Internal Structure destroyed,";
desc += " <<<SECTION DESTROYED>>>,";
	private String damageEntity(Entity te, HitData hit, int damage) {		String desc = new String();				int crits = hit.effect == HitData.EFFECT_CRITICAL ? 1 : 0;				int loc = hit.loc, nextLoc = Entity.LOC_NONE;		while (damage > 0 && !te.isDestroyed() && !te.isDoomed()) {			// let's resolve some damage!			desc += "\n        " + te.getDisplayName() + " takes " + damage + " damage to " + te.getLocationAbbr(loc) + ".";			te.damageThisPhase += damage;						// is there armor in the location hit?			if (te.getArmor(loc) > 0) {				if (te.getArmor(loc) > damage) {					// armor absorbs all damage					te.setArmor(te.getArmor(loc) - damage, loc);					damage = 0;					desc += " " + te.getArmor(loc) + " Armor remaining";				} else {					// damage goes on to internal					damage -= te.getArmor(loc);					te.setArmor(Entity.ARMOR_DESTROYED, loc);					desc += " Armor destroyed,";				}			}						// is there damage remaining?			if (damage > 0) {				// is there internal structure in the location hit?				if (te.getInternal(loc) > 0) {					// triggers a critical hit					crits++;					if (te.getInternal(loc) > damage) {						// internal structure absorbs all damage						te.setInternal(te.getInternal(loc) - damage, loc);						damage = 0;						desc += " " + te.getInternal(loc) + " Internal Structure remaining";					} else {						// damage transfers, maybe						damage -= te.getInternal(loc);						te.setInternal(Entity.ARMOR_DESTROYED, loc);						desc += " Internal Structure destroyed,";					}				}							// is the internal structure gone?				if (te.isLocationDestroyed(loc)) {					destroyLocation(te, loc);                    if (loc == Mech.LOC_RLEG || loc == Mech.LOC_LLEG) {			            pilotRolls.addElement(new PilotingRollData(te.getId(),                                 PilotingRollData.AUTOMATIC_FALL, "leg destroyed"));                    }					if (te.getTransferLocation(loc) == Entity.LOC_DESTROYED) {						// entity destroyed.						desc += " Entity destroyed!\n";						desc += "*** " + te.getDisplayName() + " DESTROYED! ***";						te.setDoomed(true);						// no need for further damage						damage = 0;						crits = 0;					} else {						// remaining damage transfers						nextLoc = te.getTransferLocation(loc);						desc += " " + damage + " damage transfers to "                                 + te.getLocationAbbr(nextLoc) + ";";					}				}			}			// roll all critical hits against this location			for (int i = 0; i < crits; i++) {				desc += "\n" + criticalEntity(te, loc);			}			crits = 0;						if (loc == Mech.LOC_HEAD) {				desc += "\n" + damageCrew(te, 1);			}						// loop to next location			loc = nextLoc;		}						return desc;	}