feat: add shadowbringers races and clans

This commit is contained in:
Anna 2019-05-28 20:49:17 -04:00
parent 1e635376f7
commit ac720a1bf7
2 changed files with 38 additions and 2 deletions

View File

@ -18,6 +18,9 @@ pub enum Clan {
// Elezen
Duskwight,
Wildwood,
// Hrothgar
Helion,
TheLost,
// Hyur
Highlander,
Midlander,
@ -30,15 +33,20 @@ pub enum Clan {
// Roegadyn
Hellsguard,
SeaWolf,
// Viera
Rava,
Veena,
}
impl Clan {
#[cfg(feature = "all_const")]
pub const ALL: [Clan; 12] = [
pub const ALL: [Clan; 16] = [
Clan::Raen,
Clan::Xaela,
Clan::Duskwight,
Clan::Wildwood,
Clan::Helion,
Clan::TheLost,
Clan::Highlander,
Clan::Midlander,
Clan::Dunesfolk,
@ -47,6 +55,8 @@ impl Clan {
Clan::SeekerOfTheSun,
Clan::Hellsguard,
Clan::SeaWolf,
Clan::Rava,
Clan::Veena,
];
/// Returns the string variant of this world.
@ -56,6 +66,8 @@ impl Clan {
Clan::Xaela => "Xaela",
Clan::Duskwight => "Duskwight",
Clan::Wildwood => "Wildwood",
Clan::Helion => "Helion",
Clan::TheLost => "TheLost",
Clan::Highlander => "Highlander",
Clan::Midlander => "Midlander",
Clan::Dunesfolk => "Dunesfolk",
@ -64,6 +76,8 @@ impl Clan {
Clan::SeekerOfTheSun => "SeekerOfTheSun",
Clan::Hellsguard => "Hellsguard",
Clan::SeaWolf => "SeaWolf",
Clan::Rava => "Rava",
Clan::Veena => "Veena",
}
}
@ -73,6 +87,8 @@ impl Clan {
Clan::Xaela => "Xaela",
Clan::Duskwight => "Duskwight",
Clan::Wildwood => "Wildwood",
Clan::Helion => "Helion",
Clan::TheLost => "The Lost",
Clan::Highlander => "Highlander",
Clan::Midlander => "Midlander",
Clan::Dunesfolk => "Dunesfolk",
@ -81,6 +97,8 @@ impl Clan {
Clan::SeekerOfTheSun => "Seeker of the Sun",
Clan::Hellsguard => "Hellsguard",
Clan::SeaWolf => "Sea Wolf",
Clan::Rava => "Rava",
Clan::Veena => "Veena",
}
}
@ -89,10 +107,12 @@ impl Clan {
match *self {
Clan::Raen | Clan::Xaela => Race::AuRa,
Clan::Duskwight | Clan::Wildwood => Race::Elezen,
Clan::Helion | Clan::TheLost => Race::Hrothgar,
Clan::Highlander | Clan::Midlander => Race::Hyur,
Clan::Dunesfolk | Clan::Plainsfolk => Race::Lalafell,
Clan::KeeperOfTheMoon | Clan::SeekerOfTheSun => Race::Miqote,
Clan::Hellsguard | Clan::SeaWolf => Race::Roegadyn,
Clan::Rava | Clan::Veena => Race::Viera,
}
}
}
@ -109,6 +129,8 @@ impl FromStr for Clan {
"xaela" => Clan::Xaela,
"duskwight" => Clan::Duskwight,
"wildwood" => Clan::Wildwood,
"helion" => Clan::Helion,
"thelost" | "the lost" => Clan::TheLost,
"highlander" => Clan::Highlander,
"midlander" => Clan::Midlander,
"dunesfolk" => Clan::Dunesfolk,
@ -117,6 +139,8 @@ impl FromStr for Clan {
"seekerofthesun" | "seeker of the sun" => Clan::SeekerOfTheSun,
"hellsguard" => Clan::Hellsguard,
"seawolf" | "sea wolf" => Clan::SeaWolf,
"rava" => Clan::Rava,
"veena" => Clan::Veena,
_ => return Err(UnknownVariant("Clan", s.into()))
};

View File

@ -14,21 +14,25 @@ use std::str::FromStr;
pub enum Race {
AuRa,
Elezen,
Hrothgar,
Hyur,
Lalafell,
Miqote,
Roegadyn,
Viera,
}
impl Race {
#[cfg(feature = "all_const")]
pub const ALL: [Race; 6] = [
pub const ALL: [Race; 8] = [
Race::AuRa,
Race::Elezen,
Race::Hrothgar,
Race::Hyur,
Race::Lalafell,
Race::Miqote,
Race::Roegadyn,
Race::Viera,
];
/// Returns the string variant of this world.
@ -36,10 +40,12 @@ impl Race {
match *self {
Race::AuRa => "AuRa",
Race::Elezen => "Elezen",
Race::Hrothgar => "Hrothgar",
Race::Hyur => "Hyur",
Race::Lalafell => "Lalafell",
Race::Miqote => "Miqote",
Race::Roegadyn => "Roegadyn",
Race::Viera => "Viera",
}
}
@ -47,10 +53,12 @@ impl Race {
match *self {
Race::AuRa => "Au Ra",
Race::Elezen => "Elezen",
Race::Hrothgar => "Hrothgar",
Race::Hyur => "Hyur",
Race::Lalafell => "Lalafell",
Race::Miqote => "Miqo'te",
Race::Roegadyn => "Roegadyn",
Race::Viera => "Viera",
}
}
@ -59,10 +67,12 @@ impl Race {
match *self {
Race::AuRa => [Clan::Raen, Clan::Xaela],
Race::Elezen => [Clan::Duskwight, Clan::Wildwood],
Race::Hrothgar => [Clan::Helion, Clan::TheLost],
Race::Hyur => [Clan::Highlander, Clan::Midlander],
Race::Lalafell => [Clan::Dunesfolk, Clan::Plainsfolk],
Race::Miqote => [Clan::KeeperOfTheMoon, Clan::SeekerOfTheSun],
Race::Roegadyn => [Clan::Hellsguard, Clan::SeaWolf],
Race::Viera => [Clan::Rava, Clan::Veena],
}
}
}
@ -77,10 +87,12 @@ impl FromStr for Race {
let world = match s.to_lowercase().as_str() {
"aura" | "au ra" => Race::AuRa,
"elezen" => Race::Elezen,
"hrothgar" => Race::Hrothgar,
"hyur" => Race::Hyur,
"lalafell" => Race::Lalafell,
"miqote" | "miqo'te" => Race::Miqote,
"roegadyn" => Race::Roegadyn,
"viera" => Race::Viera,
_ => return Err(UnknownVariant("Race", s.into()))
};