Skip to content
Snippets Groups Projects
Commit 336e1d01 authored by izajime's avatar izajime
Browse files

Feature: El inventario se guarda en la base de datos

parent 543e39bb
No related branches found
No related tags found
2 merge requests!65Feature:,!61Inventario db
......@@ -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
......@@ -108,6 +107,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 +130,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 +201,8 @@ class Jugador {
vidaMax = 10
energiaMax = 10
actualizarObjetosTienda(nivelCiudad*2)
actualizarObjetosArmeria(nivelCiudad*2)
RepositorioJugador.setInventario(ArrayList())
}
fun destruirObjetoRandom(){
......
......@@ -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()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment