diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml deleted file mode 100644 index 2159e853647dc794a0b2787150f89d2bdea8f8d1..0000000000000000000000000000000000000000 --- a/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="deploymentTargetSelector"> - <selectionStates> - <SelectionState runConfigName="MainActivity"> - <option name="selectionMode" value="DROPDOWN" /> - </SelectionState> - </selectionStates> - </component> -</project> \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt index f0b47f6ea624beeabb31a58e1d8fd9b77dd1c4a3..eff38d902fd9b6f53c88cd3962bf21213bd642d2 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GeneradorDeEventos.kt @@ -15,8 +15,7 @@ object GeneradorDeEventos { private var eventos = ArrayList<Evento>() private fun crearEvento(): Evento { - val tipo = TipoEvento.entries.random() - val factory = EventoFactorySelector.obtenerFactory(tipo) + val factory = EventoFactorySelector.obtenerFactory() return factory.generarEvento() } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt index 7c886a4fec52badd6a9ff65527fe34d24bce7ca1..5c42d31a6f20b47634a8f94683424fff423ffac3 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoCombate.kt @@ -11,5 +11,5 @@ class EventoCombate( override var finalizado: Boolean, var ataque: Int, val imagenAtaque : Int, - val acciones: MutableList<Efecto> + val acciones: MutableList<Efecto>, ) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado) \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt index 6054dee6245284a52dff2eeb77415e964717ed50..74217d6ec4833ee489055b96b4ef7b9737ce7180 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/EventoFactorySelector.kt @@ -4,7 +4,9 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.TipoEvento object EventoFactorySelector { - fun obtenerFactory(tipo: TipoEvento): EventoFactory { + fun obtenerFactory(): EventoFactory { + val tipo = seleccionarTipoEventoConProbabilidades() + return when (tipo) { TipoEvento.Reliquia -> ReliquiaFactory() TipoEvento.Combate -> CombateFactory() @@ -13,4 +15,23 @@ object EventoFactorySelector { TipoEvento.Riesgo -> RiesgoFactory() } } + + private fun seleccionarTipoEventoConProbabilidades(): TipoEvento { + val probabilidades = mapOf( + TipoEvento.Reliquia to 0.3, + TipoEvento.Tienda to 0.1, + TipoEvento.Riesgo to 0.3, + TipoEvento.Trampa to 0.1, + TipoEvento.Combate to 0.2 + ) + + val acumulado = probabilidades.entries.fold(mutableListOf<Pair<Double, TipoEvento>>()) { acc, entry -> + val sumaAcumulada = acc.lastOrNull()?.first ?: 0.0 + acc.add(Pair(sumaAcumulada + entry.value, entry.key)) + acc + } + + val random = Math.random() + return acumulado.first { random <= it.first }.second + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt index af802fb1b5261c8846fd6dc542f229fd794c84fd..abdb8fb3fc9a13765cdffbfdf8752b4d14809d39 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/RiesgoFactory.kt @@ -19,7 +19,7 @@ class RiesgoFactory : EventoFactory { EfectoRiesgo( ObjetoEquipable( nombre = "Espada de Hierro", - descripcion = "Una espada de hierro sencilla y confiable perfecta para un aventurero novato.", + descripcion = "Una espada de hierro sencilla y confiable perfecta para un aventurero novato. Otorga 1 de daño extra", efecto = EfectoEquipableAumento(1, Atributo.Ataque), imagen = R.drawable.asi_objeto_espadadefault ),