properly show techs and new FOs start with foie 1
This commit is contained in:
parent
a74941441b
commit
28a30cb06f
src
@ -127,7 +127,7 @@ pub struct CharacterAppearance {
|
|||||||
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
|
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
|
||||||
pub enum Techniques {
|
pub enum Technique {
|
||||||
Foie,
|
Foie,
|
||||||
Gifoie,
|
Gifoie,
|
||||||
Rafoie,
|
Rafoie,
|
||||||
@ -150,11 +150,11 @@ pub enum Techniques {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct TechLevel(u8);
|
pub struct TechLevel(pub u8);
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct CharacterTechniques {
|
pub struct CharacterTechniques {
|
||||||
techs: HashMap<Techniques, TechLevel>
|
techs: HashMap<Technique, TechLevel>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CharacterTechniques {
|
impl CharacterTechniques {
|
||||||
@ -164,38 +164,38 @@ impl CharacterTechniques {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_tech(&mut self, tech: Techniques, level: TechLevel) {
|
pub fn set_tech(&mut self, tech: Technique, level: TechLevel) {
|
||||||
self.techs.insert(tech, level);
|
self.techs.insert(tech, level);
|
||||||
}
|
}
|
||||||
|
|
||||||
// from_bytes
|
// from_bytes
|
||||||
|
|
||||||
fn as_bytes(&self) -> [u8; 20] {
|
pub fn as_bytes(&self) -> [u8; 20] {
|
||||||
self.techs.iter()
|
self.techs.iter()
|
||||||
.fold([0xFF; 20], |mut techlist, (tech, level)| {
|
.fold([0xFF; 20], |mut techlist, (tech, level)| {
|
||||||
let index = match tech {
|
let index = match tech {
|
||||||
Techniques::Foie => 0,
|
Technique::Foie => 0,
|
||||||
Techniques::Gifoie => 1,
|
Technique::Gifoie => 1,
|
||||||
Techniques::Rafoie => 2,
|
Technique::Rafoie => 2,
|
||||||
Techniques::Zonde => 3,
|
Technique::Barta => 3,
|
||||||
Techniques::Gizonde => 4,
|
Technique::Gibarta => 4,
|
||||||
Techniques::Razonde => 5,
|
Technique::Rabarta => 5,
|
||||||
Techniques::Barta => 6,
|
Technique::Zonde => 6,
|
||||||
Techniques::Gibarta => 7,
|
Technique::Gizonde => 7,
|
||||||
Techniques::Rabarta => 8,
|
Technique::Razonde => 8,
|
||||||
Techniques::Grants => 9,
|
Technique::Grants => 9,
|
||||||
Techniques::Megid => 10,
|
Technique::Deband => 10,
|
||||||
Techniques::Shifta => 11,
|
Technique::Jellen => 11,
|
||||||
Techniques::Deband => 12,
|
Technique::Zalure => 12,
|
||||||
Techniques::Jellen => 13,
|
Technique::Shifta => 13,
|
||||||
Techniques::Zalure => 14,
|
Technique::Ryuker => 14,
|
||||||
Techniques::Resta => 15,
|
Technique::Resta => 15,
|
||||||
Techniques::Anti => 16,
|
Technique::Anti => 16,
|
||||||
Techniques::Reverser => 17,
|
Technique::Reverser => 17,
|
||||||
Techniques::Ryuker => 18,
|
Technique::Megid => 18,
|
||||||
};
|
};
|
||||||
|
|
||||||
techlist[index] = level.0;
|
techlist[index] = level.0 - 1;
|
||||||
techlist
|
techlist
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ use libpso::{utf8_to_array, utf8_to_utf16_array};
|
|||||||
use crate::entity::gateway::EntityGateway;
|
use crate::entity::gateway::EntityGateway;
|
||||||
use crate::entity::account::{UserAccount, USERFLAG_NEWCHAR, USERFLAG_DRESSINGROOM};
|
use crate::entity::account::{UserAccount, USERFLAG_NEWCHAR, USERFLAG_DRESSINGROOM};
|
||||||
use crate::entity::item::{ItemDetail, ItemLocation, Weapon, Armor, Shield, Tool};
|
use crate::entity::item::{ItemDetail, ItemLocation, Weapon, Armor, Shield, Tool};
|
||||||
use crate::entity::character::{Character, CharacterClass};
|
use crate::entity::character::{Character, CharacterClass, Technique, TechLevel};
|
||||||
|
|
||||||
use crate::login::login::get_login_status;
|
use crate::login::login::get_login_status;
|
||||||
|
|
||||||
@ -187,12 +187,17 @@ pub struct CharacterServerState<EG: EntityGateway> {
|
|||||||
fn new_character<EG: EntityGateway>(entity_gateway: &mut EG, user: &UserAccount, preview: &CharacterPreview) {
|
fn new_character<EG: EntityGateway>(entity_gateway: &mut EG, user: &UserAccount, preview: &CharacterPreview) {
|
||||||
let mut char = entity_gateway.new_character_by_user(&user);
|
let mut char = entity_gateway.new_character_by_user(&user);
|
||||||
new_character_from_preview(&mut char, preview);
|
new_character_from_preview(&mut char, preview);
|
||||||
|
match char.char_class {
|
||||||
|
CharacterClass::FOmar | CharacterClass::FOmarl| CharacterClass::FOnewm | CharacterClass::FOnewearl => char.techs.set_tech(Technique::Foie, TechLevel(1)),
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
|
||||||
entity_gateway.set_character(&char);
|
entity_gateway.set_character(&char);
|
||||||
|
|
||||||
let new_weapon = match char.char_class {
|
let new_weapon = match char.char_class {
|
||||||
CharacterClass::HUmar | CharacterClass::HUnewearl | CharacterClass::HUcast | CharacterClass::HUcaseal => item::weapon::WeaponType::Saber,
|
CharacterClass::HUmar | CharacterClass::HUnewearl | CharacterClass::HUcast | CharacterClass::HUcaseal => item::weapon::WeaponType::Saber,
|
||||||
CharacterClass::RAmar | CharacterClass::RAmarl | CharacterClass::RAcast | CharacterClass::RAcaseal => item::weapon::WeaponType::Handgun,
|
CharacterClass::RAmar | CharacterClass::RAmarl | CharacterClass::RAcast | CharacterClass::RAcaseal => item::weapon::WeaponType::Handgun,
|
||||||
CharacterClass::FOmar| CharacterClass::FOmarl| CharacterClass::FOnewm | CharacterClass::FOnewearl => item::weapon::WeaponType::Cane,
|
CharacterClass::FOmar | CharacterClass::FOmarl| CharacterClass::FOnewm | CharacterClass::FOnewearl => item::weapon::WeaponType::Cane,
|
||||||
};
|
};
|
||||||
|
|
||||||
entity_gateway.new_item(
|
entity_gateway.new_item(
|
||||||
|
@ -67,6 +67,7 @@ impl<'a> CharacterBytesBuilder<'a> {
|
|||||||
hair_b: character.appearance.hair_b,
|
hair_b: character.appearance.hair_b,
|
||||||
prop_x: character.appearance.prop_x,
|
prop_x: character.appearance.prop_x,
|
||||||
prop_y: character.appearance.prop_y,
|
prop_y: character.appearance.prop_y,
|
||||||
|
techniques: character.techs.as_bytes(),
|
||||||
..character::Character::default()
|
..character::Character::default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user