53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#include <nlohmann/json.hpp>
|
|
#include <fstream>
|
|
#include <iostream>
|
|
#include <string>
|
|
|
|
using nlohmann::json;
|
|
using std::string;
|
|
|
|
string get(json j, string name) {
|
|
std::cout << name << " (";
|
|
for(int i = 0; i < j.size(); ++i)
|
|
std::cout << i << ':' << j[i] << ' ';
|
|
std::cout << ") : ";
|
|
int index; std::cin >> index;
|
|
if(index < 0 || index >= j.size())
|
|
return "";
|
|
return j[index];
|
|
}
|
|
|
|
int main() {
|
|
std::ifstream f1("cards/template.json");
|
|
json data = json::parse(f1);
|
|
|
|
std::ifstream f2("cards/traits.json");
|
|
json traits = json::parse(f2);
|
|
|
|
std::ifstream f3("cards/factions.json");
|
|
json factions = json::parse(f3);
|
|
|
|
std::ifstream f4("cards/lines.json");
|
|
json lines = json::parse(f4);
|
|
|
|
std::cout << "Name: ";
|
|
std::cin.ignore();
|
|
string name; std::getline(std::cin, name);
|
|
data["name"] = name;
|
|
|
|
data["faction"] = get(factions, "Faction");
|
|
|
|
data["line"] = get(lines, "Line");
|
|
|
|
std::cout << "Power: ";
|
|
int power; std::cin >> power; data["power"] = power;
|
|
|
|
for(string trait = get(traits, "Trait"); trait != ""; trait = get(traits, "Trait"))
|
|
if(trait != "")
|
|
data["traits"].push_back(trait);
|
|
|
|
std::ofstream out("cards/"+string(data["faction"])+"/"+name+".json");
|
|
|
|
out << data.dump(2) << std::endl;
|
|
return 0;
|
|
}
|