mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-17 18:01:26 +08:00
fix: 部分肉鸽地图无法正确部署
This commit is contained in:
@@ -268,51 +268,6 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "瞭前顾后",
|
||||
"replacement_home": [
|
||||
{
|
||||
"location": [
|
||||
5,
|
||||
5
|
||||
],
|
||||
"direction": "left"
|
||||
}
|
||||
],
|
||||
"deploy_plan": [
|
||||
{
|
||||
"groups": [ "百嘉", "基石", "地面C", "号角", "挡人先锋", "重装", "其他地面", "异德", "刺客" ],
|
||||
"location": [ 5, 5 ],
|
||||
"direction": "left"
|
||||
},
|
||||
{
|
||||
"groups": [ "单奶", "群奶" ],
|
||||
"location": [ 7, 4 ],
|
||||
"direction": "left"
|
||||
},
|
||||
{
|
||||
"groups": [ "高台C", "控制", "召唤", "术师", "狙击", "辅助" ],
|
||||
"location": [ 4, 4 ],
|
||||
"direction": "up"
|
||||
},
|
||||
{
|
||||
"groups": [ "百嘉", "基石", "地面C", "玛恩纳", "号角", "地刺", "刺客", "重装", "挡人先锋" ],
|
||||
"location": [ 6, 5 ],
|
||||
"direction": "left"
|
||||
},
|
||||
|
||||
{
|
||||
"groups": [ "召唤", "高台C", "控制", "术师", "狙击", "辅助", "其他高台" ],
|
||||
"location": [ 7, 2 ],
|
||||
"direction": "left"
|
||||
},
|
||||
{
|
||||
"groups": [ "地面C", "异德", "地刺", "刺客", "挡人先锋", "其他地面" ],
|
||||
"location": [ 4, 5 ],
|
||||
"direction": "left"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"stage_name": "铳与秩序",
|
||||
"replacement_home": [
|
||||
|
||||
@@ -174,31 +174,29 @@ bool asst::RoguelikeBattleTaskPlugin::calc_stage_info()
|
||||
.ban_medic = opt->force_ban_medic };
|
||||
m_deploy_plan = opt->deploy_plan;
|
||||
m_retreat_plan = opt->retreat_plan;
|
||||
|
||||
if (opt->replacement_home.empty()) {
|
||||
for (const auto& [loc, side] : m_normal_tile_info) {
|
||||
if (side.key == TilePack::TileKey::Home) {
|
||||
m_homes.emplace_back(ReplacementHome { loc, battle::DeployDirection::None });
|
||||
}
|
||||
}
|
||||
if (m_homes.empty()) {
|
||||
for (const auto& [loc, side] : m_normal_tile_info) {
|
||||
if (side.key == TilePack::TileKey::Home) {
|
||||
m_homes.emplace_back(ReplacementHome { loc, battle::DeployDirection::None });
|
||||
}
|
||||
m_allow_to_use_dice = true;
|
||||
m_role_order = {
|
||||
battle::Role::Warrior, battle::Role::Pioneer, battle::Role::Medic,
|
||||
battle::Role::Tank, battle::Role::Sniper, battle::Role::Caster,
|
||||
battle::Role::Support, battle::Role::Special, battle::Role::Drone,
|
||||
};
|
||||
}
|
||||
else {
|
||||
auto homes_pos = m_homes | views::transform(&ReplacementHome::location);
|
||||
auto invalid_homes_pos =
|
||||
homes_pos |
|
||||
views::filter([&](const auto& home_pos) { return !m_normal_tile_info.contains(home_pos); }) |
|
||||
views::transform(&Point::to_string);
|
||||
if (!invalid_homes_pos.empty()) {
|
||||
Log.error("No replacement homes point:", invalid_homes_pos);
|
||||
}
|
||||
Log.info("replacement home:", homes_pos | views::transform(&Point::to_string));
|
||||
m_allow_to_use_dice = true;
|
||||
m_role_order = {
|
||||
battle::Role::Warrior, battle::Role::Pioneer, battle::Role::Medic,
|
||||
battle::Role::Tank, battle::Role::Sniper, battle::Role::Caster,
|
||||
battle::Role::Support, battle::Role::Special, battle::Role::Drone,
|
||||
};
|
||||
}
|
||||
else {
|
||||
auto homes_pos = m_homes | views::transform(&ReplacementHome::location);
|
||||
auto invalid_homes_pos =
|
||||
homes_pos | views::filter([&](const auto& home_pos) { return !m_normal_tile_info.contains(home_pos); }) |
|
||||
views::transform(&Point::to_string);
|
||||
if (!invalid_homes_pos.empty()) {
|
||||
Log.error("No replacement homes point:", invalid_homes_pos);
|
||||
}
|
||||
Log.info("replacement home:", homes_pos | views::transform(&Point::to_string));
|
||||
}
|
||||
|
||||
if (m_homes.empty()) {
|
||||
|
||||
Reference in New Issue
Block a user