diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 774e072d16c964decd5ac1b67e3dc9030715b555..7f10c023531b1fb2dd6faaaea8f6387cdae0adae 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,10 +4,10 @@ <selectionStates> <SelectionState runConfigName="app"> <option name="selectionMode" value="DROPDOWN" /> - <DropdownSelection timestamp="2024-11-24T16:31:40.501476846Z"> + <DropdownSelection timestamp="2024-11-25T12:35:02.530927478Z"> <Target type="DEFAULT_BOOT"> <handle> - <DeviceId pluginId="LocalEmulator" identifier="path=/home/victor/.android/avd/Small_Phone_API_35.avd" /> + <DeviceId pluginId="PhysicalDevice" identifier="serial=RF8N1192C6J" /> </handle> </Target> </DropdownSelection> diff --git a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt index 15a5caddaeba33ed92bb9fc5c7740898139e9a1a..2a0ad79ab2e30490a78b075a2615bbb22631891e 100644 --- a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt +++ b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt @@ -11,10 +11,14 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import com.example.ellegadodepintia.exploradoresDePintia.ExploradoresDePintia import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.soundManager.SoundManager class MapActivity : AppCompatActivity() { + private lateinit var soundManager: SoundManager override fun onCreate(savedInstanceState: Bundle?) { + soundManager = SoundManager(this) + soundManager.playSoundLoop(R.raw.sound_ciudad,100) super.onCreate(savedInstanceState) setContentView(R.layout.activity_map) GameState.jugador.addObserver { actualizarMonedas() } @@ -37,6 +41,7 @@ class MapActivity : AppCompatActivity() { val aventura = findViewById<ImageButton>(R.id.botonAventura) aventura.setOnClickListener { val intent = Intent(this, ExploradoresDePintia::class.java) + soundManager.stopSound() startActivity(intent) } @@ -63,6 +68,8 @@ class MapActivity : AppCompatActivity() { GameState.jugador.monedas.toString().also { findViewById<TextView>(R.id.moneyText).text = it } } + + private fun ajustarPosiciones() { // Dimensiones de la pantalla original val originalWidth = 1080f @@ -121,6 +128,12 @@ class MapActivity : AppCompatActivity() { button.layoutParams = params } + override fun onBackPressed() { + super.onBackPressed() + soundManager.stopSound() + + } + } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt index 08205666ec0e337310bc10c1c534bfe2e889ec0c..81d2cb505ae47224d1629fd41d33429339de6f40 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt @@ -40,9 +40,11 @@ class ExploradoresDePintia : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + setContentView(R.layout.activity_exploradores_de_pintia) soundManager = SoundManager(this) + soundManager.playSoundLoop(R.raw.sound_exploradores,50) //soundManager.playSoundLoop(R.raw.sound_exploradores_idle,100) startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> @@ -154,4 +156,14 @@ class ExploradoresDePintia : AppCompatActivity() { super.onBackPressed() } } + override fun onPause() { + super.onPause() + soundManager.setVolume(0) + } + + override fun onResume() { + super.onResume() + soundManager.setVolume(60) + + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt index b0c47e856a3a7dc9bc26b9dbc25d72a1c378358c..56a24d92fc5f3ee1fdf5da952e574103292c14c0 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/Resumen.kt @@ -141,4 +141,10 @@ class Resumen : AppCompatActivity() { } } } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GameState.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GameState.kt index 33f99c8b79cf6e5737c0911b27179c8dedffaa39..552a1d63f701f6c4fdcb0ff27745ea9aa54c3825 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GameState.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GameState.kt @@ -19,7 +19,6 @@ object GameState { contexto = context } - //TODO() Este reset no va fun reset() { jugador.reset() contexto = null 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 822b190dd90db6aef6568c2d89fe8de382ff712d..64d06fde77604cd763b2840e21061b7e16116bdd 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 @@ -10,7 +10,6 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.Eve import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.EventoFactorySelector import kotlin.random.Random - object GeneradorDeEventos { private const val CANTIDAD = 10 // Numero de eventos generados private var eventos = ArrayList<Evento>() diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt index 6999786ea38c61f01e74ecb926a93b8c5242dc52..c9556d3dcf1d67a7ac90bc4a8eb7419766f20fad 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/GestorCombate.kt @@ -15,9 +15,10 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRege import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRevivirEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.EventoCombate import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoHabilidad +import com.example.ellegadodepintia.soundManager.SoundManager object GestorCombate { - + private lateinit var soundManager: SoundManager lateinit var evento: EventoCombate private var turnoJugador = true @@ -39,7 +40,8 @@ object GestorCombate { imagenProtagonista?.setImageResource(R.drawable.protagonista_die_animation) val muerteAnimation = imagenProtagonista?.drawable as? AnimationDrawable muerteAnimation?.start() - + soundManager = SoundManager(context!!) + soundManager.playSound(R.raw.sound_piano_over,100) val handler = Handler(Looper.getMainLooper()) handler.postDelayed({ muerteAnimation!!.stop() diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt index 50fc071498544102f9c70101e796d3e9c1db0349..0122a4927f32b557d8db341b38d61d5d711fbf51 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueEnemigo.kt @@ -1,15 +1,18 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto +import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory.EventoCombate +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoAtaqueEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val probabilidadEnemigo = (1..100).random() val mensaje: String - + soundManager = SoundManager(GameState.context!!) val evento = GameState.eventoActual as? EventoCombate ?: return "No es un evento de combate" GestorCombate.cargarAnimacionesAtaqueEnemigo() @@ -17,10 +20,11 @@ class EfectoAtaqueEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito) { val ataqueReal = GestorCombate.calcularAtaque(evento.ataque, evento.probCritico) GameState.jugador.actualizarAtributo(Atributo.Vida, -ataqueReal) - + soundManager.playSound(R.raw.sound_golpe1,100) mensaje = "¡El enemigo te ha golpeado, recibes $ataqueReal de daño!" } else { mensaje = "¡El enemigo ha fallado el golpe!" + soundManager.playSound(R.raw.sound_miss,100) } return mensaje diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt index 8a339653066613d54df890eeedb26692d1ed4b1a..ca76bf0dd2bd02c9f32686696d1d0de39a611390 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoAtaqueProtagonista.kt @@ -1,21 +1,25 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto +import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate - +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoAtaqueProtagonista(probabilidadExito: Int) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val probabilidadPersonaje = (1..100).random() val mensaje: String - + soundManager = SoundManager(GameState.context!!) if (probabilidadPersonaje <= probabilidadExito) { GestorCombate.cargarAnimacionesAtaqueProtagonista() val ataqueReal = GestorCombate.calcularAtaque(GameState.jugador.atributos[Atributo.Ataque]!!, GameState.jugador.atributos[Atributo.Critico]!!) GameState.eventoActual.actualizarResistencia(-ataqueReal) mensaje = "¡Ataque realizado con éxito has hecho $ataqueReal de daño" + soundManager.playSound(R.raw.sound_espada,100) } else { mensaje = "Has fallado el golpe, recibe 0 de daño" + soundManager.playSound(R.raw.sound_miss,100) } return mensaje } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt index 1c5f93710d0cb3347a11fe47af04a0bdbffd3bcd..d710cf2080475a814d5ad31995cc55ce00a72b8b 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDestruir.kt @@ -10,10 +10,12 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.GeneradorDeEventos import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.ObjetoDeValor - +import com.example.ellegadodepintia.soundManager.SoundManager //TODO() Agregar inventario con restos de la reliquia class EfectoDestruir(probabilidadExito: Int) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { + soundManager = SoundManager(context!!) val probabilidad = (1..100).random() return if (probabilidad <= probabilidadExito) { val imagenProtagonista = context!!.findViewById<ImageView>(R.id.imagenProtagonista) @@ -21,6 +23,7 @@ class EfectoDestruir(probabilidadExito: Int) : Efecto(probabilidadExito) { imagenProtagonista?.setImageResource(R.drawable.protagonista_ataque_animation) val ataqueAnimation = imagenProtagonista?.drawable as? AnimationDrawable ataqueAnimation?.start() + soundManager.playSound(R.raw.sound_espada,100) Handler(Looper.getMainLooper()).postDelayed({ imagenProtagonista?.setImageResource(R.drawable.protagonista_idle_animation) @@ -44,6 +47,7 @@ class EfectoDestruir(probabilidadExito: Int) : Efecto(probabilidadExito) { ) ) val probabilidadCombate = (0..1).random() + soundManager.playSound(R.raw.sound_romper,100) if(probabilidadCombate <= 60){ GeneradorDeEventos.insertarCombate() "¡Qué has hecho, la reliquia se ha roto por completo!. Has conseguido un fragmento de la reliquia. Parece que un enemigo te ha visto, ¡el próximo evento será un combate!" diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt index 5e8e93ae27dfd6eef99cec91e359a62b07d0822d..aa665c9cb0f6aafe8126fbe364d3a4c31147a3da 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoDetallesCompra.kt @@ -9,10 +9,11 @@ import com.example.ellegadodepintia.exploradoresDePintia.ModalDetallesCompra import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoDetallesCompra(private val objeto: Objeto) : Efecto(100) { - + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val mensaje = "Has investigado el objeto que te estan ofreciendo" val imagenProtagonista = context!!.findViewById<ImageView>(R.id.imagenProtagonista) @@ -36,7 +37,7 @@ class EfectoDetallesCompra(private val objeto: Objeto) : Efecto(100) { } private fun ejecutarCompra() { - + soundManager = SoundManager(context!!) val imagenProtagonista = context!!.findViewById<ImageView>(R.id.imagenProtagonista) imagenProtagonista?.let { @@ -48,6 +49,7 @@ class EfectoDetallesCompra(private val objeto: Objeto) : Efecto(100) { if (GameState.jugador.monedas < objeto.coste){ "¡No tienes suficientes monedas para comprar el objeto!".also { context!!.findViewById<TextView>(R.id.textoResultado).text = it } }else{ + soundManager.playSound(R.raw.sound_dineros,100) GameState.jugador.actualizarMonedas(GameState.jugador.monedas - objeto.coste) GameState.jugador.conseguirObjeto(objeto) GameState.eventoActual.actualizarFinalizado(true) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoHuirProtagonista.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoHuirProtagonista.kt index aba78e1b87b84c437f59208861acae6242779adb..528d36f277daf2be739f85f9d50a4e7ceef4787f 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoHuirProtagonista.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoHuirProtagonista.kt @@ -7,8 +7,10 @@ import android.widget.ImageView import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoHuirProtagonista(probabilidadExito: Int) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val probabilidad = (1..100).random() return if (probabilidad <= probabilidadExito) { @@ -24,8 +26,11 @@ class EfectoHuirProtagonista(probabilidadExito: Int) : Efecto(probabilidadExito) idleAnimation?.start() }, 1500) GameState.eventoActual.actualizarFinalizado(true) + soundManager = SoundManager(context!!) + soundManager.playSound(R.raw.sound_cuerno,100) "Has huido con éxito." + } else { "No has podido huir." } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoInvestigarEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoInvestigarEnemigo.kt index 859d1855716c45ccf2cce00316d90f5b7afbb37a..8a114e4b2be5f72e030fb82577fe67656887bfab 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoInvestigarEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoInvestigarEnemigo.kt @@ -9,11 +9,13 @@ import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.ModalDetallesEnemigo import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoInvestigarEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito) { - + private lateinit var soundManager: SoundManager override fun ejecutar(): String { + soundManager = SoundManager(GameState.context!!) val imagenProtagonista = context!!.findViewById<ImageView>(R.id.imagenProtagonista) val imagenEfecto = context!!.findViewById<ImageView>(R.id.imagenEfectoEvento) @@ -21,7 +23,7 @@ class EfectoInvestigarEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito val salto = ObjectAnimator.ofFloat(it, "translationY", 0f, -40f, 0f) salto.duration = 300 salto.start() - + soundManager.playSound(R.raw.sound_laser,100) Handler(Looper.getMainLooper()).postDelayed({ imagenEfecto?.setImageResource(R.drawable.effect_investigar_animation) val efectoAnimacion = imagenEfecto?.drawable as? AnimationDrawable diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt index d3e0ae61f0573538fd48ffc1eda6b85ad9db6fae..135c434469824a43aa1dfbfefc3e6aafe816846b 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRegeneracionEnemigo.kt @@ -1,12 +1,16 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto +import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate - +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoRegeneracionEnemigo(private val mensajeCuracion: String,private val cantidad: Int) : Efecto(100) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { + soundManager = SoundManager(context!!) GestorCombate.cargarAnimacionsRegeneracionEnemigo() - + soundManager.playSound(R.raw.sound_healing,100) GameState.eventoActual.actualizarResistencia(cantidad) return mensajeCuracion diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt index 2474c5bc74a25417b6d6bf6a962df4b72066c5ce..e36df2405f7f8f02129a4587e859bde7ec0fe427 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoReparar.kt @@ -12,11 +12,14 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.minijuegoReparacion.MinijuegoReparacion +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoReparar(probabilidadExito: Int, private val stringReparado: String, private val stringFallo: String, private val valorPerdido: Int, private val objeto: Objeto) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val probabilidad = (1..100).random() - + soundManager = SoundManager(context!!) + soundManager.playSound(R.raw.sound_reparar,100) val imagenProtagonista = context!!.findViewById<ImageView>(R.id.imagenProtagonista) val imagenEfecto = context!!.findViewById<ImageView>(R.id.imagenEfectoEvento) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt index b812abc1d013abfece3a743fe7587d92ef5390f1..f26a23ea8ae2d6f043aa6a140125428e1b3a1dfb 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoResolverTrampaConAtributo.kt @@ -1,7 +1,10 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto +import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoResolverTrampaConAtributo( @@ -10,12 +13,19 @@ class EfectoResolverTrampaConAtributo( private val coste: Int, private val stringLogrado: String, private val stringFallo: String) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { + soundManager = SoundManager(context!!) if (atributo == Atributo.Energia && GameState.jugador.atributos[Atributo.Energia]!!<coste){ return "No tienes energÃa suficiente para intentar escapar escalando. Necesitas al menos $coste puntos" }else if(atributo == Atributo.Investigacion && GameState.jugador.atributos[Atributo.Investigacion]!!<coste) { return "No tienes suficientes puntos de investigación para explorar" }else{ + if(atributo==Atributo.Energia){ + soundManager.playSound(R.raw.sound_rocks,100) + }else if(atributo==Atributo.Vida){ + soundManager.playSound(R.raw.sound_romper,100) + } GameState.jugador.actualizarAtributo(atributo, -coste) return if ((1..100).random() <= probabilidadExito){ GameState.eventoActual.actualizarFinalizado(true) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt index 6d8004ccf8663e5b66cef06009427caffa5b2fcb..b10985a387efe47a1c78c9074570c4331e45cd24 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRevivirEnemigo.kt @@ -1,18 +1,23 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto +import com.example.ellegadodepintia.R import com.example.ellegadodepintia.exploradoresDePintia.model.GameState +import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoRevivirEnemigo( private val mensajeRevivir: String, private val porcentaje: Double, probabilidadExito: Int ) : Efecto(probabilidadExito) { + private lateinit var soundManager: SoundManager override fun ejecutar(): String { + soundManager = SoundManager(context!!) val probabilidadGenerada = (1..100).random() if (probabilidadGenerada <= probabilidadExito) { GestorCombate.cargarAnimacionsRegeneracionEnemigo() - + soundManager.playSound(R.raw.sound_healing,100) GameState.eventoActual.setResistencia( (GameState.eventoActual.resistenciaMax * porcentaje).toInt() ) diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt index d87dc1537bf73276c0e07047049aa03e1db69e37..17329de691604659ab796a16a1b0a84f6da86382 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/efecto/EfectoRiesgo.kt @@ -7,14 +7,16 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.exploradoresDePintia.model.GameState.context +import com.example.ellegadodepintia.soundManager.SoundManager class EfectoRiesgo(private val objetoRecompensa : Objeto, private val dmgRiesgo: Int, private val mensajeRecomensa : String, private val mensajeRiesgo : String, probabilidadExito: Int ) : Efecto(probabilidadExito) { - + private lateinit var soundManager: SoundManager override fun ejecutar(): String { val resultado = (1..100).random() - + soundManager = SoundManager(context!!) + soundManager.playSound(R.raw.sound_cofre,100) val imageView: ImageView = context!!.findViewById(R.id.imagenEvento) val animationDrawable = imageView.drawable as? AnimationDrawable diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt index 3b60701a0ebae5c8fcbc761cfa97f8f71509832c..4300ae3b55d59ccf23488ad936b90376f7ce3cb4 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/model/eventoFactory/CombateFactory.kt @@ -17,6 +17,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRevi import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto import com.example.ellegadodepintia.repositorios.RepositorioObjetos + data class CombateInfo( val imagenIdle: Int, val imagenAtaque: Int, diff --git a/app/src/main/java/com/example/ellegadodepintia/soundManager/SoundManager.kt b/app/src/main/java/com/example/ellegadodepintia/soundManager/SoundManager.kt index 95ac338ba2bb08586d10d2c1e57da5ec473d72e3..9b73f3da8b90b77fd4e6671a98c9d91f10149f9a 100644 --- a/app/src/main/java/com/example/ellegadodepintia/soundManager/SoundManager.kt +++ b/app/src/main/java/com/example/ellegadodepintia/soundManager/SoundManager.kt @@ -65,4 +65,11 @@ class SoundManager(private val context: Context) { loopMediaPlayer?.release() loopMediaPlayer = null } + + + // Método privado para ajustar el volumen + fun setVolume(volume: Int) { + val adjustedVolume = (volume.coerceIn(1, 100) / 100.0).toFloat() + loopMediaPlayer?.setVolume(adjustedVolume, adjustedVolume) + } } diff --git a/app/src/main/res/raw/sound_ciudad.mp3 b/app/src/main/res/raw/sound_ciudad.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8a5ec71e0ce71e24e7a68da8228f858dabfde9aa Binary files /dev/null and b/app/src/main/res/raw/sound_ciudad.mp3 differ diff --git a/app/src/main/res/raw/sound_cofre.flac b/app/src/main/res/raw/sound_cofre.flac new file mode 100644 index 0000000000000000000000000000000000000000..b7475f286f76c483a0483e7928fe44d986d32a5d Binary files /dev/null and b/app/src/main/res/raw/sound_cofre.flac differ diff --git a/app/src/main/res/raw/sound_cuerno.mp3 b/app/src/main/res/raw/sound_cuerno.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..70a32cf7e7ab5bfe5b263746dfa8d6e1a0094520 Binary files /dev/null and b/app/src/main/res/raw/sound_cuerno.mp3 differ diff --git a/app/src/main/res/raw/sound_dineros.wav b/app/src/main/res/raw/sound_dineros.wav new file mode 100644 index 0000000000000000000000000000000000000000..5dfd75e503c3f7392651e39eb79631a81216ec14 Binary files /dev/null and b/app/src/main/res/raw/sound_dineros.wav differ diff --git a/app/src/main/res/raw/sound_espada.mp3 b/app/src/main/res/raw/sound_espada.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..388ab6547faab8298360aff52243f39dd3e251bc Binary files /dev/null and b/app/src/main/res/raw/sound_espada.mp3 differ diff --git a/app/src/main/res/raw/sound_exploradores.mp3 b/app/src/main/res/raw/sound_exploradores.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c6678d86a9af9bb35e30768798b5157a9484f77b Binary files /dev/null and b/app/src/main/res/raw/sound_exploradores.mp3 differ diff --git a/app/src/main/res/raw/sound_golpe1.mp3 b/app/src/main/res/raw/sound_golpe1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..82101261c7910c8b062b4536344972c839b7c781 Binary files /dev/null and b/app/src/main/res/raw/sound_golpe1.mp3 differ diff --git a/app/src/main/res/raw/sound_healing.wav b/app/src/main/res/raw/sound_healing.wav new file mode 100644 index 0000000000000000000000000000000000000000..b6491ed5a86dfd9c01bdb5dc8551bc1d62176bd8 Binary files /dev/null and b/app/src/main/res/raw/sound_healing.wav differ diff --git a/app/src/main/res/raw/sound_laser.wav b/app/src/main/res/raw/sound_laser.wav new file mode 100644 index 0000000000000000000000000000000000000000..ab984567593fb8f21169aeb4b3b76a030dc3a55f Binary files /dev/null and b/app/src/main/res/raw/sound_laser.wav differ diff --git a/app/src/main/res/raw/sound_miss.mp3 b/app/src/main/res/raw/sound_miss.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..0946d2280d56c2abe142408b9d511ad957bff326 Binary files /dev/null and b/app/src/main/res/raw/sound_miss.mp3 differ diff --git a/app/src/main/res/raw/sound_piano_over.wav b/app/src/main/res/raw/sound_piano_over.wav new file mode 100644 index 0000000000000000000000000000000000000000..8d54349aa7fb79e0be51932a9e5fd1aac2ce1f7a Binary files /dev/null and b/app/src/main/res/raw/sound_piano_over.wav differ diff --git a/app/src/main/res/raw/sound_rocks.wav b/app/src/main/res/raw/sound_rocks.wav new file mode 100644 index 0000000000000000000000000000000000000000..27a4919b9b90abfb46d62c03a224fb3fc5176ffa Binary files /dev/null and b/app/src/main/res/raw/sound_rocks.wav differ