private List <TownLevelDigest> shuffleTownLevel(int low, int middle, int high) { List <TownLevelDigest> levels = new List <TownLevelDigest>(); for (int i = 0; i < low; i++) { levels.Add(TownLevelDigest.LOW); } for (int i = 0; i < middle; i++) { levels.Add(TownLevelDigest.MIDDLE); } for (int i = 0; i < high; i++) { levels.Add(TownLevelDigest.HIGH); } int index = low + middle + high - 1; while (index > 1) { TownLevelDigest level = levels[index]; int rand = Random.Range(0, index + 1); levels[index] = levels[rand]; levels[rand] = level; index--; } return(levels); }
private int getLevel(TownLevelDigest digest) { switch (digest) { case TownLevelDigest.LOW: return(Random.Range(1, 8)); case TownLevelDigest.MIDDLE: return(Random.Range(8, 16)); case TownLevelDigest.HIGH: return(Random.Range(16, 25)); } throw new System.ArgumentException("unkonwn levelDigest"); }