Core/NetworkPackage/DTCFile/ServerPack/HAD_SaleActivity.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 3e05761d690b75440a6be79207d0fb01 folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HAE_Truck.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 1d70ccd06161e0443b7a802ad94292f8 folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HAF_Merge.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 71e878ac60c49ad4f964dd2dbc725739 folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/DTCFile/ServerPack/HB0_Event.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: eed34091b0568664b9fb42f0634496c1 folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAD_SaleActivity.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 32ceb8b7faf99f84a8b73ce53c5e3e4d folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAE_Truck.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: 77f69c2b862d1704299a32d0d8eeb71e folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HAF_Merge.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: fa14960fa44b0d1439bab471a764e34f folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HB0_Event.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: d914565b65f8e8145988734c4d915834 folderAsset: yes timeCreated: 1547643019 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: System/Alchemy/AlchemyBaseWin.cs
@@ -28,17 +28,17 @@ protected override void AddListeners() { m_AlchemyNormal.AddListener(ShowAlchemyNormal); m_AlchemyFairy.AddListener(ShowAlchemyFairy); m_AlchemyDrug.AddListener(ShowAlchemyDrug); m_Left.AddListener(()=> m_AlchemyNormal.AddListener(ShowAlchemyNormal); m_AlchemyFairy.AddListener(ShowAlchemyFairy); m_AlchemyDrug.AddListener(ShowAlchemyDrug); m_Left.AddListener(()=> { m_FuncGroup.TriggerLast(); }); m_Right.AddListener(()=> }); m_Right.AddListener(()=> { m_FuncGroup.TriggerNext(); }); }); m_Close.AddListener(CloseClick); } @@ -58,10 +58,10 @@ protected override void OnPreClose() { CloseSubWindows(); if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); CloseSubWindows(); if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } @@ -93,10 +93,10 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("AlchemyBaseWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); var children = WindowConfig.GetChildWindows("AlchemyBaseWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } System/Auction/AuctionHouseWin.cs
@@ -1,112 +1,112 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, February 27, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AuctionHouseWin : Window { #region Built-in //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, February 27, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AuctionHouseWin : Window { #region Built-in [SerializeField] FunctionButtonGroup m_FuncBtnGroup; [SerializeField] Button m_CloseBtn; [SerializeField] Button m_LeftBtn; [SerializeField] Button m_RightBtn; [SerializeField] FunctionButton m_FullServiceAuctionWin;//全服拍卖 [SerializeField] FunctionButton m_FamilyAuctionWin;//仙盟拍卖 [SerializeField] FunctionButton m_MyAuction;//我的拍卖 [SerializeField] FunctionButton m_MyFocus;//我的关注 [SerializeField] Button m_AttentionButton;//我的关注商品 [SerializeField] Button m_TransactionRecordButton;//成交记录 [SerializeField] Text m_MoneyText; protected override void BindController() [SerializeField] FunctionButton m_FullServiceAuctionWin;//全服拍卖 [SerializeField] FunctionButton m_FamilyAuctionWin;//仙盟拍卖 [SerializeField] FunctionButton m_MyAuction;//我的拍卖 [SerializeField] FunctionButton m_MyFocus;//我的关注 [SerializeField] Button m_AttentionButton;//我的关注商品 [SerializeField] Button m_TransactionRecordButton;//成交记录 [SerializeField] Text m_MoneyText; protected override void BindController() { AuctionInquiry.Instance.SendQueryAttentionAuctionItem();//查询拍卖行的关注物品 } protected override void AddListeners() AuctionInquiry.Instance.SendQueryAttentionAuctionItem();//查询拍卖行的关注物品 } protected override void AddListeners() { m_CloseBtn.AddListener(OnClickClose); m_LeftBtn.AddListener(OnClickLeftBtn); m_RightBtn.AddListener(OnClickRight); m_FullServiceAuctionWin.AddListener(OnClickFullServiceAuction); m_RightBtn.AddListener(OnClickRight); m_FullServiceAuctionWin.AddListener(OnClickFullServiceAuction); m_FamilyAuctionWin.AddListener(OnClickFamilyAuction); m_MyAuction.AddListener(OnClickMyAuction); m_MyFocus.AddListener(OnClickMyFocus); m_MyFocus.AddListener(OnClickMyFocus); m_AttentionButton.AddListener(OnClickAttentionButton); m_TransactionRecordButton.AddListener(OnClickTransactionRecordButton); m_AttentionButton.AddListener(OnClickAttentionButton); m_TransactionRecordButton.AddListener(OnClickTransactionRecordButton); } AuctionModel model { get { return ModelCenter.Instance.GetModel<AuctionModel>(); } } protected override void OnPreOpen() { m_MoneyText.text = UIHelper.GetMoneyCnt(1).ToString(); model.SetDayRemind(); AuctionModel model { get { return ModelCenter.Instance.GetModel<AuctionModel>(); } } protected override void OnPreOpen() { m_MoneyText.text = UIHelper.GetMoneyCnt(1).ToString(); model.SetDayRemind(); } protected override void OnActived() { //OnClickFullServiceAuction(); m_FuncBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() } protected override void OnAfterOpen() { PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting; } protected override void OnPreClose() PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting; } protected override void OnPreClose() { CloseChild(); if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>()) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } protected override void OnAfterClose() } } protected override void OnAfterClose() { PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting; PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting; } #endregion #endregion private void Updatefighting(PlayerDataType info) { if (info == PlayerDataType.Gold) { m_MoneyText.text = UIHelper.GetMoneyCnt(1).ToString(); } } } private void OnClickClose() { CloseImmediately(); } } private void OnClickLeftBtn() { m_FuncBtnGroup.TriggerLast(); } } private void OnClickRight() { m_FuncBtnGroup.TriggerNext(); } } private void OnClickFullServiceAuction() { CloseChild(); WindowCenter.Instance.Open<FullServiceAuctionWin>(true); functionOrder = m_FullServiceAuctionWin.order; } } private void OnClickFamilyAuction() { CloseChild(); @@ -139,16 +139,16 @@ private void CloseChild() { var children = WindowConfig.Get().FindChildWindows("AuctionHouseWin"); var children = WindowConfig.GetChildWindows("AuctionHouseWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } } } } } } System/Compose/New/ComposeWin.cs
@@ -244,7 +244,7 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("ComposeWin"); var children = WindowConfig.GetChildWindows("ComposeWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/CrossServerOneVsOne/CrossServerWin.cs
@@ -98,7 +98,7 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("CrossServerWin"); var children = WindowConfig.GetChildWindows("CrossServerWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Dogz/DogzWin.cs
@@ -124,7 +124,7 @@ void CloseChild() { var children = WindowConfig.Get().FindChildWindows("DogzWin"); var children = WindowConfig.GetChildWindows("DogzWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Equip/EquipFrameWin.cs
@@ -73,7 +73,7 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("EquipFrameWin"); var children = WindowConfig.GetChildWindows("EquipFrameWin"); foreach (var item in children) { WindowCenter.Instance.Close(item); @@ -89,8 +89,8 @@ private void OpenStrengthenWin() { CloseSubWindows(); WindowCenter.Instance.Open<EquipStrengthWin>(); CloseSubWindows(); WindowCenter.Instance.Open<EquipStrengthWin>(); functionOrder = m_Strengthen.order; } System/FairyAu/UnionPanel.cs
@@ -134,7 +134,7 @@ void CloseChildWin() { funcPanel.SetActive(false); var children = WindowConfig.Get().FindChildWindows("UnionPanel"); var children = WindowConfig.GetChildWindows("UnionPanel"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/FairylandCeremony/FairylandCeremonyWin.cs
@@ -112,7 +112,7 @@ private void CloseChildWin() { var children = WindowConfig.Get().FindChildWindows("FairylandCeremonyWin"); var children = WindowConfig.GetChildWindows("FairylandCeremonyWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/FindPrecious/FindPreciousFrameWin.cs
@@ -12,37 +12,20 @@ namespace Snxxz.UI { public class FindPreciousFrameWin : Window public class FindPreciousFrameWin : OneLevelWin { [SerializeField] FunctionButtonGroup m_FunctionGroup; [SerializeField] FunctionButton m_DemonJar; [SerializeField] FunctionButton m_WorldBoss; [SerializeField] FunctionButton m_BossHome; [SerializeField] FunctionButton m_PersonalBoss; [SerializeField] FunctionButton m_ElderGodArea; [SerializeField] FunctionButton m_DropRecord; [SerializeField] Button m_Left; [SerializeField] Button m_Right; [SerializeField] Button m_Close; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_DemonJar.AddListener(ShowDemonJar); m_WorldBoss.AddListener(ShowWorldBoss); m_BossHome.AddListener(ShowBossHome); m_PersonalBoss.AddListener(ShowPersonalBoss); m_ElderGodArea.AddListener(ShowElderGodArea); m_DropRecord.AddListener(ShowDropRecord); m_Left.AddListener(ShowLastFunction); m_Right.AddListener(ShowNextFunction); m_Close.AddListener(CloseClick); base.AddListeners(); SetFunctionListener(0, ShowDemonJar); SetFunctionListener(1, ShowWorldBoss); SetFunctionListener(2, ShowBossHome); SetFunctionListener(3, ShowPersonalBoss); SetFunctionListener(4, ShowElderGodArea); SetFunctionListener(5, ShowDropRecord); } protected override void OnPreOpen() @@ -61,20 +44,11 @@ protected override void OnAfterClose() { if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } protected override void OnActived() { base.OnActived(); m_Left.gameObject.SetActive(m_FunctionGroup.unLockedCount > 1); m_Right.gameObject.SetActive(m_FunctionGroup.unLockedCount > 1); m_FunctionGroup.TriggerByOrder(functionOrder); m_FunctionGroup.GotoOrder(functionOrder); } #endregion @@ -82,61 +56,42 @@ { CloseSubWindows(); WindowCenter.Instance.Open<DemonJarWin>(); functionOrder = m_DemonJar.order; functionOrder = 0; } private void ShowWorldBoss() { CloseSubWindows(); WindowCenter.Instance.Open<WorldBossWin>(); functionOrder = m_WorldBoss.order; functionOrder = 1; } private void ShowBossHome() { CloseSubWindows(); WindowCenter.Instance.Open<BossHomeWin>(); functionOrder = m_BossHome.order; functionOrder = 2; } private void ShowPersonalBoss() { CloseSubWindows(); WindowCenter.Instance.Open<PersonalBossWin>(); functionOrder = m_PersonalBoss.order; functionOrder = 3; } private void ShowElderGodArea() { CloseSubWindows(); WindowCenter.Instance.Open<ElderGodAreaWin>(); functionOrder = m_ElderGodArea.order; functionOrder = 4; } private void ShowDropRecord() { CloseSubWindows(); WindowCenter.Instance.Open<PreciousDropRecordWin>(); functionOrder = m_DropRecord.order; } private void CloseSubWindows() { var subWindows = WindowConfig.Get().FindChildWindows("FindPreciousFrameWin"); foreach ( var window in subWindows ) { WindowCenter.Instance.Close(window); } } private void ShowLastFunction() { m_FunctionGroup.TriggerLast(); } private void ShowNextFunction() { m_FunctionGroup.TriggerNext(); functionOrder = 5; } } System/FindPrecious/LootPreciousFrameWin.cs
@@ -118,7 +118,7 @@ { m_NormalBottom.gameObject.SetActive(false); var children = WindowConfig.Get().FindChildWindows("LootPreciousFrameWin"); var children = WindowConfig.GetChildWindows("LootPreciousFrameWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/FriendSystem/New/SocialWin.cs
@@ -89,7 +89,7 @@ void CloseChild() { friendTipsObj.SetActive(false); var children = WindowConfig.Get().FindChildWindows("SocialWin"); var children = WindowConfig.GetChildWindows("SocialWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/HappyXB/HappyXBWin.cs
@@ -133,7 +133,7 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("HappyXBWin"); var children = WindowConfig.GetChildWindows("HappyXBWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/JadeDynastyTower/TowerWin.cs
@@ -83,7 +83,7 @@ private void CloseSubWindows() { var windows = WindowConfig.Get().FindChildWindows("TowerWin"); var windows = WindowConfig.GetChildWindows("TowerWin"); foreach (var item in windows) { WindowCenter.Instance.Close(item); System/KnapSack/New/KnapSackWin.cs
@@ -177,7 +177,7 @@ private void CloseSubWindows() { var children = WindowConfig.Get().FindChildWindows("KnapSackWin"); var children = WindowConfig.GetChildWindows("KnapSackWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/NewBieGuidance/NewBieCenter.cs
@@ -179,7 +179,7 @@ ignoreWindows.Add(triggerWindows[currentGuide].name); var parent = string.Empty; if (WindowConfig.Get().FindParentWindow(triggerWindows[currentGuide].name, out parent)) if (WindowConfig.FindParentWindow(triggerWindows[currentGuide].name, out parent)) { ignoreWindows.Add(parent); } System/NewYearFairylandCeremony/NewYearFairylandCeremonyWin.cs
@@ -112,7 +112,7 @@ private void CloseChildWin() { var children = WindowConfig.Get().FindChildWindows(this.GetType().Name); var children = WindowConfig.GetChildWindows(this.GetType().Name); foreach (var window in children) { WindowCenter.Instance.Close(window); System/OpenServerActivity/OpenServerActivityWin.cs
@@ -618,7 +618,7 @@ private void CloseOtherWin() { var children = WindowConfig.Get().FindChildWindows("OpenServerActivityWin"); var children = WindowConfig.GetChildWindows("OpenServerActivityWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Role/RoleInfomationWin.cs
New file @@ -0,0 +1,353 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Sunday, May 05, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RoleInfomationWin : Window { [SerializeField] Text m_PropertyAtk; [SerializeField] Text m_PropertyHp; [SerializeField] Text m_PropertyHit; [SerializeField] Text m_PropertyDef; [SerializeField] Text m_PropertyDodge; [SerializeField] Text m_PropertyLuck; [SerializeField] Text m_PropertyAtkSpeed; [SerializeField] Text m_PropertyMoveSpeed; [SerializeField] Text m_PropertyRealHurt; [SerializeField] Text m_PropertyRealDef; [SerializeField] Text m_PropertyExtraHurt; [SerializeField] Text m_PropertyReduceHurt; [SerializeField] Text m_PropertyCritOdd; [SerializeField] Text m_PropertyCritHurt; [SerializeField] Text m_PropertyCritHurtOdd; [SerializeField] Text m_PropertyCritHitHurt; [SerializeField] Text m_PlayerExp; [SerializeField] Text m_PlayerLv; [SerializeField] Text m_PlayerName; [SerializeField] Text m_PlayerFightPower; [SerializeField] RawImage m_PlayerShowModel; [SerializeField] RectTransform m_ContainerExp; [SerializeField] Slider m_ExpSlider; [SerializeField] Text m_WorldExp; [SerializeField] Button m_PlayerPropertyBtn; [SerializeField] Button m_TitleBtn; [SerializeField] Button m_RenameBtn; [SerializeField] Image m_RoleTitleIcon; [SerializeField] Image m_RoleRealmIcon; [SerializeField] Button m_Btn_Elixir; TitleModel m_TitleModel; TitleModel titleModel { get { return m_TitleModel ?? (m_TitleModel = ModelCenter.Instance.GetModel<TitleModel>()); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_PlayerPropertyBtn.onClick.AddListener(OnAttrExplainClick); m_TitleBtn.onClick.AddListener(OnDesignationClick); m_RenameBtn.onClick.AddListener(OnRenameClick); m_Btn_Elixir.onClick.AddListener(OnElixirClick); } protected override void OnPreOpen() { PlayerDatas.Instance.playerDataUpdateEvent += OnUpdateLvExp; PlayerDatas.Instance.playerDataRefreshEvent += OnRefreshPlayerInfo; titleModel.OnRefreshGainTitle += OnRefreshTitle; PlayerDatas.Instance.worldLevelUpdateEvent += OnRefreshWorldLv; PlayerDatas.Instance.playerDataUpdateEvent += RefreshPlayerInfoEvent; packModel.refreshItemCountEvent += RefreshItemCountAct; m_PlayerFightPower.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); OnUpdateBasicAttr(); OnUpdateSpecialAttr(); OnUpdateLvExp(); DisplayModel(); OnRefreshRealm(); OnRefreshWorldLv(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { UI3DModelExhibition.Instance.StopShow(); PlayerDatas.Instance.playerDataUpdateEvent -= OnUpdateLvExp; PlayerDatas.Instance.playerDataRefreshEvent -= OnRefreshPlayerInfo; titleModel.OnRefreshGainTitle -= OnRefreshTitle; PlayerDatas.Instance.worldLevelUpdateEvent -= OnRefreshWorldLv; packModel.refreshItemCountEvent -= RefreshItemCountAct; PlayerDatas.Instance.playerDataUpdateEvent -= RefreshPlayerInfoEvent; } protected override void OnAfterClose() { } #endregion void DisplayModel() { UI3DModelExhibition.Instance.ShowPlayer(m_PlayerShowModel, PlayerDatas.Instance.baseData.Job); } private void OnRefreshTitle() { TitleData titleData = titleModel.GetTitleEquip(); if (titleData != null && titleModel.IsTitleGain(titleData.id)) { m_RoleTitleIcon.gameObject.SetActive(true); DienstgradConfig cfg = DienstgradConfig.Get(titleData.id); if (cfg != null) { m_RoleTitleIcon.SetSprite(cfg.Image); } } else { m_RoleTitleIcon.gameObject.SetActive(false); } } private void OnRefreshRealm() { int realmlv = PlayerDatas.Instance.baseData.realmLevel; RealmConfig presentCfg = RealmConfig.Get(realmlv); if (presentCfg != null && presentCfg.Lv > 0) { m_RoleRealmIcon.SetSprite(presentCfg.Img); m_RoleRealmIcon.gameObject.SetActive(true); } else { m_RoleRealmIcon.gameObject.SetActive(false); } } private void OnRefreshPlayerInfo(PlayerDataType refreshType) { switch (refreshType) { case PlayerDataType.FightPower: m_PlayerFightPower.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); break; case PlayerDataType.MAXATK: case PlayerDataType.MINATK: case PlayerDataType.MaxHP: case PlayerDataType.HIT: case PlayerDataType.DEF: case PlayerDataType.Miss: case PlayerDataType.LuckValue: { OnUpdateBasicAttr(); } break; case PlayerDataType.RealmLevel: { OnRefreshRealm(); } break; case PlayerDataType.LV: case PlayerDataType.TotalExp: case PlayerDataType.ExpPoint: { OnUpdateLvExp(); OnRefreshWorldLv(); } break; } } private void RefreshPlayerInfoEvent() { OnUpdateSpecialAttr(); } void OnUpdateBasicAttr() { m_PropertyAtk.text = StringUtility.Contact(ReplaceLargeNum((ulong)PlayerDatas.Instance.extersion.MINATK), "-", ReplaceLargeNum((ulong)PlayerDatas.Instance.extersion.MAXATK)); m_PropertyHp.text = GetAttrStr(PropertyType.HP); m_PropertyHit.text = GetAttrStr(PropertyType.HIT); m_PropertyDef.text = GetAttrStr(PropertyType.DEF); m_PropertyDodge.text = GetAttrStr(PropertyType.MISS); m_PropertyLuck.text = GetAttrStr(PropertyType.Luck); } void OnUpdateSpecialAttr() { m_PropertyAtkSpeed.text = GetAttrStr(PropertyType.ATKSPEED); m_PropertyMoveSpeed.text = GetAttrStr(PropertyType.MoveSpeed); m_PropertyRealHurt.text = GetAttrStr(PropertyType.RealHurt); m_PropertyRealDef.text = GetAttrStr(PropertyType.RealResis); m_PropertyExtraHurt.text = GetAttrStr(PropertyType.PVPAddHurt); m_PropertyReduceHurt.text = GetAttrStr(PropertyType.PVPReduceHurt); m_PropertyCritOdd.text = GetAttrStr(PropertyType.CritChance); m_PropertyCritHurt.text = GetAttrStr(PropertyType.CritHurt); m_PropertyCritHurtOdd.text = GetAttrStr(PropertyType.HeartHit); m_PropertyCritHitHurt.text = GetAttrStr(PropertyType.HeartHurt); } private void RefreshItemCountAct(PackType packType, int index, int arg3) { if (packType == PackType.Equip) { DisplayModel(); } } private void OnRefreshWorldLv() { int limit = FuncOpenLVConfig.Get((int)FuncOpenEnum.WorldLv).LimitLV; if (PlayerDatas.Instance.baseData.LV >= limit) { m_WorldExp.gameObject.SetActive(true); m_WorldExp.text = Language.Get("WordExpText", PlayerDatas.Instance.worldLv, Mathf.FloorToInt(UIHelper.ReplacePercentage((int)PlayerDatas.Instance.worldExpRate, 2)) + "%"); } else { m_WorldExp.gameObject.SetActive(false); } } void OnUpdateLvExp() { int lv = PlayerDatas.Instance.baseData.LV; if (PlayerLVConfig.Get(lv + 1) == null) { m_ExpSlider.maxValue = 1; m_ExpSlider.minValue = 0; m_ExpSlider.value = 1; m_PlayerExp.text = Language.Get("L1055"); } else { m_ExpSlider.minValue = 0; m_ExpSlider.maxValue = PlayerLVConfig.GetExpByPlayerLv(lv); m_ExpSlider.value = (ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * 100000000; m_PlayerExp.text = string.Format("{0}/{1}", UIHelper.ReplaceLargeNum((ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * 100000000), UIHelper.ReplaceLargeNum((ulong)PlayerLVConfig.GetExpByPlayerLv(lv))); } m_PlayerLv.text = Language.Get("Z1024", lv); m_PlayerName.text = PlayerDatas.Instance.baseData.PlayerName; OnRefreshTitle(); } private string GetAttrStr(PropertyType type) { PlayerPropertyConfig cfg = PlayerPropertyConfig.Get((int)type); float value = UIHelper.GetPropertyValue(type); return StringUtility.Contact(UIHelper.ReplaceLargeNum(UIHelper.ReplacePercentage(value, cfg.ISPercentage)), cfg.ISPercentage == 1 ? "%" : string.Empty); } private void OnDesignationClick() { if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Title)) { WindowCenter.Instance.Open<RoleTitle>(); } else { FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Title); } } private void OnRenameClick() { WindowCenter.Instance.Open<RoleRenameWin>(); } private void OnElixirClick() { //WindowCenter.Instance.Open<RoleElixirTipWin>(); } private void OnAttrExplainClick() { WindowCenter.Instance.Open<RoleAttrWin>(); } public StringBuilder m_StringBuilder = new StringBuilder(); public string ReplaceLargeNum(float num) { m_StringBuilder.Length = 0; float hm = (float)Math.Round(num / 100000000, 2); if (hm >= 1) { int _value = (int)hm; var _length = 3 - _value.ToString().Length; _length = Mathf.Max(0, _length); if (_length > 0) { hm = (float)Math.Round(num / 100000000, _length); } decimal _checkValue = ((decimal)hm * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(hm.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); m_StringBuilder.Append(Language.Get("L1070")); return m_StringBuilder.ToString(); } float tt = (float)Math.Round(num / 10000, 2); if (tt >= 1) { int _value = (int)tt; var _length = 3 - _value.ToString().Length; if (_length > 0) { tt = (float)Math.Round(num / 10000, _length); } _length = Mathf.Max(0, _length); decimal _checkValue = ((decimal)tt * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(tt.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); m_StringBuilder.Append(Language.Get("L1071")); return m_StringBuilder.ToString(); } if (m_StringBuilder.Length == 0) { num = (float)Math.Round(num, 2); int _value = (int)num; var _length = 3 - _value.ToString().Length; if (_length > 0) { num = (float)Math.Round(num, _length); } _length = Mathf.Max(0, _length); decimal _checkValue = ((decimal)num * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(num.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); } return m_StringBuilder.ToString(); } } } System/Role/RoleInfomationWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 86efcc44625e33d4fbecddccfd2a3efc timeCreated: 1557021286 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Role/RolePanel.cs
@@ -10,426 +10,61 @@ namespace Snxxz.UI { public class RolePanel : Window public class RolePanel : OneLevelWin { [SerializeField] FunctionButtonGroup buttonGroup; [SerializeField] FunctionButton functionButtonRole; [SerializeField] FunctionButton functionButtonMagician; [SerializeField] FunctionButton m_ReikiRoot; [SerializeField] FunctionButton m_GatherSoul; [SerializeField] FunctionButton m_FashionDress; [SerializeField] RectTransform m_RoleInfoRt; [SerializeField] Text m_PropertyAtk; [SerializeField] Text m_PropertyHp; [SerializeField] Text m_PropertyHit; [SerializeField] Text m_PropertyDef; [SerializeField] Text m_PropertyDodge; [SerializeField] Text m_PropertyLuck; [SerializeField] Text m_PropertyAtkSpeed; [SerializeField] Text m_PropertyMoveSpeed; [SerializeField] Text m_PropertyRealHurt; [SerializeField] Text m_PropertyRealDef; [SerializeField] Text m_PropertyExtraHurt; [SerializeField] Text m_PropertyReduceHurt; [SerializeField] Text m_PropertyCritOdd; [SerializeField] Text m_PropertyCritHurt; [SerializeField] Text m_PropertyCritHurtOdd; [SerializeField] Text m_PropertyCritHitHurt; [SerializeField] Text m_PlayerExp; [SerializeField] Text m_PlayerLv; [SerializeField] Text m_PlayerName; [SerializeField] Text m_PlayerFightPower; [SerializeField] RawImage m_PlayerShowModel; [SerializeField] RectTransform m_ContainerExp; [SerializeField] Slider m_ExpSlider; [SerializeField] Text m_WorldExp; [SerializeField] Button m_PlayerPropertyBtn; [SerializeField] Button m_TitleBtn; [SerializeField] Button m_RenameBtn; [SerializeField] Image m_RoleTitleIcon; [SerializeField] Image m_RoleRealmIcon; [SerializeField] Button m_LeftBtn; [SerializeField] Button m_RightBtn; [SerializeField] Button m_CloseBtn; [SerializeField] Button m_Btn_Elixir; RoleModel m_Model; RoleModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<RoleModel>()); } } TitleModel m_TitleModel; TitleModel titleModel { get { return m_TitleModel ?? (m_TitleModel = ModelCenter.Instance.GetModel<TitleModel>()); } } PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } } private void OnRefreshTitle() { TitleData titleData = titleModel.GetTitleEquip(); if (titleData != null && titleModel.IsTitleGain(titleData.id)) { m_RoleTitleIcon.gameObject.SetActive(true); DienstgradConfig cfg = DienstgradConfig.Get(titleData.id); if (cfg != null) { m_RoleTitleIcon.SetSprite(cfg.Image); } } else { m_RoleTitleIcon.gameObject.SetActive(false); } } private void OnRefreshRealm() { int realmlv = PlayerDatas.Instance.baseData.realmLevel; RealmConfig presentCfg = RealmConfig.Get(realmlv); if (presentCfg != null && presentCfg.Lv > 0) { m_RoleRealmIcon.SetSprite(presentCfg.Img); m_RoleRealmIcon.gameObject.SetActive(true); } else { m_RoleRealmIcon.gameObject.SetActive(false); } } private void OnRenameClick() { //SysNotifyMgr.Instance.ShowTip("JadeInvestmentLimit1"); WindowCenter.Instance.Open<RoleRenameWin>(); } private void OnElixirClick() { //WindowCenter.Instance.Open<RoleElixirTipWin>(); } private void OnDesignationClick() { if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Title)) { WindowCenter.Instance.Open<RoleTitle>(); } else { FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Title); } } private void OnAttrExplainClick() { WindowCenter.Instance.Open<RoleAttrWin>(); } private void OnRefreshPlayerInfo(PlayerDataType refreshType) { switch (refreshType) { case PlayerDataType.FightPower: m_PlayerFightPower.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); break; case PlayerDataType.MAXATK: case PlayerDataType.MINATK: case PlayerDataType.MaxHP: case PlayerDataType.HIT: case PlayerDataType.DEF: case PlayerDataType.Miss: case PlayerDataType.LuckValue: { OnUpdateBasicAttr(); } break; case PlayerDataType.RealmLevel: { OnRefreshRealm(); } break; case PlayerDataType.LV: case PlayerDataType.TotalExp: case PlayerDataType.ExpPoint: { OnUpdateLvExp(); OnRefreshWorldLv(); } break; } } private void RefreshPlayerInfoEvent() { OnUpdateSpecialAttr(); } void InitRole() { OnUpdateBasicAttr(); OnUpdateSpecialAttr(); OnUpdateLvExp(); m_PlayerFightPower.text = PlayerDatas.Instance.baseData.FightPoint.ToString(); DisplayModel(); OnRefreshRealm(); OnRefreshWorldLv(); } void DisplayModel() { UI3DModelExhibition.Instance.ShowPlayer(m_PlayerShowModel, PlayerDatas.Instance.baseData.Job); } void OnUpdateLvExp() { int lv = PlayerDatas.Instance.baseData.LV; if (PlayerLVConfig.Get(lv + 1) == null) { m_ExpSlider.maxValue = 1; m_ExpSlider.minValue = 0; m_ExpSlider.value = 1; m_PlayerExp.text = Language.Get("L1055"); } else { m_ExpSlider.minValue = 0; m_ExpSlider.maxValue = PlayerLVConfig.GetExpByPlayerLv(lv); m_ExpSlider.value = (ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * 100000000; m_PlayerExp.text = string.Format("{0}/{1}", UIHelper.ReplaceLargeNum((ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * 100000000), UIHelper.ReplaceLargeNum((ulong)PlayerLVConfig.GetExpByPlayerLv(lv))); } m_PlayerLv.text = Language.Get("Z1024", lv); m_PlayerName.text = PlayerDatas.Instance.baseData.PlayerName; OnRefreshTitle(); } void OnUpdateBasicAttr() { m_PropertyAtk.text = StringUtility.Contact(ReplaceLargeNum((ulong)PlayerDatas.Instance.extersion.MINATK), "-", ReplaceLargeNum((ulong)PlayerDatas.Instance.extersion.MAXATK)); m_PropertyHp.text = GetAttrStr(PropertyType.HP); m_PropertyHit.text = GetAttrStr(PropertyType.HIT); m_PropertyDef.text = GetAttrStr(PropertyType.DEF); m_PropertyDodge.text = GetAttrStr(PropertyType.MISS); m_PropertyLuck.text = GetAttrStr(PropertyType.Luck); } void OnUpdateSpecialAttr() { m_PropertyAtkSpeed.text = GetAttrStr(PropertyType.ATKSPEED); m_PropertyMoveSpeed.text = GetAttrStr(PropertyType.MoveSpeed); m_PropertyRealHurt.text = GetAttrStr(PropertyType.RealHurt); m_PropertyRealDef.text = GetAttrStr(PropertyType.RealResis); m_PropertyExtraHurt.text = GetAttrStr(PropertyType.PVPAddHurt); m_PropertyReduceHurt.text = GetAttrStr(PropertyType.PVPReduceHurt); m_PropertyCritOdd.text = GetAttrStr(PropertyType.CritChance); m_PropertyCritHurt.text = GetAttrStr(PropertyType.CritHurt); m_PropertyCritHurtOdd.text = GetAttrStr(PropertyType.HeartHit); m_PropertyCritHitHurt.text = GetAttrStr(PropertyType.HeartHurt); } private string GetAttrStr(PropertyType type) { PlayerPropertyConfig cfg = PlayerPropertyConfig.Get((int)type); float value = UIHelper.GetPropertyValue(type); return StringUtility.Contact(UIHelper.ReplaceLargeNum(UIHelper.ReplacePercentage(value, cfg.ISPercentage)), cfg.ISPercentage == 1 ? "%" : string.Empty); } void OnDisableRole() { UI3DModelExhibition.Instance.StopShow(); } protected override void BindController() { } protected override void AddListeners() { functionButtonRole.onClick.AddListener(OnFuncRole); functionButtonMagician.onClick.AddListener(OnFuncMagician); m_GatherSoul.onClick.AddListener(GatherSoul); m_ReikiRoot.onClick.AddListener(ReikiRoot); m_FashionDress.onClick.AddListener(OpenFashionDress); m_PlayerPropertyBtn.onClick.AddListener(OnAttrExplainClick); m_TitleBtn.onClick.AddListener(OnDesignationClick); m_RenameBtn.onClick.AddListener(OnRenameClick); m_Btn_Elixir.onClick.AddListener(OnElixirClick); m_LeftBtn.onClick.AddListener(buttonGroup.TriggerLast); m_RightBtn.onClick.AddListener(buttonGroup.TriggerNext); m_CloseBtn.onClick.AddListener(CloseClick); } private void ReikiRoot() { CloseChild(); WindowCenter.Instance.Open<ReikiRootWin>(); functionOrder = m_ReikiRoot.order; } private void GatherSoul() { CloseChild(); WindowCenter.Instance.Open<GatherSoulWin>(); functionOrder = m_GatherSoul.order; } private void OpenFashionDress() { CloseChild(); WindowCenter.Instance.Open<FashionDressWin>(); functionOrder = m_FashionDress.order; } private void OnFuncMagician() { CloseChild(); WindowCenter.Instance.Open<MagicianWin>(); functionOrder = functionButtonMagician.order; } private void OnFuncRole() { CloseChild(); m_RoleInfoRt.gameObject.SetActive(true); InitRole(); functionOrder = 0; } protected override void OnPreOpen() { PlayerDatas.Instance.playerDataUpdateEvent += OnUpdateLvExp; PlayerDatas.Instance.playerDataRefreshEvent += OnRefreshPlayerInfo; titleModel.OnRefreshGainTitle += OnRefreshTitle; PlayerDatas.Instance.worldLevelUpdateEvent += OnRefreshWorldLv; PlayerDatas.Instance.playerDataUpdateEvent += RefreshPlayerInfoEvent; packModel.refreshItemCountEvent += RefreshItemCountAct; base.AddListeners(); SetFunctionListener(0, OnFuncRole); SetFunctionListener(1, ReikiRoot); SetFunctionListener(2, OpenFashionDress); SetFunctionListener(3, OnFuncMagician); SetFunctionListener(4, GatherSoul); } protected override void OnActived() { base.OnActived(); buttonGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { PlayerDatas.Instance.playerDataUpdateEvent -= OnUpdateLvExp; PlayerDatas.Instance.playerDataRefreshEvent -= OnRefreshPlayerInfo; titleModel.OnRefreshGainTitle -= OnRefreshTitle; PlayerDatas.Instance.worldLevelUpdateEvent -= OnRefreshWorldLv; packModel.refreshItemCountEvent -= RefreshItemCountAct; if (!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } PlayerDatas.Instance.playerDataUpdateEvent -= RefreshPlayerInfoEvent; CloseChild(); CloseSubWindows(); } private void RefreshItemCountAct(PackType packType, int index, int arg3) private void ReikiRoot() { if (packType == PackType.Equip) { DisplayModel(); } CloseSubWindows(); WindowCenter.Instance.Open<ReikiRootWin>(); functionOrder = 1; } private void OnRefreshWorldLv() private void GatherSoul() { int limit = FuncOpenLVConfig.Get((int)FuncOpenEnum.WorldLv).LimitLV; if (PlayerDatas.Instance.baseData.LV >= limit) { m_WorldExp.gameObject.SetActive(true); m_WorldExp.text = Language.Get("WordExpText", PlayerDatas.Instance.worldLv, Mathf.FloorToInt(UIHelper.ReplacePercentage((int)PlayerDatas.Instance.worldExpRate, 2)) + "%"); } else { m_WorldExp.gameObject.SetActive(false); } CloseSubWindows(); WindowCenter.Instance.Open<GatherSoulWin>(); functionOrder = 4; } private void CloseChild() private void OpenFashionDress() { if (m_RoleInfoRt.gameObject.activeSelf) { OnDisableRole(); m_RoleInfoRt.gameObject.SetActive(false); } var children = WindowConfig.Get().FindChildWindows("RolePanel"); foreach (var window in children) { WindowCenter.Instance.Close(window); } CloseSubWindows(); WindowCenter.Instance.Open<FashionDressWin>(); functionOrder = 2; } public StringBuilder m_StringBuilder = new StringBuilder(); public string ReplaceLargeNum(float num) private void OnFuncMagician() { m_StringBuilder.Length = 0; float hm = (float)Math.Round(num / 100000000, 2); if (hm >= 1) { int _value = (int)hm; var _length = 3 - _value.ToString().Length; _length = Mathf.Max(0, _length); if (_length > 0) { hm = (float)Math.Round(num / 100000000, _length); } decimal _checkValue = ((decimal)hm * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(hm.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); m_StringBuilder.Append(Language.Get("L1070")); return m_StringBuilder.ToString(); } float tt = (float)Math.Round(num / 10000, 2); if (tt >= 1) { int _value = (int)tt; var _length = 3 - _value.ToString().Length; if (_length > 0) { tt = (float)Math.Round(num / 10000, _length); } _length = Mathf.Max(0, _length); decimal _checkValue = ((decimal)tt * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(tt.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); m_StringBuilder.Append(Language.Get("L1071")); return m_StringBuilder.ToString(); } if (m_StringBuilder.Length == 0) { num = (float)Math.Round(num, 2); int _value = (int)num; var _length = 3 - _value.ToString().Length; if (_length > 0) { num = (float)Math.Round(num, _length); } _length = Mathf.Max(0, _length); decimal _checkValue = ((decimal)num * 1000 - _value * 1000) / 1000; var _decimal = Mathf.Max(0, _checkValue.ToString().Length - 2); m_StringBuilder.Append(num.ToString(StringUtility.Contact("f", _decimal > _length ? _length : _decimal))); } return m_StringBuilder.ToString(); CloseSubWindows(); WindowCenter.Instance.Open<MagicianWin>(); functionOrder = 3; } private void OnFuncRole() { CloseSubWindows(); WindowCenter.Instance.Open<RoleInfomationWin>(); functionOrder = 0; } } } System/Rune/RunePanel.cs
@@ -86,7 +86,7 @@ private void CloseChild() { var children = WindowConfig.Get().FindChildWindows("RunePanel"); var children = WindowConfig.GetChildWindows("RunePanel"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Skill/SkillWin.cs
@@ -113,7 +113,7 @@ void CloseChild() { var children = WindowConfig.Get().FindChildWindows("SkillWin"); var children = WindowConfig.GetChildWindows("SkillWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Tip/PromoteDetailsWin.cs
@@ -78,7 +78,7 @@ WindowCenter.Instance.Open<RealmEquipWin>(); break; case RolePromoteModel.PromoteDetailType.AddPoint: WindowCenter.Instance.Open<RolePanel>(false, 2); WindowCenter.Instance.Open<RolePanel>(false, 1); break; case RolePromoteModel.PromoteDetailType.EquipStrength: //WindowCenter.Instance.Open<EquipReinforceWin>(); @@ -93,7 +93,7 @@ WindowCenter.Instance.Open<RunePanel>(); break; case RolePromoteModel.PromoteDetailType.GodWeapon: WindowCenter.Instance.Open<RolePanel>(false, 1); WindowCenter.Instance.Open<RolePanel>(false, 3); break; case RolePromoteModel.PromoteDetailType.TreasurePotential: break; System/Treasure/TreasureBaseWin.cs
@@ -244,7 +244,7 @@ private void Back() { var childrens = WindowConfig.Get().FindChildWindows("TreasureBaseWin"); var childrens = WindowConfig.GetChildWindows("TreasureBaseWin"); bool existAnyChildWindow = false; foreach (var window in childrens) { @@ -327,7 +327,7 @@ private void CloseSubWindows() { var childrens = WindowConfig.Get().FindChildWindows("TreasureBaseWin"); var childrens = WindowConfig.GetChildWindows("TreasureBaseWin"); foreach (var window in childrens) { WindowCenter.Instance.Close(window); System/Vip/VipRechargeWin.cs
@@ -117,7 +117,7 @@ private void CloseChildWin() { var children = WindowConfig.Get().FindChildWindows("VipRechargeWin"); var children = WindowConfig.GetChildWindows("VipRechargeWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/Welfare/WelfareWin.cs
@@ -118,7 +118,7 @@ #endregion private void CloseChildWin() { var children = WindowConfig.Get().FindChildWindows("WelfareWin"); var children = WindowConfig.GetChildWindows("WelfareWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); System/WindowBase/OneLevelWin.cs
New file @@ -0,0 +1,104 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Sunday, April 28, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; namespace Snxxz.UI { public class OneLevelWin : Window { Image m_TitleIcon; FunctionButtonGroup m_Group; Button m_Left; Button m_Right; Button m_Close; RectTransform m_SubWindowContainer; public RectTransform subWindowContainer { get { return m_SubWindowContainer; } } #region Built-in protected override void BindController() { m_TitleIcon = this.GetComponent<Image>("Pivot/Container_BackGround/Img_Title"); m_Group = this.GetComponent<FunctionButtonGroup>("Pivot/Container_Functions"); m_Left = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Left"); m_Right = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Right"); m_Close = this.GetComponent<Button>("Pivot/Container_Buttons/Btn_Close"); m_SubWindowContainer = this.GetComponent<RectTransform>("Pivot/Container_SubWindow"); var name = this.GetType().Name; var children = WindowConfig.GetChildWindows(name); foreach (var child in children) { var info = WindowConfig.GetWindowFunctionInfo(name, child); m_Group.AddFunction("FunctionButton_Pattern_1", info.order, info.functionId, Language.Get(info.titleKey), info.redPointId); } m_TitleIcon.SetSprite(WindowConfig.GetTitleIconKey(name)); m_TitleIcon.SetNativeSize(); } protected override void AddListeners() { m_Close.SetListener(() => { WindowCenter.Instance.Close(this.GetType().Name); }); m_Left.SetListener(() => { m_Group.TriggerLast(); }); m_Right.SetListener(() => { m_Group.TriggerNext(); }); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); m_Group.TriggerByOrder(functionOrder); m_Left.gameObject.SetActive(m_Group.unLockedCount > 1); m_Right.gameObject.SetActive(m_Group.unLockedCount > 1); } #endregion protected virtual void CloseSubWindows() { var subWindows = WindowConfig.GetChildWindows(this.GetType().Name); foreach (var window in subWindows) { WindowCenter.Instance.Close(window); } } protected void SetFunctionListener(int order, UnityAction callBack) { m_Group.SetFunctionListener(order, callBack); } } } System/WindowBase/OneLevelWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 5463ece122afcd648bffd43c15a2db3a timeCreated: 1556421570 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/WindowBase/Window.cs
@@ -46,6 +46,8 @@ { if (!initialized) { AddWindowPattern(); if (windowInfo.clickEmptyToClose && emptyCloseButton == null) { AddEmptyCloseResponser(); @@ -72,15 +74,24 @@ { windowTimer = 0f; var parentName = string.Empty; if (WindowConfig.Get().FindParentWindow(this.gameObject.name, out parentName)) if (WindowConfig.FindParentWindow(this.gameObject.name, out parentName)) { var parentWindow = WindowCenter.Instance.Get(parentName); if (parentWindow != null) if (parentWindow is OneLevelWin) { parent = (parentWindow as OneLevelWin).subWindowContainer; } else { parent = parentWindow.transform as RectTransform; } if (parent != null) { rectTransform.MatchWhith(parent); } } OnPreOpen(); WindowCenter.Instance.NotifyBeforeOpen(this); } @@ -450,11 +461,11 @@ try { var isChildWindow = WindowConfig.Get().IsChildWindow(this.gameObject.name); var isChildWindow = WindowConfig.IsChildWindow(this.gameObject.name); if (isChildWindow) { var parentName = string.Empty; WindowConfig.Get().FindParentWindow(this.gameObject.name, out parentName); WindowConfig.FindParentWindow(this.gameObject.name, out parentName); var parentWindow = WindowCenter.Instance.Get(parentName); if (parentWindow != null && parentWindow.executedActiveWindow) { @@ -466,7 +477,7 @@ { OnActived(); executedActiveWindow = true; var childWindows = WindowConfig.Get().FindChildWindows(this.gameObject.name); var childWindows = WindowConfig.GetChildWindows(this.gameObject.name); var isParentWindow = childWindows != null; if (isParentWindow) { @@ -495,6 +506,16 @@ } } private void AddWindowPattern() { var pattern = WindowConfig.GetWindowPattern(this.GetType().Name); if (!string.IsNullOrEmpty(pattern)) { var instance = UIUtility.CreateWidget(pattern, "Pivot"); instance.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); } } private void AddEmptyCloseResponser() { var emptyClose = UIUtility.CreateWidget("InvisibleButton", "EmptyClose"); System/WindowBase/WindowCenter.cs
@@ -164,7 +164,7 @@ public void Close(string name) { if (WindowConfig.Get().IsChildWindow(name)) if (WindowConfig.IsChildWindow(name)) { CloseImmediately(name); } @@ -241,7 +241,7 @@ break; } isIgnore = isIgnore || WindowConfig.Get().IsChildWindow(name); isIgnore = isIgnore || WindowConfig.IsChildWindow(name); if (!isIgnore) { if (window.windowState == Window.WindowState.Opened || window.windowState == Window.WindowState.Opening) @@ -265,7 +265,7 @@ continue; } var isIgnore = WindowConfig.Get().IsChildWindow(name); var isIgnore = WindowConfig.IsChildWindow(name); if (isIgnore) { continue; @@ -314,7 +314,7 @@ break; } isIgnore = isIgnore || WindowConfig.Get().IsChildWindow(name); isIgnore = isIgnore || WindowConfig.IsChildWindow(name); if (!isIgnore) { if (window.windowState == Window.WindowState.Opened || window.windowState == Window.WindowState.Opening) System/WindowJump/WindowJumpMgr.cs
@@ -257,7 +257,7 @@ SetJumpLogic<RealmWin>(_tagWinSearchModel.TABID); break; case JumpUIType.RolePoint: SetJumpLogic<RolePanel>(2); SetJumpLogic<RolePanel>(1); break; case JumpUIType.MainTask: TaskModel taskDatas = ModelCenter.Instance.GetModel<TaskModel>(); @@ -424,7 +424,7 @@ SetJumpLogic<KnapSackWin>(_tagWinSearchModel.TABID); break; case JumpUIType.RebornOpenAddPoint: SetJumpLogic<RolePanel>(2); SetJumpLogic<RolePanel>(1); break; case JumpUIType.RebornOpenHourse: SetJumpLogic<PetWin>(_tagWinSearchModel.TABID); UI/Common/FunctionButton.cs
@@ -60,6 +60,12 @@ set { this.m_Title = value; } } [SerializeField] RedpointBehaviour m_Redpoint; public RedpointBehaviour redpoint { get { return m_Redpoint; } set { m_Redpoint = value; } } [SerializeField] Shadow m_Shadow; public Shadow shadow { get { return this.m_Shadow; } @@ -159,7 +165,7 @@ { if (state == TitleBtnState.Locked) { if(OnPointClickLockFunc != null) if (OnPointClickLockFunc != null) { OnPointClickLockFunc(this.gameObject.name); } UI/Common/FunctionButtonGroup.cs
@@ -6,6 +6,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine.UI; using UnityEngine.Events; namespace Snxxz.UI { @@ -13,6 +14,7 @@ public class FunctionButtonGroup : MonoBehaviour { [SerializeField] ScrollRect m_ScrollRect; [SerializeField] RectTransform m_Container; public int unLockedCount { get { @@ -41,6 +43,11 @@ orders.Add(button.order); orders.Sort(OrderCompare); } if (m_ScrollRect != null) { m_ScrollRect.horizontal = functionButtons.Count > 5; } } public void UnRegister(FunctionButton button) @@ -56,6 +63,10 @@ orders.Sort(OrderCompare); } if (m_ScrollRect != null) { m_ScrollRect.horizontal = functionButtons.Count > 5; } } public void NotifyToggleOn(FunctionButton button) @@ -172,6 +183,36 @@ { return a < b ? -1 : 1; } public FunctionButton AddFunction(string pattern, int order, int functionId, string title, int redpointId) { if (m_Container == null) { return null; } var instance = UIUtility.CreateWidget(pattern, string.Concat("Function_", order)); instance.transform.SetParentEx(this.m_Container, Vector3.zero, Quaternion.identity, Vector3.one); var functionButton = instance.GetComponent<FunctionButton>(); functionButton.functionId = functionId; functionButton.order = order; functionButton.title.text = title; functionButton.group = this; functionButton.redpoint.redpointId = redpointId; functionButtons[order] = functionButton; return functionButton; } public void SetFunctionListener(int order, UnityAction callBack) { if (functionButtons.ContainsKey(order)) { functionButtons[order].SetListener(callBack); } } } } UI/Common/WindowConfig.cs
@@ -6,25 +6,23 @@ [CreateAssetMenu(menuName = "Config/WindowConfig")] public class WindowConfig : ScriptableObject { public WindowTable[] windows; [NonSerialized] public Dictionary<string, List<string>> parentChildrenTable = new Dictionary<string, List<string>>(); [NonSerialized] public List<string> childWindows = new List<string>(); static WindowConfig config; public static WindowConfig Get() static WindowConfig Get() { if (config == null) { config = BuiltInLoader.LoadScriptableObject<WindowConfig>("WindowConfig"); for (int i = 0; i < config.windows.Length; i++) foreach (var table in config.windows) { var table = config.windows[i]; var children = config.parentChildrenTable[table.parent] = new List<string>(); for (int j = 0; j < table.orderTables.Length; j++) foreach (var info in table.orderTables) { children.Add(table.orderTables[j].window); children.Add(info.window); } config.childWindows.AddRange(children); @@ -39,53 +37,29 @@ config = null; } public bool FindChildWindow(string _parent, int _order, out string _child) public static bool FindParentWindow(string child, out string parent) { for (int i = 0; i < windows.Length; i++) foreach (var table in Get().windows) { var table = windows[i]; if (table.parent == _parent) foreach (var orderTable in table.orderTables) { for (int j = 0; j < table.orderTables.Length; j++) if (orderTable.window == child) { if (table.orderTables[j].order == _order) { _child = table.orderTables[j].window; return true; } } } } _child = string.Empty; return false; } public bool FindParentWindow(string _child, out string _parent) { for (int i = 0; i < windows.Length; i++) { var table = windows[i]; for (int j = 0; j < table.orderTables.Length; j++) { var orderTable = table.orderTables[j]; if (orderTable.window == _child) { _parent = table.parent; parent = table.parent; return true; } } } _parent = string.Empty; parent = string.Empty; return false; } public List<string> FindChildWindows(string _parent) public static List<string> GetChildWindows(string parent) { if (parentChildrenTable.ContainsKey(_parent)) if (Get().parentChildrenTable.ContainsKey(parent)) { return parentChildrenTable[_parent]; return Get().parentChildrenTable[parent]; } else { @@ -93,15 +67,89 @@ } } public bool IsChildWindow(string _name) public static bool IsParentWindow(string name) { return childWindows.Contains(_name); foreach (var window in Get().windows) { if (window.parent == name) { return true; } } return false; } public static bool IsChildWindow(string name) { return Get().childWindows.Contains(name); } public static WindowLevel GetWindowLevel(string name) { foreach (var window in Get().windows) { if (window.parent == name) { return window.level; } } return WindowLevel.None; } public static string GetWindowPattern(string name) { foreach (var window in Get().windows) { if (window.parent == name) { return window.pattern; } } return string.Empty; } public static OrderTable GetWindowFunctionInfo(string parent, string child) { foreach (var table in Get().windows) { if (table.parent == parent) { foreach (var info in table.orderTables) { if (info.window == child) { return info; } } } } return default(OrderTable); } public static string GetTitleIconKey(string name) { foreach (var window in Get().windows) { if (window.parent == name) { return window.titleIconKey; } } return string.Empty; } [Serializable] public struct WindowTable { public string parent; public string titleIconKey; public WindowLevel level; public string pattern; public OrderTable[] orderTables; } @@ -109,7 +157,18 @@ public struct OrderTable { public int order; public int functionId; public int redPointId; public string titleKey; public string window; } public enum WindowLevel { None, OneLevel, SecondLevel, ThirdLevel, } }