# FUNKCJE
# PRZYPOMNIENIE
# FUNKCJE ->
# 1. JAK TWORZYMY
# 1.1 def nazwaFunkcji():
#(TAB) Co sie dzieje w funkcji oddzielamy TAB -> Tabulacja
# PETLE
# FOR -> POWTARZA SIE OKRESLONA LICZBE RAZY
# 2. JAK TWORZYMY?
# 2.1 for licznikPetli in range(liczbe razy do wykonania):
#(TAB) Co sie dzieje w petli oddzielamy tabulacja
#
#
# FUNKCJE I PARAMETRY
# PARAMETRAMI MOZEMY WPLYWAC NA KOD W SRODKU FUNKCJI
# 3.JAK DODAC PARAMETRY(zmienne) DO FUNKCJI?
# 3.1 def nazwaFunkcji(parametr):
#(TAB) Co sie dzieje w funkcji oddzielamy TAB -> Tabulacja
# Aby uzyc zmiennej/parametru funkcji uzywamy go jak zwyklej zminnej
#funkcja odpowiedzialna za przygotowanie areny
def arenaKonstruktor():
#ustawiamy noc
gameplay.time_set(DayTime.NIGHT)
#pobieramy aktualne kordy gracza z małym przesuniecięm na osi x tak żeby arena nie budowała się na graczu
pozycja=positions.add(player.position(), pos(10, 0, 0))
x=pozycja.get_value(Axis.X)
y=pozycja.get_value(Axis.Y)
z=pozycja.get_value(Axis.Z)
#tworzymy arenę
blocks.fill(STONE_BRICKS, world(x,y,z),world(x+40,y+4,z+40))
#tworzymy w narożnikach areny diamentowe pola potrzebne dla bloku beacon aby ten mógł wypuścić wiązkę światła
blocks.fill(DIAMOND_BLOCK, world(x,y+4,z),world(x+2,y+4,z+2))
blocks.fill(DIAMOND_BLOCK, world(x+38,y+4,z),world(x+40,y+4,z+2))
blocks.fill(DIAMOND_BLOCK, world(x,y+4,z+38),world(x+2,y+4,z+40))
blocks.fill(DIAMOND_BLOCK, world(x+38,y+4,z+38),world(x+40,y+4,z+40))
#dodajemy bloki beacon
blocks.place(BEACON, world(x+1,y+5,z+1))
blocks.place(BEACON, world(x+39,y+5,z+1))
blocks.place(BEACON, world(x+1,y+5,z+39))
blocks.place(BEACON, world(x+39,y+5,z+39))
#tworzymy schody
for i in range(15,21):
shapes.line(STONE_BRICK_STAIRS, world(x-4,y,z+i), world(x,y+4,z+i))
# odpalam mini gre
# daje eq dla gracza
eq() # wywołuje funkcje eq
gameplay.set_game_mode(SURVIVAL, mobs.target(NEAREST_PLAYER)) # zmienia tryb gry na survival
gameplay.set_difficulty(NORMAL) # zmienia poziom gry na normal
runda1(x, y, z, 1) # wywołuje runde 1
player.on_chat("arena", arenaKonstruktor)
# EKWIPUNEK
def eq():
#PAMIETAMY O TABULACJI
#zmienna pomocnicza z graczem
gracz = mobs.target(NEAREST_PLAYER) # cel gracz
# daje eq dla gracza zbroje + miecz z diamentów
mobs.give(gracz, DIAMOND_LEGGINGS, 1)
mobs.give(gracz, DIAMOND_BOOTS, 1)
mobs.give(gracz, DIAMOND_CHESTPLATE, 1)
mobs.give(gracz, DIAMOND_HELMET, 1)
mobs.give(gracz, DIAMOND_SWORD, 1)
mobs.give(gracz, BOW, 1)
mobs.give(gracz, ARROW, 64)
# RUNDA 1
# FUNKCJA RUNDA1 PRZYJMUJE 3 PARAMETRY -> wpolrzedne x,z oraz nr rundy
def runda1(x, y, z, nrRundy):
# napiszemy napis runda 1 z bloczkow
blocks.print("RUNDA " + nrRundy, SEA_LANTERN, world(x, y + 10, z + 45), WEST)
# runda 1 spawnuje zombie x 15
for i in range(15):
mobs.spawn(ZOMBIE, randpos(world(x - 5, y + 5, z + 5), world(x + 5, y + 5, z + 20)))
loops.pause(1000) # 1s przerwy po kazdym zombie
# Runda 1 ma 30s długości
loops.pause(30000)
# CO SIE STANIE PO SMIERCI GRACZA -> FUNKCJA DO ZDARZENIA player.on_died(nazwaFunkcji)