Skip to content
Snippets Groups Projects
TechTreeImproved.h 664 B
Newer Older
  • Learn to ignore specific revisions
  • #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);
    };