| 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>(); | 
|     } | 
| } |