use crate::actor::ActorRules;
use crate::battle::BattleRules;
use crate::character::CharacterRules;
use crate::fight::FightRules;
use crate::round::RoundsRules;
use crate::rules::entropy::FixedAverage;
use crate::space::SpaceRules;
use crate::team::TeamRules;
use crate::user::UserRules;
use crate::util::Id;
#[cfg(feature = "serialization")]
use serde::{Deserialize, Serialize};
#[derive(Hash, Eq, PartialEq, Debug)]
#[cfg_attr(feature = "serialization", derive(Serialize, Deserialize))]
pub struct EmptyStat {
pub id: u32,
}
impl Id for EmptyStat {
type Id = u32;
fn id(&self) -> &u32 {
&self.id
}
}
pub type EmptyAbility = EmptyStat;
pub type EmptyStatus = EmptyStat;
pub type EmptyPower = EmptyStat;
#[derive(Default)]
pub struct EmptyTeamRules {}
impl<R: BattleRules> TeamRules<R> for EmptyTeamRules {
type Id = u32;
type Power = EmptyPower;
type PowersSeed = ();
type Invocation = ();
type PowersAlteration = ();
type ObjectivesSeed = ();
type Objectives = ();
}
#[derive(Default)]
pub struct EmptyCharacterRules {}
impl<R: BattleRules> CharacterRules<R> for EmptyCharacterRules {
type CreatureId = u32;
type ObjectId = u32;
type Statistic = EmptyStat;
type StatisticsSeed = ();
type StatisticsAlteration = ();
type Status = EmptyStatus;
type StatusesAlteration = ();
}
#[derive(Default)]
pub struct EmptyActorRules {}
impl<R: BattleRules> ActorRules<R> for EmptyActorRules {
type Ability = EmptyAbility;
type AbilitiesSeed = ();
type Activation = ();
type AbilitiesAlteration = ();
}
#[derive(Default)]
pub struct EmptySpaceRules {}
impl<R: BattleRules> SpaceRules<R> for EmptySpaceRules {
type Position = ();
type SpaceSeed = ();
type SpaceModel = ();
type SpaceAlteration = ();
fn generate_model(&self, _seed: &Option<Self::SpaceSeed>) -> Self::SpaceModel {}
}
#[derive(Default)]
pub struct EmptyRoundsRules {}
impl<R: BattleRules> RoundsRules<R> for EmptyRoundsRules {
type RoundsSeed = ();
type RoundsModel = ();
fn generate_model(&self, _: &Option<Self::RoundsSeed>) -> Self::RoundsModel {}
}
#[derive(Default)]
pub struct EmptyFightRules {}
impl<R: BattleRules> FightRules<R> for EmptyFightRules {
type Impact = ();
type Potency = ();
}
#[derive(Default)]
pub struct EmptyUserRules {}
impl<R: BattleRules> UserRules<R> for EmptyUserRules {
type UserMetricId = u16;
#[cfg(feature = "serialization")]
type UserEventPackage = ();
}
pub type EmptyEntropyRules = FixedAverage<i32>;