mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-15 17:30:27 +08:00
@@ -375,7 +375,6 @@ struct OperProps
|
||||
std::string name_jp;
|
||||
std::string name_kr;
|
||||
std::string name_tw;
|
||||
std::string name_display;
|
||||
Role role = Role::Unknown;
|
||||
std::array<std::string, 3> ranges;
|
||||
int rarity = 0; // 稀有度 1-6
|
||||
|
||||
@@ -8,20 +8,20 @@ bool asst::BattleDataConfig::parse(const json::value& json)
|
||||
{
|
||||
LogTraceFunction;
|
||||
m_drones_confusing.clear();
|
||||
m_opers.clear();
|
||||
m_chars.clear();
|
||||
m_ranges.clear();
|
||||
for (const auto& [id, char_data_json] : json.at("chars").as_object()) {
|
||||
battle::OperProps data;
|
||||
data.id = id;
|
||||
std::string name = char_data_json.get("name", "");
|
||||
std::string name = char_data_json.at("name").as_string();
|
||||
std::string name_en = char_data_json.at("name_en").as_string();
|
||||
std::string name_jp = char_data_json.at("name_jp").as_string();
|
||||
std::string name_kr = char_data_json.at("name_kr").as_string();
|
||||
std::string name_tw = char_data_json.at("name_tw").as_string();
|
||||
|
||||
data.name = name;
|
||||
data.name_en = char_data_json.get("name_en", "");
|
||||
data.name_jp = char_data_json.get("name_jp", "");
|
||||
data.name_kr = char_data_json.get("name_kr", "");
|
||||
data.name_tw = char_data_json.get("name_tw", "");
|
||||
data.name_display = char_data_json.get("name_display", "");
|
||||
data.name_en = name_en;
|
||||
data.name_jp = name_jp;
|
||||
data.name_kr = name_kr;
|
||||
data.name_tw = name_tw;
|
||||
static const std::unordered_map<std::string, battle::Role> RoleMap = {
|
||||
{ "CASTER", battle::Role::Caster }, { "MEDIC", battle::Role::Medic },
|
||||
{ "PIONEER", battle::Role::Pioneer }, { "SNIPER", battle::Role::Sniper },
|
||||
|
||||
@@ -929,14 +929,11 @@ bool update_battle_chars_info(const fs::path& official_dir, const fs::path& over
|
||||
json::value char_new_data;
|
||||
|
||||
for (auto& [data, name] : chars_json) {
|
||||
if (data.get(id, "name", "_unavailable_") != "_unavailable_") {
|
||||
char_new_data[name] = data.get(id, "name", char_data["name"].as_string());
|
||||
}
|
||||
else {
|
||||
if (data.get(id, "name", "_unavailable_") == "_unavailable_") {
|
||||
char_new_data[name + "_unavailable"] = true;
|
||||
}
|
||||
}
|
||||
char_new_data["name_display"] = char_new_data["name"];
|
||||
|
||||
char_new_data["profession"] = char_data["profession"];
|
||||
const std::string& default_range = char_data.get("phases", 0, "rangeId", "0-1");
|
||||
@@ -977,7 +974,6 @@ bool update_battle_chars_info(const fs::path& official_dir, const fs::path& over
|
||||
Amiya_data["name_jp"] = "アーミヤ-WARRIOR";
|
||||
Amiya_data["name_kr"] = "아미야-WARRIOR";
|
||||
Amiya_data["name_tw"] = "阿米婭-WARRIOR";
|
||||
Amiya_data["name_display"] = "阿米娅-WARRIOR";
|
||||
Amiya_data["profession"] = "WARRIOR";
|
||||
Amiya_data["rangeId"] = json::array { "1-1", "1-1", "1-1" };
|
||||
Amiya_data["rarity"] = 5;
|
||||
@@ -990,7 +986,6 @@ bool update_battle_chars_info(const fs::path& official_dir, const fs::path& over
|
||||
Amiya_data3["name_jp"] = "アーミヤ-MEDIC";
|
||||
Amiya_data3["name_kr"] = "아미야-MEDIC";
|
||||
Amiya_data3["name_tw"] = "阿米婭-MEDIC";
|
||||
Amiya_data3["name_display"] = "阿米娅-MEDIC";
|
||||
Amiya_data3["profession"] = "MEDIC";
|
||||
Amiya_data3["rangeId"] = json::array { "3-1", "3-3", "3-3" };
|
||||
Amiya_data3["rarity"] = 5;
|
||||
@@ -1002,34 +997,6 @@ bool update_battle_chars_info(const fs::path& official_dir, const fs::path& over
|
||||
ofs << result.format() << '\n';
|
||||
ofs.close();
|
||||
|
||||
std::vector<std::pair<std::string, std::string>> overseas_paths = {
|
||||
{ "name_en", "global/YoStarEN/resource/battle_data.json" },
|
||||
{ "name_jp", "global/YoStarJP/resource/battle_data.json" },
|
||||
{ "name_kr", "global/YoStarKR/resource/battle_data.json" },
|
||||
{ "name_tw", "global/txwy/resource/battle_data.json" },
|
||||
};
|
||||
|
||||
for (const auto& [client_name, path] : overseas_paths) {
|
||||
json::value overseas_result;
|
||||
overseas_result["ranges"] = result["ranges"];
|
||||
auto& overseas_chars = overseas_result["chars"];
|
||||
|
||||
for (auto& [id, char_data] : chars.as_object()) {
|
||||
auto name_opt = char_data.find<std::string>(client_name);
|
||||
if (!name_opt) {
|
||||
continue;
|
||||
}
|
||||
auto data = char_data;
|
||||
data.emplace("name_display", *name_opt);
|
||||
overseas_chars.emplace(id, std::move(data));
|
||||
}
|
||||
|
||||
const auto& overseas_file = output_dir / path;
|
||||
std::ofstream overseas_ofs(overseas_file, std::ios::out);
|
||||
overseas_ofs << overseas_result.format() << '\n';
|
||||
overseas_ofs.close();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user