少年修仙传客户端代码仓库
client_linchunjie
2018-12-21 7c6233f67e7ae9ee030505b95d58a6b6d9961bba
5499 【前端】【1.4】聚魂合成跳转
7个文件已修改
168 ■■■■ 已修改文件
System/GatheringSoul/GatherSoulComposeBehaviour.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulComposeModel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulComposeWin.cs 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulHoleBehaviour.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulItemBehaviour.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatheringSoulModel.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulComposeBehaviour.cs
@@ -31,10 +31,19 @@
            {
                if (compose.requireItems != null && i < compose.requireItems.Count)
                {
                    GatherSoulItem item;
                    bool exist = soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item);
                    m_RequireItems[i].Display(compose.requireItems[i], exist ? item.level : 1);
                    m_RequireItems[i].DisplayCount(exist ? 1 : 0, 1);
                    if (compose.requireItems[i] == model.jumpGatherSoulItem.itemId)
                    {
                        m_RequireItems[i].Display(model.jumpGatherSoulItem.itemId,
                            model.jumpGatherSoulItem.level);
                        m_RequireItems[i].DisplayCount(1, 1);
                    }
                    else
                    {
                        GatherSoulItem item;
                        bool exist = soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item);
                        m_RequireItems[i].Display(compose.requireItems[i], exist ? item.level : 1);
                        m_RequireItems[i].DisplayCount(exist ? 1 : 0, 1);
                    }
                }
                else
                {
System/GatheringSoul/GatherSoulComposeModel.cs
@@ -50,6 +50,8 @@
            }
        }
        public VirtualItem jumpGatherSoulItem { get; set; }
        GatheringSoulModel soulModel
        {
            get { return ModelCenter.Instance.GetModel<GatheringSoulModel>(); }
@@ -114,12 +116,14 @@
            }
        }
        public bool ExistInComposeMat(int itemId)
        public bool ExistInComposeMat(int itemId, out Compose outCompose)
        {
            outCompose = null;
            foreach (var compose in composeDict.Values)
            {
                if (compose.requireItems.Contains(itemId))
                {
                    outCompose = compose;
                    return true;
                }
            }
System/GatheringSoul/GatherSoulComposeWin.cs
@@ -23,6 +23,9 @@
        [SerializeField] GatherSoulComposeBehaviour[] m_ComposeBehaviours;
        [SerializeField] Text m_RequireLevel;
        [SerializeField] RectTransform m_ContainerUnCompose;
        [SerializeField] RectTransform m_ContainerCompose;
        [SerializeField] UIEffect m_OneMatEffect;
        [SerializeField] UIEffect m_TwoMatEffect;
@@ -50,10 +53,14 @@
        {
            model.selectCategory = default(GatherSoulComposeModel.ComposeCategory);
            model.selectItemId = 0;
            HandleJumpSelect();
            Display();
            model.onSelectComposeItemChange += OnSelectComposeItemChange;
            model.onSelectCategoryChange += OnSelectCategoryChange;
            soulModel.gatherSoulPackRefresh += GatherSoulPackRefresh;
            soulModel.gatherSoulHolesRefresh += GatherSoulHolesRefresh;
            DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent += MakeItemAnswerEvent;
        }
@@ -63,9 +70,11 @@
        protected override void OnPreClose()
        {
            model.jumpGatherSoulItem = default(VirtualItem);
            model.onSelectComposeItemChange -= OnSelectComposeItemChange;
            model.onSelectCategoryChange -= OnSelectCategoryChange;
            soulModel.gatherSoulPackRefresh -= GatherSoulPackRefresh;
            soulModel.gatherSoulHolesRefresh -= GatherSoulHolesRefresh;
            DTC0721_tagMakeItemAnswer.MakeItemAnswerEvent -= MakeItemAnswerEvent;
        }
@@ -73,13 +82,50 @@
        {
        }
        #endregion
        void HandleJumpSelect()
        {
            if (!model.jumpGatherSoulItem.Equals(default(VirtualItem)))
            {
                var itemId = model.jumpGatherSoulItem.itemId;
                GatherSoulComposeModel.Compose compose;
                if (model.ExistInComposeMat(itemId, out compose))
                {
                    foreach (var category in model.categoryDict.Keys)
                    {
                        if (model.categoryDict[category].Contains(compose.itemId))
                        {
                            model.selectCategory = category;
                            model.selectItemId = compose.itemId;
                            break;
                        }
                    }
                }
            }
        }
        private void GatherSoulHolesRefresh()
        {
            if (!model.jumpGatherSoulItem.Equals(default(VirtualItem))
                && !soulModel.CheckExist(model.jumpGatherSoulItem))
            {
                model.jumpGatherSoulItem = default(VirtualItem);
            }
            DisplayCompose();
        }
        private void GatherSoulPackRefresh()
        {
            if (!model.jumpGatherSoulItem.Equals(default(VirtualItem))
                && !soulModel.CheckExist(model.jumpGatherSoulItem))
            {
                model.jumpGatherSoulItem = default(VirtualItem);
            }
            DisplayCompose();
        }
        private void OnSelectComposeItemChange()
        {
            model.jumpGatherSoulItem = default(VirtualItem);
            m_ScrollerControl.m_Scorller.RefreshActiveCellViews();
            DisplayCompose();
            DisplayRequireLevel();
@@ -87,6 +133,7 @@
        private void OnSelectCategoryChange()
        {
            model.jumpGatherSoulItem = default(VirtualItem);
            DisplaySelect();
            if (model.selectCategory.Equals(default(GatherSoulComposeModel.ComposeCategory)))
            {
@@ -162,6 +209,10 @@
                    for (int k = 0; k < list.Count; k++)
                    {
                        m_ScrollerControl.AddCell(ScrollerDataType.Normal, list[k]);
                        if (model.selectItemId != 0 && model.selectItemId == list[k])
                        {
                            jumpIndex += k+1;
                        }
                    }
                }
            }
@@ -193,18 +244,28 @@
                }
            }
            m_ComposeItem.gameObject.SetActive(matCount > 0);
            m_ContainerCompose.gameObject.SetActive(matCount > 0);
            m_ContainerUnCompose.gameObject.SetActive(matCount == 0);
            if (matCount > 0)
            {
                var resolveReturn = 0;
                for (int i = 0; i < compose.requireItems.Count; i++)
                {
                    GatherSoulItem item;
                    if (!soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item))
                    if (compose.requireItems[i] == model.jumpGatherSoulItem.itemId)
                    {
                        resolveReturn = 0;
                        break;
                        resolveReturn += soulModel.GetResolveReturnCost(model.jumpGatherSoulItem.itemId,
                            model.jumpGatherSoulItem.level, true);
                    }
                    resolveReturn += soulModel.GetResolveReturnCost(item.id, item.level, true);
                    else
                    {
                        GatherSoulItem item;
                        if (!soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item))
                        {
                            resolveReturn = 0;
                            break;
                        }
                        resolveReturn += soulModel.GetResolveReturnCost(item.id, item.level, true);
                    }
                }
                var level = 1;
                if (resolveReturn != 0)
@@ -310,11 +371,14 @@
            }
            for (int i = 0; i < compose.requireItems.Count; i++)
            {
                GatherSoulItem item;
                if (!soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item))
                if (compose.requireItems[i] != model.jumpGatherSoulItem.itemId)
                {
                    error = 5;
                    return false;
                    GatherSoulItem item;
                    if (!soulModel.TryGetHighestLevelItem(compose.requireItems[i], out item))
                    {
                        error = 5;
                        return false;
                    }
                }
            }
            return true;
System/GatheringSoul/GatherSoulHoleBehaviour.cs
@@ -97,7 +97,8 @@
                    var itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>();
                    var data = new ItemAttrData(item.id);
                    data.SetGatherSoul(item.level, hole);
                    bool requireCompose = composeModel.ExistInComposeMat(item.id);
                    GatherSoulComposeModel.Compose compose;
                    bool requireCompose = composeModel.ExistInComposeMat(item.id, out compose);
                    if (requireCompose)
                    {
                        data.SetTipsFuncBtn(ItemWinBtnType.compose, OnTipFunc);
@@ -141,19 +142,29 @@
        private void OnTipFunc(ItemWinBtnType funcType, string arg2)
        {
            WindowCenter.Instance.CloseImmediately<GatherSoulTipWin>();
            switch (funcType)
            {
                case ItemWinBtnType.compose:
                    {
                        GatherSoulItem item;
                        if (model.TryGetItem(hole, out item))
                        {
                            model.HandleSoulTipFunc(funcType, item);
                        }
                    }
                    break;
                case ItemWinBtnType.putOff:
                    GatherSoulItem item;
                    if (model.TryGetItem(hole, out item))
                    {
                        model.ExecutePutOffSoul(item);
                        WindowCenter.Instance.CloseImmediately<GatherSoulTipWin>();
                        GatherSoulItem item;
                        if (model.TryGetItem(hole, out item))
                        {
                            model.ExecutePutOffSoul(item);
                        }
                    }
                    break;
                case ItemWinBtnType.LevelUp:
                    WindowCenter.Instance.CloseImmediately<GatherSoulTipWin>();
                    GatherSoulLevelUpWin.selectHole = hole;
                    WindowCenter.Instance.Open<GatherSoulLevelUpWin>();
                    break;
System/GatheringSoul/GatherSoulItemBehaviour.cs
@@ -148,7 +148,8 @@
                    data.SetGatherSoul(item.level, -1, PackType.rptGatherSoul, displayItem.index);
                    if (item.itemType != GatheringSoulModel.GATHERSOUL_ESSENCE_TYPE)
                    {
                        bool requireCompose = composeModel.ExistInComposeMat(item.id);
                        GatherSoulComposeModel.Compose outCompose;
                        bool requireCompose = composeModel.ExistInComposeMat(item.id, out outCompose);
                        if (requireCompose)
                        {
                            data.SetTipsFuncBtn(ItemWinBtnType.compose, OnTipFunc);
@@ -162,7 +163,7 @@
                            data.SetTipsFuncBtn(ItemWinBtnType.Replace, OnTipFunc);
                        }
                        GatherSoulComposeModel.Compose compose;
                        if(composeModel.TryGetCompose(item.id,out compose)
                        if (composeModel.TryGetCompose(item.id, out compose)
                            && compose.requireItems.Count > 0)
                        {
                            data.SetTipsFuncBtn(ItemWinBtnType.split, OnTipFunc);
System/GatheringSoul/GatherSoulWin.cs
@@ -167,7 +167,7 @@
        private void GotoCompose()
        {
            WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.GatherSoul271);
        }
        private void Resolve()
System/GatheringSoul/GatheringSoulModel.cs
@@ -649,6 +649,20 @@
            switch (type)
            {
                case ItemWinBtnType.compose:
                    if (!FuncOpen.Instance.IsFuncOpen(158))
                    {
                        FuncOpen.Instance.ProcessorFuncErrorTip(158);
                        return;
                    }
                    WindowCenter.Instance.Close<GatherSoulTipWin>();
                    composeModel.jumpGatherSoulItem = new VirtualItem()
                    {
                        packType = item.placeType == 0 ? PackType.rptGatherSoul : PackType.rptInterimPack,
                        index = item.index,
                        itemId = item.id,
                        level = item.level
                    };
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.GatherSoul271);
                    break;
                case ItemWinBtnType.split:
                case ItemWinBtnType.Resolve:
@@ -850,6 +864,27 @@
            return same;
        }
        public bool CheckExist(VirtualItem item)
        {
            if (item.packType == PackType.rptGatherSoul)
            {
                GatherSoulItem compare;
                if (virtualPack.TryGetItem(PackType.rptGatherSoul, item.index, out compare))
                {
                    return item.itemId == compare.id && item.level == compare.level;
                }
            }
            else if (item.packType == PackType.rptInterimPack)
            {
                GatherSoulItem compare;
                if (TryGetItem(item.index, out compare))
                {
                    return item.itemId == compare.id && item.level == compare.level;
                }
            }
            return false;
        }
        public bool TryGetHoleCondition(int hole, out GatherSoulHoleCondition condition)
        {
            return holeConditions.TryGetValue(hole, out condition);