diff --git a/resource/roguelike/copilot.json b/resource/roguelike/copilot.json index b87716668d..0a461a5045 100644 --- a/resource/roguelike/copilot.json +++ b/resource/roguelike/copilot.json @@ -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": [ diff --git a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp index 583f3f6e40..be94dd0b7b 100644 --- a/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp +++ b/src/MaaCore/Task/Roguelike/RoguelikeBattleTaskPlugin.cpp @@ -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()) {