Main/System/Battle/BattleConst.cs
@@ -1,9 +1,10 @@
using System;
using System.Collections.Generic;
public static class BattleConst
{
    #region 战斗窗口配置
    public static List<Type> BattleWindows = new List<Type>()
    {
        typeof(BattleWin),
@@ -11,23 +12,80 @@
        typeof(ArenaBattleWin),
        typeof(BoneFieldBattleWin),
        typeof(TianziBillboradBattleWin),
        typeof(WarlordPavilionBattleWin),
        typeof(PreviewBattleWin),
        typeof(QYBattleWin),
    };
    // 战场名称
    public const string StoryBattleField = "StoryBattleField";
    public const string StoryBossBattleField = "StoryBossBattleField";
    public const string ArenaBattleField = "ArenaBattleField";
    public const string BoneBattleField = "BoneBattleField";
    public const string TianziBillboradBattleField = "TianziBillboradBattleField";
    public const string WarlordPavilionBattleField = "WarlordPavilionBattleField";
    public const string PriviewBattleField = "PriviewBattleField";  //预览战斗
    public const string QYBattleField = "QYBattleField";
    public static Dictionary<string, string> battleNameToWinName = new Dictionary<string, string>()
    {
        { "StoryBattleField", "BattleWin" },
        { "StoryBossBattleField", "StoryBossBattleWin" },
        { "ArenaBattleField", "ArenaBattleWin" },
        { "BoneBattleField", "BoneFieldBattleWin" },
        { "TianziBillboradBattleField", "TianziBillboradBattleWin" },
        { StoryBattleField, "BattleWin" },
        { StoryBossBattleField, "StoryBossBattleWin" },
        { ArenaBattleField, "ArenaBattleWin" },
        { BoneBattleField, "BoneFieldBattleWin" },
        { TianziBillboradBattleField, "TianziBillboradBattleWin" },
        { WarlordPavilionBattleField, "WarlordPavilionBattleWin" },
        { PriviewBattleField, "PreviewBattleWin" },
        { QYBattleField, "QYBattleWin" },
    };
    // 索引配置用
    public static Dictionary<string, int> FieldNameToIndex = new Dictionary<string, int>()
    {
        { StoryBossBattleField, 1 },
        { ArenaBattleField, 2 },
        { BoneBattleField, 3},
        { TianziBillboradBattleField, 4 },
        { WarlordPavilionBattleField, 5 },
        { PriviewBattleField, 6 },
        { QYBattleField, 7 },
    };
    //和 CreateBattleField 里的对应
    public static Dictionary<int, string> mapIDToBattleNameDic = new Dictionary<int, string>()
    {
        {1, StoryBattleField},
        {2, StoryBossBattleField},
        {3, ArenaBattleField},
        {30010, BoneBattleField},
        {30020, TianziBillboradBattleField},
        {30030, WarlordPavilionBattleField},
        {30000, PriviewBattleField},
        {32000, QYBattleField},
    };
    //pvp战斗的战场,不在这个列表的视为pve类型的战场
    public static List<string> pvpBattleNameDic = new List<string>()
    {
        ArenaBattleField,
        QYBattleField,
    };
    #endregion
    #region 战斗基础配置
    public const int BattleStartEffectID = 1001; // Example effect ID for battle start
    public const int skillMotionFps = 30;
    public const int BattlePointItemID = 3;//战锤ID
    #endregion
    #region 战斗统计类型
    public const int BattleTotalDamageType = 100001; // 总伤害类型ID
    public const int BattleTotalRecoverType = 100002; // 总治疗类型ID
@@ -40,6 +98,16 @@
    public const int BattleStun = 100006; // 击晕
    public const int BreakArmor = 100007; // 贯穿
    public const int Parry = 100008; // 招架
    public const int CompletelyDodge = 100009;//  绝对闪避
    #endregion
    #region 战斗层级排序
    //  1000~10000之间的战斗层级
    //  需要考虑根据UI 特效 战斗角色三方的层级关系
    //  确立基本的层级范围 后往上累加
@@ -60,6 +128,33 @@
    //  现在期望 蒙版不要压住UI 更改策略
    //  释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>底图
    // ----------------------2025 12/30更新 start
    // BattleBackground = -10
    // BattleWinLayer    0
    //                                         {
    //                                             BehindHeroUI     =   1  Offset  -2
    //                                             BehindHeroEffect =   2          -1
    // UnactiveHero =  BattleBackground  +         BattleHero       =   3           0
    //                                             FrontUIEffect    =   4           1
    //                                             BattleHeroUI     =   5           2
    //                                             FrontHeroEffect  =   6           3
    //                                         }
    // SkillMask    =    10
    //                                         {
    //                                             BehindHeroUI     =   1  Offset  -2
    //                                             BehindHeroEffect =   2          -1
    // ActiveHero   =  SkillMask         +         BattleHero       =   3           0
    //                                             FrontUIEffect    =   4           1
    //                                             BattleHeroUI     =   5           2
    //                                             FrontHeroEffect  =   6           3
    //                                         }
    // BattleStartEffect = 30
    // ----------------------2025 12/30更新 end
    //释放技能英雄>受影响英雄>[正常UI]>黑色蒙版>未受影响英雄>底图
@@ -96,8 +191,24 @@
        }
    }
    //  释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>[底图]
    public static int BattleBackgroundOrder
    public static int BattleBehindCharUIOffset = 1;    //角色后面的UI 主要是阴影(处理)
    public static int BattleBehindHeroEffect = 2;       //角色身后的特效(处理)
    public static int BattleHeroOffset = 3;             //角色本身的层级(不需处理)
    public static int BattleActiveHeroOffset = 4;
    public static int BattleFrontHeroBehindUIEffect = 5;          //角色身前的 但是UI后面特效
    public static int BattleFrontCharUIOffset = 6;      //角色身前的UI
    public static int BattleFrontHeroEffect = 7;        //角色身前的特效
    public static int SkillMaskOrder
    {
        get
        {
@@ -105,84 +216,37 @@
        }
    }
    // 非激活英雄的后特效
    public static int UnactiveHeroBackSortingOrder
    //  释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>[底图]
    public static int BattleBackgroundOrder
    {
        get
        {
            return BattleBackgroundOrder + 1;
            return BattleWinSortingOrder - 30;
        }
    }
    //释放技能英雄>受影响英雄>正常UI>黑色蒙版>[未受影响英雄]>底图
    // 非激活英雄的层级
    public static int UnactiveHeroSortingOrder
    public static int BattleStartEffectOrder
    {
        get
        {
            return UnactiveHeroBackSortingOrder + 1;
            return SkillMaskOrder + BattleFrontHeroEffect + 5;
        }
    }
    // 非激活英雄的前特效
    public static int UnactiveHeroFrontSortingOrder
    public static int NotFolowTipsOrder
    {
        get
        {
            return UnactiveHeroSortingOrder + 1;
            return SkillMaskOrder + BattleFrontHeroEffect + 1;
        }
    }
    //释放技能英雄>受影响英雄>正常UI>[黑色蒙版]>未受影响英雄>底图
    // 黑色蒙版的层级
    public static int BlockerSortingOrder
    {
        get
        {
            return UnactiveHeroFrontSortingOrder + 1;
        }
    }
    #endregion
    // 激活英雄的后特效
    public static int ActiveHeroBackSortingOrder
    {
        get
        {
            return BlockerSortingOrder + 1;
        }
    }
    //释放技能英雄>[受影响英雄]>正常UI>黑色蒙版>未受影响英雄>底图
    // 激活英雄的层级
    public static int ActiveHeroSortingOrder
    {
        get
        {
            return ActiveHeroBackSortingOrder + 1;
        }
    }
    //[释放技能英雄]>受影响英雄>正常UI>黑色蒙版>未受影响英雄>底图
    //  释放技能钟的英雄层级
    public static int ActiveHeroActionSortingOrder
    {
        get
        {
            return ActiveHeroSortingOrder + 1;
        }
    }
    // 激活英雄的前特效
    public static int ActiveHeroFrontSortingOrder
    {
        get
        {
            return ActiveHeroActionSortingOrder + 1;
        }
    }
    #region Buff限制组
    public const int HardControlGroup = 1;
    public const int SoftControlGroup = 2;
@@ -202,4 +266,25 @@
        PassiveSkillLimitGroup,
    };
    public const int ShieldBuffAttackType = 1003;//护盾吸收伤害类型ID
    #endregion
    #region 特效ID
    public const int BlockEffectID = 19999; // 格挡特效ID
    public const int RebornEffectID = 10025;    // 复活特效ID
    public const int BreakArmorEffectID = 10026; // 贯穿特效ID
    public const int ParryEffectID = 10027; // 招架特效ID
    #endregion
    #region 音效ID
    public const int DodgeSoundID = 5999999; // 闪避音效ID
    #endregion
}