Example #1
0
        public void EnterDungeon()
        {
            if (curDungeon.id != 0)
            {
                if (info.enableCount <= 0)
                {
                    Notice.instance.Show(LocalizationManager.instance.GetLocalString(GAME_STRING.NO_SHOVEL), 2f, Color.yellow);
                    return;
                }
                info.enableCount--;

                if (info.enableCount == 4)
                {
                    preGenTime = DateTime.Now.ToLocalTime();
                    SaveLoad.SaveTime();
                }
            }
            SoundManager.instance.PlaySingle(btnClick);

            curDungeon.init();
            timeLimit  = curDungeon.TimeLimit();
            dungeonGem = curDungeon.gem;
            playerHp   = 3;
            maxHp      = 3;
            bagSize    = maxBagSize;
            bag.Clear();
            dungeonPlayData.Init();

            tilesOnStages.Clear();
            objsOnStages.Clear();
            trapsOnStages.Clear();
            enemiesOnStages.Clear();
            showTilesOnStage.Clear();

            foreach (Level lv in curDungeon.levels)
            {
                tilesOnStages[lv.id]    = new List <GameObject>();
                objsOnStages[lv.id]     = new List <GameObject>();
                trapsOnStages[lv.id]    = new List <GameObject>();
                enemiesOnStages[lv.id]  = new List <GameObject>();
                showTilesOnStage[lv.id] = new List <ShowTile>();
            }

            bool bTutorial = curDungeon.id == 0;

            boardScript.SetupScene(curDungeon.levels, bTutorial);

            if (info.dungeonTryCount.ContainsKey(curDungeon.id))
            {
                info.dungeonTryCount[curDungeon.id]++;
            }
            else
            {
                info.dungeonTryCount.Add(curDungeon.id, 1);
            }

            if (curDungeon.id == 4)
            {
                ChangeState(GAME_STATE.MAP_LARGE);
            }
            else
            {
                ChangeState(GAME_STATE.MAP);
            }

            if (curDungeon.id != 0)
            {
                string gem_start = string.Format(LocalizationManager.instance.GetLocalString(GAME_STRING.GEM_START), curDungeon.gem);
                Notice.instance.Show(gem_start, 2f, Color.green);
            }

            Analytics.CustomEvent("Dungeon Try", new Dictionary <string, object>
            {
                { "id", curDungeon.id },
            });

            SaveLoad.Save();
        }
        void SetupInfo()
        {
            if (GameManager.instance == null)
            {
                return;
            }
            Dungeon curDungeon = GameManager.instance.GetDungeonInfo();

            if (curDungeon == null)
            {
                return;
            }

            int tryCount   = 0;
            int clearCount = 0;

            if (GameManager.instance.info.dungeonTryCount.ContainsKey(curDungeon.id))
            {
                tryCount = GameManager.instance.info.dungeonTryCount[curDungeon.id] - 1;
            }

            if (GameManager.instance.info.dungeonClearCount.ContainsKey(curDungeon.id))
            {
                clearCount = GameManager.instance.info.dungeonClearCount[curDungeon.id];
            }

            string needAcoin = LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_NEED_SHOVEL);

            if (curDungeon.id == 0)
            {
                needAcoin = LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_FREE_ENTER);
            }
            titleText.text   = curDungeon.name;
            contentText.text = needAcoin + "\n"
                               + LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_TIME_LIMIT) + curDungeon.TimeLimit() + "\n"
                               + LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_NUM_CHAMBER) + curDungeon.levels.Length + "\n"
                               + LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_NUM_SHOVEL) + GameManager.instance.info.enableCount + "\n"
                               + LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_NUM_CHALLANGE) + tryCount + "\n"
                               + LocalizationManager.instance.GetDungeonString(DUNGEON_STRING.INFO_NUM_CLEAR) + clearCount + "\n";
        }