use super::Pos;
use crate::game::{level::Level, Attr, Mart, Prof, Race, Skill, Spell};
use bevy_ecs::component::Component;
use fe3o4::Id;
use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet};
#[derive(Clone, Serialize, Deserialize, Component)]
#[cfg_attr(target_family = "wasm", derive(tsify_next::Tsify))]
#[cfg_attr(
target_family = "wasm",
tsify(into_wasm_abi, from_wasm_abi, large_number_types_as_bigints)
)]
pub struct Char {
pub name: String,
pub descr: String,
pub pos: Pos,
pub race: Id<Race>,
pub prof: Id<Prof>,
pub attr: HashMap<Id<Attr>, Level>,
pub skill: HashMap<Id<Skill>, Level>,
pub mart: HashMap<Id<Mart>, Level>,
pub spell: HashMap<Id<Spell>, Level>,
pub money: i32,
}
#[derive(Clone, Serialize, Deserialize, Component)]
#[cfg_attr(target_family = "wasm", derive(tsify_next::Tsify))]
#[cfg_attr(
target_family = "wasm",
tsify(into_wasm_abi, from_wasm_abi, large_number_types_as_bigints)
)]
pub struct PlayerChar {
pub user: String,
pub bg_story: String,
pub mods: HashSet<String>,
}