from tela_lobby import TelaLobby
from tela_sala1 import TelaSala1
from tela_sala2 import TelaSala2
from tela_sala3 import TelaSala3
from tela_sala4 import TelaSala4
from tela_campeao import TelaCampeao
from intro import Intro
from fame import Fame
from gameover import GameOver
from scoreboard import Score
from tutorial import Tutorial
from player import Player
from bag import Bag

import batalha
import tela_troca
import tela_box

roda = True
intro = Intro()
jogo = intro
while roda:
    retorna = jogo.update()
    jogo.desenha()
    if retorna == 'sair':
        roda = False
        sair = True
    if retorna == 'jogo':
        nome = jogo.nome()
        roda = False
        sair = False
    if retorna == 'tutorial':
        jogo = Tutorial()
    if retorna == 'intro':
        jogo = intro

dinheiro = 100000
while sair == False:

    pokedex, Teams, champ = batalha.init()

    player = Player(Teams[0], nome)

    player.money = dinheiro

    roda = True
    box = tela_box.Box(player,pokedex)
    sala1 = TelaSala1(player, Teams[1])
    sala2 = TelaSala2(player, Teams[2])
    sala3 = TelaSala3(player, Teams[3])
    sala4 = TelaSala4(player, Teams[4])
    campeao = TelaCampeao(player, champ)
    lobby = TelaLobby(player)
    jogo = lobby
    ultimo = 'lobby'
    while roda:
        jogo.desenha()
        retorna = jogo.update()

        if retorna == 'sair':
            roda = False
            sair = True

        if retorna == 'reinicia':
            roda = False

        if retorna == "lobby":
            jogo = lobby
            ultimo = 'lobby'

        if retorna == 'sala1':
            jogo = sala1
            ultimo = 'sala1'

        if retorna == 'sala2':
            jogo = sala2
            ultimo = 'sala2'
        
        if retorna == 'sala3':
            jogo = sala3
            ultimo = 'sala3'

        if retorna == 'sala4':
            jogo = sala4
            ultimo = 'sala4'

        if retorna == 'salacampeao':
            jogo = campeao
            ultimo = 'salacampeao'

        if retorna == 'fame':
            jogo = Fame(player)

        if retorna == 'gameover':
            jogo = GameOver()

        if retorna == 'board':
            jogo = Score()

        if retorna != None:
            if retorna[0] == "troca":
                jogo = tela_troca.Troca(player, retorna[1] +[ultimo])
            if retorna == 'bag' or retorna[0] == 'bag':
                jogo = Bag(player, ultimo)

        if retorna == "box":
            jogo = tela_box.Box(player,pokedex)
    
    dinheiro += 50000