nw::kernel::Rules

struct Rules : public nw::kernel::Service

Public Functions

Rules(MemoryResource *memory)
virtual ~Rules() = default
virtual void initialize(ServiceInitTime time) override

Initializes rules system.

const AttackFuncs &attack_functions() const noexcept

Gets attack functions.

CombatModeFuncs combat_mode(CombatMode mode)

Gets combat mode functions.

bool match(const Qualifier &qual, const ObjectBase *obj) const

Match.

inline size_t maximum_spell_levels() const noexcept

Gets maximum spell levels.

bool meets_requirement(const Requirement &req, const ObjectBase *obj) const

Meets requirements.

void register_combat_mode(CombatModeFuncs callbacks, std::initializer_list<CombatMode> modes)

Registers a combat mode callbacks.

void register_special_attack(SpecialAttack type, SpecialAttackFuncs funcs)

Registers a special attack callbacks.

void set_attack_functions(AttackFuncs cbs)

Sets attack callbacks.

void set_qualifier(ReqType type, bool (*qualifier)(const Qualifier&, const ObjectBase*))

Sets a qualifier for a particular requirement type.

SpecialAttackFuncs special_attack(SpecialAttack type)

Gets special attack functions.

virtual nlohmann::json stats() const override

Get service stats.

MemoryResource *allocator() const noexcept

Gets the memory allocator for the servce.

Public Members

BaseItemArray baseitems
ClassArray classes
FeatArray feats
MetaMagicArray metamagic
RaceArray races
SpellArray spells
SpellSchoolArray spellschools
SkillArray skills
MasterFeatRegistry master_feats
ModifierRegistry modifiers
PhenotypeArray phenotypes
AppearanceArray appearances
PlaceableArray placeables
TrapArray traps

Public Static Attributes

static const std::type_index type_index = {typeid(Rules)}