From a1cc0388f0659e2b0e3a68b058f0c62b22a8a61d Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期二, 19 五月 2026 19:56:11 +0800
Subject: [PATCH] 492 武将登场,武将返场,时装特卖独立活动 支持皮肤表配置该功能的立绘是否反转

---
 Main/System/HeroDebut/HeroDebutCheckInWin.cs          |    4 +
 Main/System/Hero/UIHeroController.cs                  |   14 ++++++-
 Main/Config/ConfigManager.cs                          |    6 +++
 Main/System/HeroReturn/HeroReturnSkinWin.cs           |    3 +
 Main/System/HeroDebut/HeroDebutWin.cs                 |    3 +
 Main/System/HeroDebut/HeroDebutCallWin.cs             |    2 
 Main/System/HeroReturn/HeroReturnCallWin.cs           |    3 +
 Main/System/HeroReturn/HeroReturnWin.cs               |    3 +
 Main/System/HeroDebut/HeroDebutSkinWin.cs             |    3 +
 Main/System/HeroReturn/HeroReturnCheckInWin.cs        |    3 +
 Main/Config/Configs/HeroSkinConfig.cs                 |   33 ++++++++++++----
 Main/System/HeroReturn/HeroReturnPopWin.cs            |    3 +
 Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs |    3 +
 Main/System/HeroDebut/HeroDebutPopWin.cs              |    2 
 14 files changed, 63 insertions(+), 22 deletions(-)

diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index e9e2723..bc21b79 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -37,6 +37,12 @@
         isLoadFinished = false;
 
         // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
+        // 鍔犺浇閰嶇疆鏂囦欢
         HashSet<Type> configTypes = new HashSet<Type>() {
             typeof(ActBillboardAwardConfig),
             typeof(ActHeroAppearArtConfig),
diff --git a/Main/Config/Configs/HeroSkinConfig.cs b/Main/Config/Configs/HeroSkinConfig.cs
index 0deff42..8948622 100644
--- a/Main/Config/Configs/HeroSkinConfig.cs
+++ b/Main/Config/Configs/HeroSkinConfig.cs
@@ -1,6 +1,6 @@
 锘�//--------------------------------------------------------
 //    [Author]:           YYL
-//    [  Date ]:           2026骞�3鏈�13鏃�
+//    [  Date ]:           Tuesday, May 19, 2026
 //--------------------------------------------------------
 
 using System.Collections.Generic;
@@ -22,6 +22,7 @@
 	public int AudioID;
 	public string Tachie;
 	public float[] TachieParam;
+	public int[] IsTachieFlip;
 	public string SquareIcon;
 	public string RectangleIcon;
 	public string CardPic;
@@ -65,21 +66,35 @@
 				}
 			}
 
-			SquareIcon = tables[6];
+			if (tables[6].Contains("["))
+			{
+				IsTachieFlip = JsonMapper.ToObject<int[]>(tables[6]);
+			}
+			else
+			{
+				string[] IsTachieFlipStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+				IsTachieFlip = new int[IsTachieFlipStringArray.Length];
+				for (int i=0;i<IsTachieFlipStringArray.Length;i++)
+				{
+					 int.TryParse(IsTachieFlipStringArray[i],out IsTachieFlip[i]);
+				}
+			}
 
-			RectangleIcon = tables[7];
+			SquareIcon = tables[7];
 
-			CardPic = tables[8];
+			RectangleIcon = tables[8];
 
-			SpineRes = tables[9];
+			CardPic = tables[9];
 
-			InitialSkinName = tables[10];
+			SpineRes = tables[10];
 
-			ApearMotionName = tables[11];
+			InitialSkinName = tables[11];
 
-			TransfMotionName = tables[12];
+			ApearMotionName = tables[12];
 
-			LoopMotionName = tables[13];
+			TransfMotionName = tables[13];
+
+			LoopMotionName = tables[14];
         }
         catch (Exception exception)
         {
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index 5db01b9..d3f187c 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -27,7 +27,9 @@
 	private static int initializationOrder = 0; // 鐢ㄤ簬鍒嗗抚寤惰繜鐨勫簭鍙�
 
 	public Action onComplete;
-	public void Create(int _skinID, float scale = 0.8f, Action _onComplete = null, string motionName = "idle", bool isLh = false)
+
+	public void Create(int _skinID, float scale = 0.8f, Action _onComplete = null, string motionName = "idle", bool isLh = false, 
+					   bool isTachieFlip = false, int tachieFlipIndex = 0)
 	{
 		if (skinID == _skinID)
 		{
@@ -67,7 +69,15 @@
 			{
 				this.transform.localPosition = new Vector3(skinConfig.TachieParam[0], skinConfig.TachieParam[1], 0);
 				this.transform.localScale = Vector3.one * skinConfig.TachieParam[2];
-				this.transform.localRotation = Quaternion.Euler(0, skinConfig.TachieParam[3] == 0 ? 0 : 180, 0);
+				if (isTachieFlip && skinConfig?.IsTachieFlip?.Length > tachieFlipIndex)
+				{
+					this.transform.localRotation = Quaternion.Euler(0, skinConfig.IsTachieFlip[tachieFlipIndex] == 0 ? 0 : 180, 0);
+				}
+				else
+				{
+					this.transform.localRotation = Quaternion.Euler(0, skinConfig.TachieParam[3] == 0 ? 0 : 180, 0);
+				}
+
 			}
 			else
 			{
diff --git a/Main/System/HeroDebut/HeroDebutCallWin.cs b/Main/System/HeroDebut/HeroDebutCallWin.cs
index fc551a0..6c180fc 100644
--- a/Main/System/HeroDebut/HeroDebutCallWin.cs
+++ b/Main/System/HeroDebut/HeroDebutCallWin.cs
@@ -279,7 +279,7 @@
 
         bgImage.SetSprite(StringUtility.Concat("HeroDebutCallBG_", heroID.ToString()));
 
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 0);
         uiHeroController.Create(skinID, modleSize);
         uiHeroController.transform.localScale = new Vector3(modleSize, modleSize, modleSize);
 
diff --git a/Main/System/HeroDebut/HeroDebutCheckInWin.cs b/Main/System/HeroDebut/HeroDebutCheckInWin.cs
index 34fb9e4..2964471 100644
--- a/Main/System/HeroDebut/HeroDebutCheckInWin.cs
+++ b/Main/System/HeroDebut/HeroDebutCheckInWin.cs
@@ -76,7 +76,9 @@
             }
         }
 
-        rolelhShow.Create(skinID, 1, motionName: "", isLh: true);
+
+        rolelhShow.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 0);
+
         OnSecondEvent();
     }
 }
\ No newline at end of file
diff --git a/Main/System/HeroDebut/HeroDebutPopWin.cs b/Main/System/HeroDebut/HeroDebutPopWin.cs
index 4c86f43..6ef3d0f 100644
--- a/Main/System/HeroDebut/HeroDebutPopWin.cs
+++ b/Main/System/HeroDebut/HeroDebutPopWin.cs
@@ -89,7 +89,7 @@
         infoText.text = artConfig.PopInfoText;
         infoText.color = manager.ParseColor32(artConfig.PopInfoColor);
 
-        rolelhShow.Create(skinID, 1, motionName: "", isLh: true);
+        rolelhShow.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 0);
 
         OnSecondEvent();
     }
diff --git a/Main/System/HeroDebut/HeroDebutSkinWin.cs b/Main/System/HeroDebut/HeroDebutSkinWin.cs
index 12ee7ab..8e3998f 100644
--- a/Main/System/HeroDebut/HeroDebutSkinWin.cs
+++ b/Main/System/HeroDebut/HeroDebutSkinWin.cs
@@ -178,7 +178,8 @@
         awardBgImage.SetNativeSize();
 
         uiHeroController.Create(skinID, modelScale);
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 0);
+
         countryImage.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
         OnSecondEvent();
 
diff --git a/Main/System/HeroDebut/HeroDebutWin.cs b/Main/System/HeroDebut/HeroDebutWin.cs
index 06fe296..46ca8e6 100644
--- a/Main/System/HeroDebut/HeroDebutWin.cs
+++ b/Main/System/HeroDebut/HeroDebutWin.cs
@@ -93,7 +93,8 @@
 
         uiHeroController.Create(skinID, modleSize);
         uiHeroController.transform.localScale = new Vector3(-modleSize, modleSize, modleSize);
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 0);
 
         callRedImage.SetActive(!manager.IsShopVisitedToday || manager.HasGiftCanHave());
 
diff --git a/Main/System/HeroReturn/HeroReturnCallWin.cs b/Main/System/HeroReturn/HeroReturnCallWin.cs
index 4be450f..5b5eff0 100644
--- a/Main/System/HeroReturn/HeroReturnCallWin.cs
+++ b/Main/System/HeroReturn/HeroReturnCallWin.cs
@@ -291,8 +291,9 @@
 
         bgImage.SetSprite(StringUtility.Concat("HeroReturnCallBG_", heroID.ToString()));
 
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 1);
         uiHeroController.Create(skinID, modleSize);
+
         uiHeroController.transform.localScale = new Vector3(modleSize, modleSize, modleSize);
 
         ownItemCell.itemID = treasureSetConfig.CostItemID;
diff --git a/Main/System/HeroReturn/HeroReturnCheckInWin.cs b/Main/System/HeroReturn/HeroReturnCheckInWin.cs
index a446e04..39c165b 100644
--- a/Main/System/HeroReturn/HeroReturnCheckInWin.cs
+++ b/Main/System/HeroReturn/HeroReturnCheckInWin.cs
@@ -74,7 +74,8 @@
             }
         }
 
-        rolelhShow.Create(skinID, 1, motionName: "", isLh: true);
+        rolelhShow.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 1);
+
         OnSecondEvent();
     }
 }
\ No newline at end of file
diff --git a/Main/System/HeroReturn/HeroReturnPopWin.cs b/Main/System/HeroReturn/HeroReturnPopWin.cs
index 95bb254..fa30b0e 100644
--- a/Main/System/HeroReturn/HeroReturnPopWin.cs
+++ b/Main/System/HeroReturn/HeroReturnPopWin.cs
@@ -89,7 +89,8 @@
         infoText.text = artConfig.PopInfoText;
         infoText.color = manager.ParseColor32(artConfig.PopInfoColor);
 
-        rolelhShow.Create(skinID, 1, motionName: "", isLh: true);
+        rolelhShow.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 1);
+
 
         OnSecondEvent();
     }
diff --git a/Main/System/HeroReturn/HeroReturnSkinWin.cs b/Main/System/HeroReturn/HeroReturnSkinWin.cs
index aef3ab3..1173406 100644
--- a/Main/System/HeroReturn/HeroReturnSkinWin.cs
+++ b/Main/System/HeroReturn/HeroReturnSkinWin.cs
@@ -178,7 +178,8 @@
         awardBgImage.SetNativeSize();
 
         uiHeroController.Create(skinID, modelScale);
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 1);
+
         countryImage.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
         OnSecondEvent();
 
diff --git a/Main/System/HeroReturn/HeroReturnWin.cs b/Main/System/HeroReturn/HeroReturnWin.cs
index d05a679..97e1e85 100644
--- a/Main/System/HeroReturn/HeroReturnWin.cs
+++ b/Main/System/HeroReturn/HeroReturnWin.cs
@@ -224,7 +224,8 @@
         uiHeroController.Create(chosenHeroSkinID, modleSize);
 
         uiHeroController.transform.localScale = new Vector3(-modleSize, modleSize, modleSize);
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 1);
 
         // 鏇存柊鑳屾櫙
         bgImage.SetSprite(StringUtility.Concat("HeroReturnMainBG_", heroID.ToString()));
diff --git a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
index 60f5f72..93f3c19 100644
--- a/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
+++ b/Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
@@ -176,7 +176,8 @@
         awardBgImage.SetNativeSize();
 
         uiHeroController.Create(skinID, modelScale);
-        lhController.Create(skinID, 1, motionName: "", isLh: true);
+        lhController.Create(skinID, 1, motionName: "", isLh: true, isTachieFlip: true, tachieFlipIndex: 2);
+
         countryImage.SetSprite(HeroUIManager.Instance.GetCountryIconName(heroConfig.Country));
         OnSecondEvent();
 

--
Gitblit v1.8.0