少年修仙传客户端代码仓库
lcy
2025-02-17 a4725a96628eb43bff973d5ceaab86e5bd0b799b
10360 仙匠大会

1.补充仙露二次确认窗口
2.调节滑动检测灵敏度
3.修复在僵局状态时回一点体力弹一次提示问题
4.修复在辅助物品动画动画未结束时就使用下一个辅助物品弹出错误提示
5.支持没有辅助物品进入使用辅助物品面板
6.补充辅助物品面板显示数量
4个文件已修改
307 ■■■■ 已修改文件
System/LianQi/LianQiActModel.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LianQi/LianQiActWin.cs 192 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LianQi/LianQiItemInfoDoubleWin.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LianQi/LianQiItemInfoWin.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LianQi/LianQiActModel.cs
@@ -48,6 +48,7 @@
        public bool isChoose2 = false;
        public int useRow2;
        public int useCol2;
        public bool isPlayAssistiveItemAnimation;
        public readonly int MaxItemLv = 11;//最大合成物等级
        public readonly int MaxGridRows = 4;
@@ -148,7 +149,7 @@
        public int no1PlayerID = 0;
        public int no1PlayerIDCross = 0;
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        public override void Init()
        {
            OperationTimeHepler.Instance.operationStartEvent += OperationStartEvent;
@@ -387,8 +388,12 @@
            lastGridData = nowGridData;
            actScore = (int)pack.ScoreHighest;
            nowGridData = JsonMapper.ToObject<int[][]>(pack.GridData);
            if (pack.OPType != 4)
            if (pack.OPType == 1 || pack.OPType == 3)
            {
                isPause = false;
            }
            else if (pack.OPType == 2 && nowAssistiveItemNum != 4)
            {
                isPause = false;
            }
@@ -596,6 +601,66 @@
            return lastNonClaimedIndex >= 0 ? lastNonClaimedIndex : 0;
        }
        public bool IsCanSendUseItem()
        {
            if (!IsJoin)
            {
                SysNotifyMgr.Instance.ShowTip("ActionUnOpen1");
                return false;
            }
            int itemID = nowAssistiveItemId;
            int num = nowAssistiveItemNum;
            //道具数量不足
            if (packModel.GetItemCountByID(PackType.Item, itemID) <= 0)
            {
                SysNotifyMgr.Instance.ShowTip("LianQiAct02");
                return false;
            }
            //该道具该局已达使用次数上限
            if (!limitUsesToolCntDict.TryGetValue(itemID, out int cnt))
                return false;
            int useItemCnt = GetUseItemCnt(nowPlayerInfo.UseItemCntList, num);
            if (useItemCnt >= cnt)
            {
                SysNotifyMgr.Instance.ShowTip("LianQiAct03");
                return false;
            }
            if (nowAssistiveItemNum == 1)
            {
                //棋盘上只有一个物品时,无法摧毁
                if (PieceCount(nowGridData) <= 1)
                {
                    SysNotifyMgr.Instance.ShowTip("LianQiAct06");
                    return false;
                }
            }
            else if (nowAssistiveItemNum == 2)
            {
                //棋盘上只有一个物品时,无法交换
                if (PieceCount(nowGridData) <= 1)
                {
                    SysNotifyMgr.Instance.ShowTip("LianQiAct08");
                    return false;
                }
            }
            else if (nowAssistiveItemNum == 4)
            {
                //体力值已满,无法增加体力
                if (nowPlayerInfo.Energy >= maxEnergy)
                {
                    SysNotifyMgr.Instance.ShowTip("LianQiAct05");
                    return false;
                }
            }
            return true;
        }
        private void SendAA25LianqiOP(int type, int value1, int value2, int value3)
        {
            CAA25_tagCMActLianqiOP pack = new CAA25_tagCMActLianqiOP();
System/LianQi/LianQiActWin.cs
@@ -346,7 +346,6 @@
            {
                transEnergyTime.SetActive(false);
            }
        }
        private void DisplayAssistiveItem()
@@ -366,60 +365,14 @@
                        cell.countText.text = count.ToString();
                        cell.button.SetListener(() =>
                        {
                            //当前非活动参与时间,请参考具体活动时间
                            if (!model.IsJoin)
                            {
                                SysNotifyMgr.Instance.ShowTip("ActionUnOpen1");
                            if (model.isPlayAssistiveItemAnimation)
                                return;
                            }
                            //道具数量不足
                            if (packModel.GetItemCountByID(PackType.Item, itemID) <= 0)
                            {
                                SysNotifyMgr.Instance.ShowTip("LianQiAct02");
                                return;
                            }
                            //该道具该局已达使用次数上限
                            if (!model.limitUsesToolCntDict.TryGetValue(itemID, out int cnt))
                                return;
                            int useItemCnt = model.GetUseItemCnt(model.nowPlayerInfo.UseItemCntList, index + 1);
                            if (useItemCnt >= cnt)
                            {
                                SysNotifyMgr.Instance.ShowTip("LianQiAct03");
                                return;
                            }
                            model.isUseTool = true;
                            model.nowAssistiveItemNum = index + 1;
                            model.nowAssistiveItemId = itemID;
                            if (model.nowAssistiveItemNum == 1)
                            if (model.nowAssistiveItemNum == 4)
                            {
                                //棋盘上只有一个物品时,无法摧毁
                                if (model.PieceCount(model.nowGridData) <= 1)
                                {
                                    SysNotifyMgr.Instance.ShowTip("LianQiAct06");
                                    return;
                                }
                                WindowCenter.Instance.Open<LianQiItemInfoWin>();
                            }
                            else if (model.nowAssistiveItemNum == 2)
                            {
                                //棋盘上只有一个物品时,无法交换
                                if (model.PieceCount(model.nowGridData) <= 1)
                                {
                                    SysNotifyMgr.Instance.ShowTip("LianQiAct08");
                                    return;
                                }
                                WindowCenter.Instance.Open<LianQiItemInfoWin>();
                            }
                            else if (model.nowAssistiveItemNum == 4)
                            {
                                //体力值已满,无法增加体力
                                if (model.nowPlayerInfo.Energy >= model.maxEnergy)
                                {
                                    SysNotifyMgr.Instance.ShowTip("LianQiAct05");
                                    return;
                                }
                                WindowCenter.Instance.Open<LianQiItemInfoDoubleWin>();
                            }
                            else
@@ -455,37 +408,7 @@
                        return;
                    ItemConfig itemConfig = ItemConfig.Get(itemID);
                    ConfirmCancel.ShowPopConfirmEx(
        Language.Get("Mail101"),
        Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName),
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 0, model.useRow1, model.useCol1);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        },
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 0, model.useRow1, model.useCol1);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        }
        );
                    ConfirmCancel.ShowPopConfirmEx(Language.Get("Mail101"), Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName), OnConfirm1, OnConfirm1);
                }
                else if (model.nowAssistiveItemNum == 2 && model.isStartChoose && model.isChoose1 && model.isChoose2)
                {
@@ -503,37 +426,7 @@
                        return;
                    ItemConfig itemConfig = ItemConfig.Get(itemID);
                    ConfirmCancel.ShowPopConfirmEx(
        Language.Get("Mail101"),
        Language.Get("LianQi17", itemConfig.ItemName, itemInfo.Name, itemInfo2.Name),
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 1, model.useRow1, model.useCol1, model.useRow2, model.useCol2);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        },
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 1, model.useRow1, model.useCol1, model.useRow2, model.useCol2);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        }
        );
                    ConfirmCancel.ShowPopConfirmEx(Language.Get("Mail101"), Language.Get("LianQi17", itemConfig.ItemName, itemInfo.Name, itemInfo2.Name), OnConfirm2, OnConfirm2);
                }
                else if (model.nowAssistiveItemNum == 3 & model.isStartChoose && model.isChoose1)
                {
@@ -546,37 +439,7 @@
                        return;
                    ItemConfig itemConfig = ItemConfig.Get(itemID);
                    ConfirmCancel.ShowPopConfirmEx(
        Language.Get("Mail101"),
        Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName),
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 2, model.useRow1, model.useCol1);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        },
        (bool _ok) =>
        {
            if (_ok)
            {
                model.isUseTool = false;
                model.SendUseOP(1, 2, model.useRow1, model.useCol1);
            }
            else
            {
                model.isUseTool = false;
                InitPanel();
            }
        }
        );
                    ConfirmCancel.ShowPopConfirmEx(Language.Get("Mail101"), Language.Get("LianQi16", itemInfo.Name, itemConfig.ItemName), OnConfirm3, OnConfirm3);
                }
            }
@@ -596,6 +459,45 @@
                if (!WindowCenter.Instance.IsOpen<LianQiPopTipWin>())
                    WindowCenter.Instance.Open<LianQiPopTipWin>();
                return;
            }
        }
        private void OnConfirm1(bool _ok)
        {
            model.isUseTool = false;
            if (_ok && model.IsCanSendUseItem())
            {
                model.SendUseOP(1, 0, model.useRow1, model.useCol1);
            }
            else
            {
                InitPanel();
            }
        }
        private void OnConfirm2(bool _ok)
        {
            model.isUseTool = false;
            if (_ok && model.IsCanSendUseItem())
            {
                model.SendUseOP(1, 1, model.useRow1, model.useCol1, model.useRow2, model.useCol2);
            }
            else
            {
                InitPanel();
            }
        }
        private void OnConfirm3(bool _ok)
        {
            model.isUseTool = false;
            if (_ok && model.IsCanSendUseItem())
            {
                model.SendUseOP(1, 2, model.useRow1, model.useCol1);
            }
            else
            {
                InitPanel();
            }
        }
@@ -660,6 +562,7 @@
            {
                if (model.nowAssistiveItemNum == 1)
                {
                    model.isPlayAssistiveItemAnimation = true;
                    var grid = level2Arr[model.useRow1][model.useCol1];
                    grid.uiFrame.SetActive(true);
                    grid.uiFrame.SetLoopCount(1);
@@ -668,6 +571,7 @@
                }
                else if (model.nowAssistiveItemNum == 2)
                {
                    model.isPlayAssistiveItemAnimation = true;
                    var grid1Level1 = level1Arr[model.useRow1][model.useCol1];
                    var grid1Level2 = level2Arr[model.useRow1][model.useCol1];
                    var grid2Level1 = level1Arr[model.useRow2][model.useCol2];
@@ -708,6 +612,7 @@
                }
                else if (model.nowAssistiveItemNum == 3)
                {
                    model.isPlayAssistiveItemAnimation = true;
                    var grid = level2Arr[model.useRow1][model.useCol1];
                    grid.imgTx.transform.localScale = Vector3.zero;
                    Color imageColor = grid.imgTx.color;
@@ -796,9 +701,8 @@
            rectStartPosArr = RectTransListToArr(rectStartPos);
            level1Arr = LianQiActLevelListToArr(level1);
            level2Arr = LianQiActLevelListToArr(level2);
            model.isPlayAssistiveItemAnimation = false;
            model.isUseTool = false;
            model.nowAssistiveItemNum = 0;
            model.nowAssistiveItemId = 0;
            model.isStartChoose = false;
            model.isChoose1 = false;
            model.isChoose2 = false;
System/LianQi/LianQiItemInfoDoubleWin.cs
@@ -17,12 +17,25 @@
        [SerializeField] Button btnClose;
        LianQiActModel model { get { return ModelCenter.Instance.GetModel<LianQiActModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        int itemID;
        private void OnConfirm4(bool _ok)
        {
            if (_ok && model.IsCanSendUseItem())
            {
                model.SendUseOP((int)splitSlider.value, 3, 0, 0);
            }
        }
        protected override void AddListeners()
        {
            btnUse.SetListener(() =>
            {
                model.SendUseOP((int)splitSlider.value, 3, 0, 0);
                int itemID = model.nowAssistiveItemId;
                if (!ItemConfig.Has(itemID))
                    return;
                ItemConfig itemConfig = ItemConfig.Get(itemID);
                ConfirmCancel.ShowPopConfirmEx(Language.Get("Mail101"), Language.Get("LianQi20", (int)splitSlider.value, itemConfig.ItemName), OnConfirm4, OnConfirm4);
                CloseClick();
            });
@@ -34,6 +47,13 @@
            btnAdd.SetListener(() =>
            {
                int hasCount = packModel.GetItemCountByID(PackType.Item, itemID);
                if (hasCount < 0)
                {
                    SysNotifyMgr.Instance.ShowTip("LianQiAct02");
                    return;
                }
                if (splitSlider.value < splitSlider.maxValue)
                {
                    splitSlider.value++;
@@ -42,6 +62,13 @@
            btnReduce.SetListener(() =>
            {
                int hasCount = packModel.GetItemCountByID(PackType.Item, itemID);
                if (hasCount < 0)
                {
                    SysNotifyMgr.Instance.ShowTip("LianQiAct02");
                    return;
                }
                if (splitSlider.value > splitSlider.minValue)
                {
                    splitSlider.value--;
@@ -79,14 +106,15 @@
        private void Display()
        {
            int itemID = model.nowAssistiveItemId;
            itemID = model.nowAssistiveItemId;
            if (!ItemConfig.Has(itemID))
                return;
            ItemConfig itemConfig = ItemConfig.Get(itemID);
            int hasCount = packModel.GetItemCountByID(PackType.Item, itemID);
            var itemData = new ItemCellModel((int)itemID, false, (ulong)hasCount);
            itemCell.Init(itemData);
            itemCell.countText.SetActive(true);
            itemCell.countText.text = hasCount.ToString();
            txtName.text = itemConfig.ItemName;
            txtInfo.text = itemConfig.Description;
@@ -94,7 +122,7 @@
                return;
            int useItemCnt = model.GetUseItemCnt(model.nowPlayerInfo.UseItemCntList, model.nowAssistiveItemNum);
            txtCount.text = Language.Get("LianQi15", Mathf.Max(0, limitCnt - useItemCnt), limitCnt);
            splitSlider.maxValue = hasCount;
            splitSlider.maxValue = Mathf.Min(hasCount, limitCnt);
            splitSlider.minValue = 1;
            splitSlider.value = splitSlider.minValue;
            txtNumber.text = Mathf.Ceil(splitSlider.value).ToString();
System/LianQi/LianQiItemInfoWin.cs
@@ -20,12 +20,6 @@
                model.isStartChoose = true;
                model.isChoose1 = false;
                model.isChoose2 = false;
                ////使用道具交换道具
                //if (model.nowAssistiveItemNum != 2)
                //{
                //    model.isPause = false;
                //}
                CloseClick();
            });
@@ -64,6 +58,8 @@
            int hasCount = packModel.GetItemCountByID(PackType.Item, itemID);
            var itemData = new ItemCellModel((int)itemID, false, (ulong)hasCount);
            itemCell.Init(itemData);
            itemCell.countText.SetActive(true);
            itemCell.countText.text = hasCount.ToString();
            txtName.text = itemConfig.ItemName;
            txtInfo.text = itemConfig.Description;