using System;
namespace Framework.Storage.Containers {
/// Default interface for an achievement container
///
/// This interface should be implemented by your game-specific achievement container
/// so generic achievement handling tools, UIs and triggers can access achivements
/// without having to be reimplement for each specific game.
///
public interface IAchievements {
/// Triggers whenever an achievement is granted to the player
///
/// This event can be hooked to display an achievement overlay.
///
event Action AchievementGained;
/// Checks whether the player has unlocked a specified achievements
/// Name of the achievement that will be checked
/// True if the achievment has been unlocked, false otherwise
bool HasAchievement(string name);
/// Unlocks an achievement for the player
/// Name of the achievement that will unlocked
void GrantAchievement(string name);
/// Clears all achievements
void ResetAllAchievements();
}
} // namespace Framework.Storage.Containers