| | |
| | | protected override void OnPreOpen()
|
| | | {
|
| | | DTCA814_tagMCMakeItemAnswer.MakeItemAnswerEvent += OnComposeAnswer;
|
| | | composeWinModel.funcType = ComposeFuncType.Item;
|
| | | firstTypeDict = composeWinModel.GetFirstTypeModel();
|
| | | firstTypeDict = composeWinModel.GetFirstTypeModel((int)ComposeFuncType.Item);
|
| | | bool isJumpTo = false;
|
| | | if (AchievementGoto.guideAchievementId != 0)
|
| | | {
|
| | |
| | | isJumpTo = true;
|
| | | curSecondType = composeWinModel.secondType;
|
| | | curThirdType = composeWinModel.thirdType;
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel(composeWinModel.secondType);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item,composeWinModel.secondType);
|
| | | ClickSecondTypeUICtrl();
|
| | | composeWinModel.ResetJumpToModel();
|
| | | }
|
| | |
| | | isJumpTo = true;
|
| | | curSecondType = composeWinModel.secondType;
|
| | | curThirdType = composeWinModel.thirdType;
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel(composeWinModel.secondType);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, composeWinModel.secondType);
|
| | | ClickSecondTypeUICtrl();
|
| | | composeWinModel.ResetJumpToModel();
|
| | | }
|
| | |
| | | isJumpTo = true;
|
| | | curSecondType = second;
|
| | | curThirdType = int.Parse(thirdType);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel(second);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, second);
|
| | | ClickSecondTypeUICtrl();
|
| | | composeWinModel.ResetJumpToModel();
|
| | | break;
|
| | |
| | | {
|
| | | isJumpTo = false;
|
| | | bool isCanCompose = true;
|
| | | if (!composeWinModel.IsEnoughFixedMat() || !composeWinModel.IsEnoughUnfixedMat(compoundModel))
|
| | | if (!composeWinModel.IsEnoughFixedMat(compoundModel) || !composeWinModel.IsEnoughUnfixedMat(compoundModel))
|
| | | {
|
| | | MessageWin.Inst.ShowFixedTip(Language.Get("Compose101"));
|
| | | isCanCompose = false;
|
| | |
| | | {
|
| | | arrowIcon.transform.localRotation = Quaternion.Euler(0, 0, -90);
|
| | | icon.SetSprite("ComposeFirstClassChoosebtn");
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel(curSecondType);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, curSecondType);
|
| | | //ClickSecondTypeUICtrl();
|
| | | }
|
| | | else
|
| | |
| | | if (curThirdType == cell.index)
|
| | | {
|
| | | icon.SetSprite("ChildListBtn_Select");
|
| | | thirdTypelist = composeWinModel.GetThirdTypeModellist(cell.index);
|
| | | thirdTypelist = composeWinModel.GetThirdTypeModellist(compoundModel.firstType,compoundModel.secondType,cell.index);
|
| | | RefreshUI(compoundModel);
|
| | | }
|
| | | else
|
| | |
| | | private void OnClickSecondType(int secondType)
|
| | | {
|
| | | curSecondType = secondType;
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel(curSecondType);
|
| | | secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, curSecondType);
|
| | | foreach (var thirdType in secondTypeDict.Keys)
|
| | | {
|
| | | if (thirdType != 0)
|
| | |
| | | #region 合成物品UI
|
| | | for (i = 0; i < previewItemlist.Count; i++)
|
| | | {
|
| | | int[] makeIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.MakeIds);
|
| | | GameObject gridCell = previewItemlist[i].transform.Find("GridCell").gameObject;
|
| | | if (i < composeWinModel.makeIDs.Length)
|
| | | if (i < makeIds.Length)
|
| | | {
|
| | |
|
| | | RefreshGridCellUI(gridCell, false, composeWinModel.makeIDs[i],NeedMatType.MakeItem);
|
| | | RefreshGridCellUI(gridCell, false,makeIds[i],NeedMatType.MakeItem);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | #endregion
|
| | |
|
| | | #region 固定道具和不固定道具UI
|
| | |
|
| | | for(i = 0;i < sourceItemlist.Count; i++)
|
| | | int[] fixedDisplay = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedDisplay);
|
| | | int[] fixedIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedIds);
|
| | | int[] fixedCounts = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedCounts);
|
| | | int[] unfixedIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.UnfixedIds);
|
| | | int[] unfixedDisplay = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.UnfixedDisplay);
|
| | | for (i = 0;i < sourceItemlist.Count; i++)
|
| | | {
|
| | | GameObject gridCell = sourceItemlist[i].transform.Find("GridCell").gameObject;
|
| | | Text putInText = sourceItemlist[i].transform.Find("PutInText").GetComponent<Text>();
|
| | |
| | | RefreshGridCellUI(gridCell, true);
|
| | | posBtn.RemoveAllListeners();
|
| | | }
|
| | |
|
| | | fixedItemIndexDict.Clear();
|
| | | for (i = 0; i < composeWinModel.fixedItemDisplay.Length; i++)
|
| | | |
| | | for (i = 0; i < fixedDisplay.Length; i++)
|
| | | {
|
| | | if (composeWinModel.fixedItemDisplay[i] != 0)
|
| | | if (fixedDisplay[i] != 0)
|
| | | {
|
| | | GameObject matPos = sourceItemlist[composeWinModel.fixedItemDisplay[i] - 1];
|
| | | GameObject matPos = sourceItemlist[fixedDisplay[i] - 1];
|
| | | GameObject gridCell = matPos.transform.Find("GridCell").gameObject;
|
| | | Text putInText = matPos.transform.Find("PutInText").GetComponent<Text>();
|
| | | putInText.gameObject.SetActive(false);
|
| | | RefreshGridCellUI(gridCell,false,composeWinModel.costfixedItemIDs[i],NeedMatType.fixedItem);
|
| | | List<int> itemIndexlist = null;
|
| | | SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | if (singlePack != null)
|
| | | {
|
| | | itemIndexlist = singlePack.ItemIndexlist(composeWinModel.costfixedItemIDs[i], composeWinModel.costfixedItemCounts[i]);
|
| | | }
|
| | | fixedItemIndexDict.Add(composeWinModel.costfixedItemIDs[i], itemIndexlist);
|
| | | RefreshGridCellUI(gridCell,false,fixedIds[i],NeedMatType.fixedItem);
|
| | | }
|
| | | }
|
| | |
|
| | | for (i = 0; i < composeWinModel.unfixedItemDisplay.Length; i++)
|
| | | for (i = 0; i < unfixedDisplay.Length; i++)
|
| | | {
|
| | | if (composeWinModel.unfixedItemDisplay[i] != 0)
|
| | | if (unfixedDisplay[i] != 0)
|
| | | {
|
| | | GameObject matPos = sourceItemlist[composeWinModel.unfixedItemDisplay[i] - 1];
|
| | | GameObject matPos = sourceItemlist[unfixedDisplay[i] - 1];
|
| | | GameObject gridCell = matPos.transform.Find("GridCell").gameObject;
|
| | | Text putInText = matPos.transform.Find("PutInText").GetComponent<Text>();
|
| | | Button posBtn = matPos.GetComponent<Button>();
|
| | |
| | |
|
| | | if(matType == NeedMatType.fixedItem)
|
| | | {
|
| | | int[] fixedIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedIds);
|
| | | int[] fixedCounts = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedCounts);
|
| | | itemCell.countText.gameObject.SetActive(true);
|
| | | int haveCount = playerPack.GetItemCountByID(PackType.rptItem,itemId);
|
| | | int i = 0;
|
| | | for(i = 0; i < composeWinModel.costfixedItemIDs.Length; i++)
|
| | | for(i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | if(composeWinModel.costfixedItemIDs[i] == itemId)
|
| | | if(fixedIds[i] == itemId)
|
| | | {
|
| | | if (haveCount >= composeWinModel.costfixedItemCounts[i])
|
| | | if (haveCount >= fixedCounts[i])
|
| | | {
|
| | | itemCell.countText.text = StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Green,haveCount.ToString()),
|
| | | "/",composeWinModel.costfixedItemCounts[i].ToString());
|
| | | "/",fixedCounts[i].ToString());
|
| | | }
|
| | | else
|
| | | {
|
| | | itemCell.countText.text = StringUtility.Contact(UIHelper.GetTextColorByItemColor(TextColType.Red, haveCount.ToString()),
|
| | | "/", composeWinModel.costfixedItemCounts[i].ToString());
|
| | | "/",fixedCounts[i].ToString());
|
| | | }
|
| | | break;
|
| | | }
|
| | |
| | |
|
| | | private void OnClickComposeBtn()
|
| | | {
|
| | | if (compoundModel == null) return;
|
| | |
|
| | | SetFixedItemIndexDic();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict,composeEffect,1);
|
| | | }
|
| | |
|
| | | private void SetFixedItemIndexDic()
|
| | | {
|
| | | fixedItemIndexDict.Clear();
|
| | | SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | if (singlePack == null) return;
|
| | | if (singlePack == null || compoundModel == null) return;
|
| | |
|
| | | int minBindCnt = 0;
|
| | | int minNoBindCnt = 0;
|
| | | composeWinModel.GetBindOrNoBindMinCnt(out minBindCnt, out minNoBindCnt);
|
| | |
|
| | | fixedItemIndexDict.Clear();
|
| | |
|
| | | for (int i = 0; i < composeWinModel.costfixedItemIDs.Length; i++)
|
| | | int[] fixedIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id,DisplayItemArray.FixedIds);
|
| | | int[] fixedCounts = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedCounts);
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | List<int> itemIndexlist = null;
|
| | | if (minBindCnt >= composeWinModel.costfixedItemCounts[i])
|
| | | if (minBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.ItemIndexlistByIsBind(composeWinModel.costfixedItemIDs[i], composeWinModel.costfixedItemCounts[i], 1);
|
| | | itemIndexlist = singlePack.ItemIndexlistByIsBind(fixedIds[i],fixedCounts[i], 1);
|
| | | }
|
| | | else if (minNoBindCnt >= composeWinModel.costfixedItemCounts[i])
|
| | | else if (minNoBindCnt >= fixedCounts[i])
|
| | | {
|
| | | itemIndexlist = singlePack.ItemIndexlistByIsBind(composeWinModel.costfixedItemIDs[i], composeWinModel.costfixedItemCounts[i], 0);
|
| | | itemIndexlist = singlePack.ItemIndexlistByIsBind(fixedIds[i],fixedCounts[i], 0);
|
| | | }
|
| | | else
|
| | | {
|
| | | itemIndexlist = singlePack.ItemIndexlist(composeWinModel.costfixedItemIDs[i], composeWinModel.costfixedItemCounts[i]);
|
| | | itemIndexlist = singlePack.ItemIndexlist(fixedIds[i],fixedCounts[i]);
|
| | | }
|
| | |
|
| | | if (itemIndexlist != null)
|
| | | {
|
| | | fixedItemIndexDict.Add(composeWinModel.costfixedItemIDs[i], itemIndexlist);
|
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | private void OnClickComposeAllBtn()
|
| | | { |
| | | {
|
| | | if (compoundModel == null) return;
|
| | |
|
| | | List<int> composeCountlist = new List<int>();
|
| | | fixedItemIndexDict.Clear();
|
| | | SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
|
| | | if(composeWinModel.costfixedItemIDs != null)
|
| | | int[] fixedIds = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedIds);
|
| | | int[] fixedCounts = ItemCompoundConfig.GetDisplayArrayByType(compoundModel.id, DisplayItemArray.FixedCounts);
|
| | |
|
| | | for (int i = 0; i < fixedIds.Length; i++)
|
| | | {
|
| | | for (int i = 0; i < composeWinModel.costfixedItemIDs.Length; i++)
|
| | | int haveCount = playerPack.GetItemCountByID(PackType.rptItem,fixedIds[i]);
|
| | | int canComposeCount = haveCount / fixedCounts[i];
|
| | | composeCountlist.Add(canComposeCount);
|
| | | List<int> itemIndexlist = null;
|
| | | if (singlePack != null)
|
| | | {
|
| | | int haveCount = playerPack.GetItemCountByID(PackType.rptItem, composeWinModel.costfixedItemIDs[i]);
|
| | | int canComposeCount = haveCount / composeWinModel.costfixedItemCounts[i];
|
| | | composeCountlist.Add(canComposeCount);
|
| | | List<int> itemIndexlist = null;
|
| | | if (singlePack != null)
|
| | | {
|
| | | itemIndexlist = singlePack.ItemIndexlist(composeWinModel.costfixedItemIDs[i], composeWinModel.costfixedItemCounts[i] * canComposeCount);
|
| | | }
|
| | | fixedItemIndexDict.Add(composeWinModel.costfixedItemIDs[i], itemIndexlist);
|
| | | itemIndexlist = singlePack.ItemIndexlist(fixedIds[i],fixedCounts[i] * canComposeCount);
|
| | | }
|
| | | composeCountlist.Sort();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, composeEffect,composeCountlist[0]);
|
| | | } |
| | | fixedItemIndexDict.Add(fixedIds[i], itemIndexlist);
|
| | | }
|
| | | composeCountlist.Sort();
|
| | | composeWinModel.SendComposeRequest(compoundModel, fixedItemIndexDict, composeEffect, composeCountlist[0]);
|
| | | }
|
| | |
|
| | | private void OnComposeAnswer(HA814_tagMCMakeItemAnswer answer)
|