From 3ca9f2802195d8dee022e9a322a6279ff5f254a0 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Tue, 14 Apr 2026 21:46:05 +0200 Subject: [PATCH] =?UTF-8?q?-=20[FIX]=20arreglos=20en=20alguna=20habitaci?= =?UTF-8?q?=C3=B3=20-=20[NEW]=20particles=20quan=20la=20bala=20rebota?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/gfx/morcus.gif | Bin 826 -> 826 bytes data/maps/rooms_background.gif | Bin 3209 -> 3215 bytes data/maps/rooms_foreground.gif | Bin 4383 -> 4383 bytes data/modules/animations.lua | 7 +++++++ data/modules/ia/bullet.lua | 12 ++++++++++-- data/modules/templates.lua | 17 +++++++++++++++++ 6 files changed, 34 insertions(+), 2 deletions(-) diff --git a/data/gfx/morcus.gif b/data/gfx/morcus.gif index 0033016f678f05ca435905349f90107660e8483f..16ba539c4a4c2df134d8f9eefc40ec0bd2afb810 100644 GIT binary patch delta 628 zcmV-)0*n2+2D%22(SJ8id{ufRgI_^HXnBNNJcn$GYJ`4SM|ESCjg)|zn`{rAGiO4K zjbKBch=DU%YOiWFsj8W7w3&39M6$5GiBr9=C846NrNOa($jPi|W)2J!91IK`cgwrV z*g<&AWoFUS)x|u|;ndav4-W@iB<9lSbMWHUFFfxI(9#1O1Ap`2;*GmOPaZ)Uq{`?E z*YBT>0MPdN^Ed1Oxfc-`QY5&L-$p^)pi!GZvgDnN9v%NGl-Tgjgl8}vOgKp`T1k>9 zevGPl6Q@ddJ4g1UDfDKWKlzH9RHzguQ=3Lfyo_mP=F^@t)vep=jOWl_SRi_hniT5N z8zzK!9XW68*?)3wos!TOGwY4D(M${&aG-CZ0C=<71vXG9WrmvgheEG9bj)?i+_KTm+F@&UiKT1L57H;dr<0#VT&XXdBT+-4I?EN0ra)b0qe~1@S!%3mHKwPSZn2njnnbUyx{*`5tR?ZSQqQN*nL$4yJ$aPoN|(%FGF3|R9J;G$a8eb?3rhg4I;D1OD$8HjR~TM3ELfm`gMtMc|F-cf zRP7DLi!%p+O9FG_#~P}3o#EN>g3vq#2hb1z@>Q&bT)zgjW3^%lpCzz%qJe<`4W=g# zD6M#R=i3sJ>t--V!|mLtQ(u1WST|?E&RGY@yI0~L=YJ)*^PM;&+5+6wua}P|pn6>f z1J38ZOM>}%<+|rkmhYY;5cB9MAi-$s*e2Q?tR2Y3w|)Uia9s%ku*ZQ03iJivVhR8! zAbo`>;Ngdpna7`i4%_=wpb!{RpIoC9>xvjuoaT#E>UcX_g68lE=ed=p2B~96p8#<^xOKz@wOG z4%vl|ZmM`Dn_iYM=a^QKa3^g}?CIqUa0VJD2}{~}K$>a}3Fn_c1ghkqG89?pqIpV+ OC8bv`Dyc9b0029{9={lww@@xK!OuE6P)& zd#89L;fx2o#TJYzF8Sn?4|wv0aAdCe=A3u#`RAaAp84bZM#X}am8ZU+MmS_BF-18> zBs%DK;E{Rlx7+?X?w<2LI^;4h#AZRmQ+se$sY6JU>vL;8`|i5)?tACcZ+|{L>35yZ z(eWTIe)L2}KhJp_=?xHi;=>;P2qu+-Iq-pRbC^WjCqELdZ+-7W zp$g+CKlrhabJqhNU#OIWnSb5ngZILrSxy$giC_>82F#rh|AB}=@y(BY*el4ZY{-xt zIPoAyXp;_~#zCn##9QE#-~qQtL;%h%h+Wj25;PSRC)Us)XPn}-)M%3Zk<2nx6G#}t zSiKh7@r7`p-yB012Q4TrGHs%w2{w2`oJcN&ms6P>aaTJFdJ%L-)PG|nrU-95 z38ahyq`Jw)>R}MM&O^4?NIaDChmPzV3ifEdB4QFSCwWhb+EbHGQVw&E%%v(<3BXq( z&u}`aQYY26I*(k=HMUF_?MT`IjfvLl}$vvT_JHBUK)i zFB6dwBY$cOFj0_B6MwW0o8BAO+_LD+gS2jPf9eSiOw#{Bb6#bg4RPmR05;E}NziEq zx#u4b*BR|u@sbc)8#a~GgrM}OM;J@ej{^4=#xO*o14$=ALNFF_=8qxdGzd1;={0N} zp`BNXlT5!?nu1O%Blm=9i*jItm2OXmY1!vDebOcrq+ldR2!G5>vm?rHJ*24@GGs$_ zxI~hyvn1@~NkHEQRk;02s`jA@L`g!to_x}vPx9(%VwWF`Og{2bb2M5u;q1+vdPS33_9_s#Zscv*@y(qm0+aOE6fB0_TQl`q)x0|P zv7sc5Xujfvuz$d$I$cF33Y5iK04&rqliSE@S=+eR|0H%-p4nDy14d1T@{^@0nydcS z)=eJmNHE8R7F#Q_+#F@(KUoE7V~684dd@V2(Yh>6uj|n^%GRg_QRrtoV@>edEQBi4 zZf3M=wCg+-B^OL%Q0UAiWia!5{=Y^V}6O!9KcrDN0-Sm zhlqkv!hdS?p*$(@V~hl&E25RVv6=C8=K^9QFNpuCq?uECnkq`aXck+Id9j(%D<`g~ z`Dj6&vuNWSDD@(=maG-hp1t*BVy*d21wBog;gq8yA9_=XQXOM_e9&Zi`qQx`FDJLj zX^MdQ)TiD|@!UBk*DY9UsE)NQjk#jl2(`R0W`FcSRVC|Q+aSIbzG_>BQ$s_cq-0x0 z%5pN@YXajM)wR@XnWOXUO^+tD+-V#xbFwVmJ;3b zsec5V$8MCe)$r@l6p57K4F_k!CEjf&-$Xr4|2$+&`8?B+j8(c=4f#OSjRSUVPK%k)KfyemG{^9|X})fEHl4A-nn`?j5*(SP1Z9BR!`&z*aC$8$)ha-X5mgzb1n`rb|c zwEGyxSXd)+2ikq=z7TX{)0$mpXyeUZcIAbBBYkHg zUhXO1wsc*4HJ5vV?+NY@jh%Z6!$|HOqp;lX{@-N%Y2j&o+i4Pn>k)jY*MV#VW_S@006PZ^NpS!G delta 1693 zcmV;O24eY-8HpLN3IhREvkL?L0)O2J_ttc)4VVdiu1Yk!6fgg!Sl_wP&9tICHL7=t zM+&ZZz*}s=DB_SuF8P2bUkJzLm}jo}=A3u#`RA86zHd}4SULIW`)Pzjh7wbhV?>~P zeg__x&t5z2o!id2?x8y_^FnME6g;&DXLUM+G_kJr(Gta;JMOykzPa?7OMfr=U8QqW zJcx-iUo@Q$Ij?yfl#9I@Q;1G$pMF7gKh}A2i5;PSRC)Us)XPn}-)M%3Zk<2nx69^ZF zNWB)?v4r%SBk1Cw1;j-NkdhUpMgnwilwlKyN-Hj)J zlu>|C7r9tH3?kPFpAZ>|2U7m9k()z-9yKSuO9JL3?@3X6YQjm$SZE!IV-a6Y4k2fx%A@jS zA~Is+Pi^@n3eahS)qh>Hd*fPO7QyGVf~+obf9eSiOv3-ca$ZH94Qc0J04C4xbrT`? z^kd;VlRYb15<+XcrgEAPlpgg6V@diESK@+^gboCq1PQ@d!kIsYjME_3OsChdbp&=^ zDNZo;US_O=93e0<&3{fPzx9x%UZ{`^)!`CJ zqRx`6lP3Xvn^WgjFR0pwDi0-z@Ot7&gUZcWr+Hm|Fp>k8Mg<2v?P$3YqLGsp&YV=e zDnj~aH8A*@UCFa^e+DYRRiW+`5ssWyd#Xt<%wH3KqiZjhT3z>RlPzSWuEi zG+%K-SYT3}t$!X91aaJu3W|Z_sp==awNx3h@1S>Y}a%4Z8{eSO!f9J~+O}DzbF>bS%aA1}Y z*T1jzZd7gn*D3)IB!EP3mQ-?@xuhqu!Zj!e%evmF=r%7{FCIaxWy=EL3sacR0m z*|D5>Gb$#dhF$yu7*|)ug9-AEXbisB*;uau#fwM-iNs^ zm(1tY%vw?_q$}Q;Pdg$VonvBMgSAHLR@btax~dIO!OLQAvD($R9)E}p!unrgw&mBtsiC1zQZg(fWjTq; zHGpYNYFgqIMsmgrvn@Ru&mvga*!DG8ts3pIw29fZ?#+UFJL(%yIMX;t_YF9GWV?~2 z#1~ezgCE@jqO4chDFFBBGRf{umW443`IElG-Qt*%d!5gPwz6$7@Hz`*z*jl7Q~)l` z{eKuIut=#4z*7X$hh{sP)-20Pg9V+2Q~S_r|1Q*B377DLD?8mdShvCl0&$V7t;^s9 zb+w!7=MsYir`m4kpAwEvm{VBYFjsdwm9ALd@`}*F@<_7mbr+9*8JH`FZjdAgY-Vyt zQw<$m$C39t#k0~RQYmG9FMNS1MNO?54bxIQq8N274D25JMuhVB*;JJo+bb! zL()$dI3xw10T5 zuqAspw1YR429sF$+=#2%b zmej$2(l{~5qtrirYU;ZG00?37_g;JfZUJawu~r*a!GCo1d+YaK?v`ZnhZn(ze!9hg nl~*n0$6Nv^as%Nj8xeIjA%f+xat>+}bskbW8dzv~5fA`7S(ZQ! diff --git a/data/maps/rooms_foreground.gif b/data/maps/rooms_foreground.gif index 2af14330c24392a11a921953d8f432e744c454e2..0aaa743394b50bd931ab2d76380a2175c715c91b 100644 GIT binary patch delta 2466 zcmV;T30?M|BA+6#mZUYmr*y88)}b+^K17_FxmJEZ{( zW(Wfq#2HR-lJlJAOeZ?aSx#}fbDZ#eXBfr;gdo_^JVF5yy6}Ip|4)=Kta&Y|=g7ta zg(%FxSI&E$Od#?TuKm#^Dg-D?3OY~#2w?~@5ai-kbCieBXqZJQNMHak9*L?%paBg+ zJ>#j)mWH987v-oFrf|7x?xuWXs**t1pa%T?grY4eC{TYIg_&}+o)&sZKUuku*W?gB z#Gw~bV!D!XHYa}oE0t$KEBTW{Jyamo*$G2UlEZ;OC|LtUiBV5tRRslLs3#$miYzuL zEG;#8E4gHPOo|eLwpAq;HRn&vnbmlbhpJZ_>w<0*fogSyRM|3#9qlsFD7<8*D7EMi z1VUBB){~-p3cy+$_SM(mRH+adsR^eSMx*@IB;y?FT4#Sdg@OMRG^U{yXaHCmhA{1N zmp@bOQOZ}-nN*SuYw+hzx$@U~qExT|Xe)HJI@JP-WHU%<6ND5 z6+4h#(HDOqC_q8mB5>b?fPjHxWs+BIDv;mN#dloE)-ijinBzIjZ4I8m1N8!d!R6$% zXFQACxH>lg@YHoE>u~L3gIe|Hmg6-?HjJ6Y zmlVj#R`#z@;}|8vWy#mF8&;I0Wk7tPGI{in6|&hSJ=>f04{c0Yf$-s;f{wr{OZ!Wf z0O@}!P?-Re%37f{ZrXg2o=Bce(&v|~A=(CdnG=z2iP4K6rAQ7&7LJ~#aMipkipogaDqgf}E zFBAYMpfO`n@O6~X$8zAFUVD%WE_iWePXJYz$IQdik_X+`I9g>&9E%cD7bzxjv^{H& zf_okA{`n(94Z_6=0l-zMtYHz$w>^Kyl2sOISd&wJ|B&}MzT88<>k*f z36TMe65XWQz>dP-zWiRGY~!BR-nR$TH_g{DxD;gCQX+3~Pad~(!a^S2P3QA%XHIK86MzGy{NkbA`)Sg?Ti7<}nds*hC1& zRn_+>nsa{wBOMg-Bo;__z2<*|1PFxFgFQnChiLz|avxM*6b3>Fl`e-CGy&i%!4Uw7 zB84V#NwjB&iAaZCh!hgl7i=I`ag`Y^cpU;kd}0LvsTP6w6d$lxh|v;Wjp&G7F%i|a zB+`a!Wupg#ddZOgLivCAQWU$ zs3DGIk`}^8RyeYKdIwzl$b57c0eY5v1(XJTKxbA%ITlkRHF9Ce14Vg=eS;?!-?(|M zNQB}wcXJ4UZ}5=gLKA-&vt(uX695wdBL!oA{|8Jc;V=UNYj&t31Co#r6BQGKQw|XW z?3h?b(dDlr^Q7c9Q92LqxbA7YS6k`^r^6omtls!~4)NqFDLIjQ22?c)Z1 zpq3D&BNRu5Np_5R0Re)?XdmZhVug<0C5y&&jOJECWn+-*xQ>7SSP(15k;0O2BOreQ z7XtW5KB9IwtS1#N@t1L!X?u{7dSMfK=^8SiH8Ma#ECC}00Rj^v6u>fWB{?h+CXY#p zf{c*{KKX+-rX=1rF^^dp6k?hj#e}vI6EN^%JQrck*lKT}2Zf{tnwEktL1(lf6#96Q zMhI2OYaau0vOkk=Fe7+?bMI4#6koZkOf5EFqB_R=Row1p%gk0K>ws{;aKsUYp) zlIFpXec2{6@f-vfd+?Dcmo%Ob!7@_8ko@Q<^m!Mmq?0ZIk5*PC?SYdt5o*8Gj|vBs zikX`#5ufYP9v0e$MKKm{QWpN05>F|3VmAS3>3SCi0xN%(I$Vcp$&;eM*NQxc5QIZ9 zFd_qNqnKwQl!F5SNcJb)#T7I`V-F#C?6**f5^@nJI6#3EAP@pkdP9DA63q6ARcf0` z=_pp0Y#^YQ@K-n()1oaA6`0tH%x0OW<(mSL7QS+&RMMs+pqVbAp}!RqWfdjW!iNTN zP@-9&Tcdkx5$lib*DT*FKcL*iIGToFi3x+){%FGW0Qrtt=vi|NG*+q-h)EFa8lC-luJT&0=h}+TQLie)tnD`fIYcVa(wAi_o$w(z zW~!5EK`0uEtbQ>#no1$;)#VV)s g`lT8$NUNHJA8gPt^fc4 delta 2466 zcmV;T30?M|BA+6#m0O9!CYRz7@0rewCNziFCZVzJe#B(mt+W|N>nX-g zX#j&6!T<(xj#HfGOeZ?msm^nrlbrA@r##~shOq!42sSj2P=J4g|1P}r6D165UQ6yd zvavuR3N!GP^PVRYi2Q_We{_io1E?f7yyiiqADTi zK!b44d9w4RVYp{TJt~DMT<)5?DIb}tBoH>J0e?TSXiE+%)SyP8rXIbgg3Psf{^U>*6-ae<;!u<1a3By$)&Nn0)RSOUK>;Z0NeHDP ziwz1(O-eb4+pxZ>CT3sPkwoGD2yHqp^FR7_Y zF**c+SXHt2wCJ7!(AI{9^))(WDnv?Z!s+d@D1kLeIg5YV*4qD0VIT*c>1YWW0GEa# zOug*o&scku^4)YMm1M&j0NPWo1ooaPB`g5mD&2b`b+i^W7L!0|IID@&jc2?|98VI* z@v0=YDq1W?luSu6>bC?7185X=cd2Rt5K>qO-ilvo&Rm8faU4Vbc)uu2lZ_^ zS4UsQ4y1oq_C*K^P|&sr=8}o2EqBjC1u~ zuR{|;{yKrQri&-d8%N{Jiztjy?ssskLU}{Ryn3*4D@SS}85_DYHFokz+H;Uio@c0d9p#iXXdG?&jtth4H>7uYT z%}CM;5q)r|KFM=JfHDB2CFAjpwA0)GX#h9@NH-tS;>yEm`9>J0ZE`UExH;p5xCnm+ zX<2hZo=EHw@C0~1M&^%6vW9#2xDSgDUgGCcwnXFo@_8@Fgzt`!MA^4dh3T*8rAhi} z)=A|J1po?c>{t|p9VPU!oVcgg9_4}yUR>FeKo#aO^Z4}SLq|4_SeX*Yq6F1Nib))C z@7km2UWdJp{)kYcaI!)Ga8){MSj2x4ZqKoVl|>rX|KylIozTvv9Z<6>7iW_@}oATnE%Q&(|=yG-TRRB5#mSAlGxkLM`!Sd;vfq zrcx!FlWHjOHB%LU1(Qpyp=&y#Bg=Jul2bP(u?8SG5CEtW12Sj91pr~UD?)$K5QIlk zrjmcsQ8Eby9iMmS+?b2p$wjf8v8^&_Oc-Xg68dd{>x98t*cB6T zZA(IJx>h!N;27*Td*;y|t7i~6h*QhRd4&g!;W1g=lNYU#AknrxJ?DQ|76Vb3_l;{J z6%H6^YQSHkNFtW#H!uJKtEP4Y0Ut7k6lnn%`gMTk_0{8|HIWB)RfiX>XhA#my5l~Vx{|0!%gc1%jAhLFcIx-*%`7lv2F*@ZC zG0={S6^`)u5>cUtDlr^S7c9Q92LqxbA99dMk`^r^6onI#s!~4*X?U2&IjQoI?c)Z1 zpq3J)BNk_dONNY-0Re>PXdwq@WR;HKHH*k4m*`ePWpj}1$c}#iSr9GOk;1ZYBS3!y z7XtZ6KBRUyt|t{P@t1PAX?viNdSMfK=^8SiH8Ma#ECC}00Rj^v6u?q$-#9E2HjhfF zf{c*{KN*BLrX=7tF^^dp6k?hl<%G5o6EF~CJ~v^{_-b#U2Zf{toVJ24VP~`<6#Mv! z>hT;7I2OY)au0vekl7Rg7+?bNI4#6koZkOf5EFqB_R=Ro)P*E5k0eE7s{;aKsUYp~ zlIGEnec2{6@f-#>d+?Dcmo%Ob!7@_Okp1W=^m!Mnw399ok62bE?U9o-F>1l&j|>Nu zikX`#5ufYP9v13`MKKm{QWpQ15>H8ZWH$k5340j^0xf@*I$o!0$&;eO=ZZdu5QIZ9 zFd_qNqnKwgl!F5SO7GIA3rI6#3EAP@pkdP9GB63zySRcf0{ z=_pvYY#^YQ@>e(*)1oaA6`AOY&Ssga<(mSL7QS+&RMMs+pqVbAp}`dsXB8#Y(uW3- zP@-9KcM0iITW?e)xYCfCD&eMpA{kt=vi|NG*+q-h)EFa8lC-luJjt6*6|$nDzC;mr45xTCP6CE(wAjwtneW? zX1bGUK`0uEtp1m*gJT&<>Xg^vDPsvC6*~eN8lM`Au^fAeE^(s7b*;wAmvR{`#VV)s g`lT8&NUNHJ2XBzfdBvi diff --git a/data/modules/animations.lua b/data/modules/animations.lua index 830a99c..026c6d6 100644 --- a/data/modules/animations.lua +++ b/data/modules/animations.lua @@ -54,6 +54,13 @@ animations = { { frame={x=156,y=0,w=4,h=3}, wait=4 } } }, + ["particle"] = { + cycle = {1}, + loop = false, + frames = { + { frame={x=112,y=0,w=8,h=8}, wait=100 } + } + }, ["mummy_walk"] = { cycle = {1,2,1,3}, loop = true, diff --git a/data/modules/ia/bullet.lua b/data/modules/ia/bullet.lua index 0ec7e18..1cd2532 100644 --- a/data/modules/ia/bullet.lua +++ b/data/modules/ia/bullet.lua @@ -11,7 +11,7 @@ function ia.update_bullet(spr) if util.check_aabb_collision(x1,y1,w1,h1, x2,y2,w2,h2) then if v.state == templates.ALIVE then if v.bulletproof then - gota_esguita(spr) + bullet_ricochet(spr) else v.state = templates.DYING end @@ -29,7 +29,15 @@ function ia.update_bullet(spr) spr.pos.x = spr.pos.x + 8 end else - sprites.remove(spr) + bullet_ricochet(spr) + --sprites.remove(spr) end end +function bullet_ricochet(spr) + sprites.remove(spr) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x= 1,y= math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x=-1,y= math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x=-1,y=-math.random(3,5)}, flipped=spr.flipped})) + table.insert(sprites.list, templates.create("bullet_particle", {pos={x=spr.pos.x, y=spr.pos.y}, dir={x= 1,y=-math.random(3,5)}, flipped=spr.flipped})) +end diff --git a/data/modules/templates.lua b/data/modules/templates.lua index d64a438..172e790 100644 --- a/data/modules/templates.lua +++ b/data/modules/templates.lua @@ -44,6 +44,23 @@ function me.create(type, options) animation = "bullet", ia = ia.update_bullet } + elseif key == "bullet_particle" then + sprite = { + type = key, + pos = options.pos,--{ x=100, y=4*12*8+71 }, + dir = options.dir, + size = { w=8,h=8 }, + bbo = { left=2, top=3, right=3, bottom=1 }, + current_frame = 1, + current_wait = 1, + flipped = options.flipped, + surf = surf.load("gfx/morcus.gif"), + animation = "particle", + state = me.ALIVE, + enemy = true, + room = options.room, + ia = ia.update_gota_esguit + } elseif key == "coin" then sprite = { type = key,