少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-13 2b75ba0318952481ea61d3e28d31b1ff51b68de5
3335 物品tip界面开发。
7个文件已修改
4个文件已添加
435 ■■■■■ 已修改文件
System/ItemTip/EquipTipWin.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/ItemTipUtility.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipAuctionTipWidget.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipAuctionTipWidget.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipBasePropertyWidget.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipGemInfoWidget.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipGetWayWidget.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipGetWayWidget.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipLegendPropertyWidget.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ItemTip/TipTrainPropertyWidget.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/VesselExtension.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | 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;
    }
}