public int getAchievementProgress(MDAchievement ach) { int progress = 0; if (ach.copy == 1) { if (_dp.dicReachAchs.ContainsKey(ach.id)) { progress = _dp.dicReachAchs[ach.id]; } } else if (ach.copy == 0) { for (int i = 0, max = ach.goals.Count; i < max; i++) { if (progress > 0) { if (_dp.dicAchsNums.ContainsKey(ach.goals[i])) { progress = Mathf.Min(_dp.dicAchsNums[ach.goals[i]], progress); } } else { if (_dp.dicAchsNums.ContainsKey(ach.goals[i])) { progress = _dp.dicAchsNums[ach.goals[i]]; } } } } return(progress); }
void processAchievementDescription(MDAchievement ach) { string objName = ""; if (ach.type == DTAchievementType.TIGER_ID) { MDTigerInfo ti = GetTigerInfo(ach.goals[0]); objName = ti.name; } else { BCObj mObj = GetBCObj(ach.goals[0]); objName = mObj.Name; } string desstr = ""; string[] des = ach.des.Split('#'); for (int i = 0, max = des.Length; i < max; i++) { desstr += des[i]; if (i < ach.pramater.Count) { if (ach.pramater[i] == 1) { desstr += objName; } else if (ach.pramater[i] == 2) { desstr += ach.goal_num.ToString(); } } } ach.des = desstr; }
void AchievementComplete(MDAchievement ach) { // bCompleteAchievement = true; //WG.SLog("AchievementComplete==="+SDK.Serialize(ach)); WGAlertViewController.Self.showArchivementTipView(ach.name, ach.icon); #if TalkingData TDGAMission.OnBegin(ach.name + ach.id); TDGAMission.OnCompleted(ach.name + ach.id); #endif }
public void freshUIWithData(MDAchievement ach) { preAchievementData = ach; WGDataController _dataCtrl = WGDataController.Instance; DataPlayerController dpc = DataPlayerController.getInstance(); BCObj rwObj = _dataCtrl.GetBCObj(ach.reward[0]); labName.text = ach.name + ":" + ach.des; spGoalIcon.spriteName = ach.icon; switch (rwObj.BCType) { case BCGameObjectType.Coin: spRewardIcon.spriteName = "coin_105"; break; case BCGameObjectType.Jewel: spRewardIcon.spriteName = "gem_104"; break; } spRewardIcon.MakePixelPerfect(); labRewardNum.text = WGStrings.getFormate(1066, ach.reward[1]); int got = 0; dpc.data.dicGotAchReward.TryGetValue(ach.id, out got); if (got == 1) //到达了 { btnGetReward.gameObject.SetActive(true); sdProgress.gameObject.SetActive(false); goHaveGot.SetActive(false); } else if (got == 0) //还没有到达 { goHaveGot.SetActive(false); btnGetReward.gameObject.SetActive(false); sdProgress.gameObject.SetActive(true); int reachNum = WGAchievementManager.Self.getAchievementProgress(ach); labProgress.text = reachNum.ToString() + "/" + ach.goal_num.ToString(); sdProgress.value = reachNum * 1f / ach.goal_num; } else if (got == -1) //已经领取 { goHaveGot.SetActive(true); btnGetReward.gameObject.SetActive(false); sdProgress.gameObject.SetActive(false); } }
void freshData() { szHaveGot.Clear(); szReached.Clear(); szNoReached.Clear(); DataPlayer _dp = DataPlayerController.getInstance().data; for (int i = 0, max = WGDataController.Instance.szAchievement.Count; i < max; i++) { MDAchievement ach = WGDataController.Instance.szAchievement[i]; int reachNum = WGAchievementManager.Self.getAchievementProgress(ach); if (_dp.dicGotAchReward.ContainsKey(ach.id)) { if (_dp.dicGotAchReward[ach.id] == 1) { szReached.Add(ach); } else if (_dp.dicGotAchReward[ach.id] == -1) { szHaveGot.Add(ach); } else { if (reachNum >= ach.goal_num) { _dp.dicGotAchReward[ach.id] = 1; szReached.Add(ach); } else { _dp.dicGotAchReward[ach.id] = 0; szNoReached.Add(ach); } } } else { if (reachNum >= ach.goal_num) { _dp.dicGotAchReward.Add(ach.id, 1); szReached.Add(ach); } else { _dp.dicGotAchReward.Add(ach.id, 0); szNoReached.Add(ach); } } } WGAchievementManager.Self.bCompleteAchievement = szReached.Count > 0; }
public void processAchievement(int goal, int type, int value = 1) { if (dicAchievement.ContainsKey(goal)) { List <MDAchievement> szAch = dicAchievement[goal]; for (int i = 0, max = szAch.Count; i < max; i++) { MDAchievement ach = szAch[i]; if (ach.type == type) { if (getAchievementProgress(ach) > ach.goal_num) { if (_dp.dicGotAchReward.ContainsKey(ach.id)) { if (_dp.dicGotAchReward[ach.id] != -1) { bCompleteAchievement = true; if (_dp.dicGotAchReward[ach.id] == 0) { AchievementComplete(ach); _dp.dicGotAchReward[ach.id] = 1; } } } else { //WG.SLog("====getAchievementProgress===>goal_num"+SDK.Serialize(ach)); bCompleteAchievement = true; _dp.dicGotAchReward.Add(ach.id, 1); AchievementComplete(ach); } } lastChangeTime = Time.realtimeSinceStartup; hasChanged = true; if (ach.copy == 1) { if (_dp.dicReachAchs.ContainsKey(ach.id)) { _dp.dicReachAchs[ach.id] += value; } else { _dp.dicReachAchs.Add(ach.id, value); } } else { if (_dp.dicAchsNums.ContainsKey(goal)) { _dp.dicAchsNums[goal] += value; } else { _dp.dicAchsNums.Add(goal, value); } } } } } }