Exemple #1
0
 private void OnEnable()
 {
     share.SetActive(GameVO.Instance.daily.HasAllPass());
     for (int i = 0; i < GameVO.Instance.daily.levels.length; i++)
     {
         DailyLevelVO vo = GameVO.Instance.daily.levels[i];
         if (vo.pass)
         {
             times[i].text  = StringUtils.TimeToMS(vo.time);
             txts[i].color  = colors[i];
             icons[i].color = colors[i];
             txts[i].gameObject.SetActive(true);
             locks[i].SetActive(false);
         }
         else
         {
             times[i].text  = "";
             txts[i].color  = new Color((float)(254.0 / 255.0), (float)(250.0 / 255.0), (float)(203.0 / 255.0));
             icons[i].color = new Color((float)(254.0 / 255.0), (float)(250.0 / 255.0), (float)(203.0 / 255.0));
             if (i == 0 || GameVO.Instance.daily.levels[i - 1].pass == true)
             {
                 txts[i].color = colors[i];
                 txts[i].gameObject.SetActive(true);
                 locks[i].SetActive(false);
             }
             else
             {
                 txts[i].gameObject.SetActive(false);
                 locks[i].SetActive(true);
             }
         }
     }
     OnDailyProgressChange();
 }
Exemple #2
0
    public void ReadLevels(long time)
    {
        string content = PlayerPrefs.GetString("daily");
        //Debug.Log(content);
        Dictionary <string, object> data;

        try
        {
            data = JSON.Parse(content) as Dictionary <string, object>;
        }
        catch
        {
            CreateNewLevels(time);
            return;
        }
        createTime = Convert.ToInt64(data["create"]);
        if (time - createTime > 2 * 3600 * 1000)
        {
            CreateNewLevels(time);
            return;
        }
        int           count = 0;
        List <object> list  = data["levels"] as List <object>;

        for (int i = 0; i < list.Count; i++)
        {
            Dictionary <string, object> item = list[i] as Dictionary <string, object>;
            DailyLevelVO levelvo             = new DailyLevelVO();
            levelvo.config = LevelConfig.GetConfig((int)item["id"]);
            levelvo.pass   = (bool)item["pass"];
            levelvo.time   = (int)item["time"];
            if (levelvo.pass)
            {
                count++;
                allTime.value      += levelvo.time;
                allTimeString.value = StringUtils.TimeToMS(allTime.value);
            }
            levels.Add(levelvo);
        }
        all.value      = levels.length;
        progress.value = count;

        isFirstPassAll = true;
        firstPassAll   = false;

        if (HasAllPass())
        {
            isFirstPassAll = false;
        }
    }
Exemple #3
0
    private void CreateNewLevels(long time)
    {
        isFirstPassAll = true;
        firstPassAll   = false;
        createTime     = time;
        //临时代码 生成每日挑战数据
        //随机10个关卡,1-999 6  1000-1999 3  2000 1
        //levels = new List<LevelConfig>();
        List <int> list        = new List <int>();
        List <int> list2       = new List <int>();
        List <int> list3       = new List <int>();
        List <int> firstLevels = new List <int>()
        {
        };

        if (GameVO.Instance.isFirstGame && firstGame)
        {
            firstGame = false;
            firstLevels.Add(1);
            firstLevels.Add(2);
            firstLevels.Add(3);
            firstLevels.Add(4);
            firstLevels.Add(5);
            for (int i = 0; i < firstLevels.Count; i++)
            {
                DailyLevelVO levelvo = new DailyLevelVO();
                levelvo.config = LevelConfig.GetConfig(firstLevels[i]);
                levels.Add(levelvo);
            }
        }
        for (int i = 0; i < LevelConfig.Configs.Count; i++)
        {
            bool find = false;
            for (int j = 0; j < firstLevels.Count; j++)
            {
                if (firstLevels[j] == LevelConfig.Configs[i].id)
                {
                    find = true;
                    break;
                }
            }
            if (LevelConfig.Configs[i].pieces.Count + LevelConfig.Configs[i].pieces2.Count >= 4 && LevelConfig.Configs[i].pieces.Count + LevelConfig.Configs[i].pieces2.Count <= 6)
            {
                list.Add(i);
            }
            else if (LevelConfig.Configs[i].pieces.Count + LevelConfig.Configs[i].pieces2.Count >= 7 && LevelConfig.Configs[i].pieces.Count + LevelConfig.Configs[i].pieces2.Count <= 8)
            {
                list2.Add(i);
            }
            else if (LevelConfig.Configs[i].pieces.Count + LevelConfig.Configs[i].pieces2.Count >= 10)
            {
                list3.Add(i);
            }
        }
        while (levels.length < 6)
        {
            int index = (int)Math.Floor(UnityEngine.Random.Range(0, 1f) * list.Count);
            int ind   = list[index];
            list.RemoveAt(index);
            DailyLevelVO levelvo = new DailyLevelVO();
            levelvo.config = LevelConfig.Configs[ind];
            levels.Add(levelvo);
        }
        while (levels.length < 9)
        {
            int index = (int)Math.Floor(UnityEngine.Random.Range(0, 1f) * list2.Count);
            int ind   = list2[index];
            list2.RemoveAt(index);
            DailyLevelVO levelvo = new DailyLevelVO();
            levelvo.config = LevelConfig.Configs[ind];
            levels.Add(levelvo);
        }
        while (levels.length < 10)
        {
            int index = (int)Math.Floor(UnityEngine.Random.Range(0, 1f) * list3.Count);
            int ind   = list3[index];
            list3.RemoveAt(index);
            DailyLevelVO levelvo = new DailyLevelVO();
            levelvo.config = LevelConfig.Configs[ind];
            levels.Add(levelvo);
        }
        all.value     = levels.length;
        allTime.value = 0;

        //存储
        Save();
    }