123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using LitJson;
- public class MissionManager
- {
- private List<MissionData> dataList;
- public int numCompleted = 0;
- public MissionManager()
- {
- dataList = new List<MissionData>();
- }
- private static MissionManager instance;
- public static MissionManager GetInstance()
- {
- if(instance == null)
- {
- instance = new MissionManager();
- }
- return instance;
- }
- private CallBackUtil.SimpleCallBack callBack;
- public void RequestMissionData(CallBackUtil.SimpleCallBack callBack)
- {
- if(dataList.Count == 0)
- {
- this.callBack = callBack;
- Session.GetInstance().GetNetworkManager().GetMission();
- }
- else
- {
- if(callBack != null)
- callBack();
- }
- }
- public void Init(JsonData json)
- {
- dataList.Clear();
- JsonData list = json["m"];
- for(int i=0; i<list.Count; i++)
- {
- JsonData mission = list[i];
- MissionData data = new MissionData();
- data.id = JsonUtil.ToInt(mission["i"]);
- data.missionType = JsonUtil.ToInt(mission["t"]);
- data.progress = JsonUtil.ToInt(mission["p"]);
- data.target = JsonUtil.ToInt(mission["v"]);
- data.reward = JsonUtil.ToInt(mission["r"]);
- data.rewardType = JsonUtil.ToInt(mission["rt"]);
- data.rewardCount = JsonUtil.ToInt(mission["rc"]);
- data.rewarded = JsonUtil.ToInt(mission["rd"]);
- data.rewardMaxCount = JsonUtil.ToInt(mission["rm"]);
- dataList.Add(data);
- }
- Refresh();
- if(callBack != null)
- callBack();
- }
- public void Refresh()
- {
- numCompleted = 0;
- for(int i=0; i<dataList.Count; i++)
- {
- MissionData data = dataList[i];
- if(data.progress >= data.target && data.rewarded == 0)
- {
- numCompleted++;
- }
- }
- if (BattleController.battleType == BattleController.BattleType.Menu)
- Session.GetInstance ().GetBattleSession ().GetBattleController ().menuUI.missionBar.Refresh ();
- }
- public List<MissionData> GetMissionList()
- {
- return dataList;
- }
- public MissionData GetData(int id)
- {
- for(int i=0; i<dataList.Count; i++)
- {
- MissionData data = dataList[i];
- if(data.id == id)
- {
- return data;
- }
- }
- return null;
- }
- public MissionData GetDataByType(MissionData.MissionType type)
- {
- for(int i=0; i<dataList.Count; i++)
- {
- MissionData data = dataList[i];
- if(data.missionType == type.GetHashCode())
- {
- return data;
- }
- }
- return null;
- }
- }
|