5.3. Globe Map - LmeSzinc/AzurLaneAutoScript GitHub Wiki
这里介绍 module/map/map_base.py
内 CampaignBase
全局地图(Global Map).
每次进入地图都需要初始化,重置地图信息
self.map = map_ # 来自地图文件的定义
self.map.reset()
self.map.load_map_data(use_loop=self.map_is_clear_mode)
self.map.load_spawn_data(use_loop=self.map_is_clear_mode)
self.map.load_mechanism(land_based=self.config.MAP_HAS_LAND_BASED)
self.map.grid_connection_initial(
wall=self.config.MAP_HAS_WALL,
portal=self.config.MAP_HAS_PORTAL,
)
将局部地图合并至全局地图中,并检查属性是否正确,否则记为错误。若错误数量超过 2,不会合并,同时返回 False。
检查规则非常啰嗦,建议直接看 module/map_detection/grid_info.py GridInfo.merge()
,大致规则是 is_XXX
只能合并到 may_XXX
的点上。比如局部地图中的 is_enemy
只能合并在全局地图中 may_enemy
的点上,否则记为错误。
-
grids 局部地图,View 对象
-
camera 当前镜头对准的格子
-
mode 更新模式,一般是
normal
踩问号遇到运输船时,使用
carrier
。运输船只会刷新在无刷新事件的点(--
)
连接所有相邻的网格,用于寻路
- wall 是否有墙的阻隔,有就引入 wall_data
- portal 是否有传送门,有就引入 portal_data
在 log 里展示当前地图的信息,例如
INFO | A B C D E F G H
INFO | 1 -- ++ -- -- -- 3L -- --
INFO | 2 MY ++ ++ MY -- -- 2M --
INFO | 3 Fl -- FL -- -- -- == MY
INFO | 4 -- 2L -- -- -- 2M ++ ++
INFO | 5 -- -- -- 2L -- == ++ ++
INFO | A B C D E F G H
INFO | 1 4 9999 4 3 4 5 8 7
INFO | 2 3 9999 9999 2 3 4 5 6
INFO | 3 2 1 0 1 2 3 4 5
INFO | 4 3 2 1 2 3 4 9999 9999
INFO | 5 4 3 2 3 4 5 9999 9999
INFO | A B C D E F G H
INFO | 1 A2 D1 D2 D1 E1 H1 H2
INFO | 2 A3 D3 D2 E2 F2 H3
INFO | 3 B3 C3 C3 D3 E3 F3 G3
INFO | 4 A3 C4 C3 C4 D4 E4
INFO | 5 B5 C5 C4 C5 E4 E5
重置所有地图信息