def select_sprite(self, s: sprite.Sprite, index: int) -> None: self.move_pointer(s.pos) self.selected_sprite = s self.selected_index = index if index >= 0 and not s.exhausted: # Make target sprites self.targets.clear() tt = targeter.Targeter(self.terr, self.civs) move_targets = tt.get_move_targets( s.tile, self.terr, s.move_range(), s.can_fly() or self.civs[self.active_civ].wood >= 1, s.can_fly(), ) for targ in move_targets: t: sprite.Sprite = sprite.TargetMove() t.set_tile_and_pos(targ.tile, self.terr) self.targets.append(t) attack_targets = tt.get_attack_targets( s.tile, self.terr, s.attack_range(), self.active_civ, s.can_shoot(), ) for targ in attack_targets: t = sprite.TargetAttack() t.set_tile_and_pos(targ.tile, self.terr) self.targets.append(t) # Make menu buttons self.menu.clear() y = 75 for opt in s.menu_options(self.terr.tile(s.tile)): self.menu.append(sprite.Button((125, y), opt)) y += 75