From bae41593e19d32046f77ed1f036089e015380b99 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期三, 30 七月 2025 22:25:18 +0800 Subject: [PATCH] 117 【武将】武将系统 - 布阵临时版 --- Main/System/HeroUI/HeroScenePosCell.cs | 62 +++++++++++++++++++++++++++++-- 1 files changed, 58 insertions(+), 4 deletions(-) diff --git a/Main/System/HeroUI/HeroScenePosCell.cs b/Main/System/HeroUI/HeroScenePosCell.cs index 29ebb39..2cc5cd1 100644 --- a/Main/System/HeroUI/HeroScenePosCell.cs +++ b/Main/System/HeroUI/HeroScenePosCell.cs @@ -1,5 +1,9 @@ +using System; +using System.Linq; +using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UI; +using System.Collections.Generic; //甯冮樀涓殑 姝﹀皢瑙掕壊 public class HeroScenePosCell : MonoBehaviour @@ -12,19 +16,69 @@ [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); } } -- Gitblit v1.8.0