| System/Alchemy/AlchemyModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Alchemy/AlchemyResultWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Alchemy/AlchemyResultWin.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Alchemy/AlchemyStoveBehaviour.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/Alchemy/AlchemyModel.cs
@@ -51,6 +51,8 @@ public int stoveExp { get; private set; } public string alchemySuccRate { get; private set; } public bool isServerPrepare { get; private set; } public event Action selectQualityRefresh; public event Action selectAlchemyRefresh; public event Action alchemyStateRefresh; @@ -67,10 +69,12 @@ m_AlchemyTimes.Clear(); stoveLevel = 0; stoveExp = 0; isServerPrepare = false; } public void OnPlayerLoginOk() { isServerPrepare = true; } void ParseConfig() @@ -262,12 +266,24 @@ { if (package.ItemCnt > 0)//炼丹成功 { } else//炼丹失败 { } if (isServerPrepare) { if (!NewBieCenter.Instance.inGuiding && WindowCenter.Instance.IsOpen<AlchemyBaseWin>()) { AlchemyResultWin.displayItem = new Item() { id = (int)package.ItemID, count = package.ItemCnt, }; WindowCenter.Instance.Open<AlchemyResultWin>(); } } } if (alchemyStateRefresh != null) System/Alchemy/AlchemyResultWin.cs
New file @@ -0,0 +1,123 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 18, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AlchemyResultWin : Window { [SerializeField] UIAlphaTween m_DisplayAlphaTween; [SerializeField] Transform m_ContainerSucc; [SerializeField] Transform m_ContainerDefeat; [SerializeField] Text m_StoveLevel; [SerializeField] Text m_StoveExp; [SerializeField] Slider m_Slider; [SerializeField] ItemBehaviour m_Item; [SerializeField] Text m_CloseTip; [SerializeField] Button m_Close; public static Item displayItem; DateTime openTime = DateTime.Now; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Close.AddListener(OnClose); } protected override void OnPreOpen() { Display(); m_DisplayAlphaTween.SetStartState(); m_CloseTip.gameObject.SetActive(false); openTime = DateTime.Now; } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void LateUpdate() { base.LateUpdate(); if ((DateTime.Now - openTime).TotalSeconds > 2f && !m_CloseTip.gameObject.activeSelf) { m_CloseTip.gameObject.SetActive(true); } } #endregion void Display() { DisplayStove(); m_ContainerDefeat.gameObject.SetActive(displayItem.count == 0); m_ContainerSucc.gameObject.SetActive(displayItem.count > 0); if (displayItem.count > 0) { DisplayItem(); } } void DisplayStove() { m_StoveLevel.text = StringUtility.Contact("Lv.", model.stoveLevel); var isMax = !RefineStoveConfig.Has(model.stoveLevel + 1); var stoveConfig = RefineStoveConfig.Get(model.stoveLevel); if (isMax) { m_StoveExp.text = "已满级"; m_Slider.value = 1; } else { m_StoveExp.text = StringUtility.Contact(model.stoveExp, "/", stoveConfig.Exp); var progress = Mathf.Clamp01((float)model.stoveExp / stoveConfig.Exp); m_Slider.value = progress; } } void DisplayItem() { m_Item.SetItem(displayItem); } private void OnClose() { if ((DateTime.Now - openTime).TotalSeconds < 2f) { return; } CloseClick(); } } } System/Alchemy/AlchemyResultWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 10ab7e1398ec3ee4e92dd074b6f3f59e timeCreated: 1555586837 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Alchemy/AlchemyStoveBehaviour.cs
@@ -38,6 +38,8 @@ } } float timer = 0f; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } @@ -49,7 +51,6 @@ public void Display() { model.selectAlchemyRefresh += SelectAlchemyRefresh; GlobalTimeEvent.Instance.secondEvent += PerSecond; model.alchemyStateRefresh += AlchemyStateRefresh; PlayerDatas.Instance.playerDataRefreshEvent += PlayerDataRefreshEvent; packModel.refreshItemCountEvent += RefreshItemCountEvent; @@ -112,7 +113,7 @@ { var config = AlchemyConfig.Get(model.selectAlchemy); var startTime = TimeUtility.GetTime(tick); var seconds = Mathf.CeilToInt(config.NeedTime - (float)(TimeUtility.ServerNow - startTime).TotalSeconds); var seconds = (int)(config.NeedTime - (float)(TimeUtility.ServerNow - startTime).TotalSeconds); m_AlchemyTime.text = TimeUtility.SecondsToHMS(seconds); } break; @@ -167,6 +168,16 @@ } } private void LateUpdate() { timer += Time.deltaTime; if (timer >= 0.5f) { timer = 0f; PerSecond(); } } private void PerSecond() { var _state = model.GetStoveState(model.selectAlchemy); @@ -202,7 +213,7 @@ var succRate = model.GetAlchemySuccRate(model.selectAlchemy); if (succRate / 100 < 100) { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), "", (bool isOk) => ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), "成功率偏低,炼丹失败无法获得丹药,是否确定要炼丹?", (bool isOk) => { if (isOk) { @@ -257,7 +268,6 @@ public void Dispose() { model.selectAlchemyRefresh -= SelectAlchemyRefresh; GlobalTimeEvent.Instance.secondEvent -= PerSecond; model.alchemyStateRefresh -= AlchemyStateRefresh; PlayerDatas.Instance.playerDataRefreshEvent -= PlayerDataRefreshEvent; packModel.refreshItemCountEvent -= RefreshItemCountEvent;