>.> So currently I'm not actually randomising the enemies. I wanted to have 21 with a group of three available for each level but ran out of time. The way it currently works (and how I would probably extend at this size:
Keep track of combat number. Each combat, we increment by one.
At start, we go to the MonsterDatabase (*actually just a class) and request a monster of the appropriate tier.
MonsterDatabase has a list of monsters for each tier. Each monster has some stats (HP, name, dialogue text, dice.)
If it needs specific dice it goes to the DiceDatabase (*also a class) which'll have a static function like
public static DiceData GetJohnnyAttackDie()
which will define the exact faces required. If we just need a generic die, we go to DiceFaceDatabase(*class etc) and ask for 6 dice faces of appropriate rarity.
What it all boils down to at the end of the day is we just use System.Random.Next() with the count of items needed and grab that.
It's not a perfect solution - but it works and seems *mostly* extensible.
Thanks for playing! Really appreciate it.