luminol_data/rmxp/
class.rs1pub use crate::{id_alox, id_serde, id_vec_alox, id_vec_serde, Table1};
18
19#[derive(Default, Debug, serde::Deserialize, serde::Serialize)]
20#[derive(alox_48::Deserialize, alox_48::Serialize)]
21#[marshal(class = "RPG::Class")]
22pub struct Class {
23 #[serde(with = "id_serde")]
24 #[marshal(with = "id_alox")]
25 pub id: usize,
26 pub name: String,
27 pub position: Position,
28 #[serde(with = "id_vec_serde")]
29 #[marshal(with = "id_vec_alox")]
30 pub weapon_set: Vec<usize>,
31 #[serde(with = "id_vec_serde")]
32 #[marshal(with = "id_vec_alox")]
33 pub armor_set: Vec<usize>,
34 pub element_ranks: Table1,
35 pub state_ranks: Table1,
36 pub learnings: Vec<Learning>,
37}
38
39#[derive(Default, Debug, serde::Deserialize, serde::Serialize)]
40#[derive(alox_48::Deserialize, alox_48::Serialize)]
41#[marshal(class = "RPG::Class::Learning")]
42pub struct Learning {
43 pub level: i32,
44 #[serde(with = "id_serde")]
45 #[marshal(with = "id_alox")]
46 pub skill_id: usize,
47}
48
49#[derive(Clone, Copy, Debug, Eq, PartialEq, Default)]
50#[derive(
51 num_enum::TryFromPrimitive,
52 num_enum::IntoPrimitive,
53 strum::Display,
54 strum::EnumIter
55)]
56#[derive(serde::Deserialize, serde::Serialize)]
57#[derive(alox_48::Deserialize, alox_48::Serialize)]
58#[repr(u8)]
59#[serde(into = "u8")]
60#[serde(try_from = "u8")]
61#[marshal(into = "u8")]
62#[marshal(try_from = "u8")]
63pub enum Position {
64 #[default]
65 Front = 0,
66 Middle = 1,
67 Rear = 2,
68}