#[derive(Debug, Clone, PartialEq, Eq)]
pub struct LegendaryItem {
pub internal: &'static str,
pub name: &'static str,
pub weapon_type: &'static str,
pub manufacturer: &'static str,
}
pub const KNOWN_LEGENDARIES: &[LegendaryItem] = &[
LegendaryItem {
internal: "DAD_AR.comp_05_legendary_OM",
name: "OM",
weapon_type: "AR",
manufacturer: "DAD",
},
LegendaryItem {
internal: "DAD_AR_Lumberjack",
name: "Lumberjack",
weapon_type: "AR",
manufacturer: "DAD",
},
LegendaryItem {
internal: "DAD_SG.comp_05_legendary_HeartGUn",
name: "Heart Gun",
weapon_type: "SG",
manufacturer: "DAD",
},
LegendaryItem {
internal: "DAD_PS.Zipper",
name: "Zipper",
weapon_type: "PS",
manufacturer: "DAD",
},
LegendaryItem {
internal: "DAD_PS.Rangefinder",
name: "Rangefinder",
weapon_type: "PS",
manufacturer: "DAD",
},
LegendaryItem {
internal: "DAD_SG.Durendal",
name: "Durendal",
weapon_type: "SG",
manufacturer: "DAD",
},
LegendaryItem {
internal: "JAK_AR.comp_05_legendary_rowan",
name: "Rowan's Call",
weapon_type: "AR",
manufacturer: "JAK",
},
LegendaryItem {
internal: "JAK_PS.comp_05_legendary_SeventhSense",
name: "Seventh Sense",
weapon_type: "PS",
manufacturer: "JAK",
},
LegendaryItem {
internal: "JAK_PS.comp_05_legendary_kingsgambit",
name: "King's Gambit",
weapon_type: "PS",
manufacturer: "JAK",
},
LegendaryItem {
internal: "JAK_PS.comp_05_legendary_phantom_flame",
name: "Phantom Flame",
weapon_type: "PS",
manufacturer: "JAK",
},
LegendaryItem {
internal: "JAK_SG.comp_05_legendary_RainbowVomit",
name: "Rainbow Vomit",
weapon_type: "SG",
manufacturer: "JAK",
},
LegendaryItem {
internal: "JAK_SR.comp_05_legendary_ballista",
name: "Ballista",
weapon_type: "SR",
manufacturer: "JAK",
},
LegendaryItem {
internal: "MAL_HW.comp_05_legendary_GammaVoid",
name: "Gamma Void",
weapon_type: "HW",
manufacturer: "MAL",
},
LegendaryItem {
internal: "MAL_SM.comp_05_legendary_OhmIGot",
name: "Ohm I Got",
weapon_type: "SM",
manufacturer: "MAL",
},
LegendaryItem {
internal: "BOR_SM.comp_05_legendary_p",
name: "Unknown Borg SMG",
weapon_type: "SM",
manufacturer: "BOR",
},
LegendaryItem {
internal: "TED_AR.comp_05_legendary_Chuck",
name: "Chuck",
weapon_type: "AR",
manufacturer: "TED",
},
LegendaryItem {
internal: "TED_PS.comp_05_legendary_Sideshow",
name: "Sideshow",
weapon_type: "PS",
manufacturer: "TED",
},
LegendaryItem {
internal: "TED_SG.comp_05_legendary_a",
name: "Unknown Tediore Shotgun",
weapon_type: "SG",
manufacturer: "TED",
},
LegendaryItem {
internal: "TOR_AR.comp_05_legendary_Trogdor",
name: "Trogdor",
weapon_type: "AR",
manufacturer: "TOR",
},
LegendaryItem {
internal: "TOR_HW.comp_05_legendary_ravenfire",
name: "Ravenfire",
weapon_type: "HW",
manufacturer: "TOR",
},
LegendaryItem {
internal: "TOR_SG.comp_05_legendary_Linebacker",
name: "Linebacker",
weapon_type: "SG",
manufacturer: "TOR",
},
LegendaryItem {
internal: "VLA_AR.comp_05_legendary_WomboCombo",
name: "Wombo Combo",
weapon_type: "AR",
manufacturer: "VLA",
},
LegendaryItem {
internal: "VLA_HW.comp_05_legendary_AtlingGun",
name: "Atling Gun",
weapon_type: "HW",
manufacturer: "VLA",
},
LegendaryItem {
internal: "VLA_SM.comp_05_legendary_KaoSon",
name: "Kaoson",
weapon_type: "SM",
manufacturer: "VLA",
},
LegendaryItem {
internal: "VLA_SR.comp_05_legendary_Vyudazy",
name: "Vyudazy",
weapon_type: "SR",
manufacturer: "VLA",
},
];
pub fn legendary_by_internal(internal: &str) -> Option<&'static LegendaryItem> {
KNOWN_LEGENDARIES.iter().find(|l| l.internal == internal)
}
pub fn legendary_by_name(name: &str) -> Option<&'static LegendaryItem> {
KNOWN_LEGENDARIES.iter().find(|l| l.name == name)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_legendary_lookup() {
assert!(legendary_by_name("Seventh Sense").is_some());
assert!(legendary_by_internal("JAK_PS.comp_05_legendary_SeventhSense").is_some());
}
}