少年修仙传客户端代码仓库
client_Wu Xijin
2018-08-29 7dcbca7f53bcfa8df7811fd51097598469aaab9c
System/Compose/New/ComposeToolsWin.cs
@@ -96,8 +96,7 @@
        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)
            {
@@ -107,7 +106,7 @@
                    isJumpTo = true;
                    curSecondType = composeWinModel.secondType;
                    curThirdType = composeWinModel.thirdType;
                    secondTypeDict = composeWinModel.GetSecondTypeModel(composeWinModel.secondType);
                    secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item,composeWinModel.secondType);
                    ClickSecondTypeUICtrl();
                    composeWinModel.ResetJumpToModel();
                }
@@ -119,7 +118,7 @@
                    isJumpTo = true;
                    curSecondType = composeWinModel.secondType;
                    curThirdType = composeWinModel.thirdType;
                    secondTypeDict = composeWinModel.GetSecondTypeModel(composeWinModel.secondType);
                    secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, composeWinModel.secondType);
                    ClickSecondTypeUICtrl();
                    composeWinModel.ResetJumpToModel();
                }
@@ -138,7 +137,7 @@
                                    isJumpTo = true;
                                    curSecondType = second;
                                    curThirdType = int.Parse(thirdType);
                                    secondTypeDict = composeWinModel.GetSecondTypeModel(second);
                                    secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, second);
                                    ClickSecondTypeUICtrl();
                                    composeWinModel.ResetJumpToModel();
                                    break;
@@ -163,7 +162,7 @@
                {
                    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;
@@ -280,7 +279,7 @@
                        {
                            arrowIcon.transform.localRotation = Quaternion.Euler(0, 0, -90);
                            icon.SetSprite("ComposeFirstClassChoosebtn");
                            secondTypeDict = composeWinModel.GetSecondTypeModel(curSecondType);
                            secondTypeDict = composeWinModel.GetSecondTypeModel((int)ComposeFuncType.Item, curSecondType);
                            //ClickSecondTypeUICtrl();
                        }
                        else
@@ -302,7 +301,7 @@
                    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
@@ -322,7 +321,7 @@
        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)
@@ -399,11 +398,12 @@
            #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
                {
@@ -413,8 +413,12 @@
            #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>();
@@ -423,32 +427,24 @@
                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>();
@@ -547,22 +543,24 @@
                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;
                        }
@@ -580,67 +578,71 @@
        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)