Skip to content

Commit

Permalink
Co-authored-by: Nahuel Marek <[email protected]>
Browse files Browse the repository at this point in the history
Co-authored-by: DamianMz <[email protected]>
  • Loading branch information
NicolasSchkurko committed Oct 25, 2024
1 parent 6c0a0d2 commit f40835e
Show file tree
Hide file tree
Showing 11 changed files with 75 additions and 45 deletions.
15 changes: 7 additions & 8 deletions administradorDeEnemigos.wlk
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import game.*
import zombie.*
import slime.*

object administradorDeEnemigos {
var nombreEnemigo = 2000 /*asigno el nombre a los enemigos que voy creando segun numeros, asi puedo crear nombres nuevos
var nombreEnemigo = 2000 /*asigno el nombre a los enemigos que voy creando segun tipos, asi puedo crear nombres nuevos
automaticamente*/

const enemigos = #{}/*contiene cada enemigo que fue creando*/
Expand All @@ -12,27 +12,26 @@ object administradorDeEnemigos {
para que reste 1 cuando maten a un enemigo*/
nombreEnemigo+=1
}
method generarEnemigo(numero){/*segun el numero ingresado, se generara un tipo de enemigo distinto*/
if (numero == 1) {/*generara un zombie normal*/
method generarEnemigo(tipo){/*segun el tipo ingresado, se generara un tipo de enemigo distinto*/
/*generara un slime normal*/

const posicionTemporal = new MutablePosition(x=12, y=0.randomUpTo(5).truncate(0))
var nombreParaEnemigo = self.nombre() /* esto esta hecho porque sino wollok se enoja, para poder crear un enemigo*/

if (game.getObjectsIn(posicionTemporal).isEmpty()){ // el if es para que no genere enemigos sobre otros
nombreParaEnemigo = new SlimeBasico(position = posicionTemporal )
nombreParaEnemigo = new Slime(position = posicionTemporal, tipo=tipo)
enemigos.add(nombreParaEnemigo)/*se añade a la lista de enemigos activos*/
self.sumarEnemigo()
return game.addVisual(nombreParaEnemigo)/*muestra al enemigo en el juego*/
} else return
}
return 0

}
method estanMuertos(){
enemigos.forEach({enemigo => enemigo.estaMuerto()})
}

method moverEnemigos() {
enemigos.forEach({zombie => zombie.movete()})/*aplica la funcion movete a cada enemigo de la coleccion*/
enemigos.forEach({slime => slime.movete()})/*aplica la funcion movete a cada enemigo de la coleccion*/
}
method eliminarEnemigo(enemigo) {
enemigos.remove(enemigo)
Expand Down
16 changes: 12 additions & 4 deletions administradorDeOleadas.wlk
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import slime.*
import wollok.game.*
import administradorDeEnemigos.*

//Ver como hacer q llame a cada oleada
object oleada {
const tipoEnemigos = #{}
const tipoEnemigos = []
var cantidadEnemigos = 10
var numeroOleada = 1
var enemigosRestantes = 0

method iniciarOleada(){

//delay
//ver como hacer que genere constantemente sin cortar
game.onTick(
Expand All @@ -29,18 +29,26 @@ method iniciarOleada(){
method siguienteOleada(){
cantidadEnemigos +=10 //definir escalado de oleadas
numeroOleada +=1
tipoEnemigos.add(adminTipoOleada.agregarTipo(numeroOleada+2)) //Aca hay que pensar la relacion entre oleada y slimes utiles
enemigosRestantes = cantidadEnemigos
if(numeroOleada>2){
tipoEnemigos.add(adminTipoOleada.agregarTipo(3)) //Aca hay que pensar la relacion entre oleada y slimes utiles
}
game.schedule(4000, {self.iniciarOleada()})
/* if(numeroOleada==10){ oleada final
tipoEnemigos.clear()
tipoEnemigos.add()
}*/
}



}

object adminTipoOleada { //Añade los tipos de slime a posibles slimes de oleada
const tipo = [] //tipos de slimes
const tipo = [slimeBasico,slimeBasico,slimeBasico,slimeBasico]//[SlimeBasico, SlimeFuerte, SlimeDefensivo, SlimeBlessed]tipos de slimes

method agregarTipo(numero){

return tipo.get(1.randomUpTo(numero))
}
}
Binary file modified assets/p.allahu.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified assets/s.slimeBase.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/s.slimeBlessed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/s.slimeGuerrero.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/s.slimeNinja.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 7 additions & 4 deletions iniciarJuego.wlk
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import administradorDeOleadas.*
import adminProyectiles.*
import administradorDeMagos.*
import wollok.game.*
import cursor.*
import zombie.*
import slime.*
import casa.*
import menu.*
import administradorDeEnemigos.*
Expand All @@ -22,14 +23,16 @@ const musica = game.sound(sonido) // el reproductor es constante, lo unico que c
}

method crearTicks() {
game.onTick(
/* game.onTick(
3000,
"generar nuevo Enemigo",
{
administradorDeEnemigos.sumarEnemigo()
return administradorDeEnemigos.generarEnemigo(1)
return administradorDeEnemigos.generarEnemigo(slimeBasico)
}
)
) */
game.schedule(7000, administradorDeOleadas.iniciarOleada)

game.onTick(
1500,
"mover enemigo",
Expand Down
2 changes: 1 addition & 1 deletion magos.wlk
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import administradorDeMagos.*
import puntaje.*
import proyectil.*
import adminProyectiles.*
import zombie.*
import slime.*

class Mago {
const position
Expand Down
31 changes: 15 additions & 16 deletions pruebas.wtest
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import puntaje.*
import zombie.*
import slime.*
import magos.*
import game.*
describe "Test de magos" {
Expand Down Expand Up @@ -92,22 +92,21 @@ describe "Test de magos" {
}

describe "group of tests for Slimes" {
test "Slime basico tiene Vida"{
const slime = new SlimeBasico(position = game.at(6,2))
assert.that(slime.vida()>0)
}
test "Slime Normal recibe daño"{
const slime = new SlimeBasico(position = game.at(6,2))
const slimevida = slime.vida()
slime.recibeDanio(100)
assert.that(slimevida>slime.vida())
}
////// const slime = new SlimeBasico(position = game.at(6,2))
////// assert.that(slime.vida()>0)
//////}
//////test "Slime Normal recibe daño"{
////// const slime = new SlimeBasico(position = game.at(6,2))
////// const slimevida = slime.vida()
////// slime.recibeDanio(100)
////// assert.that(slimevida>slime.vida())
//////}

test "Slime Muere"{
const slime = new SlimeBasico(position = game.at(6,2))
slime.recibeDanio(1000)
assert.that(slime.estaMuerto())
}
//////test "Slime Muere"{
////// const slime = new SlimeBasico(position = game.at(6,2))
////// slime.recibeDanio(1000)
////// assert.that(slime.estaMuerto())
//////}

}
describe "group of tests for Puntaje" {
Expand Down
45 changes: 33 additions & 12 deletions zombie.wlk → slime.wlk
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import administradorDeEnemigos.*
import casa.*
import puntaje.cantidadDeBajas
class SlimeBasico{


class Slime{
const position
const tipo
var property puedeMoverse = true /*va a servir para hacer que deje de avanzar*/
var property vida = 100
var property vida = tipo.vida()
method frenarEnemigo() = true
method position() = position
var property imagen = "s.slimeBase.png"
const imagen = tipo.imagen()
method image() = imagen
var property danio = 50
var property danio = tipo.danio()

method movete() {
self.meFreno()
Expand All @@ -28,8 +31,6 @@ class SlimeBasico{
else{self.puedeMoverse(true)} //Agregue el self.moverse(true) para que cuando maten la planta se sigan moviendo
}



method recibeDanioMago(_danio){return false}
method recibeDanioEnemigo(_danio){
self.vida(self.vida() - _danio)
Expand All @@ -52,14 +53,34 @@ class SlimeBasico{
}
}

class SlimeFuerte inherits SlimeBasico(danio=100,vida=50,imagen="s.slimeBase.png"){}
object slimeBasico {
const property danio = 25
const property vida= 150
const imagen="s.slimeBase.png"
method imagen() {return imagen}

}

object slimeNinja {
const property danio = 100
const property vida= 50
const imagen="s.slimeNinja.png"
method imagen() {return imagen}
}

class SlimeDefensivo inherits SlimeBasico(danio=25,vida=150,imagen="s.slimeBase.png"){}
object slimeGuerrero {
const property danio = 25
const property vida= 150
const imagen="s.slimeGuerrero.png"
method imagen() {return imagen}
}

class SlimeBlessed inherits SlimeBasico(danio=150,vida=250,imagen="s.slimeBase.png"){}
object slimeBlessed {
const property danio = 150
const property vida= 250
const imagen="s.slimeBlessed.png"
method imagen() {return imagen}
}

//const jose = new SlimeBasico(position= new MutablePosition(x=10, y=0.randomUpTo(5).truncate(0)))

//const otroZombie = new SlimeBasico(position= new MutablePosition(x=3, y=3))

//const grupo = [jose,otroZombie]

0 comments on commit f40835e

Please sign in to comment.