use num_enum::TryFromPrimitive;
use strum_macros::EnumIter;

#[derive(Clone, Copy, Debug, EnumIter, Eq, Ord, PartialEq, PartialOrd, TryFromPrimitive)]
#[repr(u8)]
pub enum Item {
    AshaSword = 0x00,
    KhanSword = 0x01,
    ShahSword = 0x02,
    CyrusSword = 0x03,
    CaliphSword = 0x04,
    IshtarSword = 0x05,
    SwordOfBabel = 0x06,
    LegendarySword = 0x07,
    PlainShield = 0x08,
    FlameShield = 0x09,
    ThunderShield = 0x0a,
    IceShield = 0x0b,
    SteelShield = 0x0c,
    RainbowShield = 0x0d,
    MagicShield = 0x0e,
    LegendShield = 0x0f,
    TravelerArmor = 0x10,
    WarriorArmor = 0x11,
    KnightArmor = 0x12,
    HeroArmor = 0x13,
    LegendaryArmor = 0x14,
    DebugArmor1 = 0x15,
    DebugArmor2 = 0x16,
    DebugArmor3 = 0x17,
    Unknown18 = 0x18,
    Unknown19 = 0x19,
    Unknown1A = 0x1a,
    Herb = 0x1b,
    HealingMedicine = 0x1c,
    MagicLamp = 0x1d,
    PepelogooEgg = 0x1e,
    CourageCrystal = 0x1f,
    Key = 0x20,
    Bomb = 0x21,
    Bucket = 0x22,
    WaterBucket = 0x23,
    GoldBar = 0x24,
    LeopardStatue = 0x25,
    WitchStatue = 0x26,
    DesertTurtleStatue = 0x27,
    HornedOwlStatue = 0x28,
    SwallowStatue = 0x29,
    Map = 0x2a,
    EarthMedallion = 0x2b,
    MoonMedallion = 0x2c,
    SunMedallion = 0x2d,
    WindMedallion = 0x2e,
    MagicCarpet = 0x2f,
    BigHeart1 = 0x30,
    BigHeart2 = 0x31,
    BigHeart3 = 0x32,
    BigHeart4 = 0x33,
    BigHeart5 = 0x34,
    BigHeart6 = 0x35,
    BigHeart7 = 0x36,
    BigHeart8 = 0x37,
    LifeDrop = 0x38,
    Unknown39 = 0x39,
    Unknown3A = 0x3a,
    Unknown3B = 0x3b,
    Unknown3C = 0x3c,
    Unknown3D = 0x3d,
    Unknown3E = 0x3e,
    Unknown3F = 0x3f,
    Unknown40 = 0x40,
    AshaSwordDescription = 0x41,
    KhanSwordDescription = 0x42,
    ShahSwordDescription = 0x43,
    CyrusSwordDescription = 0x44,
    CaliphSwordDescription = 0x45,
    IshtarSwordDescription = 0x46,
    SwordOfBabelDescription = 0x47,
    LegendarySwordDescription = 0x48,
    PlainShieldDescription = 0x49,
    FlameShieldDescription = 0x4a,
    ThunderShieldDescription = 0x4b,
    IceShieldDescription = 0x4c,
    SteelShieldDescription = 0x4d,
    RainbowShieldDescription = 0x4e,
    MagicShieldDescription = 0x4f,
    LegendShieldDescription = 0x50,
    TravelerArmorDescription = 0x51,
    WarriorArmorDescription = 0x52,
    KnightArmorDescription = 0x53,
    HeroArmorDescription = 0x54,
    LegendaryArmorDescription = 0x55,
    DebugArmor1Description = 0x56,
    DebugArmor2Description = 0x57,
    DebugArmor3Description = 0x58,
    Unknown18Description = 0x59,
    Unknown19Description = 0x5a,
    Unknown1ADescription = 0x5b,
    HerbDescription = 0x5c,
    HealingMedicineDescription = 0x5d,
    MagicLampDescription = 0x5e,
    PepelogooEggDescription = 0x5f,
    CourageCrystalDescription = 0x60,
    KeyDescription = 0x61,
    BombDescription = 0x62,
    BucketDescription = 0x63,
    WaterBucketDescription = 0x64,
    GoldBarDescription = 0x65,
    LeopardStatueDescription = 0x66,
    WitchStatueDescription = 0x67,
    DesertTurtleStatueDescription = 0x68,
    HornedOwlStatueDescription = 0x69,
    SwallowStatueDescription = 0x6a,
    MapDescription = 0x6b,
    EarthMedallionDescription = 0x6c,
    MoonMedallionDescription = 0x6d,
    SunMedallionDescription = 0x6e,
    WindMedallionDescription = 0x6f,
    MagicCarpetDescription = 0x70,
    BigHeartDescription1 = 0x71,
    BigHeartDescription2 = 0x72,
    BigHeartDescription3 = 0x73,
    BigHeartDescription4 = 0x74,
    BigHeartDescription5 = 0x75,
    BigHeartDescription6 = 0x76,
    BigHeartDescription7 = 0x77,
    BigHeartDescription8 = 0x78,
    LifeDropDescription = 0x79,
    Unknown39Description = 0x7a,
    Unknown3ADescription = 0x7b,
    Unknown3BDescription = 0x7c,
    Unknown3CDescription = 0x7d,
    Unknown3DDescription = 0x7e,
    Unknown3EDescription = 0x7f,
    Unknown3FDescription = 0x80,
    Unknown40Description = 0x81,
}
