Если энергии хватает на 90% всей обороны, то будет вводится 90% от каждой группы. Чуть позже проясню этот момент в балансе.
Хороший вопрос) Мне эта ситуация тоже в голову пришла, поэтому сделал чуть умнее, чем просто 90% с округлением вниз.
Есть оставшаяся энергия (Э1). Это вырабатывая энергия минус все потребители кроме обороны.
Есть энергия обороны (Э2). Это энергия, которая тратится только обороной.
1. Берём все группы и считаем % для них: Р0 = Э1/Э2. Если Р0 > 1, то вся оба вводится в бой. Иначе считаем дальше.
2. Берём самого "тяжёлого" юнита по затратам энергии на одну единицу и выставляем в бой Р0% от имеющегося количества с округлением вниз.
3. Вычитаем из Э1 энергию выставленных юнитов и получаем Э1'.
4. Берём все оставшиеся группы без выставленной и считаем % оставшейся энергии (Э2') от нужной для них: Р1 = Э1'/Э2'
5. Повторяем шаги 2-4 для полученных значений.