diff options
Diffstat (limited to 'src/api/mod.rs')
-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. |