using UnityEngine;
using BaseGames.Core.Save;
namespace BaseGames.Progression
{
///
/// 成就触发条件基类(架构 16_SupportingModules §2.3)。
/// 每个子类对应一种具体触发逻辑,由 AchievementManager 驱动轮询或事件检查。
///
public abstract class AchievementCondition : ScriptableObject
{
/// 检查条件是否在当前存档数据中已满足。
public abstract bool IsMet(SaveData save);
/// 获取当前进度(0-1),用于成就 UI 进度条显示。返回 -1 表示不支持进度。
public virtual float GetProgress(SaveData save) => IsMet(save) ? 1f : 0f;
}
}