| using System.Collections.Generic; | 
| using UnityEngine; | 
| using UnityEngine.UI; | 
|   | 
|   | 
| /// <summary> | 
| /// 武将洗炼当前的天赋 | 
| /// </summary> | 
| public class HeroGiftWashCell : MonoBehaviour | 
| { | 
|     [SerializeField] GiftBaseCell giftCell; | 
|     [SerializeField] Button lockBtn; | 
|     [SerializeField] Image lockImg; | 
|   | 
|     [SerializeField] UIEffectPlayer effectPlayer; | 
|   | 
|   | 
|     public void Display(HeroInfo hero, int index) | 
|     { | 
|         int giftID = hero.talentIDList[index]; | 
|         int giftLV = hero.talentLvList[index]; | 
|   | 
|         giftCell.Init(giftID, giftLV, 0, hero.heroId, index, hero.awakeLevel); | 
|   | 
|         if (hero.talentLockList.IndexOf(index) != -1) | 
|         { | 
|             lockImg.SetSprite("lockImage"); | 
|         } | 
|         else | 
|         { | 
|             lockImg.SetSprite("unlockImage"); | 
|         } | 
|   | 
|         lockBtn.AddListener(() => | 
|         { | 
|             var hero = HeroManager.Instance.GetHero(HeroUIManager.Instance.selectWashHeroGUID); | 
|             if (hero == null) | 
|             { | 
|                 return; | 
|             } | 
|   | 
|             //没有发锁定包,客户端自己保存 | 
|             var state = hero.talentLockList.IndexOf(index) == -1 ? 0 : 1; | 
|   | 
|             if (state == 0 && hero.GetTalentLockCount() >= hero.talentIDList.Count - 1) | 
|             { | 
|                 //至少要保留一个天赋未锁定 | 
|                 SysNotifyMgr.Instance.ShowTip("HeroGift6"); | 
|                 return; | 
|             } | 
|   | 
|             hero.SetTalentLockState(index, state == 1 ? 0 : 1); | 
|   | 
|             if (hero.talentLockList.IndexOf(index) != -1) | 
|             { | 
|                 lockImg.SetSprite("lockImage"); | 
|             } | 
|             else | 
|             { | 
|                 lockImg.SetSprite("unlockImage"); | 
|             } | 
|              | 
|             HeroUIManager.Instance.changeLockEvent?.Invoke(); | 
|         }); | 
|   | 
|     } | 
|   | 
|     public void ShowEffect(HeroInfo hero, int index) | 
|     { | 
|         if (hero.talentLockList.IndexOf(index) != -1) | 
|         { | 
|             return; | 
|         } | 
|          | 
|         effectPlayer.Play(true, true); | 
|     } | 
|   | 
| } |