TravelSProxy.cs 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Net.Http;
  8. using cfg.GfgCfg;
  9. using ET;
  10. using FairyGUI;
  11. using GFGGame;
  12. using ICSharpCode.SharpZipLib.GZip;
  13. using UnityEngine;
  14. using UnityEngine.Networking;
  15. namespace GFGGame
  16. {
  17. public static class TravelSProxy
  18. {
  19. //获取游历信息
  20. public static async ETTask<bool> ReqTravelInfo()
  21. {
  22. S2C_GetTravelGuideData response = null;
  23. response = (S2C_GetTravelGuideData)await MessageHelper.SendToServer(new C2S_GetTravelGuideData());
  24. if (response != null)
  25. {
  26. if (response.Error == ErrorCode.ERR_Success)
  27. {
  28. TravelData travelData = new TravelData();
  29. travelData.Status = response.TravelGuideInfo.Status;
  30. travelData.CreationTime = response.TravelGuideInfo.CreationTime;
  31. travelData.EndTime = response.TravelGuideInfo.EndTime;
  32. travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId;
  33. travelData.TravelCount = response.TravelGuideInfo.TravelCount;
  34. travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId;
  35. travelData.PositionIndex = response.TravelGuideInfo.PositionIndex;
  36. travelData.SuitResIndex = response.TravelGuideInfo.TravelSuitResourceIndex;
  37. travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem);
  38. TravelDataManager.Instance.TravelData = travelData;
  39. return true;
  40. }
  41. }
  42. return false;
  43. }
  44. //开始游历
  45. public static async ETTask<bool> ReqGoTravel(List<int> qSuitIds)
  46. {
  47. S2C_TravelGuideGo response = null;
  48. response = (S2C_TravelGuideGo)await MessageHelper.SendToServer(new C2S_TravelGuideGo()
  49. { TravelSuitIds = qSuitIds });
  50. if (response != null)
  51. {
  52. if (response.Error == ErrorCode.ERR_Success)
  53. {
  54. TravelData travelData = new TravelData();
  55. travelData.Status = response.TravelGuideInfo.Status;
  56. travelData.CreationTime = response.TravelGuideInfo.CreationTime;
  57. travelData.EndTime = response.TravelGuideInfo.EndTime;
  58. travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId;
  59. travelData.TravelCount = response.TravelGuideInfo.TravelCount;
  60. travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId;
  61. travelData.PositionIndex = response.TravelGuideInfo.PositionIndex;
  62. travelData.SuitResIndex = response.TravelGuideInfo.TravelSuitResourceIndex;
  63. travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem);
  64. TravelDataManager.Instance.TravelData = travelData;
  65. EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE);
  66. return true;
  67. }
  68. }
  69. return false;
  70. }
  71. //领取游历奖励
  72. public static async ETTask<bool> ReqGetTravelReward()
  73. {
  74. S2C_ReceiveTravelGuideReward response = null;
  75. response = (S2C_ReceiveTravelGuideReward)await MessageHelper.SendToServer(new C2S_ReceiveTravelGuideReward()
  76. { });
  77. if (response != null)
  78. {
  79. if (response.Error == ErrorCode.ERR_Success)
  80. {
  81. PoemPhotoData photoData = new PoemPhotoData();
  82. photoData.PictureId = response.PictureInfo.PictureId;
  83. photoData.CreationTime = response.PictureInfo.CreationTime;
  84. photoData.ToppingStatus = response.PictureInfo.ToppingStatus;
  85. photoData.LockingStatus = response.PictureInfo.LockingStatus;
  86. photoData.SourceType = response.PictureInfo.SourceType;
  87. photoData.TravelLocationId = response.PictureInfo.TravelLocationId;
  88. photoData.TravelSuitId = response.PictureInfo.TravelSuitId;
  89. photoData.SuitResIndex = response.PictureInfo.TravelSuitResourceIndex;
  90. photoData.PositionIndex = response.PictureInfo.PositionIndex;
  91. PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.WanShuiQianShan);
  92. TravelDataManager inst = TravelDataManager.Instance;
  93. inst.TravelData.Status = (int)TravelGuideType.NoTravel;
  94. int index = TravelDataManager.Instance.GetTravelIndexByLocationId(inst.TravelData.TravelLocationId);
  95. inst.ListTravelLocationCount[index] = inst.TravelData.TravelCount;
  96. EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE);
  97. if (inst.TravelData.TravelCount > 1) return true; //非首次到达该地无需处理图鉴红点
  98. string location = CommonDataManager.Tables.TblTravelLoactionCfg
  99. .GetOrDefault(inst.TravelData.TravelLocationId).Location;
  100. for (int i = 0; i < inst.ListTravelAreaRewardState.Count; i++)
  101. {
  102. TravelGuideCfg travelGuide = CommonDataManager.Tables.TblTravelGuideCfg.GetOrDefault(i + 1);
  103. if (travelGuide.Locations.IndexOf(location) >= 0)
  104. {
  105. if (inst.ListTravelAreaRewardState[i] > (int)ConstBonusStatus.CAN_NOT_GET)
  106. break; //可领和已领状态不用处理
  107. bool isRed = true;
  108. for (int j = 0; j < travelGuide.Locations.Count; j++)
  109. {
  110. int loactionId = CommonDataManager.Tables.TblTravelLoactionCfg.DataList
  111. .Where(a => a.Location == travelGuide.Locations[j]).ToList()[0].Id;
  112. int _index = TravelDataManager.Instance.GetTravelIndexByLocationId(loactionId);
  113. if (inst.ListTravelLocationCount[_index] == 0)
  114. {
  115. //仍有未到达的地点
  116. isRed = false;
  117. break;
  118. }
  119. }
  120. if (isRed)
  121. {
  122. inst.ListTravelAreaRewardState[i] = (int)ConstBonusStatus.CAN_GET;
  123. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  124. }
  125. break;
  126. }
  127. }
  128. return true;
  129. }
  130. }
  131. return false;
  132. }
  133. //获取游历图鉴记录
  134. public static async ETTask<bool> ReqTravelGuideInfo()
  135. {
  136. S2C_GetTravelGuideRecordAll response = null;
  137. response = (S2C_GetTravelGuideRecordAll)await MessageHelper.SendToServer(new C2S_GetTravelGuideRecordAll()
  138. { });
  139. if (response != null)
  140. {
  141. if (response.Error == ErrorCode.ERR_Success)
  142. {
  143. TravelDataManager.Instance.ListTravelLocationCount =
  144. new List<int>(response.TglLocationRecordList.ToArray());
  145. TravelDataManager.Instance.ListTravelAreaRewardState =
  146. new List<int>(response.TglAreaRecordList.ToArray());
  147. return true;
  148. }
  149. }
  150. return false;
  151. }
  152. //领取游历图鉴区域奖励
  153. public static async ETTask<bool> ReqGetTravelGuideReward(int areaId)
  154. {
  155. S2C_ReceiveTravelAreaReward response = null;
  156. response = (S2C_ReceiveTravelAreaReward)await MessageHelper.SendToServer(new C2S_ReceiveTravelAreaReward()
  157. { AreaId = areaId });
  158. if (response != null)
  159. {
  160. if (response.Error == ErrorCode.ERR_Success)
  161. {
  162. int index = TravelDataManager.Instance.GetGuideIndexByAreaId(areaId);
  163. TravelDataManager.Instance.ListTravelAreaRewardState[index] = (int)ConstBonusStatus.GOT;
  164. List<ItemData> rewards = ItemUtil.CreateItemDataList(response.RewardItem);
  165. BonusController.TryShowBonusList(rewards);
  166. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  167. return true;
  168. }
  169. }
  170. return false;
  171. }
  172. public static async ETTask<bool> ReqTravelSpeedUp(int speedUpType, List<ItemInfoProto> useItem)
  173. {
  174. S2C_SpeedUpTravelGuide response;
  175. response = (S2C_SpeedUpTravelGuide)await MessageHelper.SendToServer(new C2S_SpeedUpTravelGuide()
  176. { SpeedUpType = speedUpType, UseItem = useItem });
  177. if (response != null)
  178. {
  179. if (response.Error == ErrorCode.ERR_Success)
  180. {
  181. TravelDataManager.Instance.TravelData.Status = response.TravelGuideInfo.Status;
  182. TravelDataManager.Instance.TravelData.EndTime = response.TravelGuideInfo.EndTime;
  183. return true;
  184. }
  185. }
  186. return false;
  187. }
  188. }
  189. }