| System/ItemTip/EquipTipWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/ItemTipUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipAuctionTipWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipAuctionTipWidget.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipBasePropertyWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipGemInfoWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipGetWayWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipGetWayWidget.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipLegendPropertyWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/ItemTip/TipTrainPropertyWidget.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/VesselExtension.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
System/ItemTip/EquipTipWin.cs
@@ -16,17 +16,14 @@ public class EquipTipWin : Window { [SerializeField] RectTransform m_LeftPoint; [SerializeField] RectTransform m_MiddlePoint; [SerializeField] RectTransform m_RightPoint; [SerializeField] RectTransform m_LeftContainer; [SerializeField] RectTransform m_RigthContainer; [SerializeField] WidgetGroup m_MainWidgetGroup; [SerializeField] WidgetGroup m_SecondaryWidgetGroup; [SerializeField] WidgetGroup m_LeftWidgetGroup; [SerializeField] WidgetGroup m_RightWidgetGroup; [SerializeField] OperateButton m_OpreateButton1; [SerializeField] OperateButton m_OpreateButton2; [SerializeField] OperateButton m_OpreateButton3; [SerializeField] OperateButton[] m_OpreateButtons; [SerializeField] Button m_Close; #region Built-in protected override void BindController() @@ -35,10 +32,13 @@ protected override void AddListeners() { m_Close.SetListener(() => { WindowCenter.Instance.Close<EquipTipWin>(); }); } protected override void OnPreOpen() { DisplayTipInfo(); InitOperateButton(); } protected override void OnAfterOpen() @@ -52,12 +52,72 @@ protected override void OnAfterClose() { } private void DisplayTipInfo() { if (ItemTipUtility.tipType == ItemTipType.EquipCompare) { m_MainWidgetGroup.SetActive(true); m_MainWidgetGroup.SetPosition(m_RightPoint.position); m_MainWidgetGroup.Display(ItemTipUtility.mainTipData); m_SecondaryWidgetGroup.SetActive(true); m_SecondaryWidgetGroup.SetPosition(m_LeftPoint.position); m_SecondaryWidgetGroup.Display(ItemTipUtility.secondaryData); } else { m_MainWidgetGroup.SetActive(true); m_MainWidgetGroup.SetPosition(m_MiddlePoint.position); m_MainWidgetGroup.Display(ItemTipUtility.mainTipData); m_SecondaryWidgetGroup.SetActive(false); } } private void InitOperateButton() { if (string.IsNullOrEmpty(ItemTipUtility.mainTipData.guid)) { foreach (var button in m_OpreateButtons) { button.SetActive(false); } } else { var actions = new Dictionary<ItemOperateType, UnityAction>(); if (ItemTipUtility.mainTipData.baseInfo.isAuction) { actions[ItemOperateType.putAway] = () => { }; } else { } var actionKeys = new List<ItemOperateType>(actions.Keys); for (int i = 0; i < m_OpreateButtons.Length; i++) { var button = m_OpreateButtons[i]; if (i < actionKeys.Count) { var action = actions[actionKeys[i]]; button.SetActive(true); button.Bind(actionKeys[i], action); } } } } #endregion [Serializable] public class WidgetGroup { public RectTransform container; public TipBaseInfoWidget baseInfoWidget; public TipBasePropertyWidget basePropertyWidget; public TipLegendPropertyWidget legendPropertyWidget; @@ -65,15 +125,73 @@ public TipGemInfoWidget gemInfoWidget; public TipStrengthenPropertyWidget strengthenPropertyWidget; public TipTrainPropertyWidget trainPropertyWidget; public TipAuctionTipWidget auctionTipWidget; public void SetActive(bool active) { this.container.gameObject.SetActive(active); } public void SetPosition(Vector3 position) { this.container.position = position; } public void Display(ItemTipUtility.TipData data) { baseInfoWidget.gameObject.SetActive(true); baseInfoWidget.Display(data.baseInfo); basePropertyWidget.gameObject.SetActive(true); basePropertyWidget.Display(data.baseProperty); var hasLegendProperty = !data.legendProperty.properties.IsNullOrEmpty(); legendPropertyWidget.gameObject.SetActive(hasLegendProperty); if (hasLegendProperty) { legendPropertyWidget.Display(data.legendProperty); } var hasSuit = !data.suitInfo.twoSuitProperties.IsNullOrEmpty(); suitPropertyWidget.gameObject.SetActive(hasSuit); if (hasSuit) { suitPropertyWidget.Display(data.suitInfo); } var hasGem = !data.gemInfo.activeStates.IsNullOrEmpty(); gemInfoWidget.gameObject.SetActive(hasGem); if (hasGem) { gemInfoWidget.Display(data.gemInfo); } var hasStrengthen = !data.strengthenProperty.properties.IsNullOrEmpty(); strengthenPropertyWidget.gameObject.SetActive(hasStrengthen); if (hasStrengthen) { strengthenPropertyWidget.Display(data.strengthenProperty); } var hasTrain = !data.trainProperty.properties.IsNullOrEmpty(); trainPropertyWidget.gameObject.SetActive(hasTrain); if (hasTrain) { trainPropertyWidget.Display(data.trainProperty); } auctionTipWidget.gameObject.SetActive(data.baseInfo.isAuction); if (data.baseInfo.isAuction) { var overdueTime = DateTime.Now.AddSeconds((double)data.baseInfo.auctionSurplusTime); auctionTipWidget.Display(overdueTime); } } } [Serializable] public class OperateButton { public RectTransform container; @@ -85,9 +203,18 @@ container.gameObject.SetActive(active); } public void Bind(string title, UnityAction action) public void Bind(ItemOperateType type, UnityAction action) { this.title.text = title; switch (type) { case ItemOperateType.makeUse: this.title.text = "使用"; break; case ItemOperateType.inlay: this.title.text = "使用"; break; } this.button.SetListener(action); } System/ItemTip/ItemTipUtility.cs
@@ -77,6 +77,7 @@ public struct GemInfo { public Dictionary<int, bool> activeStates; public Dictionary<int, int> gems; } @@ -91,11 +92,14 @@ static EquipGemModel gemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } } static EquipTrainModel trainModel { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } } public static TipData tipData { get; private set; } public static ItemTipType tipType { get; private set; } public static TipData mainTipData { get; private set; } public static TipData secondaryData { get; private set; } public static void Show(ItemTipType type, int itemId) { tipData = new TipData() tipType = type; mainTipData = new TipData() { itemId = itemId, guid = string.Empty, @@ -129,7 +133,8 @@ return; } tipData = new TipData() tipType = type; mainTipData = new TipData() { itemId = item.itemId, guid = guid, System/ItemTip/TipAuctionTipWidget.cs
New file @@ -0,0 +1,28 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, March 13, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; namespace Snxxz.UI { public class TipAuctionTipWidget : MonoBehaviour { [SerializeField] Text m_OverdueTime; public void Display(DateTime overDueTime) { m_OverdueTime.text = string.Format("过期时间:{0}", overDueTime.ToString("yyyy年MM月DD日hh时mm分")); } } } System/ItemTip/TipAuctionTipWidget.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: d384afd234013614f9dcc2750d4ef1f2 timeCreated: 1552464385 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/ItemTip/TipBasePropertyWidget.cs
@@ -4,6 +4,7 @@ //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; namespace Snxxz.UI @@ -11,38 +12,33 @@ public class TipBasePropertyWidget : MonoBehaviour { [SerializeField] Text[] m_PropertyBehaviours; [SerializeField] Text m_PropertyBehaviour; public void Display(ItemTipUtility.BaseProperty data) { for (int i = 0; i < m_PropertyBehaviours.Length; i++) var count = Mathf.Min(data.baseProperties.Count, data.starProperties.Count); var lines = new string[count]; for (int i = 0; i < count; i++) { var behaviour = m_PropertyBehaviours[i]; if (i < data.baseProperties.Count) { behaviour.gameObject.SetActive(true); var baseProperty = data.baseProperties[i]; var config = PlayerPropertyConfig.Get(baseProperty.x); var name = config.Name; var baseValue = PlayerPropertyConfig.GetPropertyDescription(baseProperty.x, baseProperty.y); var baseProperty = data.baseProperties[i]; var config = PlayerPropertyConfig.Get(baseProperty.x); var name = config.Name; var baseValue = PlayerPropertyConfig.GetPropertyDescription(baseProperty.x, baseProperty.y); if (data.star > 0) { var starProperty = data.starProperties[i]; var starValue = PlayerPropertyConfig.GetPropertyDescription(starProperty.x, starProperty.y); var starDescription = UIHelper.AppendColor(TextColType.Green, string.Format("({0}星+{1})", data.star, starValue)); behaviour.text = string.Format("{0}:{1} {2}", name, baseValue, starDescription); } else { behaviour.text = string.Format("{0}:{1} ", name, baseValue); } if (data.star > 0) { var starProperty = data.starProperties[i]; var starValue = PlayerPropertyConfig.GetPropertyDescription(starProperty.x, starProperty.y); var starDescription = UIHelper.AppendColor(TextColType.Green, string.Format("({0}星+{1})", data.star, starValue)); lines[i] = string.Format("{0}:{1} {2}", name, baseValue, starDescription); } else { behaviour.gameObject.SetActive(false); lines[i] = string.Format("{0}:{1} ", name, baseValue); } } m_PropertyBehaviour.text = string.Join("\r\n", lines); } } System/ItemTip/TipGemInfoWidget.cs
@@ -4,6 +4,7 @@ //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; namespace Snxxz.UI @@ -11,12 +12,109 @@ public class TipGemInfoWidget : MonoBehaviour { [SerializeField] GemBehaviour[] m_GemBehaviours; public void Display(ItemTipUtility.GemInfo gemInfo) { for (int i = 0; i < m_GemBehaviours.Length; i++) { var behaviour = m_GemBehaviours[i]; var active = gemInfo.activeStates.ContainsKey(i) ? gemInfo.activeStates[i] : false; var gem = gemInfo.gems.ContainsKey(i) ? gemInfo.gems[i] : 0; behaviour.Display(active, gem); } } [System.Serializable] public class GemBehaviour { public Image gemIcon; public Text gemName; public Text[] propertyBehaviours; public RectTransform unLockContainer; public void Display(bool active, int gem) { if (active) { if (gem > 0) { var config = ItemConfig.Get(gem); gemIcon.gameObject.SetActive(true); gemIcon.SetSprite(StringUtility.Contact("GemTypeMini_", config.EffectValueA1)); gemName.text = config.ItemName; var properties = new List<Int2>(); if (config.Effect1 > 0) { properties.Add(new Int2(config.Effect1, config.EffectValueA1)); } if (config.Effect2 > 0) { properties.Add(new Int2(config.Effect2, config.EffectValueA2)); } if (config.Effect3 > 0) { properties.Add(new Int2(config.Effect3, config.EffectValueA3)); } if (config.Effect4 > 0) { properties.Add(new Int2(config.Effect4, config.EffectValueA4)); } if (config.Effect5 > 0) { properties.Add(new Int2(config.Effect5, config.EffectValueA5)); } for (int i = 0; i < propertyBehaviours.Length; i++) { var behaviour = propertyBehaviours[i]; if (i < properties.Count) { var property = properties[i]; behaviour.gameObject.SetActive(true); behaviour.text = string.Format("{0}+{1}", property.x, PlayerPropertyConfig.GetPropertyDescription(property.x, property.y)); } else { behaviour.gameObject.SetActive(false); } } } else { gemIcon.gameObject.SetActive(false); gemName.text = "未镶嵌"; for (int i = 0; i < propertyBehaviours.Length; i++) { var behaviour = propertyBehaviours[i]; behaviour.gameObject.SetActive(false); } } unLockContainer.gameObject.SetActive(false); } else { gemIcon.gameObject.SetActive(false); gemName.text = "未镶嵌"; for (int i = 0; i < propertyBehaviours.Length; i++) { var behaviour = propertyBehaviours[i]; behaviour.gameObject.SetActive(false); } unLockContainer.gameObject.SetActive(true); } } } } } System/ItemTip/TipGetWayWidget.cs
New file @@ -0,0 +1,20 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, March 13, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; namespace Snxxz.UI { public class TipGetWayWidget:MonoBehaviour { } } System/ItemTip/TipGetWayWidget.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 3bc1e261b78f3ac448f9aa1156ddbdd8 timeCreated: 1552464337 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/ItemTip/TipLegendPropertyWidget.cs
@@ -11,33 +11,29 @@ public class TipLegendPropertyWidget : MonoBehaviour { [SerializeField] Text[] m_PropertyBehaviours; [SerializeField] Text m_PropertyBehaviours; public void Display(ItemTipUtility.LegendProperty data) { for (int i = 0; i < m_PropertyBehaviours.Length; i++) var count = data.properties.Count; var lines = new string[count]; for (int i = 0; i < count; i++) { var behaviour = m_PropertyBehaviours[i]; if (i < data.properties.Count) var property = data.properties[i]; var config = PlayerPropertyConfig.Get(property.x); var value = PlayerPropertyConfig.GetPropertyDescription(property.x, property.y); if (data.isPreview) { behaviour.gameObject.SetActive(true); var property = data.properties[i]; var config = PlayerPropertyConfig.Get(property.x); var value = PlayerPropertyConfig.GetPropertyDescription(property.x, property.y); if (data.isPreview) { behaviour.text = string.Format("[推荐]{0}+{1}", config.Name, value); } else { behaviour.text = string.Format("{0}+{1}", config.Name, value); } lines[i] = string.Format("[推荐]{0}+{1}", config.Name, value); } else { behaviour.gameObject.SetActive(false); lines[i] = string.Format("{0}+{1}", config.Name, value); } } m_PropertyBehaviours.text = string.Join("\r\n", lines); } } System/ItemTip/TipTrainPropertyWidget.cs
@@ -11,27 +11,21 @@ public class TipTrainPropertyWidget : MonoBehaviour { [SerializeField] Text m_PropertyBehaviour; [SerializeField] Text[] m_PropertyBehaviours; public void Display(ItemTipUtility.TrainProperty trainProperty) public void Display(ItemTipUtility.TrainProperty data) { for (int i = 0; i < m_PropertyBehaviours.Length; i++) var count = data.properties.Count; var lines = new string[count]; for (int i = 0; i < count; i++) { var behaviour = m_PropertyBehaviours[i]; if (i < trainProperty.properties.Count) { var property = trainProperty.properties[i]; var config = PlayerPropertyConfig.Get(property.x); var value = PlayerPropertyConfig.GetPropertyDescription(property.x, property.y); behaviour.text = config.Name + UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(" +", value)); behaviour.gameObject.SetActive(true); } else { behaviour.gameObject.SetActive(false); } var property = data.properties[i]; var config = PlayerPropertyConfig.Get(property.x); var value = PlayerPropertyConfig.GetPropertyDescription(property.x, property.y); lines[i] = config.Name + UIHelper.AppendColor(TextColType.Green, StringUtility.Contact(" +", value)); } m_PropertyBehaviour.text = string.Join("\r\n", lines); } } Utility/VesselExtension.cs
@@ -15,4 +15,9 @@ return vessel == null || vessel.Length == 0; } public static bool IsNullOrEmpty<T0, T1>(this Dictionary<T0, T1> dictionary) { return dictionary == null || dictionary.Count == 0; } }