From d9f52a73e4e5ff38d01ad9a975cb8d71843c5b65 Mon Sep 17 00:00:00 2001 From: jake Date: Wed, 2 Dec 2020 19:01:53 -0700 Subject: [PATCH] thanksandy --- src/entity/item/weapon.rs | 89 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/src/entity/item/weapon.rs b/src/entity/item/weapon.rs index 2217a34..b689d43 100644 --- a/src/entity/item/weapon.rs +++ b/src/entity/item/weapon.rs @@ -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 { match data {