diff --git a/src/MeoAssistant/Resource/TilePack.cpp b/src/MeoAssistant/Resource/TilePack.cpp index 867566b333..9ba2e7d96a 100644 --- a/src/MeoAssistant/Resource/TilePack.cpp +++ b/src/MeoAssistant/Resource/TilePack.cpp @@ -46,11 +46,12 @@ std::unordered_map asst::TilePack::calc(c static const std::unordered_map TileKeyMapping = { { "tile_forbidden", TileKey::Forbidden }, { "tile_wall", TileKey::Wall }, { "tile_road", TileKey::Road }, { "tile_end", TileKey::Home }, - { "tile_start", TileKey::EnemyHome }, { "tile_floor", TileKey::Floor }, - { "tile_hole", TileKey::Hole }, { "tile_telin", TileKey::Telin }, - { "tile_telout", TileKey::Telout }, { "tile_volcano", TileKey::Volcano }, - { "tile_healing", TileKey::Healing }, { "tile_deepsea", TileKey::DeepSea }, - { "tile_fence", TileKey::Fence }, + { "tile_start", TileKey::EnemyHome }, { "tile_flystart", TileKey::Airport }, + { "tile_floor", TileKey::Floor }, { "tile_hole", TileKey::Hole }, + { "tile_telin", TileKey::Telin }, { "tile_telout", TileKey::Telout }, + { "tile_grass", TileKey::Grass }, { "tile_deepsea", TileKey::DeepSea }, + { "tile_deepwater", TileKey::DeepSea }, { "tile_volcano", TileKey::Volcano }, + { "tile_healing", TileKey::Healing }, { "tile_fence", TileKey::Fence }, }; for (size_t y = 0; y < pos.size(); ++y) { diff --git a/src/MeoAssistant/Resource/TilePack.h b/src/MeoAssistant/Resource/TilePack.h index 294deb5d44..d556005196 100644 --- a/src/MeoAssistant/Resource/TilePack.h +++ b/src/MeoAssistant/Resource/TilePack.h @@ -29,6 +29,7 @@ namespace asst Highland = 0, Floor = 1 }; + // clang-format off enum class TileKey { Invalid = -1, @@ -37,15 +38,17 @@ namespace asst Road, // 可以放地面干员,敌人也可以走 Home, // 蓝门(可能还有其他的情况) EnemyHome, // 红门(可能还有其他的情况) + Airport, // 无人机始发站 Floor, // 不能放干员,但敌人可以走 Hole, // 空降兵掉下去的地方( Telin, // 传送门入口 Telout, // 传送门出口 + Grass, // 草地,带有隐匿,可以放干员,部分地块敌人可以走 + DeepSea, // 水,不能直接放干员(要借助泳圈道具),敌人可以走,但敌人会持续掉血 Volcano, // 岩浆地块,可以放干员,敌人也可以走,但是会持续掉血 Healing, // 治疗地块,可以放干员,敌人也可以走,会给干员回血 - DeepSea, // 水,不能直接放干员(要借助泳圈道具),敌人可以走,但敌人会持续掉血 - Fence // 敌人不会走,但可以放干员的地面位置 - }; + Fence, // 敌人不会走,但可以放干员的地面位置 + }; // clang-format on struct TileInfo { @@ -68,4 +71,4 @@ namespace asst }; inline static auto& Tile = TilePack::get_instance(); -} +} // namespace asst diff --git a/src/MeoAssistant/Task/Plugin/RoguelikeBattleTaskPlugin.cpp b/src/MeoAssistant/Task/Plugin/RoguelikeBattleTaskPlugin.cpp index 0a6de8211f..cd0f5bb246 100644 --- a/src/MeoAssistant/Task/Plugin/RoguelikeBattleTaskPlugin.cpp +++ b/src/MeoAssistant/Task/Plugin/RoguelikeBattleTaskPlugin.cpp @@ -737,17 +737,19 @@ std::pair asst::RoguelikeBattleTaskPlugin::calc_best_direction static const std::unordered_map TileKeyFightWeights = { { TileKey::Invalid, 0 }, { TileKey::Forbidden, 0 }, { TileKey::Wall, 500 }, { TileKey::Road, 1000 }, { TileKey::Home, 500 }, { TileKey::EnemyHome, 1000 }, - { TileKey::Floor, 1000 }, { TileKey::Hole, 0 }, { TileKey::Telin, 700 }, - { TileKey::Telout, 800 }, { TileKey::Volcano, 1000 }, { TileKey::Healing, 1000 }, - { TileKey::DeepSea, 1000 }, { TileKey::Fence, 800 }, + { TileKey::Airport, 1000 }, { TileKey::Floor, 1000 }, { TileKey::Hole, 0 }, + { TileKey::Telin, 700 }, { TileKey::Telout, 800 }, { TileKey::Grass, 500 }, + { TileKey::DeepSea, 1000 }, { TileKey::Volcano, 1000 }, { TileKey::Healing, 1000 }, + { TileKey::Fence, 800 }, }; // 治疗干员朝向的权重 static const std::unordered_map TileKeyMedicWeights = { - { TileKey::Invalid, 0 }, { TileKey::Forbidden, 0 }, { TileKey::Wall, 1000 }, - { TileKey::Road, 1000 }, { TileKey::Home, 0 }, { TileKey::EnemyHome, 0 }, - { TileKey::Floor, 0 }, { TileKey::Hole, 0 }, { TileKey::Telin, 0 }, - { TileKey::Telout, 0 }, { TileKey::Volcano, 1000 }, { TileKey::Healing, 1000 }, - { TileKey::DeepSea, 0 }, { TileKey::Fence, 1000 }, + { TileKey::Invalid, 0 }, { TileKey::Forbidden, 0 }, { TileKey::Wall, 1000 }, + { TileKey::Road, 1000 }, { TileKey::Home, 0 }, { TileKey::EnemyHome, 0 }, + { TileKey::Airport, 0 }, { TileKey::Floor, 0 }, { TileKey::Hole, 0 }, + { TileKey::Telin, 0 }, { TileKey::Telout, 0 }, { TileKey::Grass, 500 }, + { TileKey::DeepSea, 0 }, { TileKey::Volcano, 1000 }, { TileKey::Healing, 1000 }, + { TileKey::Fence, 1000 }, }; switch (oper.role) {