Files
zeling_v2/Assets/_Game/Scripts/Enemies/Boss/BossSkillSO.cs
T
joywayer a1b4e629aa feat: Implement Room Streaming System
- Add RoomStreamingManager to manage room loading and unloading based on player proximity.
- Create StreamingBudgetConfigSO for memory and performance budgeting of the streaming system.
- Introduce TransitionDirector to handle seamless and atmospheric fade transitions between rooms.
- Develop WorldGraph to represent room connectivity and facilitate neighbor queries and distance calculations.
- Implement RoomNode and RoomEdge classes to structure room data and connections.
2026-05-23 19:10:29 +08:00

70 lines
2.2 KiB
C#

using System;
using UnityEngine;
using Animancer;
using BaseGames.Combat;
namespace BaseGames.Boss
{
/// <summary>
/// Boss 单个技能的所有数据,包括攻击模式、弱点窗口、互动标签等。
/// </summary>
[CreateAssetMenu(menuName = "BaseGames/Boss/BossSkill")]
public class BossSkillSO : ScriptableObject
{
[Header("元信息")]
[Tooltip("技能唯一标识符(全小写英文 + 下划线,如 'slash_combo'、'phase_dash')。BD_UseBossSkill 通过此 Id 引用")]
public string skillId;
[Tooltip("编辑器中显示的可读名称,不影响运行逻辑")]
public string displayName;
[TextArea(1, 4)]
[Tooltip("设计备注(仅供编辑器参考,不影响运行)")]
public string designNote;
[Header("技能分类")]
public BossSkillCategory category;
public BossSkillType skillType;
[Header("阶段可用性")]
[Tooltip("空数组 = 全阶段可用")]
public int[] availablePhaseIndices;
[Header("核心攻击动作引用")]
public AttackPatternSO[] attackPatterns;
[Header("弱点窗口(至少 1 个)")]
public VulnerabilityWindow[] vulnerabilityWindows;
[Header("互动标签")]
public InteractionTag interactionTags;
[Header("连段")]
public SkillSequenceSO sequenceOnHit;
public SkillSequenceSO sequenceOnMiss;
[Header("玩家反制接口")]
public PlayerCounterResponse[] counterResponses;
[Header("场景联动")]
public ArenaEventTrigger[] arenaEvents;
[Header("Boss 资源")]
public BossResourceCost resourceCost;
public bool buildsRage;
[Header("霸体配置")]
public PoiseWindowConfig poiseWindow;
[Header("动画")]
public ClipTransition skillAnimation;
[Header("冷却")]
[Min(0f)]
public float cooldown;
[Header("权重随机(UseBossSkillWeighted 使用)")]
[Tooltip("相对权重,数值越大被随机选中的概率越高;0 = 禁用随机选择")]
[Min(0f)]
public float weight = 1f;
}
}