Here is an issue I keep meaning to bring up but always forget until I run into it (which I just did again).
To attack an enemy you need enough movement points to legally move to that square.
However the code that evaluates whether or not you can attack as a stack contains a bug. The bug is that the code doesn't evaluate on a unit by unit basis whether it's legal for all units but rather on a worst case maximum needed move basis. Let me give an example to illustrate that just happened in my game.
An enemy hero stack was located on the hills. I have a hero stack that I wanted to attack with. I checked the movement and if I separated out my fliers and ground units, both could reach the square next to the enemy with enough moves left to attack. So I separated out my hero + 3 Demons and flew next to the enemy. Then I moved my 2 Hv Cavalry back into my hero stack. At this point my hero + Demons had 2 moves left and my Cavalry had 6 moves left. So legally the game will let me attack with either stack individually. But when I group the units together it won't because it thinks I need 6 moves to attack. This isn't right as I should have been able to attack.
KGB