Skip to content
Snippets Groups Projects
Commit 73b3fc0e authored by victogo's avatar victogo
Browse files

Feature: evento ladron implementado, si ganas, ganas tantas monedas como...

Feature: evento ladron implementado, si ganas, ganas tantas monedas como tiempo te haya sobrado, si pierdes, se reduce la energia a la mitad (falta coprobar que pasa si tienes 1 de energia, porque te restaria 0, y falta hacer que te pueda robar un objeto aleatorio de tu inventario)
parent 540c4bd2
No related branches found
No related tags found
3 merge requests!65Feature:,!48Feature: evento descanso, se juega al minijuego nube vaccea y se recupera con...,!47Feature: evento descanso, se juega al minijuego nube vaccea y se recupera con...
Showing
with 108 additions and 22 deletions
......@@ -30,12 +30,13 @@ class ExploradoresDePintia : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_exploradores_de_pintia)
startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val mensajeResultado = result.data?.getStringExtra("resultado")
println("Volvemos del mini-juego: $mensajeResultado")
startForResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val mensajeResultado = result.data?.getStringExtra("resultado")
println("Volvemos del mini-juego: $mensajeResultado")
}
}
}
GameState.fragmentManager = supportFragmentManager
......@@ -76,17 +77,23 @@ class ExploradoresDePintia : AppCompatActivity() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 100 && resultCode == RESULT_OK) {
if (data?.getStringExtra("PUNTUACION") != ""){
val puntuacion = data?.getStringExtra("PUNTUACION")!!.toInt()
GameState.jugador.actualizarAtributo(Atributo.Energia, puntuacion)
GameState.jugador.actualizarAtributo(Atributo.Vida, puntuacion)
val resultado = data?.getStringExtra("resultado")
Toast.makeText(this, resultado, Toast.LENGTH_SHORT).show()
} else if (requestCode == 102 && resultCode == RESULT_OK) {
val puntuacion = data?.getStringExtra("PUNTUACION")!!.toInt()
GameState.jugador.actualizarAtributo(Atributo.Energia, puntuacion/3)
GameState.jugador.actualizarAtributo(Atributo.Vida, puntuacion/3)
} else if (requestCode == 103 && resultCode == RESULT_OK) {
val tiempo = data?.getStringExtra("TIEMPO")!!.toInt()
if (tiempo >= 1000){
GameState.jugador.actualizarMonedas(GameState.jugador.monedas.plus(tiempo/1000))
}else{
val resultado = data.getStringExtra("resultado")
Toast.makeText(this, resultado, Toast.LENGTH_SHORT).show()
GameState.jugador.actualizarAtributo(Atributo.Energia, -GameState.jugador.atributos[Atributo.Energia]!!/2)
}
}
}
......
......@@ -11,7 +11,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.Eve
object GeneradorDeEventos {
private const val CANTIDAD = 2 // Numero de eventos generados
private const val CANTIDAD = 1 // Numero de eventos generados
private var eventos = ArrayList<Evento>()
private fun crearEvento(): Evento {
......
......@@ -7,6 +7,7 @@ enum class TipoEvento {
Trampa,
Riesgo,
Descanso,
Ladron,
/*Trampa,
Aliado,
Misterio,
......
package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import android.content.Intent
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context
import com.example.ellegadodepintia.minijuego3.Minijuego3
class EfectoLadron() : Efecto(100) {
override fun ejecutar(): String {
val intent = Intent(context, Minijuego3::class.java)
context!!.startActivityForResult(intent, 103)
GameState.eventoActual.actualizarFinalizado(true)
return "Si has logrado completar el minijuego, habrás obtenido monedas. En otro caso, tu energía se ha reducido a la mitad"
}
}
\ No newline at end of file
......@@ -15,7 +15,7 @@ class EfectoNubeVaccea() : Efecto(100) {
}
val intent = Intent(context, Minijuego2::class.java)
context!!.startActivityForResult(intent, 100)
context!!.startActivityForResult(intent, 102)
GameState.eventoActual.actualizarFinalizado(true)
return "Has descansado"
......
......@@ -14,17 +14,19 @@ object EventoFactorySelector {
TipoEvento.Trampa -> TrampaFactory()
TipoEvento.Riesgo -> RiesgoFactory()
TipoEvento.Descanso -> DescansoFactory()
TipoEvento.Ladron -> LadronFactory()
}
}
private fun seleccionarTipoEventoConProbabilidades(): TipoEvento {
val probabilidades = mapOf(
TipoEvento.Reliquia to 0.3,
/*TipoEvento.Reliquia to 0.2,
TipoEvento.Tienda to 0.1,
TipoEvento.Riesgo to 0.2,
TipoEvento.Trampa to 0.1,
TipoEvento.Combate to 0.2,
TipoEvento.Descanso to 0.1
TipoEvento.Descanso to 0.1,*/
TipoEvento.Ladron to 1
)
val acumulado = probabilidades.entries.fold(mutableListOf<Pair<Double, TipoEvento>>()) { acc, entry ->
......
package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
class EventoLadron(
override val descripcion: String,
override val dificultad: Int,
override val opciones: MutableList<Opcion>,
override val imagen: Int, resistenciaMax: Int,
override var finalizado: Boolean,
) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado)
\ No newline at end of file
package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.R
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoLadron
class LadronFactory : EventoFactory {
private val ladronesMap = mapOf(
"Un ladrón de vasijas aparece y te desafía a un juego: ¡vence en el reto de cartas o se llevará tu tesoro!" to Pair(
R.drawable.asi_exploradores_ladron, listOf(
Opcion(
descripcion = "Jugar",
atributoRequerida = Atributo.Nula,
EfectoLadron()
)
)
)
)
override fun generarDescripcion(): String {
return ladronesMap.keys.random()
}
override fun generarOpciones(descripcion: String): MutableList<Opcion> {
return ladronesMap[descripcion]?.second?.toMutableList()
?: mutableListOf()
}
override fun generarImagen(descripcion: String): Int {
return ladronesMap[descripcion]?.first!!
}
override fun generarEvento(): EventoLadron {
val descripcion = generarDescripcion()
return EventoLadron(
descripcion = descripcion,
dificultad = 0,
opciones = generarOpciones(descripcion),
imagen = generarImagen(descripcion),
resistenciaMax = (2..8).random(),
finalizado = false
)
}
}
\ No newline at end of file
......@@ -18,7 +18,6 @@ import android.animation.AnimatorListenerAdapter
import android.animation.ValueAnimator
import android.graphics.ColorMatrix
import android.graphics.ColorMatrixColorFilter
import com.example.ellegadodepintia.MapActivity
import com.example.ellegadodepintia.R
import com.example.ellegadodepintia.soundManager.SoundManager
......@@ -35,7 +34,7 @@ class Minijuego3 : AppCompatActivity() {
private var segundaCarta: Carta? = null
private var procesandose = false
private var cuentraAtras: CountDownTimer? = null
private var tiempoRestante: Long = 45000 // 1 minuto en milisegundos
private var tiempoRestante: Long = 25000 // 1 minuto en milisegundos
private var tiempoCorriendo = false
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -190,7 +189,7 @@ class Minijuego3 : AppCompatActivity() {
}
private fun sumarTiempo() {
tiempoRestante += 5000
tiempoRestante += 2000
actualizarContador()
iniciarCronometro()
}
......@@ -199,8 +198,10 @@ class Minijuego3 : AppCompatActivity() {
Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show()
botonVolver.visibility = ImageView.VISIBLE
botonVolver.setOnClickListener{
val intent = Intent(this@Minijuego3, MapActivity::class.java)
startActivity(intent)
val resultadoIntent = Intent()
resultadoIntent.putExtra("TIEMPO", tiempoRestante.toString())
println(tiempoRestante)
setResult(RESULT_OK, resultadoIntent)
finish()
}
gridLayout.removeAllViews()
......
app/src/main/res/drawable/asi_exploradores_ladron.png

384 KiB

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