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

Feature: Añadido nuevo objeto puñal

parent 4aaae853
Branches
No related tags found
1 merge request!65Feature:
Showing
with 99 additions and 61 deletions
......@@ -5,5 +5,6 @@ enum class Atributo {
Ataque,
Investigacion,
Energia,
Nula
Nula,
Critico
}
\ No newline at end of file
......@@ -83,10 +83,10 @@ object GestorCombate {
}
}
fun calcularAtaque(ataqueBase: Int): Int {
fun calcularAtaque(ataqueBase: Int, probabilidadCritico: Int): Int {
val ataqueFinal: Int
val resultadoTirada = (0..100).random()
ataqueFinal = if (resultadoTirada <= 8) {
ataqueFinal = if (resultadoTirada <= probabilidadCritico) {
ataqueBase * 2
} else {
ataqueBase
......
......@@ -36,6 +36,9 @@ class Jugador {
atributos[Atributo.Ataque] = 1
atributos[Atributo.Investigacion] = 1
atributos[Atributo.Energia] = 10
atributos[Atributo.Critico] = 8
inventario.add(RepositorioObjetos.obtenerObjetoPorNombre("Puñal Vacceo")!!)
habilidades.add(
Habilidad(
......@@ -54,15 +57,6 @@ class Jugador {
3
)
)
inventario.add(
ObjetoUtilidad(
nombre = "Pala Vaccea",
descripcion = "Una antigua pala con marcas de uso, forjada con madera resistente y un metal desgastado por el tiempo. Parece estar llena de historia.",
imagen = R.drawable.asi_objeto_pala
)
)
/*habilidades.add(
Habilidad(
nombre = "Revitalización Floral",
......
......@@ -14,7 +14,7 @@ class EfectoAtaqueEnemigo(probabilidadExito: Int) : Efecto(probabilidadExito) {
GestorCombate.cargarAnimacionesAtaqueEnemigo()
if (probabilidadEnemigo <= probabilidadExito) {
val ataqueReal = GestorCombate.calcularAtaque(evento.ataque)
val ataqueReal = GestorCombate.calcularAtaque(evento.ataque, evento.probCritico)
GameState.jugador.actualizarAtributo(Atributo.Vida, -ataqueReal)
......
......@@ -11,7 +11,7 @@ class EfectoAtaqueProtagonista(probabilidadExito: Int) : Efecto(probabilidadExit
if (probabilidadPersonaje <= probabilidadExito) {
GestorCombate.cargarAnimacionesAtaqueProtagonista()
val ataqueReal = GestorCombate.calcularAtaque(GameState.jugador.atributos[Atributo.Ataque]!!)
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"
} else {
......
......@@ -18,6 +18,7 @@ class EventoCombate(
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
......
......@@ -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
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
......@@ -2,44 +2,54 @@
import com.example.ellegadodepintia.R
import com.example.ellegadodepintia.exploradoresDePintia.model.Atributo
import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.Habilidad
import com.example.ellegadodepintia.exploradoresDePintia.model.habilidad.efectoHabilidad.EfectoBuffo
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.*
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableAumento
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoEquipableHabilidad
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoObjetoAtacar
import com.example.ellegadodepintia.exploradoresDePintia.model.objeto.efectoObjeto.EfectoObjetoCura
object RepositorioObjetos {
private val objetos: Map<String, Objeto> by lazy {
listOf(
ObjetoDeValor(
nombre = "Vasito de barro cocido",
descripcion = "Objeto de gran valor. Se convierte en 10 monedas si consigues completar la partida.",
coste = 10,
imagen = R.drawable.asi_exploradores_vasito
),
ObjetoDeValor(
nombre = "Jabonera de cerámica",
descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.",
coste = 15,
imagen = R.drawable.asi_exploradores_jabonera
),
ObjetoDeValor(
nombre = "Copa negra con inscripciones",
descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.",
coste = 15,
imagen = R.drawable.asi_minijuego_3_copa_negra_brunida
),
ObjetoDeValor(
nombre = "Tapadera de cerámica zoomorfa",
descripcion = "Objeto de gran valor. Se convierte en 30 monedas si consigues completar la partida.",
coste = 30,
imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo
),
//******************************************
// E Q U I P A B L E S
//******************************************
ObjetoEquipable(
nombre = "Espada de Hierro",
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
),
ObjetoEquipable(
nombre = "Casco Ceremonial",
descripcion = "Casco ceremonial de oro de los vacceos decorado con intrincados patrones que simboliza el estatus social. Aumenta tu vida máxima en 3 puntos",
efecto = EfectoEquipableAumento(3, Atributo.Vida),
imagen = R.drawable.asi_objeto_casco
),
ObjetoEquipable(
nombre = "Escudo Caetrae",
descripcion = "La caetrae es un escudo redondo vacceo, forjado para la defensa en combate, que aumenta tu vida máxima en 5 puntos.",
efecto = EfectoEquipableAumento(5, Atributo.Vida),
imagen = R.drawable.asi_objeto_escudo
),
ObjetoEquipable(
nombre = "Puñal Vacceo",
descripcion = "Espada corta, típica de diseño celtibérico. Mientras está equipada añade la habilidad \"Letalidad\" para su uso en combate.",
efecto = EfectoEquipableHabilidad(
Habilidad(
"Letalidad",
"Aumenta la probabilidad de realizar un golpe crítico a un 30% por dos turnos",
EfectoBuffo(Atributo.Critico, 22, 2),
energia = 2
)
),
imagen = R.drawable.asi_objeto_daga
),
//**********************************************
// C O N S U M I B L E S
//**********************************************
ObjetoConsumible(
nombre = "Elixir Menor de la Necrópolis",
descripcion = "Un frasco pequeño con un líquido granate y brillante, que destella con un resplandor profundo, capaz de restaurar 3 puntos de vida al instante.",
......@@ -64,18 +74,48 @@ object RepositorioObjetos {
efecto = EfectoObjetoAtacar(2),
imagen = R.drawable.asi_objeto_veneno2
),
ObjetoEquipable(
nombre = "Escudo Caetrae",
descripcion = "La caetrae es un escudo redondo vacceo, forjado para la defensa en combate, que aumenta tu vida máxima en 10 puntos.",
efecto = EfectoEquipableAumento(10, Atributo.Vida),
imagen = R.drawable.asi_objeto_escudo
//**********************************
// D E V A L O R
//**********************************
ObjetoDeValor(
nombre = "Vasito de barro cocido",
descripcion = "Objeto de gran valor. Se convierte en 10 monedas si consigues completar la partida.",
coste = 10,
imagen = R.drawable.asi_exploradores_vasito
),
ObjetoEquipable(
nombre = "Casco Ceremonial",
descripcion = "Casco ceremonial de oro de los vacceos decorado con intrincados patrones que simboliza el estatus social. Aumenta tu vida máxima en 8 puntos",
efecto = EfectoEquipableAumento(8, Atributo.Vida),
imagen = R.drawable.asi_objeto_casco
ObjetoDeValor(
nombre = "Jabonera de cerámica",
descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.",
coste = 15,
imagen = R.drawable.asi_exploradores_jabonera
),
ObjetoDeValor(
nombre = "Copa negra con inscripciones",
descripcion = "Objeto de gran valor. Se convierte en 15 monedas si consigues completar la partida.",
coste = 15,
imagen = R.drawable.asi_minijuego_3_copa_negra_brunida
),
ObjetoDeValor(
nombre = "Tapadera de cerámica zoomorfa",
descripcion = "Objeto de gran valor. Se convierte en 30 monedas si consigues completar la partida.",
coste = 30,
imagen = R.drawable.asi_minijuego_3_tapadera_zoomorfo
),
ObjetoDeValor(
nombre= "Moneda de plata Vaccea",
descripcion = "Pequeño denario con símbolos celtíberos, utilizadas para el comercio. Su circulación refleja una economía organizada en torno a la élite guerrera",
imagen = R.drawable.asi_objeto_moneda,
coste = 15
),
ObjetoDeValor(
nombre= "Sonajero Redondo",
descripcion = "Pequeño artefacto de cerámica utilizado en rituales funerarios o ceremonias. Su diseño y sonido característico eran símbolos de protección y conexión espiritual en la cultura celtíbera.",
imagen = R.drawable.asi_minijuego_3_sonajero_redondo,
coste = 15
),
//**********************************************
// D E U T I L I D A D
//**********************************************
ObjetoUtilidad(
nombre = "Pico Vacceo",
descripcion = "Un pico viejo y oscuro con dibujos extraños que parecen brillar cerca de las piedras, como si estuviera esperando que lo uses para algo importante.",
......@@ -90,18 +130,6 @@ object RepositorioObjetos {
nombre = "Pala Vaccea",
descripcion = "Una antigua pala con marcas de uso, forjada con madera resistente y un metal desgastado por el tiempo. Parece estar llena de historia.",
imagen = R.drawable.asi_objeto_pala
),
ObjetoDeValor(
nombre= "Moneda de plata Vaccea",
descripcion = "Pequeño denario con símbolos celtíberos, utilizadas para el comercio. Su circulación refleja una economía organizada en torno a la élite guerrera",
imagen = R.drawable.asi_objeto_moneda,
coste = 15
),
ObjetoDeValor(
nombre= "Sonajero Redondo",
descripcion = "Pequeño artefacto de cerámica utilizado en rituales funerarios o ceremonias. Su diseño y sonido característico eran símbolos de protección y conexión espiritual en la cultura celtíbera.",
imagen = R.drawable.asi_minijuego_3_sonajero_redondo,
coste = 15
)
).associateBy { it.nombre }
}
......
app/src/main/res/drawable-nodpi/monster_wolf_idle_00.png

886 B

app/src/main/res/drawable-nodpi/monster_wolf_idle_01.png

884 B

app/src/main/res/drawable-nodpi/monster_wolf_idle_02.png

875 B

app/src/main/res/drawable-nodpi/monster_wolf_idle_03.png

896 B

app/src/main/res/drawable-nodpi/monster_wolf_idle_04.png

896 B

app/src/main/res/drawable-nodpi/monster_wolf_idle_05.png

886 B

app/src/main/res/drawable/asi_objeto_daga.png

262 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment