using System;
|
using System.Collections.Generic;
|
|
public static class BattleConst
|
{
|
#region 战斗窗口配置
|
|
public static List<Type> BattleWindows = new List<Type>()
|
{
|
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<string, string> battleNameToWinName = new Dictionary<string, string>()
|
{
|
{ StoryBattleField, "BattleWin" },
|
{ StoryBossBattleField, "StoryBossBattleWin" },
|
{ ArenaBattleField, "ArenaBattleWin" },
|
{ BoneBattleField, "BoneFieldBattleWin" },
|
{ TianziBillboradBattleField, "TianziBillboradBattleWin" },
|
};
|
|
public static Dictionary<string, int> FieldNameToIndex = new Dictionary<string, int>()
|
{
|
{ StoryBossBattleField, 1 },
|
{ ArenaBattleField, 2 },
|
{ BoneBattleField, 3},
|
{ TianziBillboradBattleField, 4 },
|
};
|
|
//和 CreateBattleField 里的对应
|
public static Dictionary<int, string> mapIDToBattleNameDic = new Dictionary<int, string>()
|
{
|
{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>黑色蒙版>未受影响英雄>底图
|
|
|
// ----------------------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<int> activeWinOrders = new List<int>();
|
|
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 - 10;
|
}
|
}
|
|
#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
|
|
#endregion
|
|
#region 音效ID
|
|
public const int DodgeSoundID = 5999999; // 闪避音效ID
|
|
#endregion
|
}
|