public static void act(Unit building) {
		UnitType type = building.getType();
		if (type == null) { // || !buildingType.isBuilding()
			return;
		}

		if (building.equals(FlyingBuildingManager.getFlyingBuilding1())
				|| building.equals(FlyingBuildingManager.getFlyingBuilding2())) {
			return;
		}

		// Remove buildings that have full health
		BuildingRepairManager.removeHealthyBuildingsFromRepairQueue();

		// Cancel construction of buildings under attack and severely damaged
		handleUnfinishedBuildings(building, type);

		// ===========================================
		// Repairing of building works slightly differently than repairing units
		BuildingRepairManager.handleBuildingsNeedingRepair(building);

		// If under attack always call for help
		if (building.isUnderAttack()) {
			UnitActions.callForHelp(building, true);
		}

		// ==========================================
		// Act with SPECIAL BUILDINGS
		if (type.getID() == UnitTypes.Terran_Comsat_Station.ordinal()) {
			TerranComsatStation.act(building);
		}
	}