import pygame
from Player import Player
pygame.font.init()


class Bullet:
    def __init__(self, x, y, radius, color, facing):
        self.x = x
        self.y = y
        self.radius = radius
        self.color = color
        self.facing = facing
        self.vel = 8 * facing

    def draw(self, win):
        pygame.draw.circle(win, self.color, (self.x, self.y), self.radius)


# Setting up the base window
WIDTH, HEIGHT = 1540, 900
WIN = pygame.display.set_mode((WIDTH, HEIGHT), pygame.RESIZABLE)
pygame.display.set_caption("Brawlers")
red_size = 240
blue_size = 240
red_scale = 1.3
blue_scale = 1.3
red_offset = [70, 30]
blue_offset = [70, 30]
red_data = [red_size, red_scale, red_offset]
blue_data = [blue_size, blue_scale, blue_offset]
BG = pygame.image.load("Fighting Grounds.webp")
red_sprite = pygame.image.load("redspritesheet.png").convert_alpha()
blue_sprite = pygame.image.load("bluespritesheet.png").convert_alpha()
red_fps = [4, 6, 2, 4, 5, 3, 1, 4]
blue_fps = [4, 6, 2, 4, 5, 3, 1, 4]

player1 = Player(200, 600, red_data, red_sprite, red_fps)
player2 = Player(1200, 600, blue_data, blue_sprite, blue_fps)


def health_bar(health, x, y):
    ratio = health / 200
    pygame.draw.rect(WIN, "Red", (x, y, 400, 30))
    pygame.draw.rect(WIN, "Green", (x, y, 400 * ratio, 30))


def draw():
    Scaled_BG = pygame.transform.scale(BG, (WIDTH, HEIGHT))
    WIN.blit(Scaled_BG, (0, 0))
    # player controls
    player1.controls(WIN, player2,)

    # draw players on the screen
    player1.update()
    player2.update()

    player1.draw(WIN)
    player2.draw(WIN)
    health_bar(player1.health, 20, 20)
    health_bar(player2.health, 1120, 20)
    pygame.display.update()


# variable that determines whether the game is running
def main():
    run = True

    clock = pygame.time.Clock()
    bullets = []
    while run:
        for bullet in bullets:
            if 500 > bullet.x > 0 or bullet.colliderect(player2):
                bullet.x += bullet.vel  # Moves the bullet by its vel
            else:
                bullets.pop(bullets.index(bullet))

        clock.tick(60)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                break
        draw()
# quits the game
    pygame.quit()


if __name__ == "__main__":
    main()
