nw::ClassArray

struct ClassArray

Class Singleton component.

Public Types

using map_type = absl::flat_hash_map<InternedString, Class, InternedStringHash, InternedStringEq, Allocator<std::pair<const InternedString, const ClassInfo>>>

Public Functions

inline ClassArray(MemoryResource *allocator = kernel::global_allocator())
const ClassInfo *get(Class class_) const noexcept
bool is_valid(Class class_) const noexcept
Class from_constant(StringView constant) const
void clear()
int get_base_attack_bonus(Class class_, size_t level) const

Gets class base attack from attack tables.

Saves get_class_save_bonus(Class class_, size_t level) const

Gets class save bonuses from save tables.

bool get_is_class_skill(Class class_, Skill skill) const

Determines if skill is a class skill.

int get_natural_ac(Class class_, size_t level) const

Gets class Natural AC gain.

const ClassRequirement *get_requirement(Class class_) const

Gets class requirements.

int get_spell_level(Class class_, Spell spell) const

Get spell level, returns -1 if not a class spell.

int get_stat_gain(Class class_, Ability ability, size_t level) const

Gets class ability gain.

Public Members

std::set<Vector<int>> attack_tables
PVector<ClassInfo> entries
map_type constant_to_index