using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
using System.Collections.Generic; 
 | 
  
 | 
public class HeroShowBaseCell : MonoBehaviour 
 | 
{ 
 | 
  
 | 
    Image m_QualityBG; 
 | 
    Image qualityBG 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_QualityBG == null) 
 | 
            { 
 | 
                m_QualityBG = this.transform.GetComponent<Image>("Container_HeroShow/dz"); 
 | 
            } 
 | 
            return m_QualityBG; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    UIHeroController m_HeroModel; 
 | 
    UIHeroController heroModel 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_HeroModel == null) 
 | 
            { 
 | 
                m_HeroModel = this.transform.GetComponent<UIHeroController>("Container_HeroShow/rolemodel"); 
 | 
            } 
 | 
            return m_HeroModel; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    Transform m_StarRect; 
 | 
    Transform starRect 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_StarRect == null) 
 | 
            { 
 | 
                m_StarRect = this.transform.Find("Container_HeroShow/stars"); 
 | 
            } 
 | 
            return m_StarRect; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    List<Image> m_StarsImg; 
 | 
    List<Image> starsImg 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_StarsImg == null) 
 | 
            { 
 | 
                m_StarsImg = new List<Image>(); 
 | 
                for (int i = 0; i < 5; i++) 
 | 
                { 
 | 
                    var star = this.transform.GetComponent<Image>("Container_HeroShow/stars/star" + i); 
 | 
                    m_StarsImg.Add(star); 
 | 
                } 
 | 
            } 
 | 
            return m_StarsImg; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    Image m_LockState; 
 | 
    Image lockState 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_LockState == null) 
 | 
            { 
 | 
                m_LockState = this.transform.GetComponent<Image>("Container_HeroShow/lockstate"); 
 | 
            } 
 | 
            return m_LockState; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    Text m_Name; 
 | 
    Text nameText 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_Name == null) 
 | 
            { 
 | 
                m_Name = this.transform.GetComponent<Text>("Container_HeroShow/name"); 
 | 
            } 
 | 
            return m_Name; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    Text m_LvText;  //武将等级 + 觉醒等级 
 | 
    Text lvText 
 | 
    { 
 | 
        get 
 | 
        { 
 | 
            if (m_LvText == null) 
 | 
            { 
 | 
                m_LvText = this.transform.GetComponent<Text>("Container_HeroShow/lv"); 
 | 
            } 
 | 
            return m_LvText; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    OutlineEx heroNameOutline; 
 | 
    OutlineEx heroLVOutline; 
 | 
    void Awake() 
 | 
    { 
 | 
        LoadPrefab(); 
 | 
    } 
 | 
  
 | 
    // 武将小头像,(职业和名称不再此管理,各个界面排版不同) 
 | 
    public void Init(int heroID, int skinID = 0, int breakLevel = 0, int star = 0, int awakelv = 0, int lv = 0, bool isShowLock = false) 
 | 
    { 
 | 
        var heroConfig = HeroConfig.Get(heroID); 
 | 
        qualityBG.SetSprite("herodz" + heroConfig.Quality); 
 | 
        // int skinID = 0; 
 | 
        // if (heroGuid != "") 
 | 
        // { 
 | 
        //     var hero = HeroManager.Instance.GetHero(heroGuid); 
 | 
        //     skinID = hero.SkinID; 
 | 
        // } 
 | 
        // else 
 | 
        // { 
 | 
        //     skinID = heroConfig.SkinIDList[0]; 
 | 
        // } 
 | 
  
 | 
        heroModel.Create(skinID, heroConfig.UIScale); 
 | 
  
 | 
        if (star == 0) 
 | 
        { 
 | 
            starRect.SetActive(false); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            starRect.SetActive(true); 
 | 
            for (int i = 0; i < starsImg.Count; i++) 
 | 
            { 
 | 
                if ((star - 1) % starsImg.Count >= i) 
 | 
                { 
 | 
                    starsImg[i].SetActive(true); 
 | 
                    starsImg[i].SetSprite("herostar" + (((star - 1) / starsImg.Count) + 1) * starsImg.Count); 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    starsImg[i].SetActive(false); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
  
 | 
        lockState.SetActive(isShowLock); 
 | 
  
 | 
        nameText.text = breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, breakLevel); 
 | 
        nameText.color = UIHelper.GetUIColorByFunc(heroConfig.Quality); 
 | 
        heroNameOutline.colorType = (QualityTextColType)heroConfig.Quality; 
 | 
        lvText.text = string.Format("{0}{1} {2}", Language.Get("L1094"), lv, awakelv == 0 ? Language.Get("herocard13") : Language.Get("herocard12", awakelv)); 
 | 
        heroLVOutline.colorType = awakelv == 0 ? QualityTextColType.None : QualityTextColType.red; 
 | 
  
 | 
    } 
 | 
  
 | 
    GameObject cellContainer; 
 | 
    protected void LoadPrefab() 
 | 
    { 
 | 
        if (cellContainer != null) 
 | 
            return; 
 | 
  
 | 
        var tmp = transform.Find("Container_HeroShow"); 
 | 
        if (tmp != null) 
 | 
        { 
 | 
            cellContainer = tmp.gameObject; 
 | 
            return; 
 | 
        } 
 | 
        if (cellContainer == null) 
 | 
        { 
 | 
            cellContainer = UIUtility.CreateWidget("HeroShowBaseCell", "Container_HeroShow"); 
 | 
  
 | 
            if (cellContainer != null) 
 | 
            { 
 | 
                cellContainer.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one); 
 | 
                cellContainer.transform.SetAsFirstSibling(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        //缩放到和父rect一样大 
 | 
        var scale = 1f; 
 | 
        var rect = cellContainer.GetComponent<RectTransform>(); 
 | 
        var parentRect = transform.GetComponent<RectTransform>(); 
 | 
        scale = parentRect.sizeDelta.x / rect.sizeDelta.x; 
 | 
        cellContainer.transform.localScale = new Vector3(scale, scale, scale); 
 | 
        heroNameOutline = nameText.GetComponent<OutlineEx>(); 
 | 
        heroLVOutline = lvText.GetComponent<OutlineEx>(); 
 | 
    } 
 | 
} 
 |