add materials
This commit is contained in:
parent
1d8c729423
commit
4452b6d4d2
@ -225,6 +225,16 @@ impl CharacterTechMenu {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Default)]
|
||||
pub struct CharacterMaterials {
|
||||
pub power: u32,
|
||||
pub mind: u32,
|
||||
pub def: u32,
|
||||
pub evade: u32,
|
||||
pub luck: u32,
|
||||
pub hp: u32,
|
||||
pub tp: u32,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub struct CharacterEntityId(pub u32);
|
||||
@ -245,6 +255,7 @@ pub struct NewCharacterEntity {
|
||||
pub config: CharacterConfig,
|
||||
pub info_board: CharacterInfoboard,
|
||||
pub guildcard: CharacterGuildCard,
|
||||
pub materials: CharacterMaterials,
|
||||
|
||||
pub tech_menu: CharacterTechMenu,
|
||||
pub meseta: u32,
|
||||
@ -264,6 +275,7 @@ impl NewCharacterEntity {
|
||||
config: CharacterConfig::new(),
|
||||
info_board: CharacterInfoboard::new(),
|
||||
guildcard: CharacterGuildCard::default(),
|
||||
materials: CharacterMaterials::default(),
|
||||
tech_menu: CharacterTechMenu::new(),
|
||||
meseta: 0,
|
||||
}
|
||||
@ -287,6 +299,7 @@ pub struct CharacterEntity {
|
||||
pub config: CharacterConfig,
|
||||
pub info_board: CharacterInfoboard,
|
||||
pub guildcard: CharacterGuildCard,
|
||||
pub materials: CharacterMaterials,
|
||||
|
||||
pub tech_menu: CharacterTechMenu,
|
||||
pub meseta: u32,
|
||||
|
@ -120,6 +120,7 @@ impl EntityGateway for InMemoryGateway {
|
||||
config: character.config,
|
||||
info_board: character.info_board,
|
||||
guildcard: character.guildcard,
|
||||
materials: character.materials,
|
||||
tech_menu: character.tech_menu,
|
||||
meseta: character.meseta,
|
||||
};
|
||||
|
@ -46,13 +46,13 @@ impl<'a> CharacterBytesBuilder<'a> {
|
||||
let level = self.level.unwrap();
|
||||
character::Character {
|
||||
name: libpso::utf8_to_utf16_array!(character.name, 16),
|
||||
hp: stats.hp,
|
||||
atp: stats.atp,
|
||||
mst: stats.mst,
|
||||
evp: stats.evp,
|
||||
dfp: stats.dfp,
|
||||
hp: stats.hp + character.materials.hp as u16 * 2,
|
||||
atp: stats.atp + character.materials.power as u16 * 2,
|
||||
mst: stats.mst + character.materials.mind as u16 * 2,
|
||||
evp: stats.evp + character.materials.evade as u16 * 2,
|
||||
dfp: stats.dfp + character.materials.def as u16 * 2,
|
||||
ata: stats.ata,
|
||||
lck: stats.lck,
|
||||
lck: stats.lck + character.materials.luck as u16 * 2,
|
||||
level: level,
|
||||
section_id: character.section_id.into(),
|
||||
ch_class: character.char_class.into(),
|
||||
@ -158,7 +158,6 @@ impl<'a> FullCharacterBytesBuilder<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
pub fn build(self) -> character::FullCharacter {
|
||||
let character = self.character.unwrap();
|
||||
let stats = self.stats.unwrap();
|
||||
@ -169,6 +168,13 @@ impl<'a> FullCharacterBytesBuilder<'a> {
|
||||
let symbol_chat = self.symbol_chat.unwrap();
|
||||
let tech_menu = self.tech_menu.unwrap();
|
||||
|
||||
let mut inventory_items = inventory.as_client_inventory_items();
|
||||
inventory_items[7].material_count = character.materials.power as u8;
|
||||
inventory_items[8].material_count = character.materials.mind as u8;
|
||||
inventory_items[9].material_count = character.materials.evade as u8;
|
||||
inventory_items[10].material_count = character.materials.def as u8;
|
||||
inventory_items[11].material_count = character.materials.luck as u8;
|
||||
|
||||
character::FullCharacter {
|
||||
character: CharacterBytesBuilder::new()
|
||||
.character(&character)
|
||||
@ -177,7 +183,9 @@ impl<'a> FullCharacterBytesBuilder<'a> {
|
||||
.build(),
|
||||
inventory: character::Inventory {
|
||||
item_count: inventory.count() as u8,
|
||||
items: inventory.as_client_inventory_items(),
|
||||
items: inventory_items,
|
||||
hp_mats_used: character.materials.hp as u8 * 2,
|
||||
tp_mats_used: character.materials.tp as u8 * 2,
|
||||
..character::Inventory::default()
|
||||
},
|
||||
key_team_config: character::KeyTeamConfig {
|
||||
|
Loading…
x
Reference in New Issue
Block a user