diff --git a/assets/src/ba_data/python/bastd/actor/spazbot.py b/assets/src/ba_data/python/bastd/actor/spazbot.py index 8729426f..8f3b5d21 100644 --- a/assets/src/ba_data/python/bastd/actor/spazbot.py +++ b/assets/src/ba_data/python/bastd/actor/spazbot.py @@ -42,8 +42,7 @@ DEFAULT_BOT_HIGHLIGHT = (0.1, 0.3, 0.1) PRO_BOT_COLOR = (1.0, 0.2, 0.1) PRO_BOT_HIGHLIGHT = (0.6, 0.1, 0.05) -def _my_vec3_dist(vec1: Tuple[float], vec2: Tuple[float]) -> float: - # FIXME - this solution works, +def distance(vec1: Tuple[float], vec2: Tuple[float]) -> float: xlen = vec1[0] - vec2[0] ylen = vec1[1] - vec2[1] zlen = vec1[2] - vec2[2] @@ -200,7 +199,7 @@ class SpazBot(basespaz.Spaz): closest = None assert self._player_pts is not None for plpt, plvel in self._player_pts: - dist = _my_vec3_dist((plpt.x, plpt.y, plpt.z), (botpt.x, botpt.y, botpt.z)) + dist = distance((plpt.x, plpt.y, plpt.z), (botpt.x, botpt.y, botpt.z)) # Ignore player-points that are significantly below the bot # (keeps bots from following players off cliffs). @@ -264,7 +263,7 @@ class SpazBot(basespaz.Spaz): target_pt_raw = ba.Vec3(*self.target_flag.node.position) diff = (target_pt_raw - our_pos) diff = ba.Vec3(diff[0], 0, diff[2]) # don't care about y - dist = diff.length() + dist = distance((target_pt_raw.x, 0, target_pt_raw.z), (our_pos.x, 0, our_pos.z)) to_target = diff.normalized() # If we're holding some non-flag item, drop it. @@ -332,7 +331,7 @@ class SpazBot(basespaz.Spaz): target_vel * dist_raw * 0.3 * self._lead_amount) diff = (target_pt - our_pos) - dist = _my_vec3_dist((target_pt.x, target_pt.y, target_pt.z), (our_pos.x, our_pos.y, our_pos.z)) + dist = distance((target_pt.x, target_pt.y, target_pt.z), (our_pos.x, our_pos.y, our_pos.z)) to_target = diff.normalized() if self._mode == 'throw':