//--------------------------------------------------------
|
// [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(ItemTipUtility.BaseProperty data)
|
{
|
var attack = Int3.zero;
|
var normalProperties = new List<Int3>();
|
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);
|
}
|
|
}
|
|
}
|