//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 12, 2019 //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; namespace vnxbqy.UI { public class TipBasePropertyWidget : MonoBehaviour { [SerializeField] Text m_PropertyBehaviour; public void Display(ItemTipUtility.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, Language.Get("EquipStar15", 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) { var config = PlayerPropertyConfig.Get(property.x); var name = config.Name; if (property.z > 0) { var starValue = PlayerPropertyConfig.GetValueDescription(property.x, property.z); var starDescription = UIHelper.AppendColor(TextColType.Green, Language.Get("EquipStar15", data.star, starValue)); lines[lineIndex++] = string.Format("{0}: {1}{2}", name, PlayerPropertyConfig.GetValueDescription(property.x, property.y), starDescription); } else { lines[lineIndex++] = string.Format("{0}: {1}", name, PlayerPropertyConfig.GetValueDescription(property.x, property.y)); } } m_PropertyBehaviour.text = string.Join("\r\n", lines); } } }