System/Alchemy/AlchemyBaseWin.cs
New file @@ -0,0 +1,100 @@ //-------------------------------------------------------- // [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 AlchemyBaseWin : Window { [SerializeField] FunctionButtonGroup m_FuncGroup; [SerializeField] FunctionButton m_AlchemyNormal; [SerializeField] FunctionButton m_AlchemyFairy; [SerializeField] Button m_Close; [SerializeField] Button m_Left; [SerializeField] Button m_Right; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_AlchemyNormal.AddListener(ShowAlchemyNormal); m_AlchemyFairy.AddListener(ShowAlchemyFairy); m_Left.AddListener(()=> { m_FuncGroup.TriggerLast(); }); m_Right.AddListener(()=> { m_FuncGroup.TriggerNext(); }); m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { } protected override void OnActived() { base.OnActived(); m_FuncGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { CloseSubWindows(); if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } protected override void OnAfterClose() { } #endregion private void ShowAlchemyFairy() { CloseSubWindows(); WindowCenter.Instance.Open<AlchemyFairyDrugWin>(); functionOrder = m_AlchemyFairy.order; } private void ShowAlchemyNormal() { CloseSubWindows(); WindowCenter.Instance.Open<AlchemyBasicDrugWin>(); functionOrder = m_AlchemyNormal.order; } private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("AlchemyBaseWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } } } System/Alchemy/AlchemyBaseWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 0b437d3b0173d5845add5741ae809f44 timeCreated: 1555556613 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Alchemy/AlchemyBasicDrugWin.cs
@@ -6,6 +6,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; @@ -14,7 +15,13 @@ public class AlchemyBasicDrugWin : Window { [SerializeField] AlchemyBasicPanel m_AlchemyPanel; [SerializeField] AlchemyScrollBehaviour m_AlchemyScroll; [SerializeField] AlchemyDrugBriefBehaviour m_AlchemyDrug; [SerializeField] AlchemyStudyBehaviour m_AlchemyStudy; [SerializeField] AlchemyBriefBehaviour m_AlchemyBrief; [SerializeField] AlchemyStoveBehaviour m_AlchemyStove; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } #region Built-in protected override void BindController() { @@ -26,9 +33,15 @@ protected override void OnPreOpen() { Display(); SetDefaultSelect(); m_AlchemyPanel.Display((int)AlchemyType.Normal); m_AlchemyScroll.Display((int)AlchemyType.Normal); DisplayAlchmey(); m_AlchemyDrug.Display(); m_AlchemyStove.Display(); model.selectAlchemyRefresh += SelectAlchemyRefresh; model.selectQualityRefresh += SelectQualityRefresh; } protected override void OnAfterOpen() @@ -37,7 +50,14 @@ protected override void OnPreClose() { m_AlchemyPanel.Dispose(); m_AlchemyScroll.Dispose(); m_AlchemyDrug.Dispose(); m_AlchemyStudy.Dispose(); m_AlchemyBrief.Dispose(); m_AlchemyStove.Dispose(); model.selectAlchemyRefresh -= SelectAlchemyRefresh; model.selectQualityRefresh -= SelectQualityRefresh; } protected override void OnAfterClose() @@ -45,9 +65,42 @@ } #endregion void Display() void SetDefaultSelect() { var qualities = AlchemyConfig.GetAlchemyQualities((int)AlchemyType.Normal); model.selectQuality = qualities.First(); var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Normal, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectQualityRefresh() { var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Normal, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectAlchemyRefresh() { DisplayAlchmey(); } void DisplayAlchmey() { var grasp = model.IsGraspRecipe(model.selectAlchemy); m_AlchemyStudy.gameObject.SetActive(!grasp); m_AlchemyBrief.gameObject.SetActive(grasp); if (grasp) { m_AlchemyStudy.Display(); m_AlchemyBrief.Dispose(); } else { m_AlchemyBrief.Display(); m_AlchemyStudy.Dispose(); } } } } System/Alchemy/AlchemyBriefBehaviour.cs
@@ -1,4 +1,5 @@ using System.Collections; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; @@ -11,14 +12,10 @@ [SerializeField] Text m_AlchemyCount; [SerializeField] Text m_AlchemySuccRate; int alchemyId = 0; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } public void Display(int alchemyId) public void Display() { this.alchemyId = alchemyId; DisplayAlchemyTime(); DisplayAlchemyCount(); DisplaySuccRate(); @@ -26,14 +23,14 @@ void DisplayAlchemyTime() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_AlchemyTime.text = TimeUtility.SecondsToDHMSCHS(config.NeedTime); } void DisplayAlchemyCount() { AlchemyCount alchemyCount; if (model.TryGetAlchemyCount(alchemyId, out alchemyCount)) if (model.TryGetAlchemyCount(model.selectAlchemy, out alchemyCount)) { if (alchemyCount.min == alchemyCount.max) { @@ -48,14 +45,13 @@ void DisplaySuccRate() { var succRate = model.GetAlchemySuccRate(alchemyId); var succRate = model.GetAlchemySuccRate(model.selectAlchemy); var rate = (int)(succRate / 100); m_AlchemySuccRate.text = rate + "%"; } public void Dispose() { } } } System/Alchemy/AlchemyDrugBriefBehaviour.cs
@@ -1,4 +1,5 @@ using System.Collections; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; @@ -12,28 +13,29 @@ [SerializeField] PropertyBehaviour[] m_Propertys; [SerializeField] Text m_Effect; int alchemyId = 0; static Dictionary<int, int> s_Propertys = new Dictionary<int, int>(); public void Display(int alchemyId) { this.alchemyId = alchemyId; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } public void Display() { DisplayItem(); DisplayProperty(); DisplayEffect(); model.selectAlchemyRefresh -= SelectAlchemyRefresh; model.selectAlchemyRefresh += SelectAlchemyRefresh; } void DisplayItem() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_Item.SetItem(config.AlchemItemID, 0); } void DisplayProperty() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_ContainerProperty.gameObject.SetActive(config.drugPromoteType == 1); if (config.drugPromoteType == 1) { @@ -58,7 +60,7 @@ void DisplayEffect() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_Effect.gameObject.SetActive(config.drugPromoteType == 2); if (config.drugPromoteType == 2) { @@ -66,9 +68,16 @@ } } private void SelectAlchemyRefresh() { DisplayItem(); DisplayProperty(); DisplayEffect(); } public void Dispose() { model.selectAlchemyRefresh -= SelectAlchemyRefresh; } static void GetItemPromoteProperty(ItemConfig config, ref Dictionary<int, int> dict) System/Alchemy/AlchemyFairyDrugWin.cs
New file @@ -0,0 +1,111 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, April 18, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AlchemyFairyDrugWin : Window { [SerializeField] AlchemyScrollBehaviour m_AlchemyScroll; [SerializeField] AlchemyDrugBriefBehaviour m_AlchemyDrug; [SerializeField] AlchemyStudyBehaviour m_AlchemyStudy; [SerializeField] AlchemyBriefBehaviour m_AlchemyBrief; [SerializeField] AlchemyStoveBehaviour m_AlchemyStove; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { SetDefaultSelect(); m_AlchemyScroll.Display((int)AlchemyType.Fairy); DisplayAlchmey(); m_AlchemyDrug.Display(); m_AlchemyStove.Display(); model.selectAlchemyRefresh += SelectAlchemyRefresh; model.selectQualityRefresh += SelectQualityRefresh; } protected override void OnAfterOpen() { } protected override void OnPreClose() { m_AlchemyScroll.Dispose(); m_AlchemyDrug.Dispose(); m_AlchemyStudy.Dispose(); m_AlchemyBrief.Dispose(); m_AlchemyStove.Dispose(); model.selectAlchemyRefresh -= SelectAlchemyRefresh; model.selectQualityRefresh -= SelectQualityRefresh; } protected override void OnAfterClose() { } #endregion void SetDefaultSelect() { var qualities = AlchemyConfig.GetAlchemyQualities((int)AlchemyType.Fairy); model.selectQuality = qualities.First(); var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Fairy, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectQualityRefresh() { var alchemys = AlchemyConfig.GetAlchemies((int)AlchemyType.Normal, model.selectQuality); model.selectAlchemy = alchemys[0]; } private void SelectAlchemyRefresh() { DisplayAlchmey(); } void DisplayAlchmey() { var grasp = model.IsGraspRecipe(model.selectAlchemy); m_AlchemyStudy.gameObject.SetActive(!grasp); m_AlchemyBrief.gameObject.SetActive(grasp); if (grasp) { m_AlchemyStudy.Display(); m_AlchemyBrief.Dispose(); } else { m_AlchemyBrief.Display(); m_AlchemyStudy.Dispose(); } } } } System/Alchemy/AlchemyFairyDrugWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: a956b841a88839a4594216946ae6bb55 timeCreated: 1555568773 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Alchemy/AlchemyQualityCell.cs
@@ -27,6 +27,7 @@ this.quality = quality; m_QualityName.text = string.Format("{0}品丹方", Language.Get("Num_CHS_" + quality)); m_ContainerSelect.gameObject.SetActive(model.selectQuality == quality); m_Arrow.transform.localEulerAngles = new Vector3(0, 0, model.selectQuality == quality ? -90 : 0); } private void OnSelect() System/Alchemy/AlchemyScrollBehaviour.cs
File was renamed from System/Alchemy/AlchemyBasicPanel.cs @@ -4,7 +4,7 @@ using UnityEngine; namespace Snxxz.UI { public class AlchemyBasicPanel : MonoBehaviour public class AlchemyScrollBehaviour : MonoBehaviour { [SerializeField] ScrollerController m_Controller; System/Alchemy/AlchemyScrollBehaviour.cs.meta
System/Alchemy/AlchemyStoveBehaviour.cs
@@ -82,15 +82,27 @@ void DisplayStove() { m_ContainerAlcheming.gameObject.SetActive(state == 1); m_ContainerNormal.gameObject.SetActive(state == 0); m_ContainerComplete.gameObject.SetActive(state == 2); switch (state) { case 0: m_StoveLevel.text = StringUtility.Contact("Lv.", model.stoveLevel); var isMax = !RefineStoveConfig.Has(model.stoveLevel + 1); var stoveConfig = RefineStoveConfig.Get(model.stoveLevel); m_StoveExp.text = StringUtility.Contact(model.stoveExp, "/", stoveConfig.Exp); var progress = Mathf.Clamp01((float)model.stoveExp / stoveConfig.Exp); m_StoveExpSlider.value = progress; if (isMax) { m_StoveExp.text = "已满级"; m_StoveExpSlider.value = 1; } else { m_StoveExp.text = StringUtility.Contact(model.stoveExp, "/", stoveConfig.Exp); var progress = Mathf.Clamp01((float)model.stoveExp / stoveConfig.Exp); m_StoveExpSlider.value = progress; } break; case 1: uint tick = 0; @@ -209,6 +221,7 @@ } } [Serializable] public class AlchemyMaterial { [SerializeField] Transform m_ContainerItem; System/Alchemy/AlchemyStudyBehaviour.cs
@@ -14,8 +14,6 @@ [SerializeField] Button m_Func; [SerializeField] Text m_FuncLabel; int alchemyId = 0; AlchemyModel model { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } @@ -24,10 +22,8 @@ m_Func.SetListener(Learn); } public void Display(int alchemyId) public void Display() { this.alchemyId = alchemyId; DisplayItem(); DisplayStoveCondition(); DisplayPropertyCondition(); @@ -36,13 +32,13 @@ void DisplayItem() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_Item.SetItem(config.LearnNeedItemID, 1); } void DisplayStoveCondition() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_StoveCondition.gameObject.SetActive(config.LearnNeedAlchemLV > 0); if (config.LearnNeedAlchemLV > 0) { @@ -54,7 +50,7 @@ void DisplayPropertyCondition() { var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); m_PropertyCondition.gameObject.SetActive(config.LearnNeedLuck > 0); if (config.LearnNeedLuck > 0) { @@ -78,7 +74,7 @@ if (TryLearn(out error)) { var pak = new CA576_tagCMPlayerRefine(); pak.AlchemyID = (uint)alchemyId; pak.AlchemyID = (uint)model.selectAlchemy; pak.DoType = 0; GameNetSystem.Instance.SendInfo(pak); } @@ -91,7 +87,7 @@ bool TryLearn(out int error) { error = 0; var config = AlchemyConfig.Get(alchemyId); var config = AlchemyConfig.Get(model.selectAlchemy); var count = packModel.GetItemCountByID(PackType.Item, config.LearnNeedItemID); if (count <= 0) { @@ -129,7 +125,6 @@ public void Dispose() { } } } System/DailyQuest/DailyQuestWin.cs
@@ -470,7 +470,7 @@ private void GotoBlastStove() { WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<BlastFurnaceWin>(); WindowCenter.Instance.Open<AlchemyBaseWin>(); } private void GotoBountyMission() System/MainInterfacePanel/LowSettingTip.cs
@@ -74,7 +74,7 @@ void OnClickBagualuBtn() { WindowCenter.Instance.Close<MainInterfaceWin>(); WindowCenter.Instance.Open<BlastFurnaceWin>(); WindowCenter.Instance.Open<AlchemyBaseWin>(); } void SkillButton() System/Tip/PromoteDetailsWin.cs
@@ -110,7 +110,7 @@ //WindowCenter.Instance.Open<EquipReinforceWin>(false, 1); break; case RolePromoteModel.PromoteDetailType.BlastFurnace: WindowCenter.Instance.Open<BlastFurnaceWin>(false, 1); WindowCenter.Instance.Open<AlchemyBaseWin>(false, 0); break; } CloseClick(); System/Treasure/FairyTreasureCollectPanelPattern5.cs
@@ -401,7 +401,7 @@ { WindowCenter.Instance.Close<TreasureBaseWin>(); WindowCenter.Instance.Close<MainInterfaceWin>(); WindowCenter.Instance.Open<BlastFurnaceWin>(); WindowCenter.Instance.Open<AlchemyBaseWin>(); } private void Active() System/WindowJump/WindowJumpMgr.cs
@@ -388,7 +388,7 @@ SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID); break; case JumpUIType.BlastFurnaceFunc1: SetJumpLogic<BlastFurnaceWin>(_tagWinSearchModel.TABID); SetJumpLogic<AlchemyBaseWin>(_tagWinSearchModel.TABID); break; case JumpUIType.MyTeamType1: case JumpUIType.TeamListType1: @@ -504,7 +504,7 @@ { RoleElixirTipWin.makeUseId = ItemOperateUtility.Instance.useItemModel.itemId; } SetJumpLogic<BlastFurnaceWin>(_tagWinSearchModel.TABID); SetJumpLogic<AlchemyBaseWin>(_tagWinSearchModel.TABID); break; case JumpUIType.SevenDaysTour281: case JumpUIType.SevenDaysTour282: @@ -541,7 +541,7 @@ case JumpUIType.Alchemyrescripte104: case JumpUIType.Alchemyrescripte105: ModelCenter.Instance.GetModel<BlastFurnaceModel>().jumpToPrescripe = int.Parse(_tagWinSearchModel.SelectActive); SetJumpLogic<BlastFurnaceWin>(_tagWinSearchModel.TABID); SetJumpLogic<AlchemyBaseWin>(_tagWinSearchModel.TABID); break; case JumpUIType.AttackMagicianType1: case JumpUIType.AttackMagicianType2: