Browse Source

fill unittype enum

pbs
jake 5 years ago
parent
commit
6e590d06f4
  1. 1
      src/entity/item/armor.rs
  2. 1
      src/entity/item/shield.rs
  3. 181
      src/entity/item/unit.rs
  4. 1
      src/entity/item/weapon.rs

1
src/entity/item/armor.rs

@ -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
src/entity/item/shield.rs

@ -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)]

181
src/entity/item/unit.rs

@ -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
src/entity/item/weapon.rs

@ -1,4 +1,3 @@
use std::convert::{TryFrom, Into};
use serde::{Serialize, Deserialize};

Loading…
Cancel
Save