XilonenImpact/hk4e_data/src/txt_data_manual/avatar_excel_config.rs

47 lines
1.3 KiB
Rust
Raw Permalink Normal View History

2024-08-26 12:29:56 +00:00
use super::tsv_util::{default_if_empty, from_sequence};
use serde::Deserialize;
#[derive(Deserialize, Debug, Default, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum AvatarUseType {
#[default]
None,
AvatarFormal,
AvatarAbandon,
AvatarSyncTest,
}
#[derive(Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AvatarData {
pub body_type: String,
pub icon_name: String,
pub side_icon_name: String,
pub quality_type: String,
pub charge_efficiency: f32,
pub initial_weapon: u32,
pub weapon_type: String,
pub image_name: String,
pub skill_depot_id: u32,
pub stamina_recover_speed: u32,
#[serde(deserialize_with = "from_sequence")]
pub cand_skill_depot_ids: Vec<u32>,
#[serde(default)]
pub avatar_identity_type: String,
pub avatar_promote_id: u32,
#[serde(deserialize_with = "from_sequence")]
pub avatar_promote_reward_level_list: Vec<u32>,
#[serde(rename = "featureTagGroupID")]
pub feature_tag_group_id: u32,
pub hp_base: f32,
pub attack_base: f32,
pub defense_base: f32,
pub critical: f32,
pub critical_hurt: f32,
pub id: u32,
#[serde(deserialize_with = "default_if_empty")]
pub use_type: AvatarUseType,
#[serde(default)]
pub is_range_attack: bool,
}