class BattleTargeting(PlayUI): def __init__(self, cardN, cardPos): self.arrow = Arrow(Vector(*pygame.mouse.get_pos())) self.cardN = cardN self.cardPos = cardPos self.arrow.set_destination(cardPos) def draw(self, game): drawBattleScreen(self, game, kwargs={"skips": [self.cardN]}) game.renderer.draw(game.surface, self.cardPos, game.state.hand[self.cardN]) self.arrow.draw(game.surface) def input(self, game, event): self.arrow.set_destination(Vector(*pygame.mouse.get_pos())) hitboxes = self.findHitboxes() targets = self.findTargets(game) if event.type == MOUSEBUTTONUP and event.button == 1: for i in range(len(hitboxes)): if pygame.rect.Rect((hitboxes[i])).collidepoint(*event.pos): self.tryPlayCard(game, targets[i]) break else: game.nextUI = BattleIdle()