//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, July 16, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class EquipStarEffectTipWin : Window
|
{
|
[SerializeField] ScrollRect m_ScrollRect;
|
|
[SerializeField] RectTransform m_SuitContainer;
|
[SerializeField] SuitBehaviour[] m_SuitBehaviours;
|
[SerializeField] RectTransform m_TrainContainer;
|
|
[SerializeField] Text m_StarProperty;
|
[SerializeField] Text m_GemHole;
|
[SerializeField] Text m_StengthLimit;
|
[SerializeField] Text m_TrainLimit;
|
|
EquipStarEffectTipModel model { get { return ModelCenter.Instance.GetModel<EquipStarEffectTipModel>(); } }
|
EquipTrainModel equipTrainModel { get { return ModelCenter.Instance.GetModel<EquipTrainModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
DisplaySuit();
|
DisplayStarProperty();
|
DisplayGemHole();
|
DisplayStrengthLimit();
|
DisplayTrainLimit();
|
|
m_ScrollRect.verticalNormalizedPosition = 1f;
|
}
|
#endregion
|
|
private void DisplaySuit()
|
{
|
if (model.equipPosition.y >= 1 && model.equipPosition.y <= 8)
|
{
|
m_SuitContainer.SetActive(true);
|
var effectInfos = model.GetSuitEffectInfos(model.equipPosition);
|
foreach (var item in m_SuitBehaviours)
|
{
|
item.Hide();
|
}
|
|
foreach (var item in effectInfos)
|
{
|
m_SuitBehaviours[item.Key / 3].Display(item.Key, item.Value);
|
}
|
}
|
else
|
{
|
m_SuitContainer.SetActive(false);
|
}
|
}
|
|
private void DisplayStarProperty()
|
{
|
var effectInfos = model.GetStarProperties(model.equipPosition);
|
var descriptions = new string[effectInfos.Count];
|
for (var i = 0; i < descriptions.Length; i++)
|
{
|
var info = effectInfos[i];
|
var property = PlayerPropertyConfig.GetFullDescription(info.property.x, info.property.y);
|
descriptions[i] = Language.Get("EquipStar5",
|
EquipStarEffectTipModel.GetStarNumberCHS(info.star),
|
property);
|
|
descriptions[i] = info.actived ? UIHelper.AppendColor(TextColType.Green, descriptions[i])
|
: UIHelper.AppendColor(TextColType.White, descriptions[i], true);
|
}
|
|
m_StarProperty.text = string.Join("\n", descriptions);
|
}
|
|
private void DisplayGemHole()
|
{
|
var effectInfos = model.GetGemHoleInfos(model.equipPosition);
|
var descriptions = new string[effectInfos.Count];
|
for (var i = 0; i < descriptions.Length; i++)
|
{
|
var info = effectInfos[i];
|
descriptions[i] = Language.Get("EquipStar6",
|
EquipStarEffectTipModel.GetStarNumberCHS(info.star),
|
EquipStarEffectTipModel.GetStarNumberCHS(info.index));
|
|
descriptions[i] = info.actived ? UIHelper.AppendColor(TextColType.Green, descriptions[i])
|
: UIHelper.AppendColor(TextColType.White, descriptions[i], true);
|
}
|
|
m_GemHole.text = string.Join("\n", descriptions);
|
}
|
|
private void DisplayStrengthLimit()
|
{
|
var effectInfos = model.GetStrengthLevelInfos(model.equipPosition);
|
var descriptions = new string[effectInfos.Count];
|
for (var i = 0; i < descriptions.Length; i++)
|
{
|
var info = effectInfos[i];
|
descriptions[i] = Language.Get("EquipStar7",
|
EquipStarEffectTipModel.GetStarNumberCHS(info.star), info.level);
|
|
descriptions[i] = info.actived ? UIHelper.AppendColor(TextColType.Green, descriptions[i])
|
: UIHelper.AppendColor(TextColType.White, descriptions[i], true);
|
}
|
|
m_StengthLimit.text = string.Join("\n", descriptions);
|
}
|
|
private void DisplayTrainLimit()
|
{
|
if (model.equipPosition.x < equipTrainModel.limitLevel)
|
{
|
m_TrainContainer.SetActive(false);
|
return;
|
}
|
m_TrainContainer.SetActive(true);
|
|
var effectInfos = model.GetTrainLevelInfos(model.equipPosition);
|
var descriptions = new string[effectInfos.Count];
|
for (var i = 0; i < descriptions.Length; i++)
|
{
|
var info = effectInfos[i];
|
descriptions[i] = Language.Get("EquipStar7",
|
EquipStarEffectTipModel.GetStarNumberCHS(info.star), info.level);
|
|
descriptions[i] = info.actived ? UIHelper.AppendColor(TextColType.Green, descriptions[i])
|
: UIHelper.AppendColor(TextColType.White, descriptions[i], true);
|
}
|
|
m_TrainLimit.text = string.Join("\n", descriptions);
|
}
|
|
[System.Serializable]
|
public class SuitBehaviour
|
{
|
public RectTransform container;
|
public Text title;
|
public Text content;
|
|
public void Display(int star, List<EquipStarEffectTipModel.SuitEffectInfo> effectInfos)
|
{
|
container.SetActive(true);
|
var actived = false;
|
var lines = new List<string>();
|
foreach (var effectInfo in effectInfos)
|
{
|
switch (effectInfo.suitType)
|
{
|
case EquipSuitType.TwoSuit:
|
for (int i = 0; i < effectInfo.properties.Count; i++)
|
{
|
var property = effectInfo.properties[i];
|
lines.Add(Language.Get("EquipStar8", PlayerPropertyConfig.GetFullDescription(property.x, property.y)));
|
lines[lines.Count - 1] = effectInfo.actived ? UIHelper.AppendColor(TextColType.Green, lines[lines.Count - 1])
|
: UIHelper.AppendColor(TextColType.White, lines[lines.Count - 1], true);
|
}
|
break;
|
case EquipSuitType.FiveSuit:
|
for (int i = 0; i < effectInfo.properties.Count; i++)
|
{
|
var property = effectInfo.properties[i];
|
lines.Add(Language.Get("EquipStar9", PlayerPropertyConfig.GetFullDescription(property.x, property.y)));
|
lines[lines.Count - 1] = effectInfo.actived ? UIHelper.AppendColor(TextColType.Green, lines[lines.Count - 1])
|
: UIHelper.AppendColor(TextColType.White, lines[lines.Count - 1], true);
|
}
|
break;
|
case EquipSuitType.EightSuit:
|
for (int i = 0; i < effectInfo.properties.Count; i++)
|
{
|
var property = effectInfo.properties[i];
|
lines.Add(Language.Get("EquipStar10", PlayerPropertyConfig.GetFullDescription(property.x, property.y)));
|
lines[lines.Count - 1] = effectInfo.actived ? UIHelper.AppendColor(TextColType.Green, lines[lines.Count - 1])
|
: UIHelper.AppendColor(TextColType.White, lines[lines.Count - 1], true);
|
}
|
|
if (effectInfo.skillId > 0)
|
{
|
lines.Add(Language.Get("EquipStar10", effectInfo.skillDescription));
|
lines[lines.Count - 1] = effectInfo.actived ? UIHelper.AppendColor(TextColType.Green, lines[lines.Count - 1])
|
: UIHelper.AppendColor(TextColType.White, lines[lines.Count - 1], true);
|
}
|
break;
|
}
|
|
if (effectInfo.actived)
|
{
|
actived = true;
|
}
|
}
|
|
content.text = string.Join("\n", lines.ToArray());
|
|
var titleDescription = Language.Get("EquipStar11", EquipStarEffectTipModel.GetStarNumberCHS(star));
|
title.text = actived ? UIHelper.AppendColor(TextColType.Green, titleDescription)
|
: UIHelper.AppendColor(TextColType.White, titleDescription, true);
|
}
|
|
public void Hide()
|
{
|
container.SetActive(false);
|
}
|
}
|
|
}
|
|
}
|