using UnityEngine; using BaseGames.Core.Save; namespace BaseGames.Progression { /// 在指定时间内击败 Boss 的成就条件(使用 ChallengeRooms.Records 的 BestTime)。 [CreateAssetMenu(menuName = "Achievement/Condition/TimedBossKill", fileName = "COND_TimedBossKill_")] public class TimedBossKillCondition : AchievementCondition { [Tooltip("Boss 的 ChallengeRoom 记录 ID(与 ChallengeRoomRecord key 匹配)")] public string bossRoomId; [Tooltip("需要在此秒数内完成击败(含)")] public float maxSeconds = 60f; public override bool IsMet(SaveData save) { if (save?.ChallengeRooms?.Records == null) return false; if (!save.ChallengeRooms.Records.TryGetValue(bossRoomId, out var record)) return false; return record.BestTime > 0f && record.BestTime <= maxSeconds; } } }