mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-24 11:19:03 +08:00
Fix: Keep untracked enemies if MAP_HAS_MOVABLE_NORMAL_ENEMY
This commit is contained in:
@@ -630,10 +630,12 @@ class Fleet(Camera, AmbushHandler):
|
|||||||
logger.info(f'Tracked enemy {matched_before} -> {matched_after}')
|
logger.info(f'Tracked enemy {matched_before} -> {matched_after}')
|
||||||
|
|
||||||
# Delete wrong prediction
|
# Delete wrong prediction
|
||||||
for grid in after.delete(matched_after):
|
# keep whatever if MAP_HAS_MOVABLE_NORMAL_ENEMY, it's kind of a mess
|
||||||
if not grid.may_siren:
|
if not self.config.MAP_HAS_MOVABLE_NORMAL_ENEMY:
|
||||||
logger.warning(f'Wrong detection: {grid}')
|
for grid in after.delete(matched_after):
|
||||||
grid.wipe_out()
|
if not grid.may_siren:
|
||||||
|
logger.warning(f'Wrong detection: {grid}')
|
||||||
|
grid.wipe_out()
|
||||||
|
|
||||||
# Predict missing siren
|
# Predict missing siren
|
||||||
diff = before.delete(matched_before)
|
diff = before.delete(matched_before)
|
||||||
@@ -649,6 +651,13 @@ class Fleet(Camera, AmbushHandler):
|
|||||||
covered = covered.add(self.map.grid_covered(self.map[self.fleet_1_location], location=[(0, -1)]))
|
covered = covered.add(self.map.grid_covered(self.map[self.fleet_1_location], location=[(0, -1)]))
|
||||||
if self.fleet_2_location:
|
if self.fleet_2_location:
|
||||||
covered = covered.add(self.map.grid_covered(self.map[self.fleet_2_location], location=[(0, -1)]))
|
covered = covered.add(self.map.grid_covered(self.map[self.fleet_2_location], location=[(0, -1)]))
|
||||||
|
if self.config.MAP_HAS_MOVABLE_NORMAL_ENEMY and not self.config.MAP_ENEMY_TEMPLATE:
|
||||||
|
# enemy_scale icon of the right grid may get covered by fleet
|
||||||
|
# if enemy template is empty, must predict by enemy_scale
|
||||||
|
if self.fleet_1_location:
|
||||||
|
covered = covered.add(self.map.grid_covered(self.map[self.fleet_1_location], location=[(1, 0)]))
|
||||||
|
if self.fleet_2_location:
|
||||||
|
covered = covered.add(self.map.grid_covered(self.map[self.fleet_2_location], location=[(1, 0)]))
|
||||||
covered = covered.add(self.map._map_covered)
|
covered = covered.add(self.map._map_covered)
|
||||||
if siren:
|
if siren:
|
||||||
for grid in after:
|
for grid in after:
|
||||||
|
|||||||
@@ -637,7 +637,11 @@ class Map(Fleet):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
nearby = self.map.select(cost_2=1).add(self.map.select(cost_2=2))
|
nearby = self.map.select(cost_2=1).add(self.map.select(cost_2=2))
|
||||||
approaching = nearby.select(is_siren=True)
|
approaching = SelectedGrids([])
|
||||||
|
if self.config.MAP_HAS_MOVABLE_ENEMY:
|
||||||
|
approaching = approaching.add(nearby.select(is_siren=True))
|
||||||
|
if self.config.MAP_HAS_MOVABLE_NORMAL_ENEMY:
|
||||||
|
approaching = approaching.add(nearby.select(is_enemy=True))
|
||||||
if approaching:
|
if approaching:
|
||||||
grids = self.select_grids(approaching, sort=('cost_2', 'cost_1'))
|
grids = self.select_grids(approaching, sort=('cost_2', 'cost_1'))
|
||||||
self.clear_chosen_enemy(grids[0], expected='siren')
|
self.clear_chosen_enemy(grids[0], expected='siren')
|
||||||
|
|||||||
Reference in New Issue
Block a user