diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt index 397ff5fd0cbc330c1654df1dfd0e6451f1d4590d..0b702ee41ece32a29ccb0bfb2da0a0a60597dd73 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/Jugador.kt @@ -13,7 +13,6 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoH import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoBuffo import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoEquipable -import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoUtilidad import com.example.ellegadodepintia.repositorios.RepositorioJugador import com.example.ellegadodepintia.repositorios.RepositorioObjetos @@ -38,8 +37,6 @@ class Jugador { atributos[Atributo.Energia] = 10 atributos[Atributo.Critico] = 8 - inventario.add(RepositorioObjetos.obtenerObjetoPorNombre("Puñal Vacceo")!!) - habilidades.add( Habilidad( nombre = "Furia del Vacceo", @@ -108,6 +105,11 @@ class Jugador { fun conseguirObjeto(objeto: Objeto): String { return if (inventario.size < 9) { inventario.add(objeto) + val nuevoInventarioNombres = ArrayList<String>() + for(objetoInventario in inventario){ + nuevoInventarioNombres.add(objetoInventario.nombre) + } + RepositorioJugador.setInventario(nuevoInventarioNombres) "Se ha añadido ${objeto.nombre} al inventario" } else { "¡El inventario está lleno!" @@ -126,6 +128,11 @@ class Jugador { fun destruirObjeto(objeto: Objeto) { inventario.remove(objeto) + val nuevoInventarioNombres = ArrayList<String>() + for(objetoInventario in inventario){ + nuevoInventarioNombres.add(objetoInventario.nombre) + } + RepositorioJugador.setInventario(nuevoInventarioNombres) notifyObservers() } @@ -192,6 +199,8 @@ class Jugador { vidaMax = 10 energiaMax = 10 actualizarObjetosTienda(nivelCiudad*2) + actualizarObjetosArmeria(nivelCiudad*2) + RepositorioJugador.setInventario(ArrayList()) } fun destruirObjetoRandom(){ diff --git a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioJugador.kt b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioJugador.kt index 22ad0ac7d1b49e551fb011db0b54696cde8f58c3..5f1703ba4238e66471b8eeb900322bfe8c8a8816 100644 --- a/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioJugador.kt +++ b/app/src/main/java/com/example/ellegadodepintia/repositorios/RepositorioJugador.kt @@ -28,6 +28,15 @@ object RepositorioJugador { ?: ArrayList() GameState.jugador.objetosArmeria = objetosArmeria + + val inventario = (it.get("inventario") as? List<*>) + ?.filterIsInstance<String>() + ?.toCollection(ArrayList()) + ?: ArrayList() + + for(nombreObjeto in inventario){ + GameState.jugador.inventario.add(RepositorioObjetos.obtenerObjetoPorNombre(nombreObjeto)!!) + } } } @@ -37,6 +46,7 @@ object RepositorioJugador { "monedas" to 0, "username" to username, "nivelCiudad" to 1, + "inventario" to ArrayList<String>(), "objetosTienda" to RepositorioObjetos.obtenerObjetosAleatoriosTienda(2), "objetosArmeria" to RepositorioObjetos.obtenerObjetosAleatoriosArmeria(2) ) @@ -63,6 +73,11 @@ object RepositorioJugador { userRef.set(hashMapOf("nivelCiudad" to nivelCiudad), SetOptions.merge()) } + fun setInventario(objetos : ArrayList<String>) { + val userRef = db.collection("users").document(email) + userRef.set(hashMapOf("inventario" to objetos), SetOptions.merge()) + } + fun cargarJugadores(callback: (List<PlayerLeaderBoard>) -> Unit) { db.collection("users") .get()