using System; using System.Collections.Generic; public static class BattleConst { #region 战斗窗口配置 public static List BattleWindows = new List() { typeof(BattleWin), typeof(StoryBossBattleWin), 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 battleNameToWinName = new Dictionary() { { StoryBattleField, "BattleWin" }, { StoryBossBattleField, "StoryBossBattleWin" }, { ArenaBattleField, "ArenaBattleWin" }, { BoneBattleField, "BoneFieldBattleWin" }, { TianziBillboradBattleField, "TianziBillboradBattleWin" }, { WarlordPavilionBattleField, "WarlordPavilionBattleWin" }, { PriviewBattleField, "PreviewBattleWin" }, { QYBattleField, "QYBattleWin" }, }; // 索引配置用 public static Dictionary FieldNameToIndex = new Dictionary() { { StoryBossBattleField, 1 }, { ArenaBattleField, 2 }, { BoneBattleField, 3}, { TianziBillboradBattleField, 4 }, { WarlordPavilionBattleField, 5 }, { PriviewBattleField, 6 }, { QYBattleField, 7 }, }; //和 CreateBattleField 里的对应 public static Dictionary mapIDToBattleNameDic = new Dictionary() { {1, StoryBattleField}, {2, StoryBossBattleField}, {3, ArenaBattleField}, {30010, BoneBattleField}, {30020, TianziBillboradBattleField}, {30030, WarlordPavilionBattleField}, {30000, PriviewBattleField}, {32000, QYBattleField}, }; //pvp战斗的战场,不在这个列表的视为pve类型的战场 public static List pvpBattleNameDic = new List() { 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 public const int BattleComboAttack = 100003; // 连击 public const int BattleCounterAttack = 100004; // 反击 public const int BattleChaseAttack = 100005; // 追击 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 特效 战斗角色三方的层级关系 // 确立基本的层级范围 后往上累加 // 1.不能在BattleWin之下 否则就看不见了 // 2.处理EffectPenetrationBlocker的自动调整排序 // 3.要联动EffectConfig的前后的问题 // BattleWin.Canvas.sortingOrder是最低值 // 还需要确立黑色的Mask的层级 // UI界面|非激活英雄|挡板|激活英雄 // 非激活英雄后特效|非激活英雄|非激活英雄前 // 激活英雄后特效|激活英雄|激活英雄前特效 // ---------------------2025、10.23更新 // 现在期望 蒙版不要压住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]>黑色蒙版>未受影响英雄>底图 public static int BattleWinSortingOrder { get { List activeWinOrders = new List(); for (int i = 0; i < BattleWindows.Count; i++) { var win = UIManager.Instance.GetUI(BattleWindows[i].Name); if (win != null && win.IsActive()) { activeWinOrders.Add(win.GetSortingOrder()); } } if (activeWinOrders.Count == 0) { return 0; } int maxOrder = activeWinOrders[0]; for (int i = 1; i < activeWinOrders.Count; i++) { if (activeWinOrders[i] > maxOrder) { maxOrder = activeWinOrders[i]; } } return maxOrder; } } 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 { return BattleWinSortingOrder - 10; } } // 释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>[底图] public static int BattleBackgroundOrder { get { return BattleWinSortingOrder - 30; } } public static int BattleStartEffectOrder { get { return SkillMaskOrder + BattleFrontHeroEffect + 5; } } public static int NotFolowTipsOrder { get { return SkillMaskOrder + BattleFrontHeroEffect + 1; } } #endregion #region Buff限制组 public const int HardControlGroup = 1; public const int SoftControlGroup = 2; public const int NormalAttackLimitGroup = 3; public const int RageAttackLimitGroup = 4; public const int PassiveSkillLimitGroup = 5; public static readonly int[] BuffLimitGroups = new int[] { HardControlGroup, SoftControlGroup, NormalAttackLimitGroup, RageAttackLimitGroup, 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 }