Skip to content
Snippets Groups Projects
Commit b0afab56 authored by diegval's avatar diegval
Browse files

Fix: Hechos los efectos trampa más modulares

parent 437bb79f
No related branches found
No related tags found
4 merge requests!65Feature:,!51Tienda to guapa,!46Feature:,!44Fix: Hechos los efectos trampa más modulares
package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
class EfectoEscalar() : Efecto(100) {
override fun ejecutar(): String {
if (GameState.jugador.atributos[Atributo.Energia]!!<2){
return "No tienes energía suficiente para intentar escapar escalando. Necesitas al menos 2 puntos"
}else{
GameState.jugador.actualizarAtributo(Atributo.Energia, -2)
if ((1..100).random() <= 40){
GameState.eventoActual.actualizarFinalizado(true)
return "Logras escalar la montaña de piedras y escapar. El esfuerzo no ha sido en vano"
}else{
return "Al escalar la montaña de piedras, sufres un resbalo y vuelves a caer, gastando inútilmente energía"
}
}
}
}
\ No newline at end of file
package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
class EfectoFuerzaBruta() : Efecto(100) {
override fun ejecutar(): String {
GameState.jugador.actualizarAtributo(Atributo.Vida, -1)
if ((1..100).random() <= 25){
GameState.eventoActual.actualizarFinalizado(true)
return "Con un esfuerzo descomunal, logras mover las piedras con tus manos y escapar, haciendote daño en el acto"
}else{
return "A pesar de tu esfuerzo, no logras escapar y sigues atrapado. Has sufrido daño"
}
}
}
\ No newline at end of file
...@@ -3,18 +3,27 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto ...@@ -3,18 +3,27 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
class EfectoExplorar() : Efecto(100) {
class EfectoResolverTrampaConAtributo(
probabilidadExito: Int,
private val atributo: Atributo,
private val coste: Int,
private val stringLogrado: String,
private val stringFallo: String) : Efecto(probabilidadExito) {
override fun ejecutar(): String { override fun ejecutar(): String {
if(GameState.jugador.atributos[Atributo.Investigacion]!!<1){ 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" return "No tienes suficientes puntos de investigación para explorar"
}else{ }else{
GameState.jugador.actualizarAtributo(Atributo.Investigacion, -1) GameState.jugador.actualizarAtributo(atributo, -coste)
if ((1..100).random() <= 50){ return if ((1..100).random() <= probabilidadExito){
GameState.eventoActual.actualizarFinalizado(true) GameState.eventoActual.actualizarFinalizado(true)
return "Has encontrado un viejo mapa que muestra un camino para rodearlo. Has logrado escapar" stringLogrado
}else{ }else{
return "Has explorado cuidadosamente, pero por ahora no has encontrado nada útil para sortear el derrumbe." stringFallo
} }
} }
} }
} }
\ No newline at end of file
...@@ -3,14 +3,14 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto ...@@ -3,14 +3,14 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.efecto
import com.example.ellegadodepintia.exploradoresDePintia.model.GameState import com.example.ellegadodepintia.exploradoresDePintia.model.GameState
class EfectoPico() : Efecto(100) { class EfectoUtilizarObjetoUtil(private val nombreObjeto: String) : Efecto(100) {
override fun ejecutar(): String { override fun ejecutar(): String {
val tienePico = GameState.jugador.inventario.removeIf { it.nombre == "Pico Vacceo" } val tieneObjeto = GameState.jugador.inventario.removeIf { it.nombre == nombreObjeto }
if (tienePico){ if (tieneObjeto){
GameState.eventoActual.actualizarFinalizado(true) GameState.eventoActual.actualizarFinalizado(true)
return "Has usado el pico de tu inventario. Has logrado escapar" return "Has usado el objeto $nombreObjeto de tu inventario. Has logrado escapar"
}else{ }else{
return "No tienes el pico en tu inventario" return "No tienes el $nombreObjeto en tu inventario"
} }
} }
} }
\ No newline at end of file
...@@ -3,31 +3,49 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory ...@@ -3,31 +3,49 @@ package com.example.ellegadodepintia.exploradoresDePintia.model.eventoFactory
import com.example.ellegadodepintia.R import com.example.ellegadodepintia.R
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion import com.example.ellegadodepintia.exploradoresDePintia.model.Opcion
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoEscalar import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoResolverTrampaConAtributo
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoExplorar import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoUtilizarObjetoUtil
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoFuerzaBruta
import com.example.ellegadodepintia.exploradoresDePintia.model.efecto.EfectoPico
class TrampaFactory : EventoFactory { class TrampaFactory : EventoFactory {
private val trampasMap = mapOf( private val trampasMap = mapOf(
"Un estruendoso derrumbe de piedras bloquea el camino, dejando un montón de rocas caídas que impiden tu avance." to Pair( "Un estruendoso derrumbe de piedras bloquea el camino, dejando un montón de rocas caídas que impiden tu avance." to Pair(
R.drawable.asi_exploradores_trampa_piedras, listOf( R.drawable.asi_exploradores_trampa_piedras, listOf(
Opcion( Opcion(
descripcion = "Fuerza Bruta", descripcion = "Mover",
atributoRequerida = Atributo.Vida, atributoRequerida = Atributo.Vida,
EfectoFuerzaBruta() EfectoResolverTrampaConAtributo(
25,
Atributo.Vida,
1,
"Con un esfuerzo descomunal, logras mover las piedras con tus manos y escapar, haciendote daño en el acto",
"A pesar de tu esfuerzo, no logras escapar y sigues atrapado. Has sufrido daño"
)
), Opcion( ), Opcion(
descripcion = "Picar", descripcion = "Picar",
atributoRequerida = Atributo.Nula, atributoRequerida = Atributo.Nula,
EfectoPico() EfectoUtilizarObjetoUtil(
nombreObjeto = "Pico Vacceo"
)
), Opcion( ), Opcion(
descripcion = "Explorar", descripcion = "Explorar",
atributoRequerida = Atributo.Investigacion, atributoRequerida = Atributo.Investigacion,
EfectoExplorar() EfectoResolverTrampaConAtributo(
50,
Atributo.Investigacion,
1,
"Has encontrado un viejo mapa que muestra un camino para rodearlo. Has logrado escapar.",
"Has explorado cuidadosamente, pero por ahora no has encontrado nada útil para sortear el derrumbe."
)
), Opcion( ), Opcion(
descripcion = "Escalar", descripcion = "Escalar",
atributoRequerida = Atributo.Energia, atributoRequerida = Atributo.Energia,
EfectoEscalar() EfectoResolverTrampaConAtributo(
40,
Atributo.Energia,
2,
"Logras escalar la montaña de piedras y escapar. El esfuerzo no ha sido en vano",
"Al escalar la montaña de piedras, sufres un resbalo y vuelves a caer, gastando inútilmente energía"
)
) )
) )
), ),
......
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