wotw_seedgen 0.2.1

Seed Generator for the Ori and the Will of the Wisps Randomizer
use std::fmt;

use crate::util::Zone;

#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy)]
pub enum SysMessage {
    RelicList,
    MapRelicList(Zone),
    PickupCount,
    GoalProgress,
}
impl SysMessage {
    pub fn from_id(id: u8) -> Option<SysMessage> {
        match id {
            0 => Some(SysMessage::RelicList),
            1 => Some(SysMessage::MapRelicList(Zone::Void)),
            2 => Some(SysMessage::PickupCount),
            3 => Some(SysMessage::GoalProgress),
            _ => None,
        }
    }
    pub fn to_id(self) -> u8 {
        match self {
            SysMessage::RelicList => 0,
            SysMessage::MapRelicList(_) => 1,
            SysMessage::PickupCount => 2,
            SysMessage::GoalProgress => 3,
        }
    }
}
impl fmt::Display for SysMessage {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match self {
            SysMessage::RelicList => write!(f, "Relic List"),
            SysMessage::MapRelicList(zone) => write!(f, "{zone} Map Relic List"),
            SysMessage::PickupCount => write!(f, "Pickup Count"),
            SysMessage::GoalProgress => write!(f, "Goal Progress"),
        }
    }
}