vitium_api/game/components/
armor.rs1use std::collections::HashSet;
2
3use bevy_ecs::component::Component;
4use serde::{Deserialize, Serialize};
5
6use fe3o4::Id;
7
8use crate::{game::Mat, Dice};
9
10#[derive(Clone, Serialize, Deserialize, Component)]
12#[cfg_attr(target_family = "wasm", derive(tsify_next::Tsify))]
13#[cfg_attr(
14 target_family = "wasm",
15 tsify(into_wasm_abi, from_wasm_abi, large_number_types_as_bigints)
16)]
17pub struct Armor {
18 pub def: Dice,
20 pub layer: Vec<ArmorLayer>,
22}
23
24#[derive(Clone, Serialize, Deserialize)]
26#[cfg_attr(target_family = "wasm", derive(tsify_next::Tsify))]
27#[cfg_attr(
28 target_family = "wasm",
29 tsify(into_wasm_abi, from_wasm_abi, large_number_types_as_bigints)
30)]
31pub struct ArmorLayer {
32 pub mat: Id<Mat>,
34 pub cover: HashSet<String>,
36 pub rate: f32,
38 pub thickness: i16,
40}