Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
1 result

Target

Select target project
  • diegval/el-legado-de-pintia
1 result
Select Git revision
  • main
1 result
Show changes
Showing
with 411 additions and 78 deletions
......@@ -36,7 +36,7 @@ class EfectoReparar(probabilidadExito: Int, private val stringReparado: String,
}
return if (probabilidad <= probabilidadExito) {
GameState.eventoActual.actualizarResistencia(1)
GameState.eventoActual.actualizarResistencia(GameState.jugador.atributos[Atributo.Investigacion]!!)
if(GameState.eventoActual.resistenciaActual == GameState.eventoActual.resistenciaMax){
val intent = Intent(context, MinijuegoReparacion::class.java)
......
package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate
class EfectoRevivirEnemigo(
private val mensajeRevivir: String, private val porcentaje: Double,
probabilidadExito: Int
) :
Efecto(probabilidadExito) {
override fun ejecutar(): String {
val probabilidadGenerada = (1..100).random()
if (probabilidadGenerada <= probabilidadExito) {
GestorCombate.cargarAnimacionsRegeneracionEnemigo()
GameState.eventoActual.setResistencia(
(GameState.eventoActual.resistenciaMax * porcentaje).toInt()
)
return mensajeRevivir
} else {
return "Fallo"
}
}
}
\ No newline at end of file
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.minijuego1.InicioMinijuego1
class EfectoUtilizarObjetoUtil(private val nombreObjeto: String) : Efecto(100) {
override fun ejecutar(): String {
val tieneObjeto = GameState.jugador.inventario.removeIf { it.nombre == nombreObjeto }
if (tieneObjeto){
if (nombreObjeto == "Pala Vaccea"){
val intent = Intent(context, InicioMinijuego1::class.java)
context!!.startActivity(intent)
GameState.eventoActual.actualizarFinalizado(true)
return "¡Has obtenido un objeto de coste equivalente a los puntos que has obtenido! Echa un vistazo a tu inventario"
}else{
GameState.eventoActual.actualizarFinalizado(true)
return "Has usado el objeto $nombreObjeto de tu inventario. Has logrado escapar"
}
}else{
return "No tienes el $nombreObjeto en tu inventario"
}
......
......@@ -5,41 +5,60 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
import com.example.ellegadodepintia.exploradoresDePintia.model.OpcionCombate
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.Efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoAtaqueEnemigo
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoAtaqueProtagonista
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoCriticoAutomaticoEnemigo
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHabilidadesProtagonista
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoHuirProtagonista
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoInvestigarEnemigo
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRegeneracionEnemigo
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoRevivirEnemigo
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto
import com.example.ellegadodepintia.repositorios.RepositorioObjetos
data class CombateInfo(
val imagenIdle: Int,
val imagenAtaque: Int,
val habilidades: List<Efecto>,
val vidaMax: Int,
val ataque: Int,
val recompensa: Objeto
)
class CombateFactory : EventoFactory {
private val combatesMap = mapOf(
"El Metal Volador es una criatura formada por fragmentos de metal antiguo. Protege los secretos del yacimiento de Pintia." to Triple(
"El Metal Volador es una criatura formada por fragmentos de metal antiguo. Protege los secretos del yacimiento de Pintia." to CombateInfo(
R.drawable.monster_metal_idle_animation,
R.drawable.monster_metal_attack_animation,
listOf(
OpcionCombate(
descripcion = "Atacar",
atributoRequerida = Atributo.Ataque,
efecto = EfectoAtaqueProtagonista(70)
),
Opcion(
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
EfectoInvestigarEnemigo(100)
EfectoAtaqueEnemigo(80),
EfectoRegeneracionEnemigo(
"El metal reconfigura sus fragmentos recuperando parte de su vida",
(1..2).random()
)
),
Opcion(
descripcion = "Habilidades",
atributoRequerida = Atributo.Nula,
efecto = EfectoHabilidadesProtagonista(GameState.jugador.atributos[Atributo.Vida]!!)
vidaMax = (5..10).random(),
ataque = (1..2).random(),
RepositorioObjetos.obtenerObjetoPorNombre("Moneda de plata Vaccea")!!
),
OpcionCombate(
descripcion = "Huir",
atributoRequerida = Atributo.Vida,
efecto = EfectoHuirProtagonista(GameState.jugador.atributos[Atributo.Vida]!!),
"Al explorar una tumba de la necrópolis de las ruedas, un esqueleto armado aparece." to CombateInfo(
imagenIdle = R.drawable.monster_skeleton_idle,
imagenAtaque = R.drawable.monster_skeleton_attack,
habilidades = listOf(EfectoAtaqueEnemigo(75), EfectoRevivirEnemigo("El esqueleto se reconstruye reviviendo",0.35, 40)),
vidaMax = (5..8).random(),
ataque = (1..3).random(),
RepositorioObjetos.obtenerObjetoPorNombre("Poción de Veneno II")!!
),
"Te encuentras con el Lobo Vacceo, sus ojos amarillos te observan fijamente, llenos de una sabiduría ancestral y una amenaza latente" to CombateInfo(
imagenIdle = R.drawable.monster_wolf_idle_animation,
imagenAtaque = R.drawable.monster_wolf_attack_animation,
habilidades = listOf(EfectoAtaqueEnemigo(80), EfectoCriticoAutomaticoEnemigo("El lobo te golpea gravemente con sus enormes zarpas")),
vidaMax = (7..11).random(),
ataque = (2..3).random(),
RepositorioObjetos.obtenerObjetoPorNombre("Piel del Gran Lobo")!!
)
),
)
override fun generarDescripcion(): String {
......@@ -48,30 +67,50 @@ class CombateFactory : EventoFactory {
override fun generarEvento(): EventoCombate {
val descripcion = generarDescripcion()
val combateInfo = combatesMap[descripcion]
?: throw IllegalArgumentException("No se encontró información de combate")
return EventoCombate(
descripcion = descripcion,
dificultad = 0,
opciones = generarOpciones(descripcion),
imagenAtaque = generarImagenAtaque(descripcion),
imagen = generarImagen(descripcion),
resistenciaMax = (5..10).random(),
ataque = (1..2).random(),
opciones = generarOpciones(""),
imagenAtaque = combateInfo.imagenAtaque,
imagen = combateInfo.imagenIdle,
resistenciaMax = combateInfo.vidaMax,
ataque = combateInfo.ataque,
finalizado = false,
acciones = mutableListOf(EfectoAtaqueEnemigo(70))
acciones = combateInfo.habilidades.toMutableList(),
recompensa = combateInfo.recompensa
)
}
override fun generarOpciones(descripcion: String): MutableList<Opcion> {
return combatesMap[descripcion]?.third?.take(4)?.toMutableList()
?: mutableListOf()
return mutableListOf(
OpcionCombate(
descripcion = "Atacar",
atributoRequerida = Atributo.Ataque,
efecto = EfectoAtaqueProtagonista(70)
),
Opcion(
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
efecto = EfectoInvestigarEnemigo(100)
),
Opcion(
descripcion = "Habilidades",
atributoRequerida = Atributo.Nula,
efecto = EfectoHabilidadesProtagonista(GameState.jugador.atributos[Atributo.Vida]!!)
),
OpcionCombate(
descripcion = "Huir",
atributoRequerida = Atributo.Vida,
efecto = EfectoHuirProtagonista(GameState.jugador.atributos[Atributo.Vida]!!),
)
)
}
override fun generarImagen(descripcion: String): Int {
return combatesMap[descripcion]?.first!!
}
private fun generarImagenAtaque(descripcion: String): Int {
return combatesMap[descripcion]?.second!!
return combatesMap[descripcion]!!.imagenIdle
}
}
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.EfectoIgnorar
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoNubeVaccea
class DescansoFactory : EventoFactory {
val descripcion = "Llegaste a un campamento vacceo, con un gran fuego en el centro y chozas hechas de madera y barro. Aquí puedes descansar, recuperar energía y estar listo para nuevas aventuras."
override fun generarDescripcion(): String {
return descripcion
}
override fun generarOpciones(descripcion: String): MutableList<Opcion> {
return mutableListOf(
Opcion(
descripcion = "Descansar",
atributoRequerida = Atributo.Energia,
EfectoNubeVaccea()
), Opcion(
descripcion = "Continuar",
atributoRequerida = Atributo.Nula,
EfectoIgnorar(100)
))
}
override fun generarImagen(descripcion: String): Int {
return R.drawable.asi_exploradores_campamento
}
override fun generarEvento(): EventoDescanso {
return EventoDescanso(
descripcion = generarDescripcion(),
dificultad = 0,
opciones = generarOpciones(descripcion),
imagen = generarImagen(descripcion),
resistenciaMax = (2..8).random(),
finalizado = false
)
}
}
\ 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.EfectoIgnorar
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoUtilizarObjetoUtil
class DesenterrarFactory : EventoFactory {
private val desenterrarMap = mapOf(
"¡Has encontrado un antiguo yacimiento arqueológico! Aquí se esconden reliquias misteriosas esperando ser desenterradas. ¿Qué secretos del pasado descubrirás?" to Pair(
R.drawable.asi_exploradores_desenterrar, listOf(
Opcion(
descripcion = "Desenterrar",
atributoRequerida = Atributo.Nula,
EfectoUtilizarObjetoUtil(
"Pala Vaccea"
)
), Opcion(
descripcion = "Ignorar",
atributoRequerida = Atributo.Nula,
EfectoIgnorar(100)
)
)
),
)
override fun generarDescripcion(): String {
return desenterrarMap.keys.random()
}
override fun generarOpciones(descripcion: String): MutableList<Opcion> {
return desenterrarMap[descripcion]?.second?.shuffled()?.take(4)?.toMutableList()
?: mutableListOf()
}
override fun generarImagen(descripcion: String): Int {
return desenterrarMap[descripcion]?.first!!
}
override fun generarEvento(): EventoDesenterrar {
val descripcion = generarDescripcion()
return EventoDesenterrar(
descripcion = descripcion,
dificultad = 0,
opciones = generarOpciones(descripcion),
imagen = generarImagen(descripcion),
resistenciaMax = (2..8).random(),
finalizado = false
)
}
}
\ No newline at end of file
......@@ -25,6 +25,14 @@ abstract class Evento(
fun actualizarResistencia(valor : Int){
resistenciaActual += valor
if(resistenciaActual >= resistenciaMax){
resistenciaActual = resistenciaMax
}
notifyObservers()
}
fun setResistencia(valor : Int){
resistenciaActual = valor
notifyObservers()
}
......
......@@ -2,8 +2,11 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.Efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.Objeto
import java.util.UUID
class EventoCombate(
override val descripcion: String,
override val dificultad: Int,
override val opciones: MutableList<Opcion>,
......@@ -12,4 +15,19 @@ class EventoCombate(
var ataque: Int,
val imagenAtaque : Int,
val acciones: MutableList<Efecto>,
) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado)
\ No newline at end of file
val recompensa : Objeto
) : Evento(descripcion, dificultad, opciones, imagen, resistenciaMax, resistenciaMax, finalizado){
val id: String = UUID.randomUUID().toString()
var probCritico = 8
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other == null || javaClass != other.javaClass) return false
other as EventoCombate
return id == other.id
}
override fun hashCode(): Int {
return 31 * id.hashCode()
}
}
\ No newline at end of file
package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
import java.util.UUID
class EventoDescanso(
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) {
val id: String = UUID.randomUUID().toString()
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other == null || javaClass != other.javaClass) return false
other as EventoDescanso
return id == other.id
}
override fun hashCode(): Int {
return 31 * id.hashCode()
}
}
\ No newline at end of file
package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
class EventoDesenterrar(
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
......@@ -4,34 +4,16 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.TipoEvento
object EventoFactorySelector {
fun obtenerFactory(): EventoFactory {
val tipo = seleccionarTipoEventoConProbabilidades()
fun obtenerFactory(tipo: TipoEvento): EventoFactory {
return when (tipo) {
TipoEvento.Reliquia -> ReliquiaFactory()
TipoEvento.Combate -> CombateFactory()
TipoEvento.Tienda -> TiendaFactory()
TipoEvento.Trampa -> TrampaFactory()
TipoEvento.Riesgo -> RiesgoFactory()
TipoEvento.Descanso -> DescansoFactory()
TipoEvento.Ladron -> LadronFactory()
TipoEvento.Desenterrar -> DesenterrarFactory()
}
}
private fun seleccionarTipoEventoConProbabilidades(): TipoEvento {
val probabilidades = mapOf(
TipoEvento.Reliquia to 0.3,
TipoEvento.Tienda to 0.1,
TipoEvento.Trampa to 0.1,
TipoEvento.Combate to 0.2,
TipoEvento.Riesgo to 0.3,
)
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
}
}
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
......@@ -17,7 +17,7 @@ class ReliquiaFactory : EventoFactory {
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
EfectoInvestigar(
70,
90,
"Al observar los grabados y la técnica de cocción, descubres que el vaso es una pieza de los vacceos, una cultura prerromana que habitó el valle del Duero.",
1
)
......@@ -25,7 +25,7 @@ class ReliquiaFactory : EventoFactory {
descripcion = "Reparar",
atributoRequerida = Atributo.Investigacion,
EfectoReparar(
65,
80,
"Tras aplicar con cuidado una mezcla de resina especial, consigues unir las piezas del vasito, restaurando su forma original. Has preservado una pieza valiosa de la historia vaccea.",
"Al intentar reparar el vasito, accidentalmente lo rompes aún más. Ahora, no solo está dañado, sino que se ha perdido una pieza esencial que no puede ser reconstruida.",
1,
......@@ -50,16 +50,16 @@ class ReliquiaFactory : EventoFactory {
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
EfectoInvestigar(
60,
80,
"Tras examinar minuciosamente la jabonera, descubres que el símbolo representado es un lobo, figura clave en la mitología vaccea, simbolizando miedo y veneración.",
1
2
)
), Opcion(
descripcion = "Reparar",
atributoRequerida = Atributo.Investigacion,
EfectoReparar(
55,
80,
"Con un toque experto, las partes rotas encajan perfectamente. Has dado nueva vida a una jabonera vaccea, permitiéndote estudiar sus detalles con mayor precisión.",
"El intento de reparación es un desastre: la jabonera se rompe aún más, y el símbolo se desintegra. Ahora, solo quedan fragmentos de lo que antes fue una obra de arte.",
1,
......@@ -83,16 +83,16 @@ class ReliquiaFactory : EventoFactory {
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
EfectoInvestigar(
60,
80,
"Tras examinar minuciosamente la copa, encuentras patrones geométricos que podrían relacionarse con antiguos ritos funerarios o de sacrificio. ",
1
2
)
), Opcion(
descripcion = "Reparar",
atributoRequerida = Atributo.Investigacion,
EfectoReparar(
55,
75,
"Reparas la copa con éxito y descubres un patrón o símbolo oculto bajo las grietas, aportando nueva información sobre su origen o uso.",
"El trabajo improvisado falla, y la copa queda aún más dañada o inutilizable, reduciendo su valor cultural o práctico.",
1,
......@@ -110,7 +110,7 @@ class ReliquiaFactory : EventoFactory {
)
)
),
"Encuentra una tapadera de cerámica con una figura zoomorfa tallada en su superficie. Mmuestra el detalle de un animal: un lobo" to Pair(
"Encuentras una tapadera de cerámica con una figura zoomorfa tallada en su superficie. Muestra el detalle de un animal: un lobo" to Pair(
R.drawable.asi_minijuego_3_tapadera_zoomorfo, listOf(
Opcion(
descripcion = "Investigar",
......@@ -118,14 +118,14 @@ class ReliquiaFactory : EventoFactory {
EfectoInvestigar(
60,
"Descubres que la tapadera representa a un animal sagrado en la cultura vaccea, podría estar relacionado con rituales de protección o iniciación. ",
1
3
)
), Opcion(
descripcion = "Reparar",
atributoRequerida = Atributo.Investigacion,
EfectoReparar(
55,
70,
"Logras repararla cuidadosamente, las marcas en la cerámica se conecten con un ritual funerario o de veneración, lo que incrementa el valor histórico de la pieza.",
"Intentas repararla, pero sin las herramientas adecuadas o la técnica correcta, la tapadera queda más dañada.",
1,
......@@ -143,6 +143,38 @@ class ReliquiaFactory : EventoFactory {
)
)
),
"Encuentras lo que parece ser un sonajero redondo" to Pair(
R.drawable.asi_minijuego_3_sonajero_redondo, listOf(
Opcion(
descripcion = "Investigar",
atributoRequerida = Atributo.Investigacion,
EfectoInvestigar(
95,
"Descubres que es un modelo perteneciente a los muebles de la tumba 153 de la necrópolis de Las Ruedas",
1
)
), Opcion(
descripcion = "Reparar",
atributoRequerida = Atributo.Investigacion,
EfectoReparar(
90,
"Restauras el sonajero con gran precisión. Su sonido ahora es claro, y encuentras inscripciones que parecen ser representaciones simbólicas de protección o buena fortuna.",
"Intentas repararlo, pero el material es más frágil de lo esperado, y el sonajero se rompe aún más, perdiendo su valor arqueológico.",
1,
RepositorioObjetos.obtenerObjetoPorNombre("Sonajero Redondo")!!
)
), Opcion(
descripcion = "Destruir",
atributoRequerida = Atributo.Ataque,
EfectoDestruir(80)
), Opcion(
descripcion = "Ignorar",
atributoRequerida = Atributo.Nula,
EfectoIgnorar(100)
)
)
),
)
override fun generarDescripcion(): String {
......
......@@ -76,7 +76,7 @@ class RiesgoFactory : EventoFactory {
val evento = EventoRiesgo(
id = id,
descripcion = descripcionComun,
descripcion = generarDescripcion(),
dificultad = 0,
opciones = eventoData.opciones.toMutableList(),
imagen = eventoData.imagen,
......
......@@ -7,7 +7,7 @@ import com.example.ellegadodepintia.exploradoresDePintia.model.GestorCombate
class EfectoGolpeMultiple(private var cantidad: Int): EfectoHabilidad(){
override fun ejecutar() {
GestorCombate.cargarAnimacionesAtaqueProtagonista()
val ataqueReal = GestorCombate.calcularAtaque(cantidad*GameState.jugador.atributos[Atributo.Ataque]!!)
val ataqueReal = GestorCombate.calcularAtaque(cantidad*GameState.jugador.atributos[Atributo.Ataque]!!,GameState.jugador.atributos[Atributo.Critico]!!)
GameState.eventoActual.actualizarResistencia(-ataqueReal)
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.objeto
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoVender
class ObjetoDeValor(
open class ObjetoDeValor(
nombre: String,
descripcion: String,
imagen: Int,
......
package com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.Habilidad
class EfectoEquipableHabilidad (private val habilidad: Habilidad) : EfectoObjetoEquipable(){
override fun ejecutar() {
GameState.jugador.habilidades.add(habilidad)
}
override fun desequipar() {
GameState.jugador.habilidades.remove(habilidad)
}
}
\ No newline at end of file
package com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
class EfectoObjetoAtacar (private val ptosAtaque : Int): EfectoObjeto(){
override fun ejecutar() {
GameState.eventoActual.actualizarResistencia(-ptosAtaque)
}
}
\ No newline at end of file
package com.example.ellegadodepintia.minijuego1
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
......@@ -25,8 +26,10 @@ class FinMinijuego1 : AppCompatActivity() {
// Acción del botón para reiniciar o volver
botonReiniciar.setOnClickListener {
// Regresar a la actividad anterior
finish() // Termina esta actividad y vuelve a la anterior
val resultadoIntent = Intent()
resultadoIntent.putExtra("PUNTOS_HUESOS", puntuacion.toString())
setResult(RESULT_OK, resultadoIntent)
finish()
}
}
}
\ No newline at end of file