feat(enemy): 攻击选招元数据(category/weight/圆形射程)与选招模式入 SO

This commit is contained in:
2026-07-24 11:56:07 +08:00
parent f15f0a6876
commit 25fae97065
4 changed files with 37 additions and 0 deletions
@@ -0,0 +1,11 @@
namespace BaseGames.Enemies.Abilities
{
/// <summary>能力调度分类:攻击选择器只从 <see cref="Attack"/> 类里选招。</summary>
public enum AbilityCategory
{
None, // 未分类(默认,不参与选招)
Attack, // 攻击招式(选择器候选)
Movement, // 位移/机动
Utility // 辅助/增益
}
}
@@ -0,0 +1,9 @@
namespace BaseGames.Enemies.Abilities
{
/// <summary>多攻击选招策略。</summary>
public enum AttackSelectionMode
{
WeightedRandom, // 合格集内按 weight 加权随机
Priority // 合格集内取 priority 最高(并列取首个)
}
}
@@ -42,5 +42,17 @@ namespace BaseGames.Enemies.Abilities
public string exclusionGroup = "";
[Tooltip("AI 调度优先级(值越高越优先被选择,冷却就绪时对比)")]
[Min(0)] public int priority = 0;
[Header("选招(攻击选择器用)")]
[Tooltip("能力调度分类;攻击选择器只从 Attack 类里选招")]
public AbilityCategory category = AbilityCategory.None;
[Tooltip("WeightedRandom 模式下的相对权重(越大越易被选)")]
[Min(0f)] public float weight = 1f;
[Header("攻击触发范围(招式自管,圆形)")]
[Tooltip("触发半径(m)category==Attack 时必须 > 0,否则永远够不着(Awake 报错)")]
[Min(0f)] public float rangeRadius = 0f;
[Tooltip("范围圆心相对敌人的偏移(m),X 随朝向翻转")]
public Vector2 rangeOffset = Vector2.zero;
}
}