From d58b23c1b1261243c34751275111e1a24ea9f3c1 Mon Sep 17 00:00:00 2001 From: demenik Date: Thu, 11 Dec 2025 20:19:00 +0100 Subject: [PATCH] feat: Add title and description methods to AchievementId (#47) --- src/features/achievement/components.rs | 40 +++++++++++++++++++------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/src/features/achievement/components.rs b/src/features/achievement/components.rs index 788daf8..fef5673 100644 --- a/src/features/achievement/components.rs +++ b/src/features/achievement/components.rs @@ -19,21 +19,41 @@ pub enum AchievementId { } impl AchievementId { - /// Label to be displayed ingame - pub fn label(&self) -> String { + /// Title to be displayed ingame + pub fn title(&self) -> String { match self { - AchievementId::FirstSteps => "Erste Schritte: Verdiene eine Beere.", - AchievementId::MasterFarmer => "Meisterbauer: Verdiene 100 Beeren.", - AchievementId::BerryTycoon => "Beeren-Tycoon: Verdiene 1.000 Beeren.", - AchievementId::GettingStarted => "Aller Anfang: Schließe deine erste Fokus-Phase ab.", - AchievementId::FocusMaster => "Fokus-Meister: Schließe 10 Fokus-Phasen ab.", - AchievementId::ZenMaster => "Zen-Meister: Schließe 50 Fokus-Phasen ab.", - AchievementId::Negligent => "Nachlässig: Lasse eine Pflanze verdorren.", - AchievementId::CompostKing => "Kompost-König: Lasse 10 Pflanzen verdorren.", + AchievementId::FirstSteps => "Erste Schritte", + AchievementId::MasterFarmer => "Meisterbauer", + AchievementId::BerryTycoon => "Beeren-Tycoon", + AchievementId::GettingStarted => "Aller Anfang", + AchievementId::FocusMaster => "Fokus-Meister", + AchievementId::ZenMaster => "Zen-Meister", + AchievementId::Negligent => "Nachlässig", + AchievementId::CompostKing => "Kompost-König", } .into() } + /// Description to be displayed ingame + pub fn description(&self) -> String { + match self { + AchievementId::FirstSteps => "Verdiene eine Beere.", + AchievementId::MasterFarmer => "Verdiene 100 Beeren.", + AchievementId::BerryTycoon => "Verdiene 1.000 Beeren.", + AchievementId::GettingStarted => "Schließe deine erste Fokus-Phase ab.", + AchievementId::FocusMaster => "Schließe 10 Fokus-Phasen ab.", + AchievementId::ZenMaster => "Schließe 50 Fokus-Phasen ab.", + AchievementId::Negligent => "Lasse eine Pflanze verdorren.", + AchievementId::CompostKing => "Lasse 10 Pflanzen verdorren.", + } + .into() + } + + /// Label to be displayed ingame (Title: Description) + pub fn label(&self) -> String { + format!("{}: {}", self.title(), self.description()) + } + /// Checks if an achievement's conditions are met pub fn conditions_met(&self, tracker: &SessionTracker) -> bool { match self {