using System; using UnityEngine; namespace BaseGames.Challenge { /// /// 挑战房间定义 SO(架构 22_QuestChallengeModule §9)。 /// 资产路径: Assets/ScriptableObjects/Challenge/CHR_{challengeId}.asset /// [CreateAssetMenu(menuName = "BaseGames/Challenge/ChallengeRoom")] public class ChallengeRoomSO : ScriptableObject { [Header("标识")] public string challengeId; public string displayName; public ChallengeType challengeType; [Header("波次(非 BossRush)")] public ChallengeEncounterSO[] encounters; [Header("Boss Rush(BossRush 类型专用)")] public BossRushSequenceSO bossRushSequence; [Header("限制条件")] public float timeLimit; // 0 = 无时限 public bool requireNoHit; public int minComboRequired; // 0 = 无要求 [Header("奖励")] public BaseGames.Quest.RewardSO firstClearReward; // 首次通关奖励 public BaseGames.Quest.RewardSO repeatedReward; // 重复通关奖励 [Header("解锁条件")] public string[] prerequisiteBossIds; // 需击败的 Boss ID } public enum ChallengeType { Survival, TimeTrial, BossRush, NoHit } }