492 武将登场,武将返场,时装特卖独立活动 支持皮肤表配置该功能的立绘是否反转

# Conflicts:
# Main/Config/ConfigManager.cs
# Main/System/Hero/UIHeroController.cs
# Main/System/HeroDebut/HeroDebutCallWin.cs
# Main/System/HeroDebut/HeroDebutCheckInWin.cs
# Main/System/HeroDebut/HeroDebutPopWin.cs
# Main/System/HeroDebut/HeroDebutSkinWin.cs
# Main/System/HeroDebut/HeroDebutWin.cs
# Main/System/HeroReturn/HeroReturnCallWin.cs
# Main/System/HeroReturn/HeroReturnCheckInWin.cs
# Main/System/HeroReturn/HeroReturnPopWin.cs
# Main/System/HeroReturn/HeroReturnSkinWin.cs
# Main/System/HeroReturn/HeroReturnWin.cs
# Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs
14个文件已修改
85 ■■■■ 已修改文件
Main/Config/ConfigManager.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/Configs/HeroSkinConfig.cs 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Hero/UIHeroController.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutCallWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutCheckInWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutPopWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutSkinWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroDebut/HeroDebutWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnCallWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnCheckInWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnPopWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnSkinWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroReturn/HeroReturnWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/HeroSkinFlashSale/HeroSkinFlashSaleWin.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/Config/ConfigManager.cs
@@ -37,6 +37,12 @@
        isLoadFinished = false;
        // 加载配置文件
        // 加载配置文件
        // 加载配置文件
        // 加载配置文件
        // 加载配置文件
        // 加载配置文件
        // 加载配置文件
        HashSet<Type> configTypes = new HashSet<Type>() {
            typeof(ActBillboardAwardConfig),
            typeof(ActHeroAppearArtConfig),
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)
        {
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
            {
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);
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();
    }
}
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();
    }
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();
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());
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;
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();
    }
}
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();
    }
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();
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()));
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();