//-------------------------------------------------------- // [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(); } } EquipTrainModel equipTrainModel { get { return ModelCenter.Instance.GetModel(); } } #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 effectInfos) { container.SetActive(true); var actived = false; var lines = new List(); 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); } } } }