import pygame
import random

import ScoreManager
from Particle import Particle


class Sliceable:

    def __init__(self):
        self.particles = []
        self.is_already_sliced = False
        self.is_bomb = random.randint(1, 5) == 1
        self.x = random.choice([50, 750])
        self.y = 600
        self.color = (255, 0, 0) if self.is_bomb else (0, 255, 0)
        self.radius = 15
        self.speed_y = random.randint(-18, -12)
        if self.x > 400:
            self.speed_x = -5
        else:
            self.speed_x = 5

    def update(self):
        self.x += self.speed_x
        self.y += self.speed_y
        self.speed_y += 0.3  # Przyciąganie w dół

    def draw(self, screen):
        if not self.is_already_sliced:
            pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), self.radius)

        for particle in self.particles:
            particle.update()
            particle.draw(screen)

    def check_collision(self, score_manager: ScoreManager, is_clicked):
        pass
        # TODO

    def is_off_screen(self, screen_height):
        return self.y > screen_height
