public void SyncCityBuildingData(BuildingList data) { { var __list2 = data.Data; var __listCount2 = __list2.Count; for (var __i2 = 0; __i2 < __listCount2; ++__i2) { var building = __list2[__i2]; { var buildingData = CityManager.Instance.GetBuildingByAreaId(building.AreaId); if (null == buildingData) { continue; } var oldType = buildingData.TypeId; buildingData.Guid = building.Guid; buildingData.TypeId = building.TypeId; buildingData.AreaId = building.AreaId; buildingData.State = building.State; buildingData.Exdata.Clear(); buildingData.Exdata.AddRange(building.Exdata); buildingData.PetList.Clear(); buildingData.PetList.AddRange(building.PetList); buildingData.Exdata64.Clear(); buildingData.Exdata64.AddRange(building.Exdata64); buildingData.PetTime.Clear(); buildingData.PetTime.AddRange(building.PetTime); buildingData.OverTime = building.OverTime; EventDispatcher.Instance.DispatchEvent(new UIEvent_CityUpdateBuilding(building.AreaId)); //判断是否是升级 if (-1 != oldType && -1 != buildingData.TypeId) { var tableOldBuilding = Table.GetBuilding(oldType); var tableBuilding = Table.GetBuilding(buildingData.TypeId); if (null != tableOldBuilding && null != tableBuilding) { if (tableOldBuilding.Type == tableBuilding.Type) { if (tableBuilding.Level > tableOldBuilding.Level) { var e = new CityBuildingLevelupEvent(building.AreaId); var tbBuilding = Table.GetBuilding(buildingData.TypeId); e.HomeExp = tbBuilding.GetMainHouseExp; EventDispatcher.Instance.DispatchEvent(e); } } } } } } } }
private IEnumerator SendCityOptRequestCoroutine(CityOperationType opt, int buildingIdx, List <int> param) { using (new BlockingLayerHelper(0)) { var array = new Int32Array(); if (null != param) { { var __list7 = param; var __listCount7 = __list7.Count; for (var __i7 = 0; __i7 < __listCount7; ++__i7) { var value = __list7[__i7]; { array.Items.Add(value); } } } } var msg = NetManager.Instance.CityOperationRequest((int)opt, buildingIdx, array); yield return(msg.SendAndWaitUntilDone()); if (msg.State != MessageState.Reply) { Logger.Debug("SendBuildRequestCoroutine:MessageState.Timeout"); yield break; } if (msg.ErrorCode != (int)ErrorCodes.OK) { var errorCode = (ErrorCodes)msg.ErrorCode; switch (errorCode) { case ErrorCodes.Error_LevelNoEnough: { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200000108)); } break; case ErrorCodes.Error_ResNoEnough: { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002002)); } break; case ErrorCodes.Error_BuildCountMax: { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002801)); } break; case ErrorCodes.Error_NeedCityLevelMore: { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(200002803)); } break; case ErrorCodes.Error_CityCanotBuildMore: { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300113)); } break; default: UIManager.Instance.ShowNetError(msg.ErrorCode); break; } Logger.Debug("SendBuildRequestCoroutine error=[{0}]", msg.ErrorCode); EventDispatcher.Instance.DispatchEvent(new UIEvent_CityUpdateBuilding(buildingIdx)); yield break; } switch (opt) { case CityOperationType.BUILD: { PlatformHelper.Event("city", "Build"); //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300108)); } break; case CityOperationType.UPGRADE: { PlatformHelper.Event("city", "Upgrade"); EventDispatcher.Instance.DispatchEvent(new UIEvent_OnCityBuildingOptEvent(buildingIdx, opt)); //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(300107)); } break; case CityOperationType.DESTROY: { //EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard("Destroy Ok")); var e = new CityBuildingLevelupEvent(buildingIdx); var tbBuilding = Table.GetBuilding(GetBuildingByAreaId(buildingIdx).TypeId); e.HomeExp = Table.GetBuilding(tbBuilding.RemovedBuildID).GetMainHouseExp; EventDispatcher.Instance.DispatchEvent(e); } break; case CityOperationType.ASSIGNPET: case CityOperationType.ASSIGNPETINDEX: { EventDispatcher.Instance.DispatchEvent(new UIEvent_CityAssignPetEvent(buildingIdx)); } break; } } }