Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/Achievement.cs
2026-02-21 16:45:37 +08:00

75 lines
1.4 KiB
C#

using System;
using UnityEngine;
[Serializable]
public class Achievement
{
public string steamId = string.Empty;
public string nameId = string.Empty;
public string descriptionId = string.Empty;
public AchievementManager.AchievementId achievementId = AchievementManager.AchievementId.UNKNOWN;
public Fish.Species fishSpieces = Fish.Species.COUNT;
public Sprite icon;
public int points = 10;
public bool isCompleted;
public int progressStart;
public int progressCurrent;
public int progressGoal = -1;
private void Start()
{
}
public void CompleteAchievement(bool force)
{
isCompleted = true;
if (steamId == string.Empty)
{
steamId = achievementId.ToString();
}
AchievementManager.Instance.ShowAchievement(achievementId);
AchievementManager.Instance.UnlockSteamAchievement(steamId);
}
public void ResetAchievement()
{
isCompleted = false;
progressCurrent = progressStart;
if (steamId == string.Empty)
{
steamId = achievementId.ToString();
}
AchievementManager.Instance.ResetSteamAchievement(steamId);
}
public void UpdateAchievement(int progress)
{
progressCurrent += progress;
if (progressCurrent >= progressGoal)
{
progressCurrent = progressGoal;
CompleteAchievement(false);
}
}
public void SetAchievementProgress(int progress)
{
progressCurrent = progress;
if (progressCurrent >= progressGoal)
{
progressCurrent = progressGoal;
CompleteAchievement(false);
}
}
}