| System/KnapSack/Logic/PackSendQuestMgr.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/BatchUseModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/OfflineHangUpUseWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/KnapSack/New/OfflineHangUpUseWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | 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: