| | |
| | | using System; |
| | | using System.Linq; |
| | | using Cysharp.Threading.Tasks; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using System.Collections.Generic; |
| | | |
| | | //布阵中的 武将角色 |
| | | public class HeroScenePosCell : MonoBehaviour |
| | |
| | | [SerializeField] Text lvText; |
| | | [SerializeField] UIHeroController heroModel; |
| | | [SerializeField] Image posCircleImg; |
| | | [SerializeField] UIAlphaTween suggestForm; |
| | | [SerializeField] DragItem dragObj; |
| | | [SerializeField] Transform objForfly; //点击飞入的时候的显隐控制 |
| | | |
| | | public void Display(string guid) |
| | | public void Display(string guid, int index, bool isFly = false) |
| | | { |
| | | var hero = HeroManager.Instance.GetHero(guid); |
| | | this.transform.localScale = Vector3.one; |
| | | |
| | | lvText.text = Language.Get("L1094") + hero.heroLevel.ToString(); |
| | | lvText.text = Language.Get("L1099", hero.heroLevel); |
| | | var heroConfig = hero.heroConfig; |
| | | countryImg.SetSprite("herocountry" + heroConfig.Country); |
| | | heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale); |
| | | |
| | | heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex]); |
| | | |
| | | nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel); |
| | | posCircleImg.SetSprite("heroposcircle" + heroConfig.Quality); |
| | | |
| | | //不是推荐位则提示 |
| | | if (heroConfig.AtkDistType == 1 && TeamConst.TeamPos2Array.Contains(index) || |
| | | heroConfig.AtkDistType == 2 && TeamConst.TeamPos1Array.Contains(index)) |
| | | { |
| | | suggestForm.SetActive(true); |
| | | jobTip.text = Language.Get("heroClass" + heroConfig.Class); |
| | | posTip.text = Language.Get("heroAtkDistType" + heroConfig.AtkDistType); |
| | | } |
| | | else |
| | | { |
| | | suggestForm.SetActive(false); |
| | | } |
| | | |
| | | dragObj.onEndDragEvent += SwitchPos; |
| | | |
| | | heroBtn.AddListener(() => |
| | | { |
| | | var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType); |
| | | team.RemoveHero(index); |
| | | //通知刷新(下阵) |
| | | HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List<int>() { index }, -1, Vector3.zero); |
| | | |
| | | }); |
| | | |
| | | if (isFly) |
| | | { |
| | | //点击飞入 延迟显示 |
| | | objForfly.SetActive(false); |
| | | DelayShow(); |
| | | } |
| | | else |
| | | { |
| | | objForfly.SetActive(true); |
| | | } |
| | | } |
| | | |
| | | void SwitchPos(int pos1, int pos2) |
| | | { |
| | | Debug.Log("交换位置:" + pos1 + " " + pos2); |
| | | } |
| | | |
| | | async UniTask DelayShow() |
| | | { |
| | | //延迟0.5秒显示 |
| | | await UniTask.Delay(TimeSpan.FromSeconds(HeroUIManager.clickFlyPosTime)); |
| | | objForfly.SetActive(true); |
| | | } |
| | | } |
| | | |