using UnityEngine; using BaseGames.Core.Save; namespace BaseGames.Progression { /// 地图探索率(已探索房间数)的成就条件。 [CreateAssetMenu(menuName = "BaseGames/Achievement/Condition/MapExploration", fileName = "COND_MapExploration_")] public class MapExplorationCondition : AchievementCondition { [Tooltip("需要探索的最少房间数量")] [Min(1)] public int requiredRoomCount = 1; public override bool IsMet(SaveData save) => save?.Map != null && save.Map.ExploredRooms.Count >= requiredRoomCount; public override float GetProgress(SaveData save) { if (save?.Map == null || requiredRoomCount <= 0) return 0f; return UnityEngine.Mathf.Clamp01((float)save.Map.ExploredRooms.Count / requiredRoomCount); } } }