diff options
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/mod.rs | 22 | 
1 files changed, 21 insertions, 1 deletions
diff --git a/src/api/mod.rs b/src/api/mod.rs index 0b823ae..b7a92d9 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -218,7 +218,27 @@ impl Api {      ///      /// Traits that are found in the cache are taken from there.      pub fn get_legends(&mut self, ids: &[String]) -> Result<Vec<Legend>, ApiError> { -        self.get_multiple_cached("legends", "legends/", ids) +        // As of 2022-11-28, the API only knows about 6 legends, missing the latest ("Legendary +        // Alliance"). Therefore, we fake the API response here. +        let to_fake = super::bt::Legend::Alliance.api_id().unwrap(); +        let mut missing_ids = Vec::new(); +        let mut result = Vec::new(); +        for id in ids { +            if id == &to_fake { +                // Hardcoded values +                result.push(Legend { +                    id: to_fake.clone(), +                    swap: 62749, +                    heal: 62719, +                    elite: 62942, +                    utilities: vec![62832, 62962, 62878], +                }); +            } else { +                missing_ids.push(id.clone()); +            } +        } +        result.extend(self.get_multiple_cached("legends", "legends/", &missing_ids)?); +        Ok(result)      }      /// Loads the image from the given URL.  | 
