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