#pragma once #include "nlohmann/json.hpp" #include <string> #include <vector> #include <fstream> #include <iostream> #include "sc2api/sc2_typeenums.h" struct BuildAlternative { sc2::UNIT_TYPEID type; std::vector<sc2::UNIT_TYPEID> buildings_needed; std::vector<sc2::UNIT_TYPEID> addons_needed; }; class TechTreeImproved { std::map<sc2::UNIT_TYPEID, std::vector<BuildAlternative>> data; public: TechTreeImproved(); void LoadData(); const std::vector<BuildAlternative> & GetBuildAlternatives(sc2::UNIT_TYPEID) const; std::vector<std::pair<sc2::UNIT_TYPEID, BuildAlternative>> TechTreeImproved::HowToBuild(sc2::UNIT_TYPEID unit); };