PkmnLib_rs/src/static_data/mod.rs

102 lines
2.7 KiB
Rust
Raw Normal View History

use crate::StringKey;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use growth_rates::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use items::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use libraries::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use moves::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use natures::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use species_data::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use statistic_set::*;
#[doc(inline)]
2022-06-11 18:51:37 +00:00
pub use statistics::*;
2022-09-18 16:02:13 +00:00
use std::fmt::{Display, Formatter};
#[cfg(test)]
pub(crate) mod tests {
use super::*;
#[doc(inline)]
pub use growth_rates::tests::*;
#[doc(inline)]
pub use items::tests::*;
#[doc(inline)]
pub use libraries::tests::*;
#[doc(inline)]
pub use moves::tests::*;
#[doc(inline)]
pub use natures::tests::*;
#[doc(inline)]
pub use species_data::tests::*;
}
2022-07-01 16:20:16 +00:00
/// Growth rates define how fast a Pokemon can level up.
mod growth_rates;
2022-07-01 16:20:16 +00:00
/// Items are objects which the player can pick up, keep in their Bag, and use in some manner
mod items;
2022-07-01 16:20:16 +00:00
/// The libraries module holds all data storage types.
pub(crate) mod libraries;
2022-07-01 16:20:16 +00:00
/// Moves are actions Pokemon can take in battle.
mod moves;
2022-07-01 16:20:16 +00:00
/// Natures give stat boosts to specific stats.
mod natures;
2022-07-01 16:20:16 +00:00
/// Species data holds base data for species.
mod species_data;
2022-07-01 16:20:16 +00:00
/// Statistic sets are collection of different statistics that can be used by Pokemon in multiple ways.
mod statistic_set;
2022-07-01 16:20:16 +00:00
/// Statistics are numerical values on Pokemon that are used in battle.
mod statistics;
2022-09-18 16:02:13 +00:00
/// A parameter for an effect. This is basically a simple way to dynamically store multiple different
/// primitives on data.
2022-11-27 16:29:29 +00:00
#[derive(PartialEq, Debug, Clone)]
2022-09-18 16:02:13 +00:00
pub enum EffectParameter {
/// A boolean value.
Bool(bool),
2022-09-18 16:02:13 +00:00
/// An integer value. Stored as a 64 bit int to deal with potentially large numbers.
Int(i64),
2022-09-18 16:02:13 +00:00
/// A float value. Stored as a 32 bit float.
Float(f32),
2022-09-18 16:02:13 +00:00
/// A string value.
String(StringKey),
}
2022-10-14 14:53:30 +00:00
impl From<bool> for EffectParameter {
fn from(b: bool) -> Self {
EffectParameter::Bool(b)
}
}
2022-10-14 14:53:30 +00:00
impl From<i64> for EffectParameter {
fn from(i: i64) -> Self {
EffectParameter::Int(i)
}
}
2022-10-14 14:53:30 +00:00
impl From<f32> for EffectParameter {
fn from(f: f32) -> Self {
EffectParameter::Float(f)
}
}
2022-10-14 14:53:30 +00:00
impl From<StringKey> for EffectParameter {
fn from(s: StringKey) -> Self {
EffectParameter::String(s)
}
2022-09-18 16:02:13 +00:00
}
impl Display for EffectParameter {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
match self {
EffectParameter::Bool(v) => f.write_fmt(format_args!("EffectParameter::Bool({v})")),
EffectParameter::Int(v) => f.write_fmt(format_args!("EffectParameter::Int({v})")),
EffectParameter::Float(v) => f.write_fmt(format_args!("EffectParameter::Float({v})")),
EffectParameter::String(v) => f.write_fmt(format_args!("EffectParameter::String({v})")),
2022-09-18 16:02:13 +00:00
}
}
}