Что касается технической части - если раньше в проектах я многие данные делал преимущественно через массивы, то сейчас, особенно вот в таких сложных в плане разнообразной хранимой даты, всё чаще использую и словари (dictionary) для хранения параметров. Да, они тоже могут быть заменены массивами, но городить конструкций приходится меньше и они понятнее визуально, не приходится отдельно хранить карту соотвествий и расшифровок, какие номера с чем соотносятся. Тем не менее, если заложить возможность хранения каждого произвольного вражеского отряда и разных уровней, то это слишком большие простыни и структуры информации, даже при таком, более удобном хранении. Поэтому я решил сделать проще и для начала просто хранить готовые наборы вражеских юнитов (из которых уже вытягиваются массивы словарей). Плюс тут возникает вопрос уровней юнитов. Должны ли они расти в уровне, или обязательно юнит другого уровня - это уже юнит с другим названием и параметрами. В любом случае, вспоминая Disciples, юниты как минимум должны хранить заработанный опыт и количество здоровья. А также, если думать о временных статусах и изменениях во время боя, то юнит должен помнить и свои базовые параметры (вроде стандартной "быстроты" юнита), чтобы выставлять их заново в начале нового сражения. Но с хранением информации по юнитами в составе отрядов игрока ситуация куда проще, чем с хранением информации о вражеских отрядах на карте.