123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using LitJson;
- #if UNITY_IOS
- using UnityEngine.SocialPlatforms.GameCenter;
- #endif
- public class NetworkManager
- {
- public enum URL
- {
- Login,
- Binding,
- Notice,
- IOSPayment,
- LeaderBoard,
- ShopList,
- Buy,
- Equip,
- AddCoin,
- Mission,
- MissionReward,
- MissionProgress,
- Result,
- }
- public NetworkManager()
- {
- }
- private static Dictionary<URL, string> urlDict;
- public static string GetURL(URL url)
- {
- if(urlDict == null)
- {
- urlDict = new Dictionary<URL, string>();
- urlDict.Add(URL.Login, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/login.php");
- urlDict.Add(URL.Binding, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/binding.php");
- urlDict.Add(URL.Notice, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/notice.php");
- urlDict.Add(URL.IOSPayment, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/ios_payment.php");
- urlDict.Add(URL.LeaderBoard, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/leaderboard.php");
- urlDict.Add(URL.ShopList, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/shoplist.php");
- urlDict.Add(URL.Buy, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/buy.php");
- urlDict.Add(URL.Equip, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/equip.php");
- urlDict.Add(URL.AddCoin, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/addcoin.php");
- urlDict.Add(URL.Mission, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/mission.php");
- urlDict.Add(URL.MissionReward, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/mission_reward.php");
- urlDict.Add(URL.MissionProgress, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/mission_progress.php");
- urlDict.Add(URL.Result, Config.URL_ADDRESS+"game/"+Config.VERSION_LABEL+"/result.php");
- }
- return urlDict[url];
- }
- public void Login(CallBackUtil.SimpleCallBack callBack)
- {
- string device = Session.GetInstance ().myUserData.deviceId;
- int id = 0;
- if(StringUtil.Empty(device))
- {
- device = SystemInfo.deviceUniqueIdentifier;
- id = LocalSaver.GetInstance ().LoadId ();
- }
- ChatManager.GetInstance ().Clear ();
- UserRequest.Login (id, device, "ios", Config.USER_PORT).ResultEvent.AddListener((bool success, JsonData data) => {
- if(success)
- {
- JsonData info = data;
- UserData userData = Session.GetInstance().myUserData;
- userData.id = JsonUtil.ToInt(info["i"]);
- if(info["n"] != null)
- userData.nick = WWW.UnEscapeURL(info["n"].ToString());
- else
- userData.nick = null;
- userData.coin = JsonUtil.ToInt(info["c"]);
- userData.diamond = JsonUtil.ToInt(info["d"]);
- userData.exp = JsonUtil.ToInt(info["e"]);
- userData.rank = JsonUtil.ToInt(info["r"]);
- userData.rankIndex = JsonUtil.ToInt(info["ri"]);
- userData.win = JsonUtil.ToInt(info["w"]);
- userData.lose = JsonUtil.ToInt(info["l"]);
- userData.clanId = JsonUtil.ToInt(info["a"]);
- if(JsonUtil.ContainKey(info, "v"))
- userData.vipExpireTime = info["v"].ToString();
- JsonData craftList = info["cs"];
- if(craftList.IsArray)
- {
- userData.craftSelectLimit = new int[craftList.Count];
- for(int i=0; i<craftList.Count; i++)
- {
- userData.craftSelectLimit[i] = JsonUtil.ToInt(craftList[i]);
- }
- }
- if(JsonUtil.ContainKey(info, "h"))
- HaloManager.GetInstance().InitDataState(info["h"]);
- if(JsonUtil.ContainKey(info, "sl"))
- SkinManager.GetInstance().InitDataState(info["sl"]);
- userData.isLogin = true;
- ChatMsg.InitDateTime(info["ts"].ToString());
- Config.SERVER_ADDRESS = info["sfs_ip"].ToString();
- Config.SERVER_PORT = JsonUtil.ToInt(info["sfs_port"]);
- if(callBack != null)
- callBack();
- }
- else
- {
- AlertPanel alertPanel = AlertPanel.Show(null, Language.GetStr("MenuPage", "internetFailed"), 4, OnLoginAlertClose);
- }
- });
- }
- private void OnLoginAlertClose(AlertCloseEvent evt)
- {
- RestartGame ();
- }
- private void RestartGame()
- {
- Session.GetInstance ().myUserData.isLogin = false;
- Session.GetInstance ().GetBattleSession ().GetMessageManager ().Disconnect ();
- Application.LoadLevel (Config.Scene.Battle.ToString());
- }
- #if UNITY_IOS
- private GameCenterPlatform gameCenter;
- public void Binding()
- {
- if(gameCenter == null)
- gameCenter = new GameCenterPlatform();
- gameCenter.localUser.Authenticate ((bool success)=>{
- Debuger.Log("Authenticate : "+success);
- // success = false;
- if(success)
- {
- int id = Session.GetInstance().myUserData.id;
- string uid = gameCenter.localUser.id;
- string nick = WWW.EscapeURL(gameCenter.localUser.userName);
- URLRequestData data = new URLRequestData(true);
- data.Add("id", id);
- data.Add("uid", uid);
- data.Add("nick", nick);
- URLRequest.CreateURLRequest (GetURL (URL.Binding), data, OnBinding, URLRequest.Method.POST);
- }
- });
- }
- #else
- public void Binding()
- {
-
- }
- #endif
- private void OnBinding(JsonData data)
- {
- int resCode = (int)data["c"];
- JsonData resData = data["d"];
- if(resCode == 0)
- {
- if (JsonUtil.ContainKey (resData, "n")) {
- Session.GetInstance ().myUserData.nick = resData ["n"].ToString ();
- }
- }
- else if (resCode == 1)
- {
- int id = JsonUtil.ToInt (resData ["i"]);
- int rank = JsonUtil.ToInt (resData ["r"]);
- string info = string.Format (Language.GetStr ("Login", "toGCUser"), rank);
- AlertPanel.Show (null, info, AlertPanel.YES | AlertPanel.NO, (AlertCloseEvent evt) => {
- if (evt.detail == AlertPanel.YES) {
- LocalSaver.GetInstance ().SaveId (id);
- RestartGame();
- }
- else if(evt.detail == AlertPanel.NO)
- {
- LocalSaver.GetInstance().noAutoBinding = 1;
- }
- });
- }
- else if(resCode == 2)
- {
- AlertPanel.Show(null, Language.GetStr("MenuPage", "internetFailed"), 4, OnLoginAlertClose);
- }
- }
- public void GetMail(CallBackUtil.StringCallBack callBack)
- {
- URLRequestData data = new URLRequestData(true);
- data.Add("id", Session.GetInstance().myUserData.id);
- URLRequest.CreateURLRequest(GetURL(URL.Notice), data, (JsonData json)=>{
- int resCode = (int)json["c"];
- JsonData resData = json["d"];
-
- if(resCode == 0)
- {
- if(callBack != null)
- callBack(resData.ToString());
- }
-
- });
- }
- public void GetLeaderBoard()
- {
- URLRequestData data = new URLRequestData(true);
- data.Add("id", 0);
- data.Add ("port", Config.USER_PORT);
-
- URLRequest.CreateURLRequest(GetURL(URL.LeaderBoard), data, (JsonData json)=>{
-
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- if(JsonUtil.ContainKey(info, "l"))
- {
- JsonData list = info["l"];
- LeaderBoardManager.GetInstance().SetData(list);
- }
- }
- else
- {
- Toast.MakeText(Language.GetStr("Menu", "rankListFailed"), false);
- }
- }, URLRequest.Method.POST);
- }
- // public void GetMyRank()
- // {
- // URLRequestData data = new URLRequestData(true);
- // UserData userData = Session.GetInstance().myUserData;
- // data.Add("id", userData.userId);
- // data.Add("rank", userData.rank);
- //
- // URLRequest.CreateURLRequest(GetURL(URL.LeaderBoard), data, (JsonData json)=>{
- //
- // int resCode = JsonUtil.ToInt(json["c"]);
- // if(resCode == 0)
- // {
- // JsonData info = json["d"];
- // if(JsonUtil.ContainKey(info, "o"))
- // {
- // userData.rankIndex = JsonUtil.ToInt(info["o"]);
- // }
- // }
- // }, URLRequest.Method.POST);
- // }
- public void ShopList(BuyUtil.ItemType itemType, CallBackUtil.SimpleCallBack callBack)
- {
- URLRequestData data = new URLRequestData(true);
- data.Add("type", itemType.ToString());
- URLRequest.CreateURLRequest(GetURL(URL.ShopList), data, (JsonData json)=>{
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- if(itemType == BuyUtil.ItemType.Halo)
- {
- HaloManager.GetInstance().SetDataList(info["l"]);
- }
- else if(itemType == BuyUtil.ItemType.Skin)
- {
- SkinManager.GetInstance().SetDataList(info["l"]);
- }
-
- ShopPanel.Refresh();
- }
- else
- {
- Toast.MakeText(Language.GetStr("Shop", "listFailed"), false);
- }
- callBack();
- }, URLRequest.Method.POST);
- }
- public void Buy(int itemId, BuyUtil.ItemType itemType)
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("userid", userData.id);
- data.Add("id", itemId);
- data.Add("type", itemType.ToString());
- ProgressPanel.Show("");
- URLRequest.CreateURLRequest(GetURL(URL.Buy), data, OnBuy, URLRequest.Method.POST);
- }
- private void OnBuy(JsonData json)
- {
- ProgressPanel.Hide();
-
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- string itemType = info["type"].ToString();
- int itemId = JsonUtil.ToInt(info["id"]);
- if(itemType == BuyUtil.ItemType.Halo.ToString())
- HaloManager.GetInstance().Bought(itemId);
- else if(itemType == BuyUtil.ItemType.Skin.ToString())
- SkinManager.GetInstance().Bought(itemId);
-
- if(JsonUtil.ContainKey(info, "d"))
- Session.GetInstance().myUserData.diamond = JsonUtil.ToInt(info["d"]);
- if(JsonUtil.ContainKey(info, "c"))
- Session.GetInstance().myUserData.coin = JsonUtil.ToInt(info["c"]);
- ShopPanel.Refresh();
- }
- else if(resCode == 2)
- {
- BuyDiamondPanel.Show();
- }
- else if(resCode == 3)
- {
- BuyCoinPanel.Show();
- }
- else
- {
- Toast.MakeText(Language.GetStr("Shop", "buyFailed"), false);
- }
- }
-
-
-
- public void Equip(BuyUtil.ItemType itemType, int itemId, int equip)
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("userid", userData.id);
- data.Add("type", itemType.ToString());
- data.Add("id", itemId);
- data.Add("equip", equip);
- URLRequest.CreateURLRequest(GetURL(URL.Equip), data, (JsonData json)=>{
-
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- // if(itemType == BuyUtil.ItemType.Halo)
- // HaloManager.GetInstance().Equip(itemId);
- }
- }, URLRequest.Method.POST);
- }
- public void AddCoin(string itemId)
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("userid", userData.id);
- data.Add("id", itemId);
- ProgressPanel.Show("");
- URLRequest.CreateURLRequest(GetURL(URL.AddCoin), data, (JsonData json)=>{
- ProgressPanel.Hide();
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- int newCoin = JsonUtil.ToInt(info["coin"]);
- int newDiamond = JsonUtil.ToInt(info["diamond"]);
- UserData myUserData = Session.GetInstance().myUserData;
- Toast.MakeText(Language.GetStr("BuyCoin", "bought").Replace("%NUM%", (newCoin - myUserData.coin).ToString()));
- myUserData.coin = newCoin;
- myUserData.diamond = newDiamond;
- }
- else if(resCode == 3)
- {
- BuyDiamondPanel.Show();
- }
- else
- {
- Toast.MakeText(Language.GetStr("Shop", "addCoinFailed"), false);
- }
-
- }, URLRequest.Method.POST);
- }
- public void GetMission()
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("u", userData.id);
- URLRequest.CreateURLRequest(GetURL(URL.Mission), data, OnMissionGot, URLRequest.Method.POST);
- }
- private void OnMissionGot(JsonData json)
- {
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- MissionManager.GetInstance().Init(info);
- }
- }
- public void GetMissionReward(int id)
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("u", userData.id);
- data.Add("m", id);
- ProgressPanel.Show("");
- URLRequest.CreateURLRequest(GetURL(URL.MissionReward), data, OnMissionReward, URLRequest.Method.POST);
- }
- private void OnMissionReward(JsonData json)
- {
- ProgressPanel.Hide();
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- int coin = JsonUtil.ToInt(info["c"]);
- int diamond = JsonUtil.ToInt(info["d"]);
- int missionId = JsonUtil.ToInt(info["m"]);
- MissionData data = MissionManager.GetInstance().GetData(missionId);
- MissionRewardPanel.Show(data);
- data.rewarded = 1;
- UserData userData = Session.GetInstance().myUserData;
- Dictionary<string, object> dict = new Dictionary<string, object>();
- dict.Add("name", userData.nick+"["+userData.id.ToString()+"]");
- dict.Add("id", missionId.ToString());
- if(userData.coin != coin)
- dict.Add("coin", coin - userData.coin);
- else if(userData.diamond != diamond)
- dict.Add("diamond", diamond - userData.diamond);
- DGAnalytics.CustomEvent ("DailyMission", dict);
- userData.coin = coin;
- userData.diamond = diamond;
- }
- else
- {
- Toast.MakeText(Language.GetStr("Mission", "rewardFailedFailed"), false);
- }
- MissionManager.GetInstance().Refresh();
- }
- public void MissionProgress(int id)
- {
- URLRequestData data = new URLRequestData(true);
- UserData userData = Session.GetInstance().myUserData;
- data.Add("u", userData.id);
- data.Add("m", id);
-
- URLRequest.CreateURLRequest(GetURL(URL.MissionProgress), data, OnMissionProgress, URLRequest.Method.POST);
- }
- private void OnMissionProgress(JsonData json)
- {
- int resCode = JsonUtil.ToInt(json["c"]);
- if(resCode == 0)
- {
- JsonData info = json["d"];
- for(int i=0; i<info.Count; i++)
- {
- int missionId = JsonUtil.ToInt(info[i]["m"]);
- int progress = JsonUtil.ToInt(info[i]["p"]);
- MissionData data = MissionManager.GetInstance().GetData(missionId);
- data.progress = progress;
- }
- MissionManager.GetInstance().Refresh();
- }
- }
- public void Result(int result, int crystalSpend)
- {
- BattleRequest.Result (result, crystalSpend).ResultEvent.AddListener (OnResult);
- }
- private void OnResult(bool success, JsonData data)
- {
- if (success) {
- if (JsonUtil.ContainKey (data, "m") && data ["m"] != null) {
- JsonData missionJson = data ["m"];
- int missionId = JsonUtil.ToInt (missionJson["m"]);
- int missionProgress = JsonUtil.ToInt (missionJson["p"]);
- MissionData missionData = MissionManager.GetInstance ().GetData (missionId);
- if(missionData != null)
- missionData.progress = missionProgress;
- }
- ResultPanel.SetReward (new ResultPanel.RewardData(data));
- } else {
- ResultPanel.RequestFailed ();
- }
- }
- }
|