I've been thinking about the X-Com base issues lately, and after much consideration, I chose the following concept as the most streamlined and elegant:
Two-level bases.
This has actually been suggested for the normal game; namely, you have two layers of the X-Com base, and you can switch between them in the base view. In battlescape, they form a single, 4-level map.
While somewhat interesting, this feature was too superfluous to be implemented in the vanilla game, as well as presented a number of balance problems, and was therefore rightfully rejected. However, in the FMP+ project, it would fit perfectly, allowing us to have a surface level and an underground level.
Some buildings can only be built on the surface level:
- Small Radar System
- Large Radar System
- Missile/Laser/Gauss/Plasma/Fusion Defences
- Landing Pad (a hangar variant, related to some vehicles)
Some buildings can only be built on the underground level:
Some buildings appear on both levels:
And many buildings can appear on either level (though they look different of course):
- Command Centre
- Living Quarters
- Laboratory
- Workshop
- General Stores
- Alien Containment
- Psi-Lab
- Hyper-Wave Decoder
As you can see, you can pretty much ignore the underground level for much of the game if you want to, but surface facilities are way harder to defend, and possibly for other reasons (preliminary bombardment?). So it's in your best interest to get underground when you can. And this is mostly related to your progress - both in terms of research and available funds (remember, underground is expensive).
What will this system require of the code? Well, two things:
a) Two layer base layout (both in the base view and in the battlescape).
b) Flags for facilities to indicate where they can be built.
Note that buildings that can appear anywhere are actually two different buildings, which may even have different stats (for example, a surface general store can hold more stuff). The construction menu only shows facilities that apply for the active layer.