fill unittype enum
This commit is contained in:
parent
ef479b2c09
commit
6e590d06f4
@ -1,4 +1,3 @@
|
||||
use std::convert::{TryFrom, Into};
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
||||
|
@ -1,4 +1,3 @@
|
||||
use std::convert::{TryFrom, Into};
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
||||
|
@ -1,16 +1,157 @@
|
||||
use std::convert::{TryFrom, Into};
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)]
|
||||
pub enum UnitType {
|
||||
None
|
||||
KnightPower,
|
||||
GeneralPower,
|
||||
OgrePower,
|
||||
GodPower,
|
||||
PriestMind,
|
||||
GeneralMind,
|
||||
AngelMind,
|
||||
GodMind,
|
||||
MarksmanArm,
|
||||
GeneralArm,
|
||||
ElfArm,
|
||||
GodArm,
|
||||
ThiefLegs,
|
||||
GeneralLegs,
|
||||
ElfLegs,
|
||||
GodLegs,
|
||||
DiggerHP,
|
||||
GeneralHP,
|
||||
DragonHP,
|
||||
GodHP,
|
||||
MagicianTP,
|
||||
GeneralTP,
|
||||
AngelTP,
|
||||
GodTP,
|
||||
WarriorBody,
|
||||
GeneralBody,
|
||||
MetalBody,
|
||||
GodBody,
|
||||
AngelLuck,
|
||||
GodLuck,
|
||||
MasterAbility,
|
||||
HeroAbility,
|
||||
GodAbility,
|
||||
ResistFire,
|
||||
ResistFlame,
|
||||
ResistBurning,
|
||||
ResistCold,
|
||||
ResistFreeze,
|
||||
ResistBlizzard,
|
||||
ResistShock,
|
||||
ResistThunder,
|
||||
ResistStorm,
|
||||
ResistLight,
|
||||
ResistSaint,
|
||||
ResistHoly,
|
||||
ResistDark,
|
||||
ResistEvil,
|
||||
ResistDevil,
|
||||
AllResist,
|
||||
SuperResist,
|
||||
PerfectResist,
|
||||
HPRestorate,
|
||||
HPGenerate,
|
||||
HPRevival,
|
||||
TPRestorate,
|
||||
TPGenerate,
|
||||
TPRevival,
|
||||
PBAmplifier,
|
||||
PBGenerate,
|
||||
PBCreate,
|
||||
WizardTechnique,
|
||||
DevilTechnique,
|
||||
GodTechnique,
|
||||
GeneralBattle,
|
||||
DevilBattle,
|
||||
GodBattle,
|
||||
CurePoison,
|
||||
CureParalysis,
|
||||
CureSlow,
|
||||
CureConfuse,
|
||||
CureFreeze,
|
||||
CureShock,
|
||||
}
|
||||
|
||||
impl UnitType {
|
||||
pub fn value(&self) -> [u8; 3] {
|
||||
match self {
|
||||
UnitType::None => [0; 3]
|
||||
UnitType::KnightPower => [0x01, 0x03, 0x00],
|
||||
UnitType::GeneralPower => [0x01, 0x03, 0x01],
|
||||
UnitType::OgrePower => [0x01, 0x03, 0x02],
|
||||
UnitType::GodPower => [0x01, 0x03, 0x03],
|
||||
UnitType::PriestMind => [0x01, 0x03, 0x04],
|
||||
UnitType::GeneralMind => [0x01, 0x03, 0x05],
|
||||
UnitType::AngelMind => [0x01, 0x03, 0x06],
|
||||
UnitType::GodMind => [0x01, 0x03, 0x07],
|
||||
UnitType::MarksmanArm => [0x01, 0x03, 0x08],
|
||||
UnitType::GeneralArm => [0x01, 0x03, 0x09],
|
||||
UnitType::ElfArm => [0x01, 0x03, 0x0A],
|
||||
UnitType::GodArm => [0x01, 0x03, 0x0B],
|
||||
UnitType::ThiefLegs => [0x01, 0x03, 0x0C],
|
||||
UnitType::GeneralLegs => [0x01, 0x03, 0x0D],
|
||||
UnitType::ElfLegs => [0x01, 0x03, 0x0E],
|
||||
UnitType::GodLegs => [0x01, 0x03, 0x0F],
|
||||
UnitType::DiggerHP => [0x01, 0x03, 0x10],
|
||||
UnitType::GeneralHP => [0x01, 0x03, 0x11],
|
||||
UnitType::DragonHP => [0x01, 0x03, 0x12],
|
||||
UnitType::GodHP => [0x01, 0x03, 0x13],
|
||||
UnitType::MagicianTP => [0x01, 0x03, 0x14],
|
||||
UnitType::GeneralTP => [0x01, 0x03, 0x15],
|
||||
UnitType::AngelTP => [0x01, 0x03, 0x16],
|
||||
UnitType::GodTP => [0x01, 0x03, 0x17],
|
||||
UnitType::WarriorBody => [0x01, 0x03, 0x18],
|
||||
UnitType::GeneralBody => [0x01, 0x03, 0x19],
|
||||
UnitType::MetalBody => [0x01, 0x03, 0x1A],
|
||||
UnitType::GodBody => [0x01, 0x03, 0x1B],
|
||||
UnitType::AngelLuck => [0x01, 0x03, 0x1C],
|
||||
UnitType::GodLuck => [0x01, 0x03, 0x1D],
|
||||
UnitType::MasterAbility => [0x01, 0x03, 0x1E],
|
||||
UnitType::HeroAbility => [0x01, 0x03, 0x1F],
|
||||
UnitType::GodAbility => [0x01, 0x03, 0x20],
|
||||
UnitType::ResistFire => [0x01, 0x03, 0x21],
|
||||
UnitType::ResistFlame => [0x01, 0x03, 0x22],
|
||||
UnitType::ResistBurning => [0x01, 0x03, 0x23],
|
||||
UnitType::ResistCold => [0x01, 0x03, 0x24],
|
||||
UnitType::ResistFreeze => [0x01, 0x03, 0x25],
|
||||
UnitType::ResistBlizzard => [0x01, 0x03, 0x26],
|
||||
UnitType::ResistShock => [0x01, 0x03, 0x27],
|
||||
UnitType::ResistThunder => [0x01, 0x03, 0x28],
|
||||
UnitType::ResistStorm => [0x01, 0x03, 0x29],
|
||||
UnitType::ResistLight => [0x01, 0x03, 0x2A],
|
||||
UnitType::ResistSaint => [0x01, 0x03, 0x2B],
|
||||
UnitType::ResistHoly => [0x01, 0x03, 0x2C],
|
||||
UnitType::ResistDark => [0x01, 0x03, 0x2D],
|
||||
UnitType::ResistEvil => [0x01, 0x03, 0x2E],
|
||||
UnitType::ResistDevil => [0x01, 0x03, 0x2F],
|
||||
UnitType::AllResist => [0x01, 0x03, 0x30],
|
||||
UnitType::SuperResist => [0x01, 0x03, 0x31],
|
||||
UnitType::PerfectResist => [0x01, 0x03, 0x32],
|
||||
UnitType::HPRestorate => [0x01, 0x03, 0x33],
|
||||
UnitType::HPGenerate => [0x01, 0x03, 0x34],
|
||||
UnitType::HPRevival => [0x01, 0x03, 0x35],
|
||||
UnitType::TPRestorate => [0x01, 0x03, 0x36],
|
||||
UnitType::TPGenerate => [0x01, 0x03, 0x37],
|
||||
UnitType::TPRevival => [0x01, 0x03, 0x38],
|
||||
UnitType::PBAmplifier => [0x01, 0x03, 0x39],
|
||||
UnitType::PBGenerate => [0x01, 0x03, 0x3A],
|
||||
UnitType::PBCreate => [0x01, 0x03, 0x3B],
|
||||
UnitType::WizardTechnique => [0x01, 0x03, 0x3C],
|
||||
UnitType::DevilTechnique => [0x01, 0x03, 0x3D],
|
||||
UnitType::GodTechnique => [0x01, 0x03, 0x3E],
|
||||
UnitType::GeneralBattle => [0x01, 0x03, 0x3F],
|
||||
UnitType::DevilBattle => [0x01, 0x03, 0x40],
|
||||
UnitType::GodBattle => [0x01, 0x03, 0x41],
|
||||
UnitType::CurePoison => [0x01, 0x03, 0x42],
|
||||
UnitType::CureParalysis => [0x01, 0x03, 0x43],
|
||||
UnitType::CureSlow => [0x01, 0x03, 0x44],
|
||||
UnitType::CureConfuse => [0x01, 0x03, 0x45],
|
||||
UnitType::CureFreeze => [0x01, 0x03, 0x46],
|
||||
UnitType::CureShock => [0x01, 0x03, 0x47],
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -26,7 +167,7 @@ pub enum UnitModifier {
|
||||
#[derive(Debug, Copy, Clone, PartialEq)]
|
||||
pub struct Unit {
|
||||
pub unit: UnitType,
|
||||
pub modifier: UnitModifier,
|
||||
pub modifier: Option<UnitModifier>,
|
||||
}
|
||||
|
||||
|
||||
@ -35,21 +176,23 @@ impl Unit {
|
||||
let mut result = [0; 16];
|
||||
result[0..3].copy_from_slice(&self.unit.value());
|
||||
|
||||
match self.modifier {
|
||||
UnitModifier::PlusPlus => {
|
||||
result[7] = 3;
|
||||
},
|
||||
UnitModifier::Plus => {
|
||||
result[7] = 1;
|
||||
},
|
||||
UnitModifier::Minus => {
|
||||
result[7] = 0xFF;
|
||||
result[8] = 0xFF;
|
||||
},
|
||||
UnitModifier::MinusMinus => {
|
||||
result[7] = 0xFE;
|
||||
result[8] = 0xFF;
|
||||
},
|
||||
if let Some(modifier) = self.modifier {
|
||||
match modifier {
|
||||
UnitModifier::PlusPlus => {
|
||||
result[7] = 3;
|
||||
},
|
||||
UnitModifier::Plus => {
|
||||
result[7] = 1;
|
||||
},
|
||||
UnitModifier::Minus => {
|
||||
result[7] = 0xFF;
|
||||
result[8] = 0xFF;
|
||||
},
|
||||
UnitModifier::MinusMinus => {
|
||||
result[7] = 0xFE;
|
||||
result[8] = 0xFF;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
result
|
||||
|
@ -1,4 +1,3 @@
|
||||
use std::convert::{TryFrom, Into};
|
||||
use serde::{Serialize, Deserialize};
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user