shield and unit item stats
This commit is contained in:
parent
d33a74f9ac
commit
b0c6d10590
@ -1,6 +1,6 @@
|
|||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
||||||
pub enum ShieldType {
|
pub enum ShieldType {
|
||||||
Barrier,
|
Barrier,
|
||||||
Shield,
|
Shield,
|
||||||
@ -25,8 +25,8 @@ pub enum ShieldType {
|
|||||||
CelestialShield,
|
CelestialShield,
|
||||||
InvisibleGuard,
|
InvisibleGuard,
|
||||||
SacredGuard,
|
SacredGuard,
|
||||||
SPartsver116,
|
SPartsVer116,
|
||||||
SPartsver201,
|
SPartsVer201,
|
||||||
LightRelief,
|
LightRelief,
|
||||||
ShieldOfDelsaber,
|
ShieldOfDelsaber,
|
||||||
ForceWall,
|
ForceWall,
|
||||||
@ -39,7 +39,7 @@ pub enum ShieldType {
|
|||||||
RegenerateGear,
|
RegenerateGear,
|
||||||
RegeneGearAdv,
|
RegeneGearAdv,
|
||||||
FlowensShield,
|
FlowensShield,
|
||||||
CustomBarrierveroo,
|
CustomBarrierVerOo,
|
||||||
DbsShield,
|
DbsShield,
|
||||||
RedRing,
|
RedRing,
|
||||||
TripolicShield,
|
TripolicShield,
|
||||||
@ -144,7 +144,7 @@ pub enum ShieldType {
|
|||||||
BunnyEars,
|
BunnyEars,
|
||||||
CatEars,
|
CatEars,
|
||||||
ThreeSeals,
|
ThreeSeals,
|
||||||
GodsShieldkouryu,
|
GodsShieldKouryu,
|
||||||
DfShield,
|
DfShield,
|
||||||
FromTheDepths,
|
FromTheDepths,
|
||||||
DeRolLeShield,
|
DeRolLeShield,
|
||||||
@ -172,170 +172,170 @@ pub enum ShieldType {
|
|||||||
impl ShieldType {
|
impl ShieldType {
|
||||||
pub fn value(&self) -> [u8; 3] {
|
pub fn value(&self) -> [u8; 3] {
|
||||||
match self {
|
match self {
|
||||||
ShieldType::Barrier => [0x01, 0x02, 0x00],
|
ShieldType::Barrier => [0x01, 0x02, 0x00],
|
||||||
ShieldType::Shield => [0x01, 0x02, 0x01],
|
ShieldType::Shield => [0x01, 0x02, 0x01],
|
||||||
ShieldType::CoreShield => [0x01, 0x02, 0x02],
|
ShieldType::CoreShield => [0x01, 0x02, 0x02],
|
||||||
ShieldType::GigaShield => [0x01, 0x02, 0x03],
|
ShieldType::GigaShield => [0x01, 0x02, 0x03],
|
||||||
ShieldType::SoulBarrier => [0x01, 0x02, 0x04],
|
ShieldType::SoulBarrier => [0x01, 0x02, 0x04],
|
||||||
ShieldType::HardShield => [0x01, 0x02, 0x05],
|
ShieldType::HardShield => [0x01, 0x02, 0x05],
|
||||||
ShieldType::BraveBarrier => [0x01, 0x02, 0x06],
|
ShieldType::BraveBarrier => [0x01, 0x02, 0x06],
|
||||||
ShieldType::SolidShield => [0x01, 0x02, 0x07],
|
ShieldType::SolidShield => [0x01, 0x02, 0x07],
|
||||||
ShieldType::FlameBarrier => [0x01, 0x02, 0x08],
|
ShieldType::FlameBarrier => [0x01, 0x02, 0x08],
|
||||||
ShieldType::PlasmaBarrier => [0x01, 0x02, 0x09],
|
ShieldType::PlasmaBarrier => [0x01, 0x02, 0x09],
|
||||||
ShieldType::FreezeBarrier => [0x01, 0x02, 0x0A],
|
ShieldType::FreezeBarrier => [0x01, 0x02, 0x0A],
|
||||||
ShieldType::PsychicBarrier => [0x01, 0x02, 0x0B],
|
ShieldType::PsychicBarrier => [0x01, 0x02, 0x0B],
|
||||||
ShieldType::GeneralShield => [0x01, 0x02, 0x0C],
|
ShieldType::GeneralShield => [0x01, 0x02, 0x0C],
|
||||||
ShieldType::ProtectBarrier => [0x01, 0x02, 0x0D],
|
ShieldType::ProtectBarrier => [0x01, 0x02, 0x0D],
|
||||||
ShieldType::GloriousShield => [0x01, 0x02, 0x0E],
|
ShieldType::GloriousShield => [0x01, 0x02, 0x0E],
|
||||||
ShieldType::ImperialBarrier => [0x01, 0x02, 0x0F],
|
ShieldType::ImperialBarrier => [0x01, 0x02, 0x0F],
|
||||||
ShieldType::GuardianShield => [0x01, 0x02, 0x10],
|
ShieldType::GuardianShield => [0x01, 0x02, 0x10],
|
||||||
ShieldType::DivinityBarrier => [0x01, 0x02, 0x11],
|
ShieldType::DivinityBarrier => [0x01, 0x02, 0x11],
|
||||||
ShieldType::UltimateShield => [0x01, 0x02, 0x12],
|
ShieldType::UltimateShield => [0x01, 0x02, 0x12],
|
||||||
ShieldType::SpiritualShield => [0x01, 0x02, 0x13],
|
ShieldType::SpiritualShield => [0x01, 0x02, 0x13],
|
||||||
ShieldType::CelestialShield => [0x01, 0x02, 0x14],
|
ShieldType::CelestialShield => [0x01, 0x02, 0x14],
|
||||||
ShieldType::InvisibleGuard => [0x01, 0x02, 0x15],
|
ShieldType::InvisibleGuard => [0x01, 0x02, 0x15],
|
||||||
ShieldType::SacredGuard => [0x01, 0x02, 0x16],
|
ShieldType::SacredGuard => [0x01, 0x02, 0x16],
|
||||||
ShieldType::SPartsver116 => [0x01, 0x02, 0x17],
|
ShieldType::SPartsVer116 => [0x01, 0x02, 0x17],
|
||||||
ShieldType::SPartsver201 => [0x01, 0x02, 0x18],
|
ShieldType::SPartsVer201 => [0x01, 0x02, 0x18],
|
||||||
ShieldType::LightRelief => [0x01, 0x02, 0x19],
|
ShieldType::LightRelief => [0x01, 0x02, 0x19],
|
||||||
ShieldType::ShieldOfDelsaber => [0x01, 0x02, 0x1A],
|
ShieldType::ShieldOfDelsaber => [0x01, 0x02, 0x1A],
|
||||||
ShieldType::ForceWall => [0x01, 0x02, 0x1B],
|
ShieldType::ForceWall => [0x01, 0x02, 0x1B],
|
||||||
ShieldType::RangerWall => [0x01, 0x02, 0x1C],
|
ShieldType::RangerWall => [0x01, 0x02, 0x1C],
|
||||||
ShieldType::HunterWall => [0x01, 0x02, 0x1D],
|
ShieldType::HunterWall => [0x01, 0x02, 0x1D],
|
||||||
ShieldType::AttributeWall => [0x01, 0x02, 0x1E],
|
ShieldType::AttributeWall => [0x01, 0x02, 0x1E],
|
||||||
ShieldType::SecretGear => [0x01, 0x02, 0x1F],
|
ShieldType::SecretGear => [0x01, 0x02, 0x1F],
|
||||||
ShieldType::CombatGear => [0x01, 0x02, 0x20],
|
ShieldType::CombatGear => [0x01, 0x02, 0x20],
|
||||||
ShieldType::ProtoRegeneGear => [0x01, 0x02, 0x21],
|
ShieldType::ProtoRegeneGear => [0x01, 0x02, 0x21],
|
||||||
ShieldType::RegenerateGear => [0x01, 0x02, 0x22],
|
ShieldType::RegenerateGear => [0x01, 0x02, 0x22],
|
||||||
ShieldType::RegeneGearAdv => [0x01, 0x02, 0x23],
|
ShieldType::RegeneGearAdv => [0x01, 0x02, 0x23],
|
||||||
ShieldType::FlowensShield => [0x01, 0x02, 0x24],
|
ShieldType::FlowensShield => [0x01, 0x02, 0x24],
|
||||||
ShieldType::CustomBarrierveroo => [0x01, 0x02, 0x25],
|
ShieldType::CustomBarrierVerOo => [0x01, 0x02, 0x25],
|
||||||
ShieldType::DbsShield => [0x01, 0x02, 0x26],
|
ShieldType::DbsShield => [0x01, 0x02, 0x26],
|
||||||
ShieldType::RedRing => [0x01, 0x02, 0x27],
|
ShieldType::RedRing => [0x01, 0x02, 0x27],
|
||||||
ShieldType::TripolicShield => [0x01, 0x02, 0x28],
|
ShieldType::TripolicShield => [0x01, 0x02, 0x28],
|
||||||
ShieldType::StandstillShield => [0x01, 0x02, 0x29],
|
ShieldType::StandstillShield => [0x01, 0x02, 0x29],
|
||||||
ShieldType::SafetyHeart => [0x01, 0x02, 0x2A],
|
ShieldType::SafetyHeart => [0x01, 0x02, 0x2A],
|
||||||
ShieldType::KasamiBracer => [0x01, 0x02, 0x2B],
|
ShieldType::KasamiBracer => [0x01, 0x02, 0x2B],
|
||||||
ShieldType::GodsShieldSuzaku => [0x01, 0x02, 0x2C],
|
ShieldType::GodsShieldSuzaku => [0x01, 0x02, 0x2C],
|
||||||
ShieldType::GodsShieldGenbu => [0x01, 0x02, 0x2D],
|
ShieldType::GodsShieldGenbu => [0x01, 0x02, 0x2D],
|
||||||
ShieldType::GodsShieldByakko => [0x01, 0x02, 0x2E],
|
ShieldType::GodsShieldByakko => [0x01, 0x02, 0x2E],
|
||||||
ShieldType::GodsShieldSeiryu => [0x01, 0x02, 0x2F],
|
ShieldType::GodsShieldSeiryu => [0x01, 0x02, 0x2F],
|
||||||
ShieldType::HuntersShell => [0x01, 0x02, 0x30],
|
ShieldType::HuntersShell => [0x01, 0x02, 0x30],
|
||||||
ShieldType::RicosGlasses => [0x01, 0x02, 0x31],
|
ShieldType::RicosGlasses => [0x01, 0x02, 0x31],
|
||||||
ShieldType::RicosEarring => [0x01, 0x02, 0x32],
|
ShieldType::RicosEarring => [0x01, 0x02, 0x32],
|
||||||
ShieldType::BlueRing => [0x01, 0x02, 0x33],
|
ShieldType::BlueRing => [0x01, 0x02, 0x33],
|
||||||
ShieldType::Barrier2 => [0x01, 0x02, 0x34],
|
ShieldType::Barrier2 => [0x01, 0x02, 0x34],
|
||||||
ShieldType::SecureFeet => [0x01, 0x02, 0x35],
|
ShieldType::SecureFeet => [0x01, 0x02, 0x35],
|
||||||
ShieldType::Barrier3 => [0x01, 0x02, 0x36],
|
ShieldType::Barrier3 => [0x01, 0x02, 0x36],
|
||||||
ShieldType::Barrier4 => [0x01, 0x02, 0x37],
|
ShieldType::Barrier4 => [0x01, 0x02, 0x37],
|
||||||
ShieldType::Barrier5 => [0x01, 0x02, 0x38],
|
ShieldType::Barrier5 => [0x01, 0x02, 0x38],
|
||||||
ShieldType::Barrier6 => [0x01, 0x02, 0x39],
|
ShieldType::Barrier6 => [0x01, 0x02, 0x39],
|
||||||
ShieldType::RestaMerge => [0x01, 0x02, 0x3A],
|
ShieldType::RestaMerge => [0x01, 0x02, 0x3A],
|
||||||
ShieldType::AntiMerge => [0x01, 0x02, 0x3B],
|
ShieldType::AntiMerge => [0x01, 0x02, 0x3B],
|
||||||
ShieldType::ShiftaMerge => [0x01, 0x02, 0x3C],
|
ShieldType::ShiftaMerge => [0x01, 0x02, 0x3C],
|
||||||
ShieldType::DebandMerge => [0x01, 0x02, 0x3D],
|
ShieldType::DebandMerge => [0x01, 0x02, 0x3D],
|
||||||
ShieldType::FoieMerge => [0x01, 0x02, 0x3E],
|
ShieldType::FoieMerge => [0x01, 0x02, 0x3E],
|
||||||
ShieldType::GifoieMerge => [0x01, 0x02, 0x3F],
|
ShieldType::GifoieMerge => [0x01, 0x02, 0x3F],
|
||||||
ShieldType::RafoieMerge => [0x01, 0x02, 0x40],
|
ShieldType::RafoieMerge => [0x01, 0x02, 0x40],
|
||||||
ShieldType::RedMerge => [0x01, 0x02, 0x41],
|
ShieldType::RedMerge => [0x01, 0x02, 0x41],
|
||||||
ShieldType::BartaMerge => [0x01, 0x02, 0x42],
|
ShieldType::BartaMerge => [0x01, 0x02, 0x42],
|
||||||
ShieldType::GibartaMerge => [0x01, 0x02, 0x43],
|
ShieldType::GibartaMerge => [0x01, 0x02, 0x43],
|
||||||
ShieldType::RabartaMerge => [0x01, 0x02, 0x44],
|
ShieldType::RabartaMerge => [0x01, 0x02, 0x44],
|
||||||
ShieldType::BlueMerge => [0x01, 0x02, 0x45],
|
ShieldType::BlueMerge => [0x01, 0x02, 0x45],
|
||||||
ShieldType::ZondeMerge => [0x01, 0x02, 0x46],
|
ShieldType::ZondeMerge => [0x01, 0x02, 0x46],
|
||||||
ShieldType::GizondeMerge => [0x01, 0x02, 0x47],
|
ShieldType::GizondeMerge => [0x01, 0x02, 0x47],
|
||||||
ShieldType::RazondeMerge => [0x01, 0x02, 0x48],
|
ShieldType::RazondeMerge => [0x01, 0x02, 0x48],
|
||||||
ShieldType::YellowMerge => [0x01, 0x02, 0x49],
|
ShieldType::YellowMerge => [0x01, 0x02, 0x49],
|
||||||
ShieldType::RecoveryBarrier => [0x01, 0x02, 0x4A],
|
ShieldType::RecoveryBarrier => [0x01, 0x02, 0x4A],
|
||||||
ShieldType::AssistBarrier => [0x01, 0x02, 0x4B],
|
ShieldType::AssistBarrier => [0x01, 0x02, 0x4B],
|
||||||
ShieldType::RedBarrier => [0x01, 0x02, 0x4C],
|
ShieldType::RedBarrier => [0x01, 0x02, 0x4C],
|
||||||
ShieldType::BlueBarrier => [0x01, 0x02, 0x4D],
|
ShieldType::BlueBarrier => [0x01, 0x02, 0x4D],
|
||||||
ShieldType::YellowBarrier => [0x01, 0x02, 0x4E],
|
ShieldType::YellowBarrier => [0x01, 0x02, 0x4E],
|
||||||
ShieldType::WeaponsGoldShield => [0x01, 0x02, 0x4F],
|
ShieldType::WeaponsGoldShield => [0x01, 0x02, 0x4F],
|
||||||
ShieldType::BlackGear => [0x01, 0x02, 0x50],
|
ShieldType::BlackGear => [0x01, 0x02, 0x50],
|
||||||
ShieldType::WorksGuard => [0x01, 0x02, 0x51],
|
ShieldType::WorksGuard => [0x01, 0x02, 0x51],
|
||||||
ShieldType::RagolRing => [0x01, 0x02, 0x52],
|
ShieldType::RagolRing => [0x01, 0x02, 0x52],
|
||||||
ShieldType::BlueRing2 => [0x01, 0x02, 0x53],
|
ShieldType::BlueRing2 => [0x01, 0x02, 0x53],
|
||||||
ShieldType::BlueRing3 => [0x01, 0x02, 0x54],
|
ShieldType::BlueRing3 => [0x01, 0x02, 0x54],
|
||||||
ShieldType::BlueRing4 => [0x01, 0x02, 0x55],
|
ShieldType::BlueRing4 => [0x01, 0x02, 0x55],
|
||||||
ShieldType::BlueRing5 => [0x01, 0x02, 0x56],
|
ShieldType::BlueRing5 => [0x01, 0x02, 0x56],
|
||||||
ShieldType::BlueRing6 => [0x01, 0x02, 0x57],
|
ShieldType::BlueRing6 => [0x01, 0x02, 0x57],
|
||||||
ShieldType::BlueRing7 => [0x01, 0x02, 0x58],
|
ShieldType::BlueRing7 => [0x01, 0x02, 0x58],
|
||||||
ShieldType::BlueRing8 => [0x01, 0x02, 0x59],
|
ShieldType::BlueRing8 => [0x01, 0x02, 0x59],
|
||||||
ShieldType::BlueRing9 => [0x01, 0x02, 0x5A],
|
ShieldType::BlueRing9 => [0x01, 0x02, 0x5A],
|
||||||
ShieldType::GreenRing => [0x01, 0x02, 0x5B],
|
ShieldType::GreenRing => [0x01, 0x02, 0x5B],
|
||||||
ShieldType::GreenRing2 => [0x01, 0x02, 0x5C],
|
ShieldType::GreenRing2 => [0x01, 0x02, 0x5C],
|
||||||
ShieldType::GreenRing3 => [0x01, 0x02, 0x5D],
|
ShieldType::GreenRing3 => [0x01, 0x02, 0x5D],
|
||||||
ShieldType::GreenRing4 => [0x01, 0x02, 0x5E],
|
ShieldType::GreenRing4 => [0x01, 0x02, 0x5E],
|
||||||
ShieldType::GreenRing5 => [0x01, 0x02, 0x5F],
|
ShieldType::GreenRing5 => [0x01, 0x02, 0x5F],
|
||||||
ShieldType::GreenRing6 => [0x01, 0x02, 0x60],
|
ShieldType::GreenRing6 => [0x01, 0x02, 0x60],
|
||||||
ShieldType::GreenRing7 => [0x01, 0x02, 0x61],
|
ShieldType::GreenRing7 => [0x01, 0x02, 0x61],
|
||||||
ShieldType::GreenRing8 => [0x01, 0x02, 0x62],
|
ShieldType::GreenRing8 => [0x01, 0x02, 0x62],
|
||||||
ShieldType::YellowRing => [0x01, 0x02, 0x63],
|
ShieldType::YellowRing => [0x01, 0x02, 0x63],
|
||||||
ShieldType::YellowRing2 => [0x01, 0x02, 0x64],
|
ShieldType::YellowRing2 => [0x01, 0x02, 0x64],
|
||||||
ShieldType::YellowRing3 => [0x01, 0x02, 0x65],
|
ShieldType::YellowRing3 => [0x01, 0x02, 0x65],
|
||||||
ShieldType::YellowRing4 => [0x01, 0x02, 0x66],
|
ShieldType::YellowRing4 => [0x01, 0x02, 0x66],
|
||||||
ShieldType::YellowRing5=> [0x01, 0x02, 0x67],
|
ShieldType::YellowRing5=> [0x01, 0x02, 0x67],
|
||||||
ShieldType::YellowRing6 => [0x01, 0x02, 0x68],
|
ShieldType::YellowRing6 => [0x01, 0x02, 0x68],
|
||||||
ShieldType::YellowRing7 => [0x01, 0x02, 0x69],
|
ShieldType::YellowRing7 => [0x01, 0x02, 0x69],
|
||||||
ShieldType::YellowRing8 => [0x01, 0x02, 0x6A],
|
ShieldType::YellowRing8 => [0x01, 0x02, 0x6A],
|
||||||
ShieldType::PurpleRing => [0x01, 0x02, 0x6B],
|
ShieldType::PurpleRing => [0x01, 0x02, 0x6B],
|
||||||
ShieldType::PurpleRing2 => [0x01, 0x02, 0x6C],
|
ShieldType::PurpleRing2 => [0x01, 0x02, 0x6C],
|
||||||
ShieldType::PurpleRing3 => [0x01, 0x02, 0x6D],
|
ShieldType::PurpleRing3 => [0x01, 0x02, 0x6D],
|
||||||
ShieldType::PurpleRing4 => [0x01, 0x02, 0x6E],
|
ShieldType::PurpleRing4 => [0x01, 0x02, 0x6E],
|
||||||
ShieldType::PurpleRing5=> [0x01, 0x02, 0x6F],
|
ShieldType::PurpleRing5=> [0x01, 0x02, 0x6F],
|
||||||
ShieldType::PurpleRing6 => [0x01, 0x02, 0x70],
|
ShieldType::PurpleRing6 => [0x01, 0x02, 0x70],
|
||||||
ShieldType::PurpleRing7 => [0x01, 0x02, 0x71],
|
ShieldType::PurpleRing7 => [0x01, 0x02, 0x71],
|
||||||
ShieldType::PurpleRing8 => [0x01, 0x02, 0x72],
|
ShieldType::PurpleRing8 => [0x01, 0x02, 0x72],
|
||||||
ShieldType::WhiteRing => [0x01, 0x02, 0x73],
|
ShieldType::WhiteRing => [0x01, 0x02, 0x73],
|
||||||
ShieldType::WhiteRing2 => [0x01, 0x02, 0x74],
|
ShieldType::WhiteRing2 => [0x01, 0x02, 0x74],
|
||||||
ShieldType::WhiteRing3 => [0x01, 0x02, 0x75],
|
ShieldType::WhiteRing3 => [0x01, 0x02, 0x75],
|
||||||
ShieldType::WhiteRing4 => [0x01, 0x02, 0x76],
|
ShieldType::WhiteRing4 => [0x01, 0x02, 0x76],
|
||||||
ShieldType::WhiteRing5 => [0x01, 0x02, 0x77],
|
ShieldType::WhiteRing5 => [0x01, 0x02, 0x77],
|
||||||
ShieldType::WhiteRing6=> [0x01, 0x02, 0x78],
|
ShieldType::WhiteRing6=> [0x01, 0x02, 0x78],
|
||||||
ShieldType::WhiteRing7 => [0x01, 0x02, 0x79],
|
ShieldType::WhiteRing7 => [0x01, 0x02, 0x79],
|
||||||
ShieldType::WhiteRing8 => [0x01, 0x02, 0x7A],
|
ShieldType::WhiteRing8 => [0x01, 0x02, 0x7A],
|
||||||
ShieldType::BlackRing => [0x01, 0x02, 0x7B],
|
ShieldType::BlackRing => [0x01, 0x02, 0x7B],
|
||||||
ShieldType::BlackRing2 => [0x01, 0x02, 0x7C],
|
ShieldType::BlackRing2 => [0x01, 0x02, 0x7C],
|
||||||
ShieldType::BlackRing3 => [0x01, 0x02, 0x7D],
|
ShieldType::BlackRing3 => [0x01, 0x02, 0x7D],
|
||||||
ShieldType::BlackRing4 => [0x01, 0x02, 0x7E],
|
ShieldType::BlackRing4 => [0x01, 0x02, 0x7E],
|
||||||
ShieldType::BlackRing5 => [0x01, 0x02, 0x7F],
|
ShieldType::BlackRing5 => [0x01, 0x02, 0x7F],
|
||||||
ShieldType::BlackRing6 => [0x01, 0x02, 0x80],
|
ShieldType::BlackRing6 => [0x01, 0x02, 0x80],
|
||||||
ShieldType::BlackRing7 => [0x01, 0x02, 0x81],
|
ShieldType::BlackRing7 => [0x01, 0x02, 0x81],
|
||||||
ShieldType::BlackRing8 => [0x01, 0x02, 0x82],
|
ShieldType::BlackRing8 => [0x01, 0x02, 0x82],
|
||||||
ShieldType::WeaponsSilverShield => [0x01, 0x02, 0x83],
|
ShieldType::WeaponsSilverShield => [0x01, 0x02, 0x83],
|
||||||
ShieldType::WeaponsCopperShield => [0x01, 0x02, 0x84],
|
ShieldType::WeaponsCopperShield => [0x01, 0x02, 0x84],
|
||||||
ShieldType::Gratia => [0x01, 0x02, 0x85],
|
ShieldType::Gratia => [0x01, 0x02, 0x85],
|
||||||
ShieldType::TripolicReflector => [0x01, 0x02, 0x86],
|
ShieldType::TripolicReflector => [0x01, 0x02, 0x86],
|
||||||
ShieldType::StrikerPlus => [0x01, 0x02, 0x87],
|
ShieldType::StrikerPlus => [0x01, 0x02, 0x87],
|
||||||
ShieldType::RegenerateGearBP => [0x01, 0x02, 0x88],
|
ShieldType::RegenerateGearBP => [0x01, 0x02, 0x88],
|
||||||
ShieldType::Rupika => [0x01, 0x02, 0x89],
|
ShieldType::Rupika => [0x01, 0x02, 0x89],
|
||||||
ShieldType::YataMirror => [0x01, 0x02, 0x8A],
|
ShieldType::YataMirror => [0x01, 0x02, 0x8A],
|
||||||
ShieldType::BunnyEars => [0x01, 0x02, 0x8B],
|
ShieldType::BunnyEars => [0x01, 0x02, 0x8B],
|
||||||
ShieldType::CatEars => [0x01, 0x02, 0x8C],
|
ShieldType::CatEars => [0x01, 0x02, 0x8C],
|
||||||
ShieldType::ThreeSeals => [0x01, 0x02, 0x8D],
|
ShieldType::ThreeSeals => [0x01, 0x02, 0x8D],
|
||||||
ShieldType::GodsShieldkouryu => [0x01, 0x02, 0x8E],
|
ShieldType::GodsShieldKouryu => [0x01, 0x02, 0x8E],
|
||||||
ShieldType::DfShield => [0x01, 0x02, 0x8F],
|
ShieldType::DfShield => [0x01, 0x02, 0x8F],
|
||||||
ShieldType::FromTheDepths => [0x01, 0x02, 0x90],
|
ShieldType::FromTheDepths => [0x01, 0x02, 0x90],
|
||||||
ShieldType::DeRolLeShield => [0x01, 0x02, 0x91],
|
ShieldType::DeRolLeShield => [0x01, 0x02, 0x91],
|
||||||
ShieldType::HoneycombReflector => [0x01, 0x02, 0x92],
|
ShieldType::HoneycombReflector => [0x01, 0x02, 0x92],
|
||||||
ShieldType::Epsiguard => [0x01, 0x02, 0x93],
|
ShieldType::Epsiguard => [0x01, 0x02, 0x93],
|
||||||
ShieldType::AngelRing => [0x01, 0x02, 0x94],
|
ShieldType::AngelRing => [0x01, 0x02, 0x94],
|
||||||
ShieldType::UnionGuard => [0x01, 0x02, 0x95],
|
ShieldType::UnionGuard => [0x01, 0x02, 0x95],
|
||||||
ShieldType::UnionGuard2 => [0x01, 0x02, 0x96],
|
ShieldType::UnionGuard2 => [0x01, 0x02, 0x96],
|
||||||
ShieldType::UnionGuard3 => [0x01, 0x02, 0x97],
|
ShieldType::UnionGuard3 => [0x01, 0x02, 0x97],
|
||||||
ShieldType::UnionGuard4 => [0x01, 0x02, 0x98],
|
ShieldType::UnionGuard4 => [0x01, 0x02, 0x98],
|
||||||
ShieldType::StinkShield => [0x01, 0x02, 0x99],
|
ShieldType::StinkShield => [0x01, 0x02, 0x99],
|
||||||
ShieldType::Unknownb => [0x01, 0x02, 0x9A],
|
ShieldType::Unknownb => [0x01, 0x02, 0x9A],
|
||||||
ShieldType::Genpei => [0x01, 0x02, 0x9B],
|
ShieldType::Genpei => [0x01, 0x02, 0x9B],
|
||||||
ShieldType::Genpei2 => [0x01, 0x02, 0x9C],
|
ShieldType::Genpei2 => [0x01, 0x02, 0x9C],
|
||||||
ShieldType::Genpei3 => [0x01, 0x02, 0x9D],
|
ShieldType::Genpei3 => [0x01, 0x02, 0x9D],
|
||||||
ShieldType::Genpei4 => [0x01, 0x02, 0x9E],
|
ShieldType::Genpei4 => [0x01, 0x02, 0x9E],
|
||||||
ShieldType::Genpei5 => [0x01, 0x02, 0x9F],
|
ShieldType::Genpei5 => [0x01, 0x02, 0x9F],
|
||||||
ShieldType::Genpei6 => [0x01, 0x02, 0xA0],
|
ShieldType::Genpei6 => [0x01, 0x02, 0xA0],
|
||||||
ShieldType::Genpei7 => [0x01, 0x02, 0xA1],
|
ShieldType::Genpei7 => [0x01, 0x02, 0xA1],
|
||||||
ShieldType::Genpei8 => [0x01, 0x02, 0xA2],
|
ShieldType::Genpei8 => [0x01, 0x02, 0xA2],
|
||||||
ShieldType::Genpei9 => [0x01, 0x02, 0xA3],
|
ShieldType::Genpei9 => [0x01, 0x02, 0xA3],
|
||||||
ShieldType::Genpei10 => [0x01, 0x02, 0xA4],
|
ShieldType::Genpei10 => [0x01, 0x02, 0xA4],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use serde::{Serialize, Deserialize};
|
use serde::{Serialize, Deserialize};
|
||||||
|
|
||||||
|
|
||||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
||||||
pub enum UnitType {
|
pub enum UnitType {
|
||||||
KnightPower,
|
KnightPower,
|
||||||
GeneralPower,
|
GeneralPower,
|
||||||
@ -75,6 +75,34 @@ pub enum UnitType {
|
|||||||
CureConfuse,
|
CureConfuse,
|
||||||
CureFreeze,
|
CureFreeze,
|
||||||
CureShock,
|
CureShock,
|
||||||
|
YasakaniMagatama,
|
||||||
|
V101,
|
||||||
|
V501,
|
||||||
|
V502,
|
||||||
|
V801,
|
||||||
|
Limiter,
|
||||||
|
Adept,
|
||||||
|
SwordsmanLore,
|
||||||
|
ProofOfSwordSaint,
|
||||||
|
Smartlink,
|
||||||
|
DivineProtection,
|
||||||
|
HeavenlyBattle,
|
||||||
|
HeavenlyPower,
|
||||||
|
HeavenlyMind,
|
||||||
|
HeavenlyArms,
|
||||||
|
HeavenlyLegs,
|
||||||
|
HeavenlyBody,
|
||||||
|
HeavenlyLuck,
|
||||||
|
HeavenlyAbility,
|
||||||
|
CenturionAbility,
|
||||||
|
FriendRing,
|
||||||
|
HeavenlyHP,
|
||||||
|
HeavenlyTP,
|
||||||
|
HeavenlyResist,
|
||||||
|
HeavenlyTechnique,
|
||||||
|
HPRessurection,
|
||||||
|
TPRessurection,
|
||||||
|
PBIncrease,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UnitType {
|
impl UnitType {
|
||||||
@ -152,6 +180,34 @@ impl UnitType {
|
|||||||
UnitType::CureConfuse => [0x01, 0x03, 0x45],
|
UnitType::CureConfuse => [0x01, 0x03, 0x45],
|
||||||
UnitType::CureFreeze => [0x01, 0x03, 0x46],
|
UnitType::CureFreeze => [0x01, 0x03, 0x46],
|
||||||
UnitType::CureShock => [0x01, 0x03, 0x47],
|
UnitType::CureShock => [0x01, 0x03, 0x47],
|
||||||
|
UnitType::YasakaniMagatama => [0x01, 0x03, 0x48],
|
||||||
|
UnitType::V101 => [0x01, 0x03, 0x49],
|
||||||
|
UnitType::V501 => [0x01, 0x03, 0x4A],
|
||||||
|
UnitType::V502 => [0x01, 0x03, 0x4B],
|
||||||
|
UnitType::V801 => [0x01, 0x03, 0x4C],
|
||||||
|
UnitType::Limiter => [0x01, 0x03, 0x4D],
|
||||||
|
UnitType::Adept => [0x01, 0x03, 0x4E],
|
||||||
|
UnitType::SwordsmanLore => [0x01, 0x03, 0x4F],
|
||||||
|
UnitType::ProofOfSwordSaint => [0x01, 0x03, 0x50],
|
||||||
|
UnitType::Smartlink => [0x01, 0x03, 0x51],
|
||||||
|
UnitType::DivineProtection => [0x01, 0x03, 0x52],
|
||||||
|
UnitType::HeavenlyBattle => [0x01, 0x03, 0x53],
|
||||||
|
UnitType::HeavenlyPower => [0x01, 0x03, 0x54],
|
||||||
|
UnitType::HeavenlyMind => [0x01, 0x03, 0x55],
|
||||||
|
UnitType::HeavenlyArms => [0x01, 0x03, 0x56],
|
||||||
|
UnitType::HeavenlyLegs => [0x01, 0x03, 0x57],
|
||||||
|
UnitType::HeavenlyBody => [0x01, 0x03, 0x58],
|
||||||
|
UnitType::HeavenlyLuck => [0x01, 0x03, 0x59],
|
||||||
|
UnitType::HeavenlyAbility => [0x01, 0x03, 0x5A],
|
||||||
|
UnitType::CenturionAbility => [0x01, 0x03, 0x5B],
|
||||||
|
UnitType::FriendRing => [0x01, 0x03, 0x5C],
|
||||||
|
UnitType::HeavenlyHP => [0x01, 0x03, 0x5D],
|
||||||
|
UnitType::HeavenlyTP => [0x01, 0x03, 0x5E],
|
||||||
|
UnitType::HeavenlyResist => [0x01, 0x03, 0x5F],
|
||||||
|
UnitType::HeavenlyTechnique => [0x01, 0x03, 0x60],
|
||||||
|
UnitType::HPRessurection => [0x01, 0x03, 0x61],
|
||||||
|
UnitType::TPRessurection => [0x01, 0x03, 0x62],
|
||||||
|
UnitType::PBIncrease => [0x01, 0x03, 0x63],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,8 @@ use std::fs::File;
|
|||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
use crate::entity::item::armor::ArmorType;
|
use crate::entity::item::armor::ArmorType;
|
||||||
|
use crate::entity::item::shield::ShieldType;
|
||||||
|
use crate::entity::item::unit::UnitType;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fn load_data_file<T: serde::de::DeserializeOwned>(path: &str) -> T {
|
fn load_data_file<T: serde::de::DeserializeOwned>(path: &str) -> T {
|
||||||
@ -21,11 +17,6 @@ fn load_data_file<T: serde::de::DeserializeOwned>(path: &str) -> T {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct WeaponStats {
|
struct WeaponStats {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -46,16 +37,32 @@ struct ArmorStats {
|
|||||||
edk: i32,
|
edk: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
|
||||||
struct ShieldStats {
|
struct ShieldStats {
|
||||||
|
stars: u32,
|
||||||
|
dfp: i32,
|
||||||
|
evp: i32,
|
||||||
|
dfp_modifier: u32,
|
||||||
|
evp_modifier: u32,
|
||||||
|
team_points: u32,
|
||||||
|
level_req: u32,
|
||||||
|
efr: i32,
|
||||||
|
eic: i32,
|
||||||
|
eth: i32,
|
||||||
|
elt: i32,
|
||||||
|
edk: i32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Serialize, Deserialize)]
|
||||||
struct UnitStats {
|
struct UnitStats {
|
||||||
|
stars: u32,
|
||||||
|
stat: u32,
|
||||||
|
amount: u32,
|
||||||
|
team_points: u32,
|
||||||
|
modifier: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
fn armor_stats() -> HashMap<ArmorType, ArmorStats> {
|
fn armor_stats() -> HashMap<ArmorType, ArmorStats> {
|
||||||
let armor_stats: HashMap<String, ArmorStats> = load_data_file("data/item_stats/armor_stats.toml");
|
let armor_stats: HashMap<String, ArmorStats> = load_data_file("data/item_stats/armor_stats.toml");
|
||||||
armor_stats.iter()
|
armor_stats.iter()
|
||||||
@ -64,6 +71,21 @@ fn armor_stats() -> HashMap<ArmorType, ArmorStats> {
|
|||||||
}).collect()
|
}).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn shield_stats() -> HashMap<ShieldType, ShieldStats> {
|
||||||
|
let shield_stats: HashMap<String, ShieldStats> = load_data_file("data/item_stats/shield_stats.toml");
|
||||||
|
shield_stats.iter()
|
||||||
|
.map(|(name, stats)| {
|
||||||
|
(name.parse().unwrap(), *stats)
|
||||||
|
}).collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn unit_stats() -> HashMap<UnitType, UnitStats> {
|
||||||
|
let unit_stats: HashMap<String, UnitStats> = load_data_file("data/item_stats/unit_stats.toml");
|
||||||
|
unit_stats.iter()
|
||||||
|
.map(|(name, stats)| {
|
||||||
|
(name.parse().unwrap(), *stats)
|
||||||
|
}).collect()
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
@ -75,5 +97,15 @@ mod test {
|
|||||||
assert!(astat.get(&ArmorType::CrimsonCoat).unwrap().stars == 11);
|
assert!(astat.get(&ArmorType::CrimsonCoat).unwrap().stars == 11);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_shield_stats() {
|
||||||
|
let sstat = shield_stats();
|
||||||
|
assert!(sstat.get(&ShieldType::RedRing).unwrap().stars == 11);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_unit_stats() {
|
||||||
|
let ustat = unit_stats();
|
||||||
|
assert!(ustat.get(&UnitType::ElfArm).unwrap().stars == 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user