23 lines
859 B
C#
23 lines
859 B
C#
using UnityEngine;
|
|
using BaseGames.Core.Save;
|
|
|
|
namespace BaseGames.Progression
|
|
{
|
|
/// <summary>地图探索率(已探索房间数)的成就条件。</summary>
|
|
[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);
|
|
}
|
|
}
|
|
}
|