def cargar_ultimo_usuario(self):
     id_user = None
     conn = sqlite3.connect('recursos/data.db')
     cursor = conn.cursor()
     cursor.execute("select id_usuario from sesion where acceso = (select MAX(acceso) from sesion);")
     obtenido = cursor.fetchone()
     if obtenido: id_user = obtenido[0]
     if id_user:
         cursor.execute("select nombre from usuario where id=?;", (id_user,))
         nombre = cursor.fetchone()[0]
         plantas = []
         objetos = []
         cursor.execute("select * from carta where id in (select id_carta from usuario_carta where id_usuario = ?);", (id_user,))
         for row in cursor:
             clase = None
             clasebase = None
             exec("clase = {}".format(row[3]))
             exec("clasebase = {}".format(row[10]))
             plantas.append(Carta(engine.pygame.Rect(row[1], row[2], 62, 87), clase, row[4], row[5], row[6], row[7], row[8], row[9], clasebase))
         cursor.execute("select * from objeto where id in (select id_objeto from usuario_objeto where id_usuario = ?);", (id_user,))
         for row in cursor:
             objetos.append(row[1])
         engine.definir_usuario(Usuario(id_user, nombre, plantas, objetos))
         self.saludar()
     else:
         self.cuadro_creacion = CuadroCreacion()
     conn.close()
 def cargar_ultimo_usuario(self):
     id_user = None
     conn = sqlite3.connect("recursos/data.db")
     cursor = conn.cursor()
     cursor.execute("select id_usuario from sesion where acceso = (select MAX(acceso) from sesion);")
     obtenido = cursor.fetchone()
     if obtenido:
         id_user = obtenido[0]
     if id_user:
         cursor.execute("select nombre from usuario where id=?;", (id_user,))
         nombre = cursor.fetchone()[0]
         plantas = []
         objetos = []
         cursor.execute(
             "select * from carta where id in (select id_carta from usuario_carta where id_usuario = ?);", (id_user,)
         )
         for row in cursor:
             clase = None
             clasebase = None
             exec ("clase = {}".format(row[3]))
             exec ("clasebase = {}".format(row[10]))
             plantas.append(
                 Carta(
                     engine.pygame.Rect(row[1], row[2], 62, 87),
                     clase,
                     row[4],
                     row[5],
                     row[6],
                     row[7],
                     row[8],
                     row[9],
                     clasebase,
                 )
             )
         cursor.execute(
             "select * from objeto where id in (select id_objeto from usuario_objeto where id_usuario = ?);",
             (id_user,),
         )
         for row in cursor:
             objetos.append(row[1])
         engine.definir_usuario(Usuario(id_user, nombre, plantas, objetos))
         self.saludar()
     else:
         self.cuadro_creacion = CuadroCreacion()
     conn.close()
class MenuInicio(Escena):
    def __init__(self):
        Escena.__init__(self)
        self.fondo = engine.cargar_imagen("inicial.jpg")
        self.boton_ad = Boton(508, 83, engine.cargar_imagen("boton7.png", True), comando = self.adventure)
        self.bienvenida = None
        self.cuadro_creacion = None
        self.cuadro_quien = None
        self.tweener = engine.pytweener.Tweener()
        self.cargar_ultimo_usuario()
        self.rect_clic = engine.pygame.Rect(900, 645, 64, 34)
    def cargar_ultimo_usuario(self):
        id_user = None
        conn = sqlite3.connect('recursos/data.db')
        cursor = conn.cursor()
        cursor.execute("select id_usuario from sesion where acceso = (select MAX(acceso) from sesion);")
        obtenido = cursor.fetchone()
        if obtenido: id_user = obtenido[0]
        if id_user:
            cursor.execute("select nombre from usuario where id=?;", (id_user,))
            nombre = cursor.fetchone()[0]
            plantas = []
            objetos = []
            cursor.execute("select * from carta where id in (select id_carta from usuario_carta where id_usuario = ?);", (id_user,))
            for row in cursor:
                clase = None
                clasebase = None
                exec("clase = {}".format(row[3]))
                exec("clasebase = {}".format(row[10]))
                plantas.append(Carta(engine.pygame.Rect(row[1], row[2], 62, 87), clase, row[4], row[5], row[6], row[7], row[8], row[9], clasebase))
            cursor.execute("select * from objeto where id in (select id_objeto from usuario_objeto where id_usuario = ?);", (id_user,))
            for row in cursor:
                objetos.append(row[1])
            engine.definir_usuario(Usuario(id_user, nombre, plantas, objetos))
            self.saludar()
        else:
            self.cuadro_creacion = CuadroCreacion()
        conn.close()
    def saludar(self):
        if not self.bienvenida:
            self.bienvenida = Bienvenida()
            self.tweener.addTween(self.bienvenida, y = 0, tweenTime = 0.2, tweenType = engine.pytweener.Easing.Linear.easeIn)
        else:
            self.bienvenida.nombre = engine.obtener_usuario().nombre
    def dibujar(self, superficie):
        superficie.blit(self.fondo, (0, 0))
        self.boton_ad.dibujar(superficie)
        if self.bienvenida: self.bienvenida.dibujar(superficie)
        if self.cuadro_quien: self.cuadro_quien.dibujar(superficie)
        if self.cuadro_creacion: self.cuadro_creacion.dibujar(superficie)
    def actualizar(self, tiempo):
        if self.tweener.hasTweens():
            self.tweener.update(tiempo / 1000.0)
        if self.cuadro_creacion: self.cuadro_creacion.actualizar(tiempo)
        if self.bienvenida: self.bienvenida.actualizar(tiempo)
        if self.cuadro_quien: self.cuadro_quien.actualizar(tiempo)
    def verificar_eventos(self, evento):
        if self.cuadro_creacion: 
            self.cuadro_creacion.verificar_eventos(evento)
        elif self.cuadro_quien: 
            self.cuadro_quien.verificar_eventos(evento)
        else:
            self.boton_ad.verificar_eventos(evento)
            self.bienvenida.verificar_eventos(evento)
        if evento.type == locals.MOUSEBUTTONDOWN and evento.button == 1:
            if self.rect_clic.collidepoint(evento.pos[0], evento.pos[1]):
                engine.obtener_director().salir()
    def adventure(self):
        #belsprout = Carta((0, 0, 62, 87), LanzaGuisantes, 100, "tierra", 8)
        #gira = Carta((65, 0, 62, 87), Girasol, 50, "tierra", 5)
        #gato = Carta((195, 488, 62, 87), ColaDeGato, 225, "agua", 12)
        #nenufar = Carta((0, 195, 62, 87), Nenufar, 25, "agua", 6)
        e = Supervivencia()
        for c in engine.obtener_usuario().plantas:
            e.cuadro_eleccion.agregar_carta(c)
        engine.obtener_director().set_escena(e)
        engine.obtener_director().escena_actual.imagen_cartas = engine.cargar_imagen("cartas.jpg")
        engine.obtener_director().escena_actual.imagen_charge = engine.cargar_imagen("charge.png", True)
        engine.obtener_director().escena_actual.imagen_nosoles = engine.cargar_imagen("nosoles.png", True)
    def survival(self):
        pass
    def creditos(self):
        pass
    def salir(self):
        pass
class MenuInicio(Escena):
    def __init__(self):
        Escena.__init__(self)
        self.fondo = engine.cargar_imagen("inicial.jpg")
        self.boton_ad = Boton(508, 83, engine.cargar_imagen("boton7.png", True), comando=self.adventure)
        self.bienvenida = None
        self.cuadro_creacion = None
        self.cuadro_quien = None
        self.tweener = engine.pytweener.Tweener()
        self.cargar_ultimo_usuario()
        self.rect_clic = engine.pygame.Rect(900, 645, 64, 34)

    def cargar_ultimo_usuario(self):
        id_user = None
        conn = sqlite3.connect("recursos/data.db")
        cursor = conn.cursor()
        cursor.execute("select id_usuario from sesion where acceso = (select MAX(acceso) from sesion);")
        obtenido = cursor.fetchone()
        if obtenido:
            id_user = obtenido[0]
        if id_user:
            cursor.execute("select nombre from usuario where id=?;", (id_user,))
            nombre = cursor.fetchone()[0]
            plantas = []
            objetos = []
            cursor.execute(
                "select * from carta where id in (select id_carta from usuario_carta where id_usuario = ?);", (id_user,)
            )
            for row in cursor:
                clase = None
                clasebase = None
                exec ("clase = {}".format(row[3]))
                exec ("clasebase = {}".format(row[10]))
                plantas.append(
                    Carta(
                        engine.pygame.Rect(row[1], row[2], 62, 87),
                        clase,
                        row[4],
                        row[5],
                        row[6],
                        row[7],
                        row[8],
                        row[9],
                        clasebase,
                    )
                )
            cursor.execute(
                "select * from objeto where id in (select id_objeto from usuario_objeto where id_usuario = ?);",
                (id_user,),
            )
            for row in cursor:
                objetos.append(row[1])
            engine.definir_usuario(Usuario(id_user, nombre, plantas, objetos))
            self.saludar()
        else:
            self.cuadro_creacion = CuadroCreacion()
        conn.close()

    def saludar(self):
        if not self.bienvenida:
            self.bienvenida = Bienvenida()
            self.tweener.addTween(self.bienvenida, y=0, tweenTime=0.2, tweenType=engine.pytweener.Easing.Linear.easeIn)
        else:
            self.bienvenida.nombre = engine.obtener_usuario().nombre

    def dibujar(self, superficie):
        superficie.blit(self.fondo, (0, 0))
        self.boton_ad.dibujar(superficie)
        if self.bienvenida:
            self.bienvenida.dibujar(superficie)
        if self.cuadro_quien:
            self.cuadro_quien.dibujar(superficie)
        if self.cuadro_creacion:
            self.cuadro_creacion.dibujar(superficie)

    def actualizar(self, tiempo):
        if self.tweener.hasTweens():
            self.tweener.update(tiempo / 1000.0)
        if self.cuadro_creacion:
            self.cuadro_creacion.actualizar(tiempo)
        if self.bienvenida:
            self.bienvenida.actualizar(tiempo)
        if self.cuadro_quien:
            self.cuadro_quien.actualizar(tiempo)

    def verificar_eventos(self, evento):
        if self.cuadro_creacion:
            self.cuadro_creacion.verificar_eventos(evento)
        elif self.cuadro_quien:
            self.cuadro_quien.verificar_eventos(evento)
        else:
            self.boton_ad.verificar_eventos(evento)
            self.bienvenida.verificar_eventos(evento)
        if evento.type == locals.MOUSEBUTTONDOWN and evento.button == 1:
            if self.rect_clic.collidepoint(evento.pos[0], evento.pos[1]):
                engine.obtener_director().salir()

    def adventure(self):
        # belsprout = Carta((0, 0, 62, 87), LanzaGuisantes, 100, "tierra", 8)
        # gira = Carta((65, 0, 62, 87), Girasol, 50, "tierra", 5)
        # gato = Carta((195, 488, 62, 87), ColaDeGato, 225, "agua", 12)
        # nenufar = Carta((0, 195, 62, 87), Nenufar, 25, "agua", 6)
        e = Supervivencia()
        for c in engine.obtener_usuario().plantas:
            e.cuadro_eleccion.agregar_carta(c)
        engine.obtener_director().set_escena(e)
        engine.obtener_director().escena_actual.imagen_cartas = engine.cargar_imagen("cartas.jpg")
        engine.obtener_director().escena_actual.imagen_charge = engine.cargar_imagen("charge.png", True)
        engine.obtener_director().escena_actual.imagen_nosoles = engine.cargar_imagen("nosoles.png", True)

    def survival(self):
        pass

    def creditos(self):
        pass

    def salir(self):
        pass