少年修仙传客户端代码仓库
Client_PangDeRong
2018-10-25 cd6cbe8ed6c2d5b8c7f294b451d25d820ecdc83f
4326 【前端】【1.2.0】离线挂机符批量使用修改
2个文件已修改
2个文件已添加
224 ■■■■■ 已修改文件
System/KnapSack/Logic/PackSendQuestMgr.cs 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/BatchUseModel.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/OfflineHangUpUseWin.cs 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/OfflineHangUpUseWin.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -824,7 +824,25 @@
                return;
            }
            if (useItemModel.itemInfo.ItemID == fairyModel.changeFairyNameItem)
            if(itemModel.itemId == 952)
            {
                int maxUseCnt = GetOfflineMaxNum(itemModel);
                if(maxUseCnt <= 1)
                {
                    if (!CheckIsMaxOfflineTime(maxUseCnt,itemModel))
                    {
                        SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
                    }
                }
                else
                {
                    BatchUseModel.Instance.SetOfflineUseModel(itemModel.itemInfo.ItemGUID);
                    WindowCenter.Instance.Open<OfflineHangUpUseWin>();
                }
                return;
            }
            if (itemModel.itemInfo.ItemID == fairyModel.changeFairyNameItem)
            {
                if (PlayerDatas.Instance.fairyData.HasFairy)
                {
@@ -867,12 +885,6 @@
                {
                    switch (itemModel.itemInfo.ItemID)
                    {
                        case 952:
                            if (!CheckIsMaxOfflineTime(itemModel))
                            {
                                SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
                            }
                            break;
                        case RoleRenameWin.renameToolId:
                            WindowCenter.Instance.Open<RoleRenameWin>();
                            break;
@@ -888,29 +900,47 @@
                }
            }
        }
        private bool CheckIsMaxOfflineTime(ItemModel itemModel)
        public int GetOfflineMaxNum(ItemModel itemModel)
        {
            int willTime = HangUpSetModel.Instance.offlinePluginTime + itemModel.chinItemModel.EffectValueA1;
            if (HangUpSetModel.Instance.offlinePluginTime >= HangUpSetModel.Instance.maxOfflinePluginTime)
            int remainOffline = HangUpSetModel.Instance.maxOfflinePluginTime - HangUpSetModel.Instance.offlinePluginTime;
            int maxUseCnt = 0;
            if (remainOffline > 0)
            {
                int extraCnt = remainOffline % itemModel.chinItemModel.EffectValueA1 > 0 ? 1 : 0;
                maxUseCnt = remainOffline / itemModel.chinItemModel.EffectValueA1 + extraCnt;
                if (maxUseCnt > itemModel.itemInfo.ItemCount)
                {
                    return itemModel.itemInfo.ItemCount;
                }
            }
            return maxUseCnt;
        }
        public bool CheckIsMaxOfflineTime(int useNum, ItemModel itemModel)
        {
            int remainOffline = HangUpSetModel.Instance.maxOfflinePluginTime - HangUpSetModel.Instance.offlinePluginTime;
            if (remainOffline <= 0)
            {
                SysNotifyMgr.Instance.ShowTip("OfflinePluginTime");
                return true;
            }
            else if (willTime > HangUpSetModel.Instance.maxOfflinePluginTime)
            else
            {
                ConfirmCancel.ShowPopConfirm(Language.Get("OfflinePluginTime102"), Language.Get("OfflinePluginTime101"), (bool isOk) =>
                int willTime = HangUpSetModel.Instance.offlinePluginTime + itemModel.chinItemModel.EffectValueA1 * useNum;
                if (willTime > HangUpSetModel.Instance.maxOfflinePluginTime)
                {
                    if (isOk)
                    ConfirmCancel.ShowPopConfirm(Language.Get("OfflinePluginTime102"), Language.Get("OfflinePluginTime101"), (bool isOk) =>
                    {
                        SendMakeUseQuest(itemModel.itemInfo.ItemPlace);
                    }
                });
                return true;
                        if (isOk)
                        {
                           SendMakeUseQuest(itemModel.itemInfo.ItemPlace,useNum);
                        }
                    });
                    return true;
                }
            }
            return false;
        }
        public void SendMakeUseQuest(int index, int useCnt = 1, int extra = 0)
        {
            ItemModel itemModel = playerPack.GetItemModelByIndex(PackType.rptItem,index);
System/KnapSack/New/BatchUseModel.cs
@@ -51,5 +51,13 @@
            storeConfig = null;
        }
        #endregion
        #region 离线挂机服使用数据
        public string offlineGuid { get; private set; }
        public void SetOfflineUseModel(string guid)
        {
            this.offlineGuid = guid;
        }
        #endregion
    }
}
System/KnapSack/New/OfflineHangUpUseWin.cs
New file
@@ -0,0 +1,136 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class OfflineHangUpUseWin : Window
    {
        [SerializeField] Slider _batchUseSlider;
        [SerializeField] Text _number;
        [SerializeField] Button _addBtn;
        [SerializeField] Button _reduceBtn;
        [SerializeField] Button _useBtn;
        [SerializeField] Button _closeBtn;
        [SerializeField] Text offlineText;
        private ItemModel itemModel;
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
        {
            get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
        }
        #region Built-in
        protected override void BindController()
        {
        }
        protected override void AddListeners()
        {
            _addBtn.onClick.AddListener(OnClickAddBtn);
            _reduceBtn.onClick.AddListener(OnClickReduceBtn);
            _useBtn.onClick.AddListener(OnClickBatchUseBtn);
            _closeBtn.onClick.AddListener(CloseClick);
            _batchUseSlider.onValueChanged.AddListener(delegate
            {
                OnUseValueChange();
            });
        }
        protected override void OnPreOpen()
        {
            Display();
        }
        protected override void OnAfterOpen()
        {
        }
        protected override void OnPreClose()
        {
        }
        protected override void OnAfterClose()
        {
        }
        #endregion
        public void Display()
        {
            itemModel = playerPack.GetItemModelByGUID(BatchUseModel.Instance.offlineGuid);
            if (itemModel == null) return;
            int maxOfflineNum = PackSendQuestMgr.Instance.GetOfflineMaxNum(itemModel);
            _batchUseSlider.maxValue = maxOfflineNum;
            _batchUseSlider.minValue = 1;
            _batchUseSlider.value = _batchUseSlider.minValue;
            OnUseValueChange();
        }
        public void OnUseValueChange()
        {
            _number.text = Mathf.Ceil(_batchUseSlider.value).ToString();
            UpdateOfflineTime();
        }
        public void UpdateOfflineTime()
        {
            if (itemModel == null) return;
            offlineText.text = GetOfflinePluginTime();
        }
        public void OnClickAddBtn()
        {
            if (_batchUseSlider.value < _batchUseSlider.maxValue)
            {
                _batchUseSlider.value++;
            }
        }
        public void OnClickReduceBtn()
        {
            if (_batchUseSlider.value > _batchUseSlider.minValue)
            {
                _batchUseSlider.value--;
            }
        }
        public void OnClickBatchUseBtn()
        {
            if (itemModel == null)
                return;
            bool isMax = PackSendQuestMgr.Instance.CheckIsMaxOfflineTime((int)Mathf.Ceil(_batchUseSlider.value), itemModel);
            if(!isMax)
            {
                PackSendQuestMgr.Instance.SendMakeUseQuest(itemModel.itemInfo.ItemPlace, (int)Mathf.Ceil(_batchUseSlider.value));
            }
            CloseClick();
        }
        public string GetOfflinePluginTime()
        {
            TimeSpan timeSpan = TimeSpan.FromSeconds(HangUpSetModel.Instance.offlinePluginTime);
            string s = "";
            if (timeSpan.Hours > 0)
            {
                s = Language.Get("ItemOverdue103", timeSpan.Hours);
            }
            if (timeSpan.Minutes > 0)
            {
                s = StringUtility.Contact(s, Language.Get("ItemOverdue104", timeSpan.Minutes));
            }
            if (s == "")
            {
                s = Language.Get("ItemOverdue104", 0);
            }
            int addHour = (itemModel.chinItemModel.EffectValueA1 / 3600)* (int)Mathf.Ceil(_batchUseSlider.value);
            s = StringUtility.Contact(s,"+", Language.Get("ItemOverdue103",addHour));
            return s;
        }
    }
}
System/KnapSack/New/OfflineHangUpUseWin.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5682063d28a2b244db79c05ce7f0075e
timeCreated: 1540449836
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: