Newer
Older
#pragma once
#include "nlohmann/json.hpp"
#include <string>
#include <vector>
#include <fstream>
#include <iostream>
#include "sc2api/sc2_typeenums.h"
sc2::AbilityID ability_used;
float time;
std::vector<sc2::UNIT_TYPEID> buildings_needed;
std::vector<sc2::UNIT_TYPEID> addons_needed;
};
class TechTreeImproved
{
std::vector<BuildDescription> data;
std::map<sc2::UNIT_TYPEID, std::vector<BuildDescription>> producer_to_data;
std::map<sc2::UNIT_TYPEID, std::vector<BuildDescription>> result_to_data;
void parse_unit(nlohmann::json::iterator it);
public:
TechTreeImproved();
void LoadData();
// Given a unit, how can we build it?
const std::vector<BuildDescription> & HowToBuild(sc2::UnitTypeID unit) const;