import pygame 
from Elementy import Elementy
from ubior import *
import random

SZEROKOSC_EKRANU = 800
WYSOKOSC_EKRANU = 600

obraz_tla = pygame.image.load('images/background.png')
obraz_bazy_postaci =  pygame.image.load('images/base.png')

pygame.init()

ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
zegar = pygame.time.Clock()

# dodanie obiektu czcionki
pygame.font.init()
moja_czcionka = pygame.font.SysFont('Conic Sans MS', 30)

def wypisz_tekst(ekran, tekst, pozycja, kolor = (255, 255, 255)):
    napis = moja_czcionka.render(tekst, False, kolor)
    ekran.blit(napis, pozycja)

gra_dziala = True
zapisywanie = False

#elemnty stroju
nakrycie_glowy = NakrycieGlowy()
ubranie_elementy = UbranieElementy()
oczy_elementy = OczyElementy()
bron_elemnty = BronElementy()

while gra_dziala:
    
    for zdarzenie in pygame.event.get():
        if zdarzenie.type == pygame.KEYDOWN:
            if zdarzenie.key  == pygame.K_ESCAPE:
                gra_dziala = False
            if zdarzenie.key == pygame.K_q:
                nakrycie_glowy.wybierzNastepny()
            if zdarzenie.key == pygame.K_w:
                oczy_elementy.wybierzNastepny()
            if zdarzenie.key == pygame.K_e:
                ubranie_elementy.wybierzNastepny()
            if zdarzenie.key == pygame.K_r:
                bron_elemnty.wybierzNastepny()
            if zdarzenie.key == pygame.K_s:
                zapisywanie = True
        elif zdarzenie.type == pygame.QUIT:
            gra_dziala = False

    x = random.randint(-2, 2)
    y = random.randint(-1, 20)
    
    ekran.blit(obraz_tla, (0,0))
    ekran.blit(obraz_bazy_postaci, (270 + x, 130 + y ))

    # rysowanie elementtów postaci
    ekran.blit(ubranie_elementy.wybranyObraz(), (270 + x,130 + y))
    ekran.blit(oczy_elementy.wybranyObraz(), (270 + x,130 + y))
    ekran.blit(nakrycie_glowy.wybranyObraz(), (270 + x,130 + y))
    ekran.blit(bron_elemnty.wybranyObraz(), (270 + x,130 + y ))

    if zapisywanie:
        pygame.image.save(ekran, 'postac.png')
        zapisywanie = False 

    czas = pygame.time.get_ticks() // 10

    r = (czas % 255)
    g = (czas * 2 % 255)
    b = (czas * 4 % 255)

    # wypisanie informacji o wybranym elemencie
    wypisz_tekst(ekran, f'[Q] Glowa: {nakrycie_glowy.wybrany}', (100, 100), (r, g, b))
    wypisz_tekst(ekran, f'[W] Oczy: {oczy_elementy.wybrany}', (100, 140), (r, g, b))
    wypisz_tekst(ekran, f'[E] Stroj: {ubranie_elementy.wybrany}', (100, 180), (r, g, b))
    wypisz_tekst(ekran, f'[R] Bron: {bron_elemnty.wybrany}', (100, 220), (r, g, b))
    wypisz_tekst(ekran, f'[S] Zapisz', (100, 260), (r, g, b))

    pygame.display.flip()
    zegar.tick(30)

pygame.quit()