private IEnumerator OnReciveRewardItems(Reward_Useitems useItems) { bool recived = false; UIGetRewardDialog rewardMateralsDialog = Util.Instantiate(mPrefabUIDutyRewardMaterialsDialog.gameObject, mModalCamera.gameObject).GetComponent <UIGetRewardDialog>(); List <Reward_Useitem> rewardItems = new List <Reward_Useitem>(); IReward_Useitem[] rewards = useItems.Rewards; for (int i = 0; i < rewards.Length; i++) { Reward_Useitem iMaterial = (Reward_Useitem)rewards[i]; Reward_Useitem rewardItem = iMaterial; rewardItems.Add(rewardItem); } rewardMateralsDialog.Initialize(rewardItems.ToArray()); rewardMateralsDialog.SetOnDialogClosedCallBack(delegate { recived = true; rewardMateralsDialog.Close(); UnityEngine.Object.Destroy(rewardMateralsDialog.gameObject); }); KeyControl rewardDialogKeyController = rewardMateralsDialog.Show(); ChangeKeyController(rewardDialogKeyController); while (!recived) { yield return(new WaitForSeconds(0.5f)); } }
public List <IReward> RecieveRewards(int duty_no) { DutyModel duty = this.GetDuty(duty_no); if (duty.State != QuestState.COMPLETE) { return(null); } List <QuestItemGetFmt> list = this._quest.ClearItemGet(((__DutyModel__)duty).Fmt); if (list == null) { return(null); } List <IReward> list2 = new List <IReward>(); List <IReward_Material> list3 = null; Reward_Useitems reward_Useitems = null; for (int i = 0; i < list.get_Count(); i++) { if (list.get_Item(i).Category == QuestItemGetKind.Material && list.get_Item(i).Count > 0) { if (list3 == null) { list3 = new List <IReward_Material>(); Reward_Materials reward_Materials = new Reward_Materials(list3); list2.Add(reward_Materials); } list3.Add(new Reward_Material((enumMaterialCategory)list.get_Item(i).Id, list.get_Item(i).Count)); } else if (list.get_Item(i).Category == QuestItemGetKind.Deck) { list2.Add(new Reward_Deck(list.get_Item(i).Id)); base.UserInfo.__UpdateDeck__(new Api_get_Member()); } else if (list.get_Item(i).Category == QuestItemGetKind.FurnitureBox) { if (reward_Useitems == null) { reward_Useitems = new Reward_Useitems(); list2.Add(reward_Useitems); } reward_Useitems.__Add__(list.get_Item(i).Id, list.get_Item(i).Count); } else if (list.get_Item(i).Category == QuestItemGetKind.LargeBuild) { list2.Add(new Reward_LargeBuild()); } else if (list.get_Item(i).Category == QuestItemGetKind.Ship) { for (int j = 0; j < list.get_Item(i).Count; j++) { list2.Add(new Reward_Ship(list.get_Item(i).Id)); } base.UserInfo.__UpdateShips__(new Api_get_Member()); } else if (list.get_Item(i).Category == QuestItemGetKind.SlotItem) { for (int k = 0; k < list.get_Item(i).Count; k++) { list2.Add(new Reward_Slotitem(list.get_Item(i).Id)); } } else if (list.get_Item(i).Category == QuestItemGetKind.UseItem) { list2.Add(new Reward_Useitem(list.get_Item(i).Id, list.get_Item(i).Count)); } else if (list.get_Item(i).Category == QuestItemGetKind.Furniture) { list2.Add(new Reward_Furniture(list.get_Item(i).Id)); } else if (list.get_Item(i).Category == QuestItemGetKind.Exchange) { list2.Add(new Reward_Exchange_Slotitem(list.get_Item(i).FromId, list.get_Item(i).Id, list.get_Item(i).IsUseCrewItem)); List <SlotitemModel> slotitemList = base.UserInfo.GetDeck(1).GetFlagShip().SlotitemList; for (int l = 0; l < slotitemList.get_Count(); l++) { if (slotitemList.get_Item(l) != null) { slotitemList.get_Item(l).__update__(); } } } else if (list.get_Item(i).Category == QuestItemGetKind.Spoint) { list2.Add(new Reward_SPoint(list.get_Item(i).Count)); } else if (list.get_Item(i).Category == QuestItemGetKind.DeckPractice) { list2.Add(new Reward_DeckPracitce(list.get_Item(i).Id)); } else if (list.get_Item(i).Category == QuestItemGetKind.Tanker) { list2.Add(new Reward_TransportCraft(list.get_Item(i).Count)); base._UpdateTankerManager(); } } List <IReward> list4 = list2.FindAll((IReward reward) => reward is Reward_Furniture); if (list4.get_Count() > 0) { Api_Result <Dictionary <FurnitureKinds, List <Mst_furniture> > > api_Result = new Api_get_Member().FurnitureList(); if (api_Result.state == Api_Result_State.Success) { for (int m = 0; m < list4.get_Count(); m++) { Reward_Furniture reward_Furniture = (Reward_Furniture)list4.get_Item(m); reward_Furniture.__Init__(api_Result.data); } } } this._UpdateDutyData(); return(list2); }