private void Init()
        {
            // create level nodes
            levelNodes = new List <LevelNode>();
            for (int i = 0; i < levelCount; i++)
            {
                var node = new LevelNode();

                int worldIndex = i / levelPerWorld;
                int index      = i % levelPerWorld;
                node.Name = string.Format("{0}-{1}", (char)('A' + worldIndex), index);

                node.StarNumber    = (i % 3) + 1;
                node.SelectCommand = new DelegateCommand(() => SelectLevel(node));

                levelNodes.Add(node);
            }

            // create boss level nodes
            bossLevelNodes = new List <BossLevelNode>();
            for (int i = 0; i < bossLevelCount; i++)
            {
                var node = new BossLevelNode();

                node.Name = string.Format("Boss {0}", (char)('A' + i));
                node.RequiredStarNumber = 10 * (i + 1);
                node.SelectCommand      = new DelegateCommand(() => SelectBossLevel(node));

                bossLevelNodes.Add(node);
            }
        }
 public void SelectBossLevel(BossLevelNode node)
 {
     LogInfo(string.Format("Select BossLevel {0}, requiredStarNumber={1}", node.Name, node.RequiredStarNumber));
 }