From 9f1501e94d896cb2f7abc2e468e4811fead49b1a Mon Sep 17 00:00:00 2001 From: Nahuel Marek Date: Sun, 17 Nov 2024 19:27:48 -0300 Subject: [PATCH] =?UTF-8?q?a=C3=B1adi=20slime=20explosivo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- administradorDeOleadas.wlk | 4 +++- assets/s.slimeMedioOriente.png | Bin 0 -> 2688 bytes magos.wlk | 2 +- pala.wlk | 2 +- puntaje.wlk | 1 + slime.wlk | 26 +++++++++++++++++++++++++- 6 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 assets/s.slimeMedioOriente.png diff --git a/administradorDeOleadas.wlk b/administradorDeOleadas.wlk index 832ed8f..c436cba 100644 --- a/administradorDeOleadas.wlk +++ b/administradorDeOleadas.wlk @@ -70,6 +70,7 @@ object administradorDeOleadas { numeroOleada = 1 oleadaActual = oleadaNormal } + method recibeDanioMago(danio){} } @@ -77,7 +78,7 @@ object administradorDeOleadas { // Oleada Normal: Configuración y gestión de una oleada estándar // =============================== object oleadaNormal { - var property enemigos = [slimeBasico] + var property enemigos = [/* slimeBasico */slimeDeMedioOriente] var property cantidadEnemigos = 10 var property enemigosRestantes = cantidadEnemigos var property enemigosGenerados = 0 @@ -133,6 +134,7 @@ object oleadaNormal { enemigosGenerados = 0 tiempoSpawn = 3000 } + } diff --git a/assets/s.slimeMedioOriente.png b/assets/s.slimeMedioOriente.png new file mode 100644 index 0000000000000000000000000000000000000000..0f28c53005be0eb6fb7dff97e935b6e4e7a13bba GIT binary patch literal 2688 zcmbVO3se(l79Ji^iiogSp(;9t3QC>KOdf=c1cd}6Ea4d|=(;kmK!jw%BtYQcLRkw^ z@c|x`wXn*vbwwzi>VivA9!I5ETF**Fs_a&ekM+Sp6sv6k-JOKMTG!T|%{epk&&>CK z_q+GIb5Ba+VpOwT=eq&`FgtRsGJ(6MSPz#O-1$aTPA~vCNOcNDTo}a=G?<_Y2bZBT zS@3cISXN%SyCdpM+}x6m1rg_J-*vfh-53xbm(kx<7P;{QFsVUN@o}W0lK7ROsbI`w zm%;Zp|Jdpnpy~>H^hUnZx%%HLwz=_kT>G}>nrz_(hdN@QrZ~R%aZ*F}SLIE2darnE zs~ihssy@nY$O1e9GSB*48*wQdP`5o0caIkc7axvt@=Ix3Krh+u`uC2$`WdM67l#gR z@t9LsA9GdW5xcs6|M-G9SN7jP)aOs~JvJ9!G07K~$vWNG%?{DNo6-w6RJdPC9?|q3 zrIY&}_=ml{d*&Z@T@bY{E-8)j>c1H8-815pf-cUG`nJB?+<5v)!E?Fiz+>8QQ020E zh1@$i%u*{TSm(2H?-22s@h$feJWoTlNsT8RW}S>^+3^18yb$*SptC#n+2h1jJzOQ< zFs@BD0l+LT>)`+#sP+K>UXM3Nx zm_!8He|#<)OKGtLBTg_`W;vfzI+=prI8AFX*~`Qg47T7#7!@Galx#qXoW>cm z*bG~6iiGJ5T2C9yCJu{EV~uHynK7j?KS4eH`bPn{(yG+QekBBps2>$@H^kW5g6Jjhh)(!!Q|BM#W7@28BWa0xnyxGf+&9Y55Bq zXeDl@<$TUHF@&NJD%PMu7$U+DF=Ra>lTbB7>9n~oL8Tfr7?Vgaq4Y;ku4O3PjK3C4 zk(icY^*EQXPLHS3u+fmp2dB%3DVPj~@JWK)6&agK!xkq-cZ?iHM*nwpdojeP?*ai>y{v6vrq*WP}!#NFgbSppZx_ zmO#N2ibJ@T4o0Pj2q7u0wVQ1Xg00n=IO}rl-$x>yXIBD&5IiIweOjCUO zW8Ew2@rxqc_vfV19O=)PKN;P`Xw5k|ONXU$wR>%I!9OM5glGS}^j~J>q^6go|8Fz? zKho`GA=7X}D$NZ}m~Tx6wvL!dQ{b2Vvb}p@98JNw8E0Ki4_EGHdOXtxj+*6$uLjAk z1^}l8k;*WQrFys~tl~H_ciY~M6}^d;IqL=T?RQ2&!KT*lT)ycF>{V;K;Lz|zd-tT2 z)OPH21B(axYqo{`^@2=coKQ$p?!^JfT;PlQW~_GbVb-qC$gvL_x904->~pgWy=-}Q zr)on}-^Sx$XvF@%J?-DHt}JO;XUXq)HKOjT4;HnwsUDOZpOfa|-3Pa4e%UZ|sxI@r z;Xtohz8-9C7yi%|00C{M4%rpQP7W6Qp}9&+8=ap~;! zxwn*Mp3d5%E@Kjp_)omftQNm{%-a_zb}T&Ke5tX{zqtP9c6UJG&^dRgk%#Bg{z0K9}aev1?(w$I7nphI>|fqAx4U#69Qt-+GeQ+&eI|&OkW#JMw@NLSFl@xEz*G3yqB!1`P zfuZc=s}GNLm(P<_T>3gUWKq`>JAUEm!Qrcw!Xoj%d{k(>-}%y-!C`;tBi0OYO>XrxUcDb$HMpIl6dld&uII}O4ox2z8^RQq->es?W|`i8}C=!axc4mte&WK k>a_K#8_#OcYnKy1^^r$GkA3Pu>mQuRh!|y4cuLWK0B+6Dy8r+H literal 0 HcmV?d00001 diff --git a/magos.wlk b/magos.wlk index 84446bb..6c16390 100644 --- a/magos.wlk +++ b/magos.wlk @@ -143,7 +143,7 @@ class MagoTienda{ const mago = self.magoQueGenera(posicionMago) return mago } - + method recibeDanioMago(danio){} // method efectoDeInvocacion(){} //esto estaba porque antes los magos irlandeses interactuaban directamente con el contador de puntos } diff --git a/pala.wlk b/pala.wlk index 1392490..ded8acc 100644 --- a/pala.wlk +++ b/pala.wlk @@ -19,7 +19,7 @@ object pala { method eliminarMago(magoSeleccionado){ magoSeleccionado.eliminar() } - + method recibeDanioMago(danio){} } // Me da ansiedad la pala //⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣶⣶⣶⣤⣀⠀⠀⠀⠀⠀⠀ diff --git a/puntaje.wlk b/puntaje.wlk index 2385501..40199b2 100644 --- a/puntaje.wlk +++ b/puntaje.wlk @@ -25,4 +25,5 @@ object puntaje { method reset() { puntos = puntajeInicial } + method recibeDanioMago(danio){} } diff --git a/slime.wlk b/slime.wlk index 0569df8..f854941 100644 --- a/slime.wlk +++ b/slime.wlk @@ -101,7 +101,7 @@ class Slime { const posicionEnFrente = new MutablePosition(x = slime.position().x() - 1, y = slime.position().y()) const objetoEnCeldaEnFrente = game.getObjectsIn(posicionEnFrente) - if (objetoEnCeldaEnFrente.any({ objeto => objeto.frenarEnemigo() })) { + if (objetoEnCeldaEnFrente.any({ objeto => objeto.frenarEnemigo()})) { slime.enMovimiento(false) objetoEnCeldaEnFrente.forEach({ objeto => objeto.recibeDanioMago(danio) }) } else { @@ -192,3 +192,27 @@ object slimeDorado { return slime.sinVida() || slime.llegoACasa() } } + +object slimeDeMedioOriente{ + const property danio = 500 + const property vida= 180 + method desplazamiento() = 1 + const imagen="s.slimeMedioOriente.png" + method imagen() {return imagen} + method moverse()= slimeBasico.moverse() + method meFreno()={slime=> + const posicionEnFrente = new MutablePosition(x = slime.position().x(), y = slime.position().y()) + const objetoEnCeldaSiguiente = game.getObjectsIn(posicionEnFrente) + + if (objetoEnCeldaSiguiente.any({ objeto => objeto.frenarEnemigo() && !objeto.recibeDanioEnemigo(0)})) { + slime.enMovimiento(false) + const posicionArriba = new MutablePosition(x = slime.position().x(), y = slime.position().y()+1) + const posicionAbajo = new MutablePosition(x = slime.position().x(), y = slime.position().y()-1) + const objetosAmatar= game.getObjectsIn(posicionArriba)+game.getObjectsIn(posicionAbajo)+objetoEnCeldaSiguiente + objetosAmatar.forEach({ objeto => objeto.recibeDanioMago(danio) }) + slime.eliminar() + } else { + slime.enMovimiento(true) + }} + method estaMuerto()=slimeBasico.estaMuerto() + }