wrap everything except armours
This commit is contained in:
parent
7e9b989078
commit
98b2ebfdd8
@ -1,6 +1,6 @@
|
|||||||
[Extermination]
|
[Extermination]
|
||||||
list_order = 1
|
list_order = 1
|
||||||
description = "I am a description"
|
description = "kill some shit"
|
||||||
|
|
||||||
[[Extermination.quests]]
|
[[Extermination.quests]]
|
||||||
bin = "q058-ret-bb.bin"
|
bin = "q058-ret-bb.bin"
|
||||||
@ -33,3 +33,12 @@ dat = "q233-ext-bb.dat"
|
|||||||
bin = "q236-ext-bb.bin"
|
bin = "q236-ext-bb.bin"
|
||||||
dat = "q236-ext-bb.dat"
|
dat = "q236-ext-bb.dat"
|
||||||
#drop_table = "q102-drops"
|
#drop_table = "q102-drops"
|
||||||
|
|
||||||
|
[Shop]
|
||||||
|
list_order = 3
|
||||||
|
description = "buy some shit"
|
||||||
|
|
||||||
|
[[Shop.quests]]
|
||||||
|
bin = "q219-shp-bb.bin"
|
||||||
|
dat = "q219-shp-bb.dat"
|
||||||
|
#drop_table = "q204-drops"
|
||||||
|
@ -100,6 +100,7 @@ fn main() {
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -214,6 +215,7 @@ fn main() {
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::FedToMag {
|
location: item::ItemLocation::FedToMag {
|
||||||
@ -229,6 +231,7 @@ fn main() {
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::CellOfMag502,
|
tool: item::tool::ToolType::CellOfMag502,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -240,6 +243,7 @@ fn main() {
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::CellOfMag502,
|
tool: item::tool::ToolType::CellOfMag502,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Consumed,
|
location: item::ItemLocation::Consumed,
|
||||||
@ -287,6 +291,7 @@ fn main() {
|
|||||||
shield: item::shield::ShieldType::Barrier,
|
shield: item::shield::ShieldType::Barrier,
|
||||||
dfp: 0,
|
dfp: 0,
|
||||||
evp: 0,
|
evp: 0,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
@ -300,6 +305,7 @@ fn main() {
|
|||||||
item::unit::Unit {
|
item::unit::Unit {
|
||||||
unit: item::unit::UnitType::PriestMind,
|
unit: item::unit::UnitType::PriestMind,
|
||||||
modifier: Some(item::unit::UnitModifier::Minus),
|
modifier: Some(item::unit::UnitModifier::Minus),
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
@ -313,6 +319,7 @@ fn main() {
|
|||||||
item::unit::Unit {
|
item::unit::Unit {
|
||||||
unit: item::unit::UnitType::PriestMind,
|
unit: item::unit::UnitType::PriestMind,
|
||||||
modifier: Some(item::unit::UnitModifier::Minus),
|
modifier: Some(item::unit::UnitModifier::Minus),
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
@ -326,6 +333,7 @@ fn main() {
|
|||||||
item::unit::Unit {
|
item::unit::Unit {
|
||||||
unit: item::unit::UnitType::PriestMind,
|
unit: item::unit::UnitType::PriestMind,
|
||||||
modifier: Some(item::unit::UnitModifier::Minus),
|
modifier: Some(item::unit::UnitModifier::Minus),
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
@ -339,6 +347,7 @@ fn main() {
|
|||||||
item::unit::Unit {
|
item::unit::Unit {
|
||||||
unit: item::unit::UnitType::PriestMind,
|
unit: item::unit::UnitType::PriestMind,
|
||||||
modifier: Some(item::unit::UnitModifier::Minus),
|
modifier: Some(item::unit::UnitModifier::Minus),
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
|
@ -335,6 +335,7 @@ pub struct PgArmor {
|
|||||||
dfp: u8,
|
dfp: u8,
|
||||||
evp: u8,
|
evp: u8,
|
||||||
slots: u8,
|
slots: u8,
|
||||||
|
// wrapping: Option<WrappingPaper>, // TODO: check if this clobbers slots
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<armor::Armor> for PgArmor {
|
impl From<armor::Armor> for PgArmor {
|
||||||
@ -344,6 +345,7 @@ impl From<armor::Armor> for PgArmor {
|
|||||||
dfp: other.dfp,
|
dfp: other.dfp,
|
||||||
evp: other.evp,
|
evp: other.evp,
|
||||||
slots: other.slots,
|
slots: other.slots,
|
||||||
|
// wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -355,6 +357,7 @@ impl Into<armor::Armor> for PgArmor {
|
|||||||
dfp: self.dfp,
|
dfp: self.dfp,
|
||||||
evp: self.evp,
|
evp: self.evp,
|
||||||
slots: self.slots,
|
slots: self.slots,
|
||||||
|
// wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -364,6 +367,7 @@ pub struct PgShield {
|
|||||||
shield: shield::ShieldType,
|
shield: shield::ShieldType,
|
||||||
dfp: u8,
|
dfp: u8,
|
||||||
evp: u8,
|
evp: u8,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<shield::Shield> for PgShield {
|
impl From<shield::Shield> for PgShield {
|
||||||
@ -372,6 +376,7 @@ impl From<shield::Shield> for PgShield {
|
|||||||
shield: other.shield,
|
shield: other.shield,
|
||||||
dfp: other.dfp,
|
dfp: other.dfp,
|
||||||
evp: other.evp,
|
evp: other.evp,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -382,6 +387,7 @@ impl Into<shield::Shield> for PgShield {
|
|||||||
shield: self.shield,
|
shield: self.shield,
|
||||||
dfp: self.dfp,
|
dfp: self.dfp,
|
||||||
evp: self.evp,
|
evp: self.evp,
|
||||||
|
wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -390,6 +396,7 @@ impl Into<shield::Shield> for PgShield {
|
|||||||
pub struct PgUnit {
|
pub struct PgUnit {
|
||||||
unit: unit::UnitType,
|
unit: unit::UnitType,
|
||||||
modifier: Option<unit::UnitModifier>,
|
modifier: Option<unit::UnitModifier>,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<unit::Unit> for PgUnit {
|
impl From<unit::Unit> for PgUnit {
|
||||||
@ -397,6 +404,7 @@ impl From<unit::Unit> for PgUnit {
|
|||||||
PgUnit {
|
PgUnit {
|
||||||
unit: other.unit,
|
unit: other.unit,
|
||||||
modifier: other.modifier,
|
modifier: other.modifier,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -406,6 +414,7 @@ impl Into<unit::Unit> for PgUnit {
|
|||||||
unit::Unit {
|
unit::Unit {
|
||||||
unit: self.unit,
|
unit: self.unit,
|
||||||
modifier: self.modifier,
|
modifier: self.modifier,
|
||||||
|
wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -413,12 +422,14 @@ impl Into<unit::Unit> for PgUnit {
|
|||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
pub struct PgTool {
|
pub struct PgTool {
|
||||||
pub tool: tool::ToolType,
|
pub tool: tool::ToolType,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<tool::Tool> for PgTool {
|
impl From<tool::Tool> for PgTool {
|
||||||
fn from(other: tool::Tool) -> PgTool {
|
fn from(other: tool::Tool) -> PgTool {
|
||||||
PgTool {
|
PgTool {
|
||||||
tool: other.tool,
|
tool: other.tool,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -427,6 +438,7 @@ impl Into<tool::Tool> for PgTool {
|
|||||||
fn into(self) -> tool::Tool {
|
fn into(self) -> tool::Tool {
|
||||||
tool::Tool {
|
tool::Tool {
|
||||||
tool: self.tool,
|
tool: self.tool,
|
||||||
|
wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -435,6 +447,7 @@ impl Into<tool::Tool> for PgTool {
|
|||||||
pub struct PgTechDisk {
|
pub struct PgTechDisk {
|
||||||
tech: tech::Technique,
|
tech: tech::Technique,
|
||||||
level: u32,
|
level: u32,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<tech::TechniqueDisk> for PgTechDisk {
|
impl From<tech::TechniqueDisk> for PgTechDisk {
|
||||||
@ -442,6 +455,7 @@ impl From<tech::TechniqueDisk> for PgTechDisk {
|
|||||||
PgTechDisk {
|
PgTechDisk {
|
||||||
tech: other.tech,
|
tech: other.tech,
|
||||||
level: other.level,
|
level: other.level,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -450,7 +464,8 @@ impl Into<tech::TechniqueDisk> for PgTechDisk {
|
|||||||
fn into(self) -> tech::TechniqueDisk {
|
fn into(self) -> tech::TechniqueDisk {
|
||||||
tech::TechniqueDisk {
|
tech::TechniqueDisk {
|
||||||
tech: self.tech,
|
tech: self.tech,
|
||||||
level: self.level
|
level: self.level,
|
||||||
|
wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -460,6 +475,7 @@ pub struct PgMag {
|
|||||||
mag: mag::MagType,
|
mag: mag::MagType,
|
||||||
synchro: u8,
|
synchro: u8,
|
||||||
color: u8,
|
color: u8,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<mag::Mag> for PgMag {
|
impl From<mag::Mag> for PgMag {
|
||||||
@ -468,6 +484,7 @@ impl From<mag::Mag> for PgMag {
|
|||||||
mag: other.mag,
|
mag: other.mag,
|
||||||
synchro: other.synchro,
|
synchro: other.synchro,
|
||||||
color: other.color,
|
color: other.color,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -490,6 +507,7 @@ impl Into<mag::Mag> for PgMag {
|
|||||||
let mut mag = mag::Mag::baby_mag(self.color as u16);
|
let mut mag = mag::Mag::baby_mag(self.color as u16);
|
||||||
mag.mag = self.mag;
|
mag.mag = self.mag;
|
||||||
mag.synchro = self.synchro;
|
mag.synchro = self.synchro;
|
||||||
|
mag.wrapping = self.wrapping;
|
||||||
mag
|
mag
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -500,6 +518,7 @@ pub struct PgESWeapon {
|
|||||||
special: Option<esweapon::ESWeaponSpecial>,
|
special: Option<esweapon::ESWeaponSpecial>,
|
||||||
name: String,
|
name: String,
|
||||||
grind: u8,
|
grind: u8,
|
||||||
|
wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<esweapon::ESWeapon> for PgESWeapon {
|
impl From<esweapon::ESWeapon> for PgESWeapon {
|
||||||
@ -509,6 +528,7 @@ impl From<esweapon::ESWeapon> for PgESWeapon {
|
|||||||
special: other.special,
|
special: other.special,
|
||||||
name: other.name,
|
name: other.name,
|
||||||
grind: other.grind,
|
grind: other.grind,
|
||||||
|
wrapping: other.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -520,6 +540,7 @@ impl Into<esweapon::ESWeapon> for PgESWeapon {
|
|||||||
special: self.special,
|
special: self.special,
|
||||||
name: self.name,
|
name: self.name,
|
||||||
grind: self.grind,
|
grind: self.grind,
|
||||||
|
wrapping: self.wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -303,6 +303,7 @@ pub struct Armor {
|
|||||||
pub dfp: u8,
|
pub dfp: u8,
|
||||||
pub evp: u8,
|
pub evp: u8,
|
||||||
pub slots: u8,
|
pub slots: u8,
|
||||||
|
// pub wrapping: Option<WrappingPaper>, // clobbers slots
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Armor {
|
impl Armor {
|
||||||
|
@ -176,6 +176,7 @@ pub struct ESWeapon {
|
|||||||
pub special: Option<ESWeaponSpecial>,
|
pub special: Option<ESWeaponSpecial>,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub grind: u8,
|
pub grind: u8,
|
||||||
|
pub wrapping: Option<WrappingPaper>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ESWeapon {
|
impl ESWeapon {
|
||||||
@ -185,6 +186,7 @@ impl ESWeapon {
|
|||||||
special: None,
|
special: None,
|
||||||
name: "".to_owned(),
|
name: "".to_owned(),
|
||||||
grind: 0,
|
grind: 0,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,7 +244,10 @@ impl ESWeapon {
|
|||||||
result[1] = 0x70 + self.esweapon.to_value();
|
result[1] = 0x70 + self.esweapon.to_value();
|
||||||
result[2] = self.special.map(|s| s.to_value()).unwrap_or(0);
|
result[2] = self.special.map(|s| s.to_value()).unwrap_or(0);
|
||||||
result[3] = self.grind;
|
result[3] = self.grind;
|
||||||
//result[4] = tekked/untekked flag
|
if self.wrapping.is_some() {
|
||||||
|
result[4] += 0x40;
|
||||||
|
result[5] = self.wrapping.unwrap().value();
|
||||||
|
}
|
||||||
result[6..12].clone_from_slice(&self.bytes_from_name());
|
result[6..12].clone_from_slice(&self.bytes_from_name());
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
@ -253,12 +258,20 @@ impl ESWeapon {
|
|||||||
let special = ESWeaponSpecial::from_value(bytes[2]);
|
let special = ESWeaponSpecial::from_value(bytes[2]);
|
||||||
let grind = bytes[3];
|
let grind = bytes[3];
|
||||||
let name = ESWeapon::name_from_bytes(&bytes[6..12]);
|
let name = ESWeapon::name_from_bytes(&bytes[6..12]);
|
||||||
|
let wrapping = {
|
||||||
|
if bytes[4] & 0x40 == 0x40 {
|
||||||
|
WrappingPaper::from(bytes[5])
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ESWeapon {
|
ESWeapon {
|
||||||
esweapon: esweapon,
|
esweapon: esweapon,
|
||||||
special: special.ok(),
|
special: special.ok(),
|
||||||
grind: grind,
|
grind: grind,
|
||||||
name: name,
|
name: name,
|
||||||
|
wrapping: wrapping,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -277,6 +290,7 @@ mod test {
|
|||||||
special: Some(ESWeaponSpecial::Berserk),
|
special: Some(ESWeaponSpecial::Berserk),
|
||||||
grind: 137u8,
|
grind: 137u8,
|
||||||
name: "JAKESERV".to_owned(),
|
name: "JAKESERV".to_owned(),
|
||||||
|
wrapping: None,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -288,6 +302,7 @@ mod test {
|
|||||||
special: Some(ESWeaponSpecial::Chaos),
|
special: Some(ESWeaponSpecial::Chaos),
|
||||||
grind: 72u8,
|
grind: 72u8,
|
||||||
name: "PSYCHO".to_owned(),
|
name: "PSYCHO".to_owned(),
|
||||||
|
wrapping: None,
|
||||||
};
|
};
|
||||||
let bytes = testweapon.as_bytes();
|
let bytes = testweapon.as_bytes();
|
||||||
assert_eq!(bytes, [0x00, 0x7B, 0x09, 0x48, 0x00, 0x00, 0x82, 0x13, 0xE4, 0x68, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
assert_eq!(bytes, [0x00, 0x7B, 0x09, 0x48, 0x00, 0x00, 0x82, 0x13, 0xE4, 0x68, 0xBC, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
||||||
@ -301,6 +316,7 @@ mod test {
|
|||||||
special: Some(ESWeaponSpecial::Spirit),
|
special: Some(ESWeaponSpecial::Spirit),
|
||||||
grind: 105u8,
|
grind: 105u8,
|
||||||
name: "YUGIOH".to_owned(),
|
name: "YUGIOH".to_owned(),
|
||||||
|
wrapping: None,
|
||||||
};
|
};
|
||||||
let bytes = testweapon.as_bytes();
|
let bytes = testweapon.as_bytes();
|
||||||
assert_eq!(bytes, [0x00, 0xA7, 0x0B, 0x69, 0x00, 0x00, 0x83, 0x35, 0x9D, 0x2F, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
assert_eq!(bytes, [0x00, 0xA7, 0x0B, 0x69, 0x00, 0x00, 0x83, 0x35, 0x9D, 0x2F, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00]);
|
||||||
|
@ -543,6 +543,7 @@ pub struct Mag {
|
|||||||
//modifiers: Vec<MagModifier>,
|
//modifiers: Vec<MagModifier>,
|
||||||
pub class: CharacterClass,
|
pub class: CharacterClass,
|
||||||
pub id: SectionID,
|
pub id: SectionID,
|
||||||
|
pub wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -561,6 +562,7 @@ impl Mag {
|
|||||||
//modifiers: Vec::new(),
|
//modifiers: Vec::new(),
|
||||||
class: CharacterClass::HUmar,
|
class: CharacterClass::HUmar,
|
||||||
id: SectionID::Viridia,
|
id: SectionID::Viridia,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -575,6 +577,9 @@ impl Mag {
|
|||||||
result[12] = self.synchro;
|
result[12] = self.synchro;
|
||||||
result[13] = self.iq;
|
result[13] = self.iq;
|
||||||
result[14] = self.photon_blast_count();
|
result[14] = self.photon_blast_count();
|
||||||
|
if self.wrapping.is_some() {
|
||||||
|
result[14] += 0x40;
|
||||||
|
}
|
||||||
result[15] = self.color;
|
result[15] = self.color;
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
@ -648,6 +653,13 @@ impl Mag {
|
|||||||
|
|
||||||
let sync = data[12] % 121; // TODO: handle invalid values.
|
let sync = data[12] % 121; // TODO: handle invalid values.
|
||||||
let iq = data[13] % 201; // TODO: handle invalid values.
|
let iq = data[13] % 201; // TODO: handle invalid values.
|
||||||
|
let wp = {
|
||||||
|
if data[14] & 0x40 == 0x40 {
|
||||||
|
WrappingPaper::from(data[15] % 10) // % 10 to have valid wrapping paper colour.
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Ok(Mag{
|
Ok(Mag{
|
||||||
mag: m.unwrap(),
|
mag: m.unwrap(),
|
||||||
@ -660,8 +672,9 @@ impl Mag {
|
|||||||
photon_blast: [None, None, None], // TODO: actually get PBs from bytes
|
photon_blast: [None, None, None], // TODO: actually get PBs from bytes
|
||||||
color: data[15] % 18,
|
color: data[15] % 18,
|
||||||
//modifiers: Vec::new(),
|
//modifiers: Vec::new(),
|
||||||
class: CharacterClass::HUmar,
|
class: CharacterClass::HUmar, // TODO: determine character class
|
||||||
id: SectionID::Viridia,
|
id: SectionID::Viridia, // TODO: determine section id
|
||||||
|
wrapping: wp,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1167,6 +1180,7 @@ mod test {
|
|||||||
color: 0,
|
color: 0,
|
||||||
class: CharacterClass::FOmarl,
|
class: CharacterClass::FOmarl,
|
||||||
id: SectionID::Whitill,
|
id: SectionID::Whitill,
|
||||||
|
wrapping: None,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ impl BankEntity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Copy, Eq, Hash, PartialEq, Serialize, Deserialize)]
|
||||||
pub enum WrappingPaper {
|
pub enum WrappingPaper {
|
||||||
White_Pink, // 0
|
White_Pink, // 0
|
||||||
Yellow_Blue, // 1
|
Yellow_Blue, // 1
|
||||||
|
@ -525,12 +525,17 @@ pub struct Shield {
|
|||||||
pub shield: ShieldType,
|
pub shield: ShieldType,
|
||||||
pub dfp: u8,
|
pub dfp: u8,
|
||||||
pub evp: u8,
|
pub evp: u8,
|
||||||
|
pub wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Shield {
|
impl Shield {
|
||||||
pub fn as_bytes(&self) -> [u8; 16] {
|
pub fn as_bytes(&self) -> [u8; 16] {
|
||||||
let mut result = [0; 16];
|
let mut result = [0; 16];
|
||||||
result[0..3].copy_from_slice(&self.shield.value());
|
result[0..3].copy_from_slice(&self.shield.value());
|
||||||
|
if self.wrapping.is_some() {
|
||||||
|
result[4] += 0x40;
|
||||||
|
result[5] = self.wrapping.unwrap().value();
|
||||||
|
};
|
||||||
result[6] = self.dfp;
|
result[6] = self.dfp;
|
||||||
result[8] = self.evp;
|
result[8] = self.evp;
|
||||||
result
|
result
|
||||||
@ -538,11 +543,19 @@ impl Shield {
|
|||||||
|
|
||||||
pub fn from_bytes(data: [u8; 16]) -> Result<Shield, ItemParseError> {
|
pub fn from_bytes(data: [u8; 16]) -> Result<Shield, ItemParseError> {
|
||||||
let s = ShieldType::parse_type([data[0], data[1], data[2]]);
|
let s = ShieldType::parse_type([data[0], data[1], data[2]]);
|
||||||
|
let wrapping = {
|
||||||
|
if data[4] & 0x40 == 0x40 {
|
||||||
|
WrappingPaper::from(data[5])
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
};
|
||||||
if s.is_ok() {
|
if s.is_ok() {
|
||||||
Ok(Shield{
|
Ok(Shield{
|
||||||
shield: s.unwrap(),
|
shield: s.unwrap(),
|
||||||
dfp: data[6],
|
dfp: data[6],
|
||||||
evp: data[8],
|
evp: data[8],
|
||||||
|
wrapping: wrapping,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -80,6 +80,7 @@ impl Technique {
|
|||||||
pub struct TechniqueDisk {
|
pub struct TechniqueDisk {
|
||||||
pub tech: Technique,
|
pub tech: Technique,
|
||||||
pub level: u32,
|
pub level: u32,
|
||||||
|
pub wrapping: Option<WrappingPaper>, // TODO: validate if this clobbers tech value?
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TechniqueDisk {
|
impl TechniqueDisk {
|
||||||
@ -89,6 +90,10 @@ impl TechniqueDisk {
|
|||||||
result[1] = 2;
|
result[1] = 2;
|
||||||
result[2] = self.level as u8 - 1;
|
result[2] = self.level as u8 - 1;
|
||||||
result[4] = self.tech.as_value();
|
result[4] = self.tech.as_value();
|
||||||
|
if self.wrapping.is_some() {
|
||||||
|
result[4] += 0x40;
|
||||||
|
result[5] = self.wrapping.unwrap().value();
|
||||||
|
};
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -652,6 +652,7 @@ impl ToolType {
|
|||||||
#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)]
|
#[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize)]
|
||||||
pub struct Tool {
|
pub struct Tool {
|
||||||
pub tool: ToolType,
|
pub tool: ToolType,
|
||||||
|
pub wrapping: Option<WrappingPaper>, // TODO: what happens if a present is N monomates and the inventory already has 10?
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Tool {
|
impl Tool {
|
||||||
@ -670,9 +671,17 @@ impl Tool {
|
|||||||
|
|
||||||
pub fn from_bytes(data: [u8; 16]) -> Result<Tool, ItemParseError> {
|
pub fn from_bytes(data: [u8; 16]) -> Result<Tool, ItemParseError> {
|
||||||
let t = ToolType::parse_type([data[0], data[1], data[2]]);
|
let t = ToolType::parse_type([data[0], data[1], data[2]]);
|
||||||
|
let w = {
|
||||||
|
if data[4] & 0x40 == 0x40 {
|
||||||
|
WrappingPaper::from(data[5])
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
};
|
||||||
if t.is_ok() {
|
if t.is_ok() {
|
||||||
Ok(Tool {
|
Ok(Tool {
|
||||||
tool: t.unwrap(),
|
tool: t.unwrap(),
|
||||||
|
wrapping: w,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -336,6 +336,7 @@ pub enum UnitModifier {
|
|||||||
pub struct Unit {
|
pub struct Unit {
|
||||||
pub unit: UnitType,
|
pub unit: UnitType,
|
||||||
pub modifier: Option<UnitModifier>,
|
pub modifier: Option<UnitModifier>,
|
||||||
|
pub wrapping: Option<WrappingPaper>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -362,6 +363,12 @@ impl Unit {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if self.wrapping.is_some() {
|
||||||
|
result[4] += 0x40;
|
||||||
|
result[5] = self.wrapping.unwrap().value();
|
||||||
|
}
|
||||||
|
|
||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,9 +383,18 @@ impl Unit {
|
|||||||
_ => None,
|
_ => None,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let w = {
|
||||||
|
if data[4] & 0x40 == 0x40 {
|
||||||
|
WrappingPaper::from(data[5])
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Ok(Unit{
|
Ok(Unit{
|
||||||
unit: u.unwrap(),
|
unit: u.unwrap(),
|
||||||
modifier: m,
|
modifier: m,
|
||||||
|
wrapping: w,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1454,44 +1454,6 @@ pub enum WeaponModifier {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// #[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
|
|
||||||
// pub enum WrappingPaper {
|
|
||||||
// White_Pink, // 0
|
|
||||||
// Yellow_Blue,
|
|
||||||
// Black_Yellow,
|
|
||||||
// LightBlue_Orange,
|
|
||||||
// Pink_YellowGreen,
|
|
||||||
// Red_Green,
|
|
||||||
// Magenta,
|
|
||||||
// Blue,
|
|
||||||
// Yellow,
|
|
||||||
// Vermillion,
|
|
||||||
// Green,
|
|
||||||
// }
|
|
||||||
|
|
||||||
// impl WrappingPaper {
|
|
||||||
// pub fn value(&self) -> u8 {
|
|
||||||
// *self as u8
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pub fn from(data: u8) -> Option<WrappingPaper> {
|
|
||||||
// match data {
|
|
||||||
// 0 => Some(WrappingPaper::White_Pink),
|
|
||||||
// 1 => Some(WrappingPaper::Yellow_Blue),
|
|
||||||
// 2 => Some(WrappingPaper::Black_Yellow),
|
|
||||||
// 3 => Some(WrappingPaper::LightBlue_Orange),
|
|
||||||
// 4 => Some(WrappingPaper::Pink_YellowGreen),
|
|
||||||
// 5 => Some(WrappingPaper::Red_Green),
|
|
||||||
// 6 => Some(WrappingPaper::Magenta),
|
|
||||||
// 7 => Some(WrappingPaper::Blue),
|
|
||||||
// 8 => Some(WrappingPaper::Yellow),
|
|
||||||
// 9 => Some(WrappingPaper::Vermillion),
|
|
||||||
// 10 => Some(WrappingPaper::Green),
|
|
||||||
// _ => None,
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
|
||||||
pub struct Weapon {
|
pub struct Weapon {
|
||||||
pub weapon: WeaponType,
|
pub weapon: WeaponType,
|
||||||
|
@ -261,6 +261,7 @@ async fn new_character<EG: EntityGateway>(entity_gateway: &mut EG, user: &UserAc
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
Tool {
|
Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
character_id: character.id,
|
character_id: character.id,
|
||||||
@ -274,6 +275,7 @@ async fn new_character<EG: EntityGateway>(entity_gateway: &mut EG, user: &UserAc
|
|||||||
item: ItemDetail::Tool (
|
item: ItemDetail::Tool (
|
||||||
Tool {
|
Tool {
|
||||||
tool: item::tool::ToolType::Monofluid,
|
tool: item::tool::ToolType::Monofluid,
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: ItemLocation::Inventory {
|
location: ItemLocation::Inventory {
|
||||||
character_id: character.id,
|
character_id: character.id,
|
||||||
|
@ -86,6 +86,7 @@ impl GenericShieldTable {
|
|||||||
shield: shield_type,
|
shield: shield_type,
|
||||||
dfp: dfp_modifier as u8,
|
dfp: dfp_modifier as u8,
|
||||||
evp: evp_modifier as u8,
|
evp: evp_modifier as u8,
|
||||||
|
wrapping: None,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -105,21 +106,25 @@ mod test {
|
|||||||
shield: ShieldType::FreezeBarrier,
|
shield: ShieldType::FreezeBarrier,
|
||||||
dfp: 4,
|
dfp: 4,
|
||||||
evp: 1,
|
evp: 1,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
assert!(gst.get_drop(&MapArea::Caves3, &mut rng) == Some(ItemDropType::Shield(Shield {
|
assert!(gst.get_drop(&MapArea::Caves3, &mut rng) == Some(ItemDropType::Shield(Shield {
|
||||||
shield: ShieldType::PsychicBarrier,
|
shield: ShieldType::PsychicBarrier,
|
||||||
dfp: 3,
|
dfp: 3,
|
||||||
evp: 2,
|
evp: 2,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
assert!(gst.get_drop(&MapArea::Mines2, &mut rng) == Some(ItemDropType::Shield(Shield {
|
assert!(gst.get_drop(&MapArea::Mines2, &mut rng) == Some(ItemDropType::Shield(Shield {
|
||||||
shield: ShieldType::ImperialBarrier,
|
shield: ShieldType::ImperialBarrier,
|
||||||
dfp: 0,
|
dfp: 0,
|
||||||
evp: 4,
|
evp: 4,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
assert!(gst.get_drop(&MapArea::DarkFalz, &mut rng) == Some(ItemDropType::Shield(Shield {
|
assert!(gst.get_drop(&MapArea::DarkFalz, &mut rng) == Some(ItemDropType::Shield(Shield {
|
||||||
shield: ShieldType::DivinityBarrier,
|
shield: ShieldType::DivinityBarrier,
|
||||||
dfp: 1,
|
dfp: 1,
|
||||||
evp: 0,
|
evp: 0,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,6 +89,7 @@ impl GenericUnitTable {
|
|||||||
ItemDropType::Unit(Unit {
|
ItemDropType::Unit(Unit {
|
||||||
unit: unit_type,
|
unit: unit_type,
|
||||||
modifier: unit_modifier,
|
modifier: unit_modifier,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -116,6 +117,7 @@ mod test {
|
|||||||
assert!(gut.get_drop(&area, &mut rng) == Some(ItemDropType::Unit(Unit {
|
assert!(gut.get_drop(&area, &mut rng) == Some(ItemDropType::Unit(Unit {
|
||||||
unit: unit,
|
unit: unit,
|
||||||
modifier: umod,
|
modifier: umod,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,17 +121,20 @@ impl RareDropTable {
|
|||||||
shield: shield,
|
shield: shield,
|
||||||
dfp: self.shield_stats.dfp_modifier(&shield, rng) as u8,
|
dfp: self.shield_stats.dfp_modifier(&shield, rng) as u8,
|
||||||
evp: self.shield_stats.evp_modifier(&shield, rng) as u8,
|
evp: self.shield_stats.evp_modifier(&shield, rng) as u8,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
RareDropItem::Unit(unit) => {
|
RareDropItem::Unit(unit) => {
|
||||||
ItemDropType::Unit(Unit {
|
ItemDropType::Unit(Unit {
|
||||||
unit: unit,
|
unit: unit,
|
||||||
modifier: None,
|
modifier: None,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
RareDropItem::Tool(tool) => {
|
RareDropItem::Tool(tool) => {
|
||||||
ItemDropType::Tool(Tool {
|
ItemDropType::Tool(Tool {
|
||||||
tool: tool,
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
RareDropItem::Mag(_mag) => {
|
RareDropItem::Mag(_mag) => {
|
||||||
|
@ -103,7 +103,8 @@ impl TechniqueTable {
|
|||||||
|
|
||||||
Some(ItemDropType::TechniqueDisk(TechniqueDisk {
|
Some(ItemDropType::TechniqueDisk(TechniqueDisk {
|
||||||
tech: *tech,
|
tech: *tech,
|
||||||
level: level as u32
|
level: level as u32,
|
||||||
|
wrapping: None,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,7 +128,8 @@ mod test {
|
|||||||
assert!(tt.get_drop(&area, &mut rng) == Some(ItemDropType::TechniqueDisk(
|
assert!(tt.get_drop(&area, &mut rng) == Some(ItemDropType::TechniqueDisk(
|
||||||
TechniqueDisk {
|
TechniqueDisk {
|
||||||
tech: tech,
|
tech: tech,
|
||||||
level: level
|
level: level,
|
||||||
|
wrapping: None,
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,8 @@ impl ToolTable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Some(ItemDropType::Tool(Tool {
|
Some(ItemDropType::Tool(Tool {
|
||||||
tool: tool_type
|
tool: tool_type,
|
||||||
|
wrapping: None,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ pub fn quest_category_list(quests: &QuestList) -> QuestCategoryList {
|
|||||||
option_id: i as u32,
|
option_id: i as u32,
|
||||||
name: utf8_to_utf16_array!(category.name, 32),
|
name: utf8_to_utf16_array!(category.name, 32),
|
||||||
description: utf8_to_utf16_array!(category.description, 122),
|
description: utf8_to_utf16_array!(category.description, 122),
|
||||||
|
// description: utf8_to_utf16_array!(category.description, 244),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
@ -31,6 +32,7 @@ pub fn quest_list(category_id: u32, quests: &Vec<Quest>) -> QuestOptionList {
|
|||||||
quest_id: quest.id,
|
quest_id: quest.id,
|
||||||
name: utf8_to_utf16_array!(quest.name, 32),
|
name: utf8_to_utf16_array!(quest.name, 32),
|
||||||
description: utf8_to_utf16_array!(quest.description, 122),
|
description: utf8_to_utf16_array!(quest.description, 122),
|
||||||
|
// description: utf8_to_utf16_array!(quest.description, 244),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
@ -78,12 +78,14 @@ impl ShopItem for ArmorShopItem {
|
|||||||
shield: *barrier,
|
shield: *barrier,
|
||||||
dfp: 0,
|
dfp: 0,
|
||||||
evp: 0,
|
evp: 0,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
ArmorShopItem::Unit(unit) => {
|
ArmorShopItem::Unit(unit) => {
|
||||||
ItemDetail::Unit(Unit {
|
ItemDetail::Unit(Unit {
|
||||||
unit: *unit,
|
unit: *unit,
|
||||||
modifier: None,
|
modifier: None,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -22,11 +22,11 @@ pub enum ToolShopItem {
|
|||||||
impl Ord for ToolShopItem {
|
impl Ord for ToolShopItem {
|
||||||
fn cmp(&self, other: &ToolShopItem) -> std::cmp::Ordering {
|
fn cmp(&self, other: &ToolShopItem) -> std::cmp::Ordering {
|
||||||
let a = match self {
|
let a = match self {
|
||||||
ToolShopItem::Tool(t) => Tool{tool : *t}.as_individual_bytes(),
|
ToolShopItem::Tool(t) => Tool{tool : *t, wrapping: None,}.as_individual_bytes(),
|
||||||
ToolShopItem::Tech(t) => t.as_bytes(),
|
ToolShopItem::Tech(t) => t.as_bytes(),
|
||||||
};
|
};
|
||||||
let b = match other {
|
let b = match other {
|
||||||
ToolShopItem::Tool(t) => Tool{tool : *t}.as_individual_bytes(),
|
ToolShopItem::Tool(t) => Tool{tool : *t, wrapping: None,}.as_individual_bytes(),
|
||||||
ToolShopItem::Tech(t) => t.as_bytes(),
|
ToolShopItem::Tech(t) => t.as_bytes(),
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -37,11 +37,11 @@ impl Ord for ToolShopItem {
|
|||||||
impl PartialOrd for ToolShopItem {
|
impl PartialOrd for ToolShopItem {
|
||||||
fn partial_cmp(&self, other: &ToolShopItem) -> Option<std::cmp::Ordering> {
|
fn partial_cmp(&self, other: &ToolShopItem) -> Option<std::cmp::Ordering> {
|
||||||
let a = match self {
|
let a = match self {
|
||||||
ToolShopItem::Tool(t) => Tool{tool : *t}.as_individual_bytes(),
|
ToolShopItem::Tool(t) => Tool{tool : *t, wrapping: None,}.as_individual_bytes(),
|
||||||
ToolShopItem::Tech(t) => t.as_bytes(),
|
ToolShopItem::Tech(t) => t.as_bytes(),
|
||||||
};
|
};
|
||||||
let b = match other {
|
let b = match other {
|
||||||
ToolShopItem::Tool(t) => Tool{tool : *t}.as_individual_bytes(),
|
ToolShopItem::Tool(t) => Tool{tool : *t, wrapping: None,}.as_individual_bytes(),
|
||||||
ToolShopItem::Tech(t) => t.as_bytes(),
|
ToolShopItem::Tech(t) => t.as_bytes(),
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -73,7 +73,8 @@ impl ShopItem for ToolShopItem {
|
|||||||
match self {
|
match self {
|
||||||
ToolShopItem::Tool(tool) => {
|
ToolShopItem::Tool(tool) => {
|
||||||
Tool {
|
Tool {
|
||||||
tool: *tool
|
tool: *tool,
|
||||||
|
wrapping: None,
|
||||||
}.as_individual_bytes()[0..12].try_into().unwrap()
|
}.as_individual_bytes()[0..12].try_into().unwrap()
|
||||||
},
|
},
|
||||||
ToolShopItem::Tech(tech) => {
|
ToolShopItem::Tech(tech) => {
|
||||||
@ -86,7 +87,8 @@ impl ShopItem for ToolShopItem {
|
|||||||
match self {
|
match self {
|
||||||
ToolShopItem::Tool(tool) => {
|
ToolShopItem::Tool(tool) => {
|
||||||
ItemDetail::Tool(Tool {
|
ItemDetail::Tool(Tool {
|
||||||
tool: *tool
|
tool: *tool,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
ToolShopItem::Tech(tech) => {
|
ToolShopItem::Tech(tech) => {
|
||||||
@ -262,6 +264,7 @@ impl<R: Rng + SeedableRng> ToolShop<R> {
|
|||||||
ToolShopItem::Tech(TechniqueDisk {
|
ToolShopItem::Tech(TechniqueDisk {
|
||||||
tech: tech,
|
tech: tech,
|
||||||
level: level as u32,
|
level: level as u32,
|
||||||
|
wrapping: None,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.collect()
|
.collect()
|
||||||
|
@ -118,6 +118,7 @@ async fn test_request_stacked_bank_items() {
|
|||||||
item: item::ItemDetail::Tool (
|
item: item::ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -180,6 +181,7 @@ async fn test_request_bank_items_sorted() {
|
|||||||
item: item::ItemDetail::Tool (
|
item: item::ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -326,6 +328,7 @@ async fn test_deposit_stacked_item() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -390,6 +393,7 @@ async fn test_deposit_partial_stacked_item() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -464,6 +468,7 @@ async fn test_deposit_stacked_item_with_stack_already_in_bank() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -476,6 +481,7 @@ async fn test_deposit_stacked_item_with_stack_already_in_bank() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -541,6 +547,7 @@ async fn test_deposit_stacked_item_with_full_stack_in_bank() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -556,6 +563,7 @@ async fn test_deposit_stacked_item_with_full_stack_in_bank() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -703,6 +711,7 @@ async fn test_deposit_stacked_item_in_full_bank() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -784,6 +793,7 @@ async fn test_deposit_stacked_item_in_full_bank_with_partial_stack() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -799,6 +809,7 @@ async fn test_deposit_stacked_item_in_full_bank_with_partial_stack() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1062,6 +1073,7 @@ async fn test_withdraw_stacked_item() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1126,6 +1138,7 @@ async fn test_withdraw_partial_stacked_item() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1197,6 +1210,7 @@ async fn test_withdraw_stacked_item_with_stack_already_in_inventory() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -1209,6 +1223,7 @@ async fn test_withdraw_stacked_item_with_stack_already_in_inventory() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1276,6 +1291,7 @@ async fn test_withdraw_stacked_item_with_full_stack_in_inventory() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1292,6 +1308,7 @@ async fn test_withdraw_stacked_item_with_full_stack_in_inventory() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -1434,6 +1451,7 @@ async fn test_withdraw_stacked_item_in_full_inventory() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1516,6 +1534,7 @@ async fn test_withdraw_stacked_item_in_full_inventory_with_partial_stack() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Bank {
|
location: item::ItemLocation::Bank {
|
||||||
@ -1553,6 +1572,7 @@ async fn test_withdraw_stacked_item_in_full_inventory_with_partial_stack() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
|
@ -37,6 +37,7 @@ async fn test_equip_unit_from_equip_menu() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: None,
|
modifier: None,
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
@ -49,6 +50,7 @@ async fn test_equip_unit_from_equip_menu() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: Some(item::unit::UnitModifier::Plus),
|
modifier: Some(item::unit::UnitModifier::Plus),
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
@ -123,6 +125,7 @@ async fn test_unequip_armor_with_units() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: None,
|
modifier: None,
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
@ -135,6 +138,7 @@ async fn test_unequip_armor_with_units() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: Some(item::unit::UnitModifier::Plus),
|
modifier: Some(item::unit::UnitModifier::Plus),
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
@ -200,6 +204,7 @@ async fn test_sort_items() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: None,
|
modifier: None,
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
@ -212,6 +217,7 @@ async fn test_sort_items() {
|
|||||||
item::unit::Unit{
|
item::unit::Unit{
|
||||||
unit: item::unit::UnitType::KnightPower,
|
unit: item::unit::UnitType::KnightPower,
|
||||||
modifier: Some(item::unit::UnitModifier::Plus),
|
modifier: Some(item::unit::UnitModifier::Plus),
|
||||||
|
wrapping: None,
|
||||||
}),
|
}),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
character_id: char1.id,
|
character_id: char1.id,
|
||||||
|
@ -22,7 +22,8 @@ async fn test_pick_up_item_stack_of_items_already_in_inventory() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -38,7 +39,8 @@ async fn test_pick_up_item_stack_of_items_already_in_inventory() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: tool
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -104,7 +106,8 @@ async fn test_pick_up_item_stack_of_items_not_already_held() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -266,6 +269,7 @@ async fn test_pick_up_partial_stacked_item_when_inventory_is_otherwise_full() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -279,6 +283,7 @@ async fn test_pick_up_partial_stacked_item_when_inventory_is_otherwise_full() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -480,6 +485,7 @@ async fn test_pick_up_stack_that_would_exceed_stack_limit() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -495,6 +501,7 @@ async fn test_pick_up_stack_that_would_exceed_stack_limit() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -675,6 +682,7 @@ async fn test_player_drops_partial_stack_and_other_player_picks_it_up() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
|
@ -26,7 +26,8 @@ async fn test_use_monomate() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: tool
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -76,7 +77,8 @@ async fn test_use_monomate_twice() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: tool
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -129,7 +131,8 @@ async fn test_use_last_monomate() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: tool
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -174,6 +177,7 @@ async fn test_use_nonstackable_tool() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::MagicStoneIritista,
|
tool: item::tool::ToolType::MagicStoneIritista,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -214,7 +218,8 @@ async fn test_use_materials() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: tool
|
tool: tool,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
|
@ -35,6 +35,7 @@ async fn test_mag_feed() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
@ -180,6 +181,7 @@ async fn test_mag_cell() {
|
|||||||
item: item::ItemDetail::Tool (
|
item: item::ItemDetail::Tool (
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate,
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::FedToMag {
|
location: item::ItemLocation::FedToMag {
|
||||||
@ -193,6 +195,7 @@ async fn test_mag_cell() {
|
|||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::CellOfMag502,
|
tool: item::tool::ToolType::CellOfMag502,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
|
@ -318,7 +318,8 @@ async fn test_other_clients_see_stacked_purchase() {
|
|||||||
item::NewItemEntity {
|
item::NewItemEntity {
|
||||||
item: item::ItemDetail::Tool(
|
item: item::ItemDetail::Tool(
|
||||||
item::tool::Tool {
|
item::tool::Tool {
|
||||||
tool: item::tool::ToolType::Monomate
|
tool: item::tool::ToolType::Monomate,
|
||||||
|
wrapping: None,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
location: item::ItemLocation::Inventory {
|
location: item::ItemLocation::Inventory {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user