aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/mod.rs22
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.