|
|
@ -93,6 +93,95 @@ impl WeaponSpecial { |
|
|
|
pub fn value(&self) -> u8 {
|
|
|
|
*self as u8
|
|
|
|
}
|
|
|
|
pub fn rank_up(&self) -> WeaponSpecial {
|
|
|
|
match self {
|
|
|
|
WeaponSpecial::Draw => WeaponSpecial::Drain,
|
|
|
|
WeaponSpecial::Drain => WeaponSpecial::Fill,
|
|
|
|
WeaponSpecial::Fill => WeaponSpecial::Gush,
|
|
|
|
WeaponSpecial::Gush => WeaponSpecial::Gush,
|
|
|
|
WeaponSpecial::Heart => WeaponSpecial::Mind,
|
|
|
|
WeaponSpecial::Mind => WeaponSpecial::Soul,
|
|
|
|
WeaponSpecial::Soul => WeaponSpecial::Geist,
|
|
|
|
WeaponSpecial::Geist => WeaponSpecial::Geist,
|
|
|
|
WeaponSpecial::Masters => WeaponSpecial::Lords,
|
|
|
|
WeaponSpecial::Lords => WeaponSpecial::Kings,
|
|
|
|
WeaponSpecial::Kings => WeaponSpecial::Kings,
|
|
|
|
WeaponSpecial::Charge => WeaponSpecial::Charge,
|
|
|
|
WeaponSpecial::Spirit => WeaponSpecial::Spirit,
|
|
|
|
WeaponSpecial::Berserk => WeaponSpecial::Berserk,
|
|
|
|
WeaponSpecial::Ice => WeaponSpecial::Frost,
|
|
|
|
WeaponSpecial::Frost => WeaponSpecial::Freeze,
|
|
|
|
WeaponSpecial::Freeze => WeaponSpecial::Blizzard,
|
|
|
|
WeaponSpecial::Blizzard => WeaponSpecial::Blizzard,
|
|
|
|
WeaponSpecial::Bind => WeaponSpecial::Hold,
|
|
|
|
WeaponSpecial::Hold => WeaponSpecial::Seize,
|
|
|
|
WeaponSpecial::Seize => WeaponSpecial::Arrest,
|
|
|
|
WeaponSpecial::Arrest => WeaponSpecial::Arrest,
|
|
|
|
WeaponSpecial::Heat => WeaponSpecial::Fire,
|
|
|
|
WeaponSpecial::Fire => WeaponSpecial::Flame,
|
|
|
|
WeaponSpecial::Flame => WeaponSpecial::Burning,
|
|
|
|
WeaponSpecial::Burning => WeaponSpecial::Burning,
|
|
|
|
WeaponSpecial::Shock => WeaponSpecial::Thunder,
|
|
|
|
WeaponSpecial::Thunder => WeaponSpecial::Storm,
|
|
|
|
WeaponSpecial::Storm => WeaponSpecial::Tempest,
|
|
|
|
WeaponSpecial::Tempest => WeaponSpecial::Tempest,
|
|
|
|
WeaponSpecial::Dim => WeaponSpecial::Shadow,
|
|
|
|
WeaponSpecial::Shadow => WeaponSpecial::Dark,
|
|
|
|
WeaponSpecial::Dark => WeaponSpecial::Hell,
|
|
|
|
WeaponSpecial::Hell => WeaponSpecial::Hell,
|
|
|
|
WeaponSpecial::Panic => WeaponSpecial::Riot,
|
|
|
|
WeaponSpecial::Riot => WeaponSpecial::Havoc,
|
|
|
|
WeaponSpecial::Havoc => WeaponSpecial::Chaos,
|
|
|
|
WeaponSpecial::Chaos => WeaponSpecial::Chaos,
|
|
|
|
WeaponSpecial::Devils => WeaponSpecial::Demons,
|
|
|
|
WeaponSpecial::Demons => WeaponSpecial::Demons,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn rank_down(&self) -> WeaponSpecial {
|
|
|
|
match self {
|
|
|
|
WeaponSpecial::Draw => WeaponSpecial::Draw,
|
|
|
|
WeaponSpecial::Drain => WeaponSpecial::Draw,
|
|
|
|
WeaponSpecial::Fill => WeaponSpecial::Drain,
|
|
|
|
WeaponSpecial::Gush => WeaponSpecial::Fill,
|
|
|
|
WeaponSpecial::Heart => WeaponSpecial::Heart,
|
|
|
|
WeaponSpecial::Mind => WeaponSpecial::Heart,
|
|
|
|
WeaponSpecial::Soul => WeaponSpecial::Mind,
|
|
|
|
WeaponSpecial::Geist => WeaponSpecial::Soul,
|
|
|
|
WeaponSpecial::Masters => WeaponSpecial::Masters,
|
|
|
|
WeaponSpecial::Lords => WeaponSpecial::Masters,
|
|
|
|
WeaponSpecial::Kings => WeaponSpecial::Lords,
|
|
|
|
WeaponSpecial::Charge => WeaponSpecial::Charge,
|
|
|
|
WeaponSpecial::Spirit => WeaponSpecial::Spirit,
|
|
|
|
WeaponSpecial::Berserk => WeaponSpecial::Berserk,
|
|
|
|
WeaponSpecial::Ice => WeaponSpecial::Ice,
|
|
|
|
WeaponSpecial::Frost => WeaponSpecial::Ice,
|
|
|
|
WeaponSpecial::Freeze => WeaponSpecial::Frost,
|
|
|
|
WeaponSpecial::Blizzard => WeaponSpecial::Freeze,
|
|
|
|
WeaponSpecial::Bind => WeaponSpecial::Bind,
|
|
|
|
WeaponSpecial::Hold => WeaponSpecial::Bind,
|
|
|
|
WeaponSpecial::Seize => WeaponSpecial::Hold,
|
|
|
|
WeaponSpecial::Arrest => WeaponSpecial::Seize,
|
|
|
|
WeaponSpecial::Heat => WeaponSpecial::Heat,
|
|
|
|
WeaponSpecial::Fire => WeaponSpecial::Heat,
|
|
|
|
WeaponSpecial::Flame => WeaponSpecial::Fire,
|
|
|
|
WeaponSpecial::Burning => WeaponSpecial::Flame,
|
|
|
|
WeaponSpecial::Shock => WeaponSpecial::Shock,
|
|
|
|
WeaponSpecial::Thunder => WeaponSpecial::Shock,
|
|
|
|
WeaponSpecial::Storm => WeaponSpecial::Thunder,
|
|
|
|
WeaponSpecial::Tempest => WeaponSpecial::Storm,
|
|
|
|
WeaponSpecial::Dim => WeaponSpecial::Dim,
|
|
|
|
WeaponSpecial::Shadow => WeaponSpecial::Dim,
|
|
|
|
WeaponSpecial::Dark => WeaponSpecial::Shadow,
|
|
|
|
WeaponSpecial::Hell => WeaponSpecial::Dark,
|
|
|
|
WeaponSpecial::Panic => WeaponSpecial::Panic,
|
|
|
|
WeaponSpecial::Riot => WeaponSpecial::Panic,
|
|
|
|
WeaponSpecial::Havoc => WeaponSpecial::Riot,
|
|
|
|
WeaponSpecial::Chaos => WeaponSpecial::Havoc,
|
|
|
|
WeaponSpecial::Devils => WeaponSpecial::Devils,
|
|
|
|
WeaponSpecial::Demons => WeaponSpecial::Devils,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn from(data: u8) -> Option<WeaponSpecial> {
|
|
|
|
match data {
|
|
|
|