* @param cs a <code>ChangeSet</code> value
     */
    private void csDamageBuilding(Building building, ChangeSet cs) {
        Colony colony = building.getColony();
        if (building.getType().getUpgradesFrom() == null) {
            // Eject units to any available work location.
            unit: for (Unit u : building.getUnitList()) {
                for (WorkLocation wl : colony.getAvailableWorkLocations()) {
                    if (wl == building || !wl.canAdd(u)) continue;
                    u.setLocation(wl);
                    continue unit;
                }
                u.setLocation(colony.getTile());
            }
            colony.removeBuilding(building);
            cs.addDispose(See.only((ServerPlayer) colony.getOwner()), colony, building);
        } else if (building.canBeDamaged()) {
            building.damage();
        }
        if (isAI()) {
            colony.firePropertyChange(Colony.REARRANGE_WORKERS, true, false);
        }
    }