//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 12, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; namespace Snxxz.UI { public class TipBasePropertyWidget : MonoBehaviour { [SerializeField] Text m_PropertyBehaviour; public void Display(EquipTipUtility.BaseProperty data) { var attack = Int3.zero; var normalProperties = new List(); foreach (var item in data.baseProperties) { switch ((PropertyType)item.x) { case PropertyType.MinAtk: case PropertyType.PetMinAtk: attack.x = item.y; break; case PropertyType.MaxAtk: case PropertyType.PetMaxAtk: attack.y = item.y; break; default: normalProperties.Add(new Int3(item.x, item.y)); break; } } if (data.star > 0) { foreach (var item in data.starProperties) { switch ((PropertyType)item.x) { case PropertyType.ATK: attack.z = item.y; break; default: var index = normalProperties.FindIndex(x => { return x.x == item.x; }); if (index != -1) { var property = normalProperties[index]; normalProperties[index] = new Int3(property.x, property.y, item.y); } break; } } } var count = attack != Int3.zero ? 1 + normalProperties.Count : normalProperties.Count; var lines = new string[count]; var lineIndex = 0; if (attack != Int3.zero) { var config = PlayerPropertyConfig.Get((int)PropertyType.ATK); var name = config.Name; if (attack.z > 0) { var starValue = PlayerPropertyConfig.GetValueDescription((int)PropertyType.ATK, attack.z); var starDescription = UIHelper.AppendColor(TextColType.Green, string.Format(" ({0}星+{1})", data.star, starValue)); lines[lineIndex++] = string.Format("{0} +{1}-{2}{3}", name, attack.x, attack.y, starDescription); } else { lines[lineIndex++] = string.Format("{0} +{1}-{2}", name, attack.x, attack.y); } } foreach (var property in normalProperties) { if (property.z > 0) { var starValue = PlayerPropertyConfig.GetValueDescription(property.x, property.z); var starDescription = UIHelper.AppendColor(TextColType.Green, string.Format(" ({0}星+{1})", data.star, starValue)); lines[lineIndex++] = string.Format("{0}{1}", PlayerPropertyConfig.GetFullDescription(property.x, property.y), starDescription); } else { lines[lineIndex++] = PlayerPropertyConfig.GetFullDescription(property.x,property.y); } } m_PropertyBehaviour.text = string.Join("\r\n", lines); } } }