23 lines
832 B
C#
23 lines
832 B
C#
using UnityEngine;
|
||
using BaseGames.Core.Save;
|
||
|
||
namespace BaseGames.Progression
|
||
{
|
||
/// <summary>累计弹反成功次数的成就条件(使用 Stats.ParrySuccess)。</summary>
|
||
[CreateAssetMenu(menuName = "Achievement/Condition/ParryCount", fileName = "COND_ParryCount_")]
|
||
public class ParryCountCondition : AchievementCondition
|
||
{
|
||
[Tooltip("需要累计成功弹反的次数")]
|
||
[Min(1)] public int requiredCount = 10;
|
||
|
||
public override bool IsMet(SaveData save)
|
||
=> save?.Stats != null && save.Stats.ParrySuccess >= requiredCount;
|
||
|
||
public override float GetProgress(SaveData save)
|
||
{
|
||
if (save?.Stats == null || requiredCount <= 0) return 0f;
|
||
return UnityEngine.Mathf.Clamp01((float)save.Stats.ParrySuccess / requiredCount);
|
||
}
|
||
}
|
||
}
|