roguelike-game/src/raws/item_structs.rs

76 lines
1.8 KiB
Rust
Raw Normal View History

use std::collections::HashMap;
2021-12-24 10:38:44 -05:00
use ::serde::Deserialize;
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct Item {
pub name: String,
pub renderable: Option<Renderable>,
pub consumable: Option<Consumable>,
pub weapon: Option<Weapon>,
2022-01-04 11:11:38 -05:00
pub wearable: Option<Wearable>,
2022-01-13 10:14:13 -05:00
pub initiative_penalty: Option<f32>,
pub weight_lbs: Option<f32>,
pub base_value: Option<f32>,
2022-01-13 11:29:20 -05:00
pub vendor_category: Option<String>,
2022-01-19 09:40:21 -05:00
pub magic: Option<MagicItem>,
pub attributes: Option<ItemAttributeBonus>,
2022-01-31 08:47:18 -05:00
pub template_magic: Option<ItemMagicTemplate>,
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct Renderable {
pub glyph: String,
pub fg: String,
pub bg: String,
pub order: i32,
2022-01-28 11:48:25 -05:00
pub x_size: Option<i32>,
pub y_size: Option<i32>,
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct Consumable {
pub effects: HashMap<String, String>,
pub charges: Option<i32>,
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct Weapon {
pub range: String,
pub attribute: String,
pub base_damage: String,
pub hit_bonus: i32,
2022-01-25 14:25:11 -05:00
pub proc_chance: Option<f32>,
pub proc_target: Option<String>,
pub proc_effects: Option<HashMap<String, String>>,
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
2022-01-04 11:11:38 -05:00
pub struct Wearable {
pub armor_class: f32,
pub slot: String,
}
2022-01-19 09:40:21 -05:00
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
2022-01-19 09:40:21 -05:00
pub struct MagicItem {
pub class: String,
pub naming: String,
2022-01-21 11:18:53 -05:00
pub cursed: Option<bool>,
2022-01-19 09:40:21 -05:00
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct ItemAttributeBonus {
pub might: Option<i32>,
pub fitness: Option<i32>,
pub quickness: Option<i32>,
pub intelligence: Option<i32>,
}
2022-01-31 08:47:18 -05:00
#[derive(Deserialize, Debug, Clone)]
pub struct ItemMagicTemplate {
pub unidentified_name: String,
pub bonus_min: i32,
pub bonus_max: i32,
pub include_cursed: bool,
}