From 5f728e2633e8e20ebafc4e534fe7e7362362c839 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 04 十二月 2025 11:58:07 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/HeroUI/HeroScenePosCell.cs | 85 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 81 insertions(+), 4 deletions(-)
diff --git a/Main/System/HeroUI/HeroScenePosCell.cs b/Main/System/HeroUI/HeroScenePosCell.cs
index 29ebb39..79090b5 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,92 @@
[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, bool showSuggest = 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);
+ countryImg.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale);
-
nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv", heroConfig.Name, hero.breakLevel);
+ posCircleImg.SetSprite("heroposcircle" + heroConfig.Quality);
+ //涓嶆槸鎺ㄨ崘浣嶅垯鎻愮ず
+ // if (heroConfig.Position == 1 && TeamConst.TeamPos2Array.Contains(index) ||
+ // heroConfig.Position == 2 && TeamConst.TeamPos1Array.Contains(index))
+ if (showSuggest)
+ {
+ suggestForm.SetActive(true);
+ jobTip.text = HeroUIManager.Instance.GetJobName(heroConfig.Class);
+ posTip.text = Language.Get("heroAtkDistType" + heroConfig.Position);
+ }
+ else
+ {
+ suggestForm.SetActive(false);
+ }
+
+ dragObj.pos = index;
+ dragObj.onEndDragEvent -= SwitchPos;
+ dragObj.onEndDragEvent += SwitchPos;
+ dragObj.canvas.sortingLayerID = dragObj.parentCanvas.sortingLayerID;
+ dragObj.canvas.sortingOrder = dragObj.parentCanvas.sortingOrder + index + 1;
+
+ 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);
+ var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType);
+ if (pos2 == -1)
+ {
+ //涓嬮樀
+ team.RemoveHero(pos1);
+ HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List<int>() { pos1 }, -2, Vector3.zero);
+ }
+ else if (pos1 == pos2)
+ {
+ HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List<int>() { pos1 }, -2, Vector3.zero);
+ }
+ else
+ {
+ //閫氱煡鍒锋柊
+ team.SwapPosition(pos1, pos2);
+ HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List<int>() { pos1, pos2 }, -2, Vector3.zero);
+ }
+ }
+
+ async UniTask DelayShow()
+ {
+ //寤惰繜0.5绉掓樉绀�
+ await UniTask.Delay(TimeSpan.FromSeconds(HeroUIManager.clickFlyPosTime));
+ objForfly.SetActive(true);
}
}
--
Gitblit v1.8.0