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), }; // 战场名称 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 static Dictionary battleNameToWinName = new Dictionary() { { StoryBattleField, "BattleWin" }, { StoryBossBattleField, "StoryBossBattleWin" }, { ArenaBattleField, "ArenaBattleWin" }, { BoneBattleField, "BoneFieldBattleWin" }, { TianziBillboradBattleField, "TianziBillboradBattleWin" }, }; public static Dictionary FieldNameToIndex = new Dictionary() { { StoryBossBattleField, 1 }, { ArenaBattleField, 2 }, { BoneBattleField, 3}, { TianziBillboradBattleField, 4 }, }; //和 CreateBattleField 里的对应 public static Dictionary mapIDToBattleNameDic = new Dictionary() { {1, StoryBattleField}, {2, StoryBossBattleField}, {3, ArenaBattleField}, {30010, BoneBattleField}, {30020, TianziBillboradBattleField}, }; #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; // 击晕 #endregion #region 战斗层级排序 // 1000~10000之间的战斗层级 // 需要考虑根据UI 特效 战斗角色三方的层级关系 // 确立基本的层级范围 后往上累加 // 1.不能在BattleWin之下 否则就看不见了 // 2.处理EffectPenetrationBlocker的自动调整排序 // 3.要联动EffectConfig的前后的问题 // BattleWin.Canvas.sortingOrder是最低值 // 还需要确立黑色的Mask的层级 // UI界面|非激活英雄|挡板|激活英雄 // 非激活英雄后特效|非激活英雄|非激活英雄前 // 激活英雄后特效|激活英雄|激活英雄前特效 // ---------------------2025、10.23更新 // 现在期望 蒙版不要压住UI 更改策略 // 释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>底图 //释放技能英雄>受影响英雄>[正常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; } } // 释放技能英雄>受影响英雄>正常UI>黑色蒙版>未受影响英雄>[底图] public static int BattleBackgroundOrder { get { return BattleWinSortingOrder - 10; } } // 非激活英雄的后特效 public static int UnactiveHeroBackSortingOrder { get { return BattleBackgroundOrder + 1; } } //释放技能英雄>受影响英雄>正常UI>黑色蒙版>[未受影响英雄]>底图 // 非激活英雄的层级 public static int UnactiveHeroSortingOrder { get { return UnactiveHeroBackSortingOrder + 1; } } // 非激活英雄的前特效 public static int UnactiveHeroFrontSortingOrder { get { return UnactiveHeroSortingOrder + 1; } } //释放技能英雄>受影响英雄>正常UI>[黑色蒙版]>未受影响英雄>底图 // 黑色蒙版的层级 public static int BlockerSortingOrder { get { return UnactiveHeroFrontSortingOrder + 1; } } // 激活英雄的后特效 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; } } #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 = 20000; // 复活特效ID #endregion #region 音效ID public const int DodgeSoundID = 5999999; // 闪避音效ID #endregion }