From 243d65af53aae9e3084f20ea9c5815f5b29df09e Mon Sep 17 00:00:00 2001 From: liuzhiwei <liuzhiwei@qq.com> Date: Thu, 26 Nov 2020 18:26:58 +0800 Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs | 109 +++++++++++++++++++++++++++--------------------------- 1 files changed, 54 insertions(+), 55 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs index d6a081e..7abfc75 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs +++ b/Assets/Scripts/TowerDefense/UI/EndlessBuffPreview.cs @@ -1,8 +1,7 @@ -using UnityEngine.UI; -using System.Collections; -using TowerDefense.Level; using System.Collections.Generic; +using UnityEngine.UI; using UnityEngine; +using TowerDefense.Level; /** * 无尽模式buff预览 @@ -13,87 +12,87 @@ { public class EndlessBuffPreview : MonoBehaviour { + /// <summary> + /// buff预览界面 + /// </summary> public GameObject Panel; - private bool isShow; + public GameObject Content; - private string iconPath = "UI/Endless/BuffPreviewIcon/buff_"; + /// <summary> + /// buff预览界面返回按钮 + /// </summary> + public Button BackBtn; - public List<GameObject> ItemList; - - public List<Image> IconList; - - public List<Text> TextList; - - private string[] elementNameArr = { "火", "水", "木" }; + /// <summary> + /// 未获得buff提示文字 + /// </summary> + public Text NoBuffText; // Start is called before the first frame update private void Start() { GetComponent<Button>().onClick.AddListener(OnClick); + BackBtn.onClick.AddListener(HideBuffPreview); EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessBuffRefresh, Refresh); - ShowPanel(); + Panel.SetActive(false); } public void OnClick() { - ShowPanel(); - } + if (GameConfig.IsNewbie) return; - private void ShowPanel() - { - if (isShow) - Refresh(); - Panel.SetActive(isShow); - isShow = !isShow; + ShowBuffPreview(); } private void Refresh() { + ClearContent(); + List<EndlessBuffConfig> buffList = EndlessBuffManager.instance.BuffList; - // 0.火 1.水 2.木 - int[] addArr = { 0, 0, 0 }; + + if (buffList.Count == 0) + { + NoBuffText.gameObject.SetActive(true); + return; + } + + NoBuffText.gameObject.SetActive(false); for (int i = 0; i < buffList.Count; ++i) { - // 只统计了加攻击力的 - if (buffList[i].EffectType != EndlessBuffEffectType.AttackAdd) continue; + GameObject prefab = Resources.Load<GameObject>("UI/BuffPreview/BuffItem"); + GameObject item = Instantiate(prefab); + item.transform.SetParent(Content.transform, false); - switch (buffList[i].UseTarget) - { - case EndlessBuffUseTarget.All: - addArr[0] += (int)buffList[i].Config.buff_effect[1]; - addArr[1] += (int)buffList[i].Config.buff_effect[1]; - addArr[2] += (int)buffList[i].Config.buff_effect[1]; - break; - case EndlessBuffUseTarget.Element: - addArr[(int)buffList[i].Config.target_type[1] - 1] += (int)buffList[i].Config.buff_effect[1]; - break; - case EndlessBuffUseTarget.Designated: - break; - case EndlessBuffUseTarget.SkillLevelUp: - break; - - } + SelectBuffIcon buffSelect = item.GetComponent<SelectBuffIcon>(); + buffSelect.SetIcon(buffList[i].Config.image); + buffSelect.SetQuality(buffList[i].Config.rare); + buffSelect.SetName(buffList[i].Config.name); + buffSelect.SetEffect(buffList[i].Config.brief); + buffSelect.SetRare(buffList[i].Config.rare); } + } - int count = 0; - - for (int i = 0; i < addArr.Length; ++i) + private void ClearContent() + { + for (int i = Content.transform.childCount - 1; i >= 0; --i) { - if (addArr[i] == 0) continue; - - ItemList[count].SetActive(true); - Sprite sp = Resources.Load<Sprite>($"{iconPath}{i + 1}"); - IconList[count].sprite = sp; - TextList[count].text = $"{elementNameArr[i]}精灵攻击+{addArr[i]}%"; - ++count; + Destroy(Content.transform.GetChild(i).gameObject); } + } - for (; count < 3; ++count) - { - ItemList[count].SetActive(false); - } + private void ShowBuffPreview() + { + EndlessLevelManager.instance.PauseWave(); + Refresh(); + Panel.SetActive(true); + } + + private void HideBuffPreview() + { + EndlessLevelManager.instance.RestartWave(); + Panel.SetActive(false); } } } \ No newline at end of file -- Gitblit v1.9.1