123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- using System.Collections.Generic;
- using Core.Language;
- using Core.Utility;
- using GameLogic.Hero;
- using UnityEngine;
- using UnityEngine.UI;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "SkillUIComponent" )]
- public partial class SkillUIComponent : UIComponent
- {
- private void Init()
- {
- }
- public override void AddEvent()
- {
- }
- public override void DelEvent()
- {
- }
- public override void AddButtonEvent()
- {
- btnBack.onClick.AddListener(OnClickBack);
- }
- private void OnClickBack()
- {
- UIManager.Instance.DormancyGComponent(this);
- UIManager.Instance.DormancyAllGComponent<WidgetIconSkill>("WidgetIconSkill");
- }
- private HeroInfo heroInfo;
-
- public List<WidgetIconSkill> allSkillIcon = new List<WidgetIconSkill>();
- public async void InitUI(HeroInfo heroInfo)
- {
- this.heroInfo = heroInfo;
- int idx = 0;
- foreach (KeyValuePair<int,List<SkillInfo>> keyValuePair in heroInfo.SkillData.mySkillDic)
- {
- if (keyValuePair.Key == GlobalParam.Normal_Attack_Skill_Group_ID)
- {
- //普攻不需要生成相应的技能ICON
- continue;
- }
- SkillInfo skillInfo = heroInfo.SkillData.GetHighestLevelOr1(keyValuePair.Key);
-
- WidgetIconSkill widgetIconSkill = await UIManager.Instance.CreateGComponent<WidgetIconSkill>(null,
- poolName: "WidgetIconSkill", root: skillRoot);
- widgetIconSkill.InitWidget(skillInfo);
-
- allSkillIcon.Add(widgetIconSkill);
-
- //显示第一个技能的详情
- if (idx == 0)
- {
- ShowSkillDetail(keyValuePair.Key);
- }
- idx++;
- }
- }
- public void SetOtherBorder(WidgetIconSkill iconSkill)
- {
- foreach (WidgetIconSkill widgetIconSkill in allSkillIcon)
- {
- if (widgetIconSkill != iconSkill)
- {
- widgetIconSkill.imgBorder.color = Color.black;
- }
- }
- }
- public void ShowSkillDetail(int groupID)
- {
- List<SkillInfo> skillInfos = heroInfo.SkillData.mySkillDic[groupID];
-
- // skillInfos.Sort((SkillInfo x, SkillInfo y) => x.skillConfig.level.CompareTo(y.skillConfig.level));
- foreach (GameObject go in skillDesc)
- {
- go.SetActive(false);
- }
- // SkillInfo skillInfo = heroInfo.skillComponent.GetHighestLevel(groupID);
-
- //最高解锁的SkillInfo
- SkillInfo maxSkillUnLock = skillInfos[0];
- //第一个锁的SkillInfo
- SkillInfo firstSkillLock = null;
- bool once = true;
- int tmpLv = 0;
- for (int i = 0; i < skillInfos.Count; i++)
- {
- string unLockConditionStr = "";
- Color color = Color.white;
- if (skillInfos[i].isUnLock)
- {
- if (skillInfos[i].skillConfig.level > tmpLv)
- {
- tmpLv = skillInfos[i].skillConfig.level;
- maxSkillUnLock = skillInfos[i];
- }
- }
- else
- {
- if (skillInfos[i].skillUpConfig.upType == 1)
- {
- unLockConditionStr = skillInfos[i].skillUpConfig.upValue + "级解锁";
- }
- else
- {
- unLockConditionStr = "星级达到" + skillInfos[i].skillUpConfig.upValue + "星后解锁";
- }
- color = new Color(0.65f, 0.65f, 0.65f);
- if (once)
- {
- once = false;
- firstSkillLock = skillInfos[i];
- }
- }
-
- GameObject go = skillDesc[i] as GameObject;
- go.GetComponent<Text>().text = LanguageManager.Instance.Text(skillInfos[i].skillConfig.name, skillInfos[i].skillConfig.effectValue) + unLockConditionStr;
- go.GetComponent<Text>().color = color;
- go.SetActive(true);
- }
-
- // SkillInfo skillInfo = heroInfo.skillComponent.GetHighestLevel(groupID);
-
- txtSkillName.text = LanguageManager.Instance.Text(maxSkillUnLock.skillConfig.name);
- txtLv.text = maxSkillUnLock.skillConfig.level.ToString();
- txtCD.text = "冷却" + maxSkillUnLock.skillConfig.cd + "秒";
- if (firstSkillLock != null)
- {
- if (firstSkillLock.skillUpConfig.upType == 1)
- {
- txtTips.text = "等级达到" + firstSkillLock.skillUpConfig.upValue + "级后解锁";
- }
- else
- {
- txtTips.text = "星级达到" + firstSkillLock.skillUpConfig.upValue + "星后解锁";
- }
- }
- else
- {
- txtTips.text = "技能已达最高等级";
- }
-
-
- layoutGroup.SetLayoutVertical();
- }
- }
- }
|