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(); }
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; } }
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(); }