from play_and_code import *
import random
import pygame


size = 50
timer = 0

ebenen = [100, WINDOW_HEIGHT/2 - size/2, WINDOW_HEIGHT - size/2 - 100, ]

rects = []

interval = int(input("Wie viele Gegner sollen kommen?: "))
rect_speed = int(input("Wie schnell sollen die Gegner sein?: "))

phase = 0

highscore_liste = [0,0,0]

highscore = 0
secondscore = 0
thirdscore = 0


def main():
    global size, timer, ebenen, rects, rect_speed, phase, highscore, secondscore, thirdscore, highscore_liste

    if phase == 0:
        
        if len(rects) > highscore:
            highscore = len(rects)
        elif len(rects) > secondscore:
            secondscore = len(rects)
        elif len(rects) > thirdscore:
            thirdscore = len(rects)

        if len(rects) not in highscore_liste:
            highscore_liste.append(len(rects))
            highscore_liste.sort(reverse=True)
                
        print(str(highscore_liste))
        rects = []
        phase = phase + 1

    if phase == 1:
        if is_key_pressed(UP):
            player_rect = rect(GREEN, 100, ebenen[0], size,size)
        elif is_key_pressed(DOWN):
            player_rect = rect(GREEN, 100, ebenen[2], size,size)
        else:
            player_rect = rect(GREEN, 100, ebenen[1], size,size)


        for element in rects:
            enemy_rect = rect(RED, element[0], ebenen[element[1]], size,size)
            if intersects(player_rect, enemy_rect) :
                phase = phase + 1

        for i in range(0, len(rects)):
            rects[i] = (rects[i][0]-rect_speed, rects[i][1])

        timer = timer + 1
        if timer >= interval:
            rects.append((WINDOW_WIDTH,random.randint(0,2)))
            timer = 0
            
        text(str(len(rects)), WHITE, 100, 50, 50)

    if phase == 2:

        # if len(rects) > highscore:
        if len(rects) > highscore_liste[0]:
            text("Gratulation, du hast einen neuen Highscore", GREEN, WINDOW_WIDTH/2, WINDOW_HEIGHT/2 - 100, 50)
        
        text("GAME OVER", RED, WINDOW_WIDTH/2, WINDOW_HEIGHT/2, 100)
        text("Du hast " + str(len(rects)) + " Punkte", WHITE, WINDOW_WIDTH/2, WINDOW_HEIGHT/2 + 100, 70)

           
        if is_key_pressed(SPACE):
            phase = 0
        if is_key_pressed(ESCAPE):
            exit()
start(main)
