sots-engine/tests/game_design/mini_catalog.h

22 lines
1 KiB
C++

// A hand-written miniature data root (four species catalogs, a dozen weapons,
// a turret table and a tech tree) that exercises every design rule. Written
// to a temp directory once and loaded through game::data::load_catalog so the
// tests see exactly what the real loader produces.
#pragma once
#include <string>
#include <vector>
#include "game/data/catalog.h"
#include "game/design/design.h"
#include "game/design/rules.h"
const game::data::Catalog& mini_catalog();
const game::design::Ruleset& mini_rules();
// Design builders on the mini catalog.
game::design::SectionUse use(std::string stem, std::vector<std::string> weapons = {}, std::vector<std::string> options = {});
game::design::Design armor(game::data::Species race = game::data::Species::Human); // the stock starting destroyer, gated
std::vector<std::string> error_rules(const game::design::Design& d);
std::vector<std::string> rules_of(const game::design::Design& d, game::design::Level level);
std::string join(const std::vector<std::string>& v);