Files
zeling_v2/Assets/Scripts/Progression/Achievement/MapExplorationCondition.cs
2026-05-12 15:34:08 +08:00

23 lines
849 B
C#

using UnityEngine;
using BaseGames.Core.Save;
namespace BaseGames.Progression
{
/// <summary>地图探索率(已探索房间数)的成就条件。</summary>
[CreateAssetMenu(menuName = "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);
}
}
}