mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
feat: 增加三个地块
`tile_deepwater` -> DeepSea(我也不知道这玩意跟 `tile_deepsea` 有啥关系,看名字差不多) `tile_flystart` -> Airport(无人机出发点) `tile_grass` -> Grass (草地)
This commit is contained in:
@@ -46,11 +46,12 @@ std::unordered_map<asst::Point, asst::TilePack::TileInfo> asst::TilePack::calc(c
|
||||
static const std::unordered_map<std::string, TileKey> 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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -737,17 +737,19 @@ std::pair<asst::Point, int> asst::RoguelikeBattleTaskPlugin::calc_best_direction
|
||||
static const std::unordered_map<TileKey, int> 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<TileKey, int> 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) {
|
||||
|
||||
Reference in New Issue
Block a user