yyl
2 天以前 973edc44a04dceb8b48a32ca912e6167f86189d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
 
 
/// <summary>
/// 武将突破界面
/// </summary>
public class HeroLVBreakWin : UIBase
{
 
    [SerializeField] Text breakLVText;
    [SerializeField] Text nextBreakLVText;
    [SerializeField] Text lvText;
    [SerializeField] Text nextLVText;
    [SerializeField] Text[] attrPerTextArr;
    [SerializeField] Text[] nextAttrPerTextArr;
    [SerializeField] Text potentialText;
    [SerializeField] Image moneyIcon;
    [SerializeField] Text moneyText;
    [SerializeField] Button breakBtn;
 
 
    string guid;
    HeroInfo hero;
 
 
    protected override void InitComponent()
    {
        breakBtn.AddListener(BreakLV);
    }
 
 
    protected override void OnPreOpen()
    {
        guid = HeroUIManager.Instance.selectHeroGuid;
        hero = HeroManager.Instance.GetHero(guid);
        Refresh();
    }
 
    protected override void OnPreClose()
    {
    }
 
 
    public override void Refresh()
    {
        breakLVText.text = "+" + hero.breakLevel;
        nextBreakLVText.text = "+" + (hero.breakLevel + 1);
        lvText.text = hero.qualityBreakConfig.LVMax.ToString();
 
        var nextBreakLVConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel + 1);
        nextLVText.text = nextBreakLVConfig.LVMax.ToString();
 
        for (int i = 0; i < attrPerTextArr.Length; i++)
        {
            attrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i],
            hero.qualityConfig.BreakLVAddPer * hero.breakLevel);
        }
        for (int i = 0; i < nextAttrPerTextArr.Length; i++)
        {
            nextAttrPerTextArr[i].text = PlayerPropertyConfig.GetValueDescription(PlayerPropertyConfig.basePerAttrs[i],
            hero.qualityConfig.BreakLVAddPer * (hero.breakLevel + 1));
        }
 
        moneyIcon.SetOrgSprite(ItemConfig.Get(nextBreakLVConfig.UPCostItem[0]).IconKey);
        moneyText.text = UIHelper.ShowUseItem(PackType.Item, nextBreakLVConfig.UPCostItem[0], nextBreakLVConfig.UPCostItem[1]);
 
        var nextQualityBreakConfig = HeroBreakConfig.GetHeroBreakConfig(hero.heroId, hero.breakLevel + 1);
        if (nextQualityBreakConfig == null)
        {
            potentialText.text = "";
            return;
        }
        List<string> attrStrArr = new List<string>();
        for (int i = 0; i < nextQualityBreakConfig.AttrIDList.Length; i++)
        {
            if (nextQualityBreakConfig.AttrIDList[i] == 0)
            {
                continue;
            }
            attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[i], nextQualityBreakConfig.AttrValueList[i]));
        }
        if (nextQualityBreakConfig.SkillID != 0)
        {
            var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID);
            if (skill != null)
            {
                attrStrArr.Add(skill.Description);
            }
            else
            { 
                Debug.LogError("未配置技能" + nextQualityBreakConfig.SkillID);
            }
        }
        potentialText.text = Language.Get("L1100", Language.Get("herocard56"), string.Join(Language.Get("L1112"), attrStrArr));
    }
 
    void BreakLV()
    {
        if (ItemLogicUtility.CheckItemCount(PackType.Item, hero.qualityBreakConfig.UPCostItem[0], hero.qualityBreakConfig.UPCostItem[1], 2))
        {
            var pack = new CB232_tagCSHeroBreak();
            pack.ItemIndex = (ushort)hero.itemHero.gridIndex;
            GameNetSystem.Instance.SendInfo(pack);
            HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false));
            CloseWindow();
            //设置个等待回复的标识 显示成功界面
            HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse()
            {
                guid = guid,
                type = HeroFuncType.Break,
                time = Time.time
            };
        }
    }
}