wotw_seedgen 0.2.1

Seed Generator for the Ori and the Will of the Wisps Randomizer
use num_enum::TryFromPrimitive;
use wotw_seedgen_derive::FromStr;

use crate::uber_state::UberIdentifier;

#[derive(Debug, wotw_seedgen_derive::Display, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, TryFromPrimitive, FromStr)]
#[repr(u8)]
pub enum Teleporter {
    Marsh = 16,
    Den = 1,
    Hollow = 5,
    Glades = 17,
    Wellspring = 3,
    Burrows = 0,
    WestWoods = 7,
    EastWoods = 8,
    Reach = 4,
    Depths = 6,
    EastLuma = 2,
    WestLuma = 13,
    WestWastes = 9,
    EastWastes = 10,
    OuterRuins = 11,
    InnerRuins = 14,
    Willow = 12,
    Shriek = 15,
}
impl Teleporter {
    pub(crate) fn attached_state(self) -> UberIdentifier {
        match self {
            Teleporter::Marsh => UberIdentifier::new(21786, 10185),
            Teleporter::Den => UberIdentifier::new(11666, 61594),
            Teleporter::Hollow => UberIdentifier::new(937, 26601),
            Teleporter::Glades => UberIdentifier::new(42178, 42096),
            Teleporter::Wellspring => UberIdentifier::new(53632, 18181),
            Teleporter::Burrows => UberIdentifier::new(24922, 42531),
            Teleporter::WestWoods => UberIdentifier::new(58674, 7071),
            Teleporter::EastWoods => UberIdentifier::new(58674, 1965),
            Teleporter::Reach => UberIdentifier::new(28895, 54235),
            Teleporter::Depths => UberIdentifier::new(18793, 38871),
            Teleporter::EastLuma => UberIdentifier::new(945, 58183),
            Teleporter::WestLuma => UberIdentifier::new(945, 1370),
            Teleporter::WestWastes => UberIdentifier::new(58674, 10029),
            Teleporter::EastWastes => UberIdentifier::new(20120, 49994),
            Teleporter::OuterRuins => UberIdentifier::new(20120, 41398),
            Teleporter::InnerRuins => UberIdentifier::new(10289, 4928),
            Teleporter::Willow => UberIdentifier::new(16155, 41465),
            Teleporter::Shriek => UberIdentifier::new(16155, 50867),
        }
    }
}