public APIRequestTask RequestCampaign(int campaignID, bool requestRetry) { GameWebAPI.RequestCP_Campaign request = new GameWebAPI.RequestCP_Campaign { SetSendData = delegate(GameWebAPI.CP_Req_Campaign param) { param.campaignId = campaignID; }, OnReceived = delegate(GameWebAPI.RespDataCP_Campaign response) { this.RespDataCP_Campaign = response; this.OnCampaignUpdate(this.RespDataCP_Campaign, this.CampaignForceHide); } }; return(new APIRequestTask(request, requestRetry)); }
public void CheckCampaign(Action <int> finish, GameWebAPI.RespDataCP_Campaign.CampaignType[] campaign_type) { GameWebAPI.RespDataCP_Campaign respDataCP_Campaign = DataMng.Instance().RespDataCP_Campaign; bool isExistedData = false; GameWebAPI.RespDataCP_Campaign.CampaignInfo currentInfo = null; GameWebAPI.RespDataCP_Campaign.CampaignType currentType = GameWebAPI.RespDataCP_Campaign.CampaignType.Invalid; for (int i = 0; i < campaign_type.Length; i++) { GameWebAPI.RespDataCP_Campaign.CampaignInfo campaign = respDataCP_Campaign.GetCampaign(campaign_type[i], true); if (campaign != null) { isExistedData = true; currentInfo = campaign; currentType = campaign_type[i]; break; } } bool isExistNewData = false; GameWebAPI.RespDataCP_Campaign.CampaignInfo newInfo = null; GameWebAPI.RequestCP_Campaign request = new GameWebAPI.RequestCP_Campaign { SetSendData = delegate(GameWebAPI.CP_Req_Campaign param) { param.campaignId = (int)currentType; }, OnReceived = delegate(GameWebAPI.RespDataCP_Campaign response) { if (currentType != GameWebAPI.RespDataCP_Campaign.CampaignType.Invalid) { GameWebAPI.RespDataCP_Campaign.CampaignInfo campaign2 = response.GetCampaign(currentType, false); if (campaign2 != null) { isExistNewData = true; newInfo = campaign2; } } else { for (int j = 0; j < campaign_type.Length; j++) { GameWebAPI.RespDataCP_Campaign.CampaignInfo campaign3 = response.GetCampaign(campaign_type[j], false); if (campaign3 != null) { isExistNewData = true; newInfo = campaign3; break; } } } } }; base.StartCoroutine(request.RunOneTime(delegate() { if (isExistedData && isExistNewData && currentInfo != null && newInfo != null && !currentInfo.IsEqualInfo(newInfo)) { isExistedData = false; } if (isExistedData && !isExistNewData) { if (finish != null) { finish(1); } } else if (!isExistedData && isExistNewData) { if (finish != null) { finish(2); } } else if (finish != null) { finish(0); } }, delegate(Exception nop) { if (finish != null) { finish(-1); } }, null)); }