using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Http; using ET; using FairyGUI; using GFGGame; using ICSharpCode.SharpZipLib.GZip; using UnityEngine; using UnityEngine.Networking; namespace GFGGame { public static class TravelSProxy { //获取游历信息 public static async ETTask ReqTravelInfo() { S2C_GetTravelGuideData response = null; response = (S2C_GetTravelGuideData)await MessageHelper.SendToServer(new C2S_GetTravelGuideData()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { TravelData travelData = new TravelData(); travelData.Status = response.TravelGuideInfo.Status; travelData.CreationTime = response.TravelGuideInfo.CreationTime; travelData.EndTime = response.TravelGuideInfo.EndTime; travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId; travelData.TravelCount = response.TravelGuideInfo.TravelCount; travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId; travelData.PositionIndex = response.TravelGuideInfo.PositionIndex; travelData.SuitResIndex = response.TravelGuideInfo.TravelSuitResourceIndex; travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem); TravelDataManager.Instance.TravelData = travelData; return true; } } return false; } //开始游历 public static async ETTask ReqGoTravel(List qSuitIds) { S2C_TravelGuideGo response = null; response = (S2C_TravelGuideGo)await MessageHelper.SendToServer(new C2S_TravelGuideGo() { TravelSuitIds = qSuitIds }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { TravelData travelData = new TravelData(); travelData.Status = response.TravelGuideInfo.Status; travelData.CreationTime = response.TravelGuideInfo.CreationTime; travelData.EndTime = response.TravelGuideInfo.EndTime; travelData.TravelLocationId = response.TravelGuideInfo.TravelLocationId; travelData.TravelCount = response.TravelGuideInfo.TravelCount; travelData.TravelSuitId = response.TravelGuideInfo.TravelSuitId; travelData.PositionIndex = response.TravelGuideInfo.PositionIndex; travelData.SuitResIndex = response.TravelGuideInfo.TravelSuitResourceIndex; travelData.RewardItems = ItemUtil.CreateItemDataList(response.TravelGuideInfo.RewardItem); TravelDataManager.Instance.TravelData = travelData; EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE); return true; } } return false; } //领取游历奖励 public static async ETTask ReqGetTravelReward() { S2C_ReceiveTravelGuideReward response = null; response = (S2C_ReceiveTravelGuideReward)await MessageHelper.SendToServer(new C2S_ReceiveTravelGuideReward() { }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { PoemPhotoData photoData = new PoemPhotoData(); photoData.PictureId = response.PictureInfo.PictureId; photoData.CreationTime = response.PictureInfo.CreationTime; photoData.ToppingStatus = response.PictureInfo.ToppingStatus; photoData.LockingStatus = response.PictureInfo.LockingStatus; photoData.SourceType = response.PictureInfo.SourceType; photoData.TravelLocationId = response.PictureInfo.TravelLocationId; photoData.TravelSuitId = response.PictureInfo.TravelSuitId; photoData.SuitResIndex = response.PictureInfo.TravelSuitResourceIndex; photoData.PositionIndex = response.PictureInfo.PositionIndex; PoemPhotoDataManager.Instance.Add(photoData, (int)PictureSourceType.WanShuiQianShan); TravelDataManager inst = TravelDataManager.Instance; inst.TravelData.Status = (int)TravelGuideType.NoTravel; int index = TravelDataManager.Instance.GetTravelIndexByLocationId(inst.TravelData.TravelLocationId); inst.ListTravelLocationCount[index] = inst.TravelData.TravelCount; EventAgent.DispatchEvent(ConstMessage.TRAVEL_STATE_CHANGE); if (inst.TravelData.TravelCount > 1) return true;//非首次到达该地无需处理图鉴红点 string location = TravelLoactionCfgArray.Instance.GetCfg(inst.TravelData.TravelLocationId).location; for (int i = 0; i < inst.ListTravelAreaRewardState.Count; i++) { TravelGuideCfg travelGuide = TravelGuideCfgArray.Instance.GetCfg(i + 1); if (Array.IndexOf(travelGuide.locationsArr, location) >= 0) { if (inst.ListTravelAreaRewardState[i] > (int)ConstBonusStatus.CAN_NOT_GET) break;//可领和已领状态不用处理 bool isRed = true; for (int j = 0; j < travelGuide.locationsArr.Length; j++) { int loactionId = TravelLoactionCfgArray.Instance.GetCfgBylocation(travelGuide.locationsArr[j]).id; int _index = TravelDataManager.Instance.GetTravelIndexByLocationId(loactionId); if (inst.ListTravelLocationCount[_index] == 0) { //仍有未到达的地点 isRed = false; break; } } if (isRed) { inst.ListTravelAreaRewardState[i] = (int)ConstBonusStatus.CAN_GET; EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); } break; } } return true; } } return false; } //获取游历图鉴记录 public static async ETTask ReqTravelGuideInfo() { S2C_GetTravelGuideRecordAll response = null; response = (S2C_GetTravelGuideRecordAll)await MessageHelper.SendToServer(new C2S_GetTravelGuideRecordAll() { }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { TravelDataManager.Instance.ListTravelLocationCount = new List(response.TglLocationRecordList.ToArray()); TravelDataManager.Instance.ListTravelAreaRewardState = new List(response.TglAreaRecordList.ToArray()); return true; } } return false; } //领取游历图鉴区域奖励 public static async ETTask ReqGetTravelGuideReward(int areaId) { S2C_ReceiveTravelAreaReward response = null; response = (S2C_ReceiveTravelAreaReward)await MessageHelper.SendToServer(new C2S_ReceiveTravelAreaReward() { AreaId = areaId }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { int index = TravelDataManager.Instance.GetGuideIndexByAreaId(areaId); TravelDataManager.Instance.ListTravelAreaRewardState[index] = (int)ConstBonusStatus.GOT; List rewards = ItemUtil.CreateItemDataList(response.RewardItem); BonusController.TryShowBonusList(rewards); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return true; } } return false; } public static async ETTask ReqTravelSpeedUp(int speedUpType, List useItem) { S2C_SpeedUpTravelGuide response; response = (S2C_SpeedUpTravelGuide)await MessageHelper.SendToServer(new C2S_SpeedUpTravelGuide() { SpeedUpType = speedUpType, UseItem = useItem}); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { TravelDataManager.Instance.TravelData.Status = response.TravelGuideInfo.Status; TravelDataManager.Instance.TravelData.EndTime = response.TravelGuideInfo.EndTime; return true; } } return false; } } }