From ec15bf7100b03f0e47078103592e1f916db6b8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Boulanouar?= Date: Fri, 29 Mar 2013 04:49:59 +0100 Subject: [PATCH] Update all metatiles to add the top ladder image Fix problem with ladder --- media/metatiles.txt | 1 + media/metatiles16x16.png | Bin 4182 -> 3718 bytes media/metatiles32x32.png | Bin 962 -> 2404 bytes media/metatiles64x64.png | Bin 20852 -> 23173 bytes src/entity/entity.js | 126 +++++++++++++++++++++------------------ src/level/TMXLayer.js | 14 ++--- src/level/TMXTileset.js | 2 + 7 files changed, 77 insertions(+), 66 deletions(-) diff --git a/media/metatiles.txt b/media/metatiles.txt index 310e592c33..0040fc8f73 100644 --- a/media/metatiles.txt +++ b/media/metatiles.txt @@ -7,4 +7,5 @@ type, platform : can jump through it, and walk on it type, lslope : slope tile, bottom left to top right type, rslope : slope tile, top right to bottom left type, ladder : ladder tile, can be climb +type, topladder : ladder top tile, can be climb and walk on top of it type, breakable : breakable tile diff --git a/media/metatiles16x16.png b/media/metatiles16x16.png index b0f8ebdea13de1120a6c0059807cfe8cfc3bddbf..76ab528d43d01b65dd1c42f9cad16676566858fd 100644 GIT binary patch literal 3718 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

*N@3xQ7>Fb3 zxS6O73~=c{O1Tv9PDWjL z4?(FRlvD4~(W8?0g;Jr*yNOV)$i{{J@E%I zI0vU|T8K{yPe{IHLwwv8=ZRWEdD)~txPjhd$7uS|KjL1s7OOXzmY+X~?n)P?h|p2~ z7Fuor)~RU(k9Kzq_8@{6)q(sh`nzue8Dx$`I} zEQo<<(wHfCa8T;f@~!0Fwj95nLTY}#lynxH-c zqgf*~ZT}H2XAJw)VfztdXJ*^9fyniP+IDH+~D*65m`&gfD$aUj2U3hx({J z?~poh%5WVhCCF#(7}1m@Z|GMW3lhIahN(|g+F9lQ)l6cZXF~EV_Zw_U6-@*aC3AGU zMW&oYyiH3=LKB)(qCz|IHY_d|s>CkMT$A7?K@`v*iQ?U~38zq@ImX+|{5+VW!TZ{} zHB>BC$aF+$vP8MiSc@m42RuTEqZa9T~KUQFjc6xg2s);y;Qz5<-@fH%r`L=8yY8=V zMvs;;(uA(4s9@EqHPn64U{|EZvi^!$D6g~CtoOZwk|C+O?sibUy_E# z4CjR8tMPK^5}6A`@H}(M^;pwfYktQ*)?vp`h}rcpe^oHS`{%E%p=pKAtVw25IE>vI zX0|X;+QA(xnzM*`vu`4)VjGidDk;gD!EKUkEbt_ecJxo&vTPm2l0ByEdYozJs+gw* znCFI!3+(E=t!WvmNL*O<0ymQe+y{Uz+B# znCEs&S)uE(UlnWt@vfQyv}!-9e5%!B%&Tju74P%w6PB-R77tu12N^QkbmIiX{5i-j zL{OC~KL`CkJw>=ypJCCVSp ztL)tQD(O3(B+b=L*47Ky-BQTM`k~iR#MNiPJ|B&LSA@6I$4l>6nAs^Uy>WZ*aBd+v kDMuu$Soyb8CnW#>0BRCaIR$vlCjbBd07*qoM6N<$g1ZtiQ~&?~ literal 4182 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 diff --git a/media/metatiles64x64.png b/media/metatiles64x64.png index f0a33a1f3a377fe4b265cb150fb98259c872b4bc..eb053c886922ccf088a8cfffb4d7f3d03f68bd49 100644 GIT binary patch literal 23173 zcmV)wK$O3UP)004R= z004l4008;_004mL004C`008P>0026e000+nl3&F}00009a7bBm000tn000tn0p4aG zcmM!e3rR#lRCr$Py$5(4*LC;(--2EAUf4i_y%(`cB-ML&B+9ZA+ppvjS4oZ~+i}U~ z63Hb_WXt7s9LJ86H+F0_$6dumg({RtN|e|;3eh_jbr-we@67H%AP7((MM^}O=egL$ z&Ye4R%iPoc=NwPA6l?Z)C0X%M#=;S!lTqb*qLNQ)3|rs%;`HCnjpoDcW3Mh-ze@M~ z%Y9n8dd+C=@KJq>Mx*k2ZN85^j(2V}4$$ToHtBPB-l4}fzIY1OKkrh2cc*tGyh4e6 zE*4W#EUK`x_fb4!XaDoD_htE_r)cjRxpVK4#~WM9A~=gBkVmog>mH+p6!c%#M&=qQ zFHyER3tw8AMgOzue-iy4Eu9`PkJc?42S0xr!}Pyd3eG!6_ucnRtywd62%rs1S67z~ z9z3Xq23rZtdtRPq%$T9%p%A-);}~vK3<~$FP43t z$^4_e1I~NEJ7DiYZMXDfBkQ3_I+x!IC=m+V`KUZxHouX%dWKH!i}|!Ht9MM#y)A{< zElm6SneurQ_D1IzZFImTg1qC}P5F1qPh|f|w@eG`{Uy@;bovhmFxvWVFSIc>HU`No z{(T|oN2SvCqID3!dm(_UN97COzf=9CyQ-=xed$YI)?<%7=B)H9F279w-xt292@@tb zmy8ujaMPw2Ab_9HqMB#)zG>3j6I}o9dt&R#dB4tJ0m>e2;CryEP5R1Ve&=2IEa&G_ zx)Sw9;|pN~&{({^LHZr`=yy@S-d7SH({qmmm=wD+7S?AN7?S|U!eM;>S1JGE5I~Ra zoZX|(&Vd8YN>B=WQ(Sh@{XW>hxG%hYx?1Ejc>wJ>P37Av{nK9QiJbKiz<(JN1kk1> z5{an3zFrSK^pNiP>Q_{Cq{^B9i4!O4bD#T+-hR^t<>cnc@Asd{vv|s$ElvRM)CEl& z_4lm*?99aaKUog&WUo7AJvvT9{jD2`_n?ON;Ep|9vtPQ8kD?;}OroTYLMmwcQwOC| zs;`l5XWjn~``@SM^o;4bcL?CeA%LG|Y>fXcr=S(+vxvPJYx8v9!`@4ifO09tlxoV? zDc?#Ez>m*l5zOWVfB;rN@aoZnczd9Mom8SQJcDz$3D(yGTjk53O5n^gBUryprISsW zOfj{OO>8AE{=K~P8*@iL0qif$RaaN*o_p@mgAYCoA#8vk#uffaNlBfbVKzBl0hWj2Ee>=r}4_Dq>qP)P`(p^; zHU<_ZAwe2WWR%a`y0(suh8c6WbO-|YX$as1h}bqN)+A>sEn~6*+0*37oGec=Copz6 zHu65bk4Ld6yG1mt-qsp*SHGf2^M1w7pk2cr6*?~4&gW9n5(Kb<7yp|Oz-RJCKLNB= z=}LYNK8WOZ&sQ}yd_?EK4W$LWs)9o(?TBhOTwgSO5|ZF&b@SWDh9uZW02^K-fZJHo zl`I^1xlu&`2YU|=^B#N>0vLk;euMr_U&o*G5d$W`(T0rxjuHxJ8&?vg8U^o@)hc@? zP5>V;0yyh60(i1>f6+sOkJHmPLSFijh4q8f`!jXi!`58?I{nX`EOi-b4|M0g4-V&c z!9XIW7#xko`ew(F%bF7&n56W~DVjWQxn^B_gXY|PyXL>|^IGu!e&qvv|G+fLH;j00rs=-<|G??2M&x$lIn6#3Ok<^|ZJ+Dw%*oHDEPgH77uKcLU*a_iikOb}GXiR>ePbrxh z%AQc9oY_m1F@KT#=~z;cBCXDuG=?K>Lw=*rYpxC^`I*|&B)UCGi=&j)JF~%sx*g!)~3Rmq>%PW6Y=|kVw?(cnGdw=+k+C$m>fB!+H4}4c`oBkkA zbEUGT&Q{Kf4NA(LuPB-ZJWIxpw_pU0C;2Ua*nO--y1Fo`ps533RI-rT=OOl7JTa=b zqbD|^IF=>Bw_wV~Z#jlWU^q%;Q-fOB*iWiFT|+cZ00&`FknvzWyntW26b;p>>&PxO zJ^K^Y-1~2;{n@uw|MUA)`{VzshDX1w#ut96uKG$PPoAsHd28j*nxdFtsfRPur)yTn zaJ$Eo{BA_@TagXO&rp80@{LKMOn?|J;kWhRAFiJ^E(!KuK8_$Xg3B0w72a^yPjueh z8}`3$u!nHZCuEJj_2t%e)ubnS|AF;~GXUcRaL`eT#p#zBkG+0*11a)l7Apxyp(Kzr zN!X8qz{Yzy-LU6ZYO1RRYB^1Ti3{XS%~#AU?&Ab-IP33})ftZDcMXzXYC`fmYJMPs zxqxBjac*1^d~Hf>2^)&o0AwSv*t3tnh9~!moy^?3cj~`Z2HyQ#Bs;g*xxwn5inTV} zxgRHhC$~P1-X;3A5i>i1Iny7{e{kSE6Re9}b3)g>(Ptk;*PoE&$9RKvQhTB}!5_vY z!J}4#Enfp5u)*X2L z$*j8*nfq}9IOy6)z;}(9MI(y#bmHnzuJA567JNiN(W@Irav!Jj=3S?pfv z6vib%XTiAKzq!rKVuzTIWW3(Y<8&W+RSxF+?FRO9M+22q$h zRkN0-E=n3Oy(rW`~(Pa*%S_|v%O6( z@2ya7UaqE1o94s~^??E&$;Xi+NA$=ek7-(GnbxvE(&=*@{deAf){4&#;rZL>M-OY>=6K+H&`h1jE$T;;bQvEx7A0dU zyF@w@Kbpiw+dOPS+Zm9ucC}PUkHMAiWdB>s-Zz%#zRwZjN=H;8}bTof9I@~Dp_{6a+Y2w|11JUXBH{a5yIy^k_Z^@ zI76_edWj+uQ%}`?)ja<@wI6s=N$I)r`IF@F`yh(VYTCO^9c8s~I4|#&MUC;NFur^m z@#|%SNrLl8E1C)ME0#AoM_sL*YTEM>*VXi0=S=`N9I4Ve!&-Lc$M#@*!Re$CRwuEC zo#20ftminyZ7MJsrSHVti~ojQClkBV+Q6Co##u z4)cAp^=<(Jrn>8%v8(2S-Bfz6Mf&4m>8Z+O<>%)TGVKO^_H&;nbk@j@7}MVo{w^ZH z6oHc6NuP<7r4;(#fR1<@qH-A=L(mwu)3719!L*Iput-Ix!e)nul6si8NzDH|rYMJZ zrxSvf&+jwooBJLd;|PBaC)aa95uCtibcC;g;%}@`*>gub!jI*-A18oN3k!vILIlt_ zDnp4zSWrFfYTdt0)sOyAk;+Guzx;ZoDd(_nuQc})zMSCOaseVzu1QDKPv_P+(VnGs0-VUG__rP%JBev)40bO>F#|i5T*q`@Q<<9=oEKpxK2) zjQN~yy6Gk-lf+1k9Xb>N1k$Ap3!2W-`u0v3fN}`JF<3ok`JI9z!L6Or_T#FKD`xcQ zR={dASQ8;88D+pY0el?-IM(KV+y*$#I-T2l%h}0e;T$1Kj(= zyPeN{Kl-Zn{pY{v$nXDKp+he#<}ZTCc_BiCN9*Z9yX;YVQH~0iuho=`-=+!cuTo0E zWCgSGl(Xmp6`psqCSCqs6@Zc`CkqgC?AJ4Jy@% z3bGFs%wC}4b1v4@%QmQ(GG)z$ntT@Ruewl^R-CJXh0ByXXRh++%~$5M84z2DtRX%| ziAv{WZGI;C8Syj8&xoHbd{=91-|aV}l~%`!1B{_U4jboWiq9g0B;0b{$TDBK=kC6g zN>+VTMT|i`VG>!9h0*BCqhPGUsV*jmC)y-GoxG=@By0rf_8Qx)4Uzxx6j1Nc*~A!{ z`*8_yFbQz>*_yucJY|)j7tPLBbLA10{qJ|xc>iwsr}09?vnch2DX<{erbA1gHAndi z7AiG2N4;SqfB{@6k`>IKuH-2T74Ga({g%fetR2dpw?=7G=Aiz}m)DFBskw@@x2XB) zpQwA^?}#WfNrAlS3Qn4%a8IwJ61Duj`LmWHF`_0l!we{zB##eUO<1w+4uw0K)YDO~ z-rjEcQZp24Y*N*>O-eqvMYGrm90?Fr(@0l=o(jotpsLM=#5a?zqDSHC8J%BA3Ji?(? zMcN=zp=vm6uaeWLQ@l+6IcGz_S{(uyDcy*qxDX*U72?-S!v*pe&Q+iQf|xr=U3FEe z`OANy675jY`R`ClTBdpq6O6l|9HAu&XeSk-TB!EsMpbWqRDqqp6=}beY&*OWK=PoC zv|!jLWAih?*U+8@b}`A%A@zL@1#*0i8jHZ2%y+ z%I0Hg)aHXvDKPb168UirC-5g3z=BCxTIL;`62J`u^!87GRlIoL~WDo*2Djt8=EA>i56 zv$Q#eoOPz!gcHWCg9d*MLhK>ZYjZzt13d9n_xe{P{0BWiJ$)cZ{V7n*_EyCj zDi!538Zq@~5~-8C>Ta)8cSj@kqh5e39$X{%9S}=b3%1AdEvkF*IW?9yD{Kh|-2+bC zih4|BsGQ58=|BrT7MhDQ?E?`u>a6;zD>$LtB5~ z3VO+THhZoUd$zGQ_a{UE`vxa5?e71l;{_SGXixTDM_uRI?vD4sTwsLADHtfso?u3F z`~SEvl6%s*)^0%N2#B2d0(!0R-Qy#yT1qA*%dro7{1jB69;8B#5kA_8w6`k)_vt0H zTGEtNgj~CjHZm1%;)OFY)0Q+D%e`D{4u;XLR;0}qMY<`dOC#NlT;JiSTkV!ZE?Yy*y6??m`?dm-!^wm3&}G~{R>5i}$%47Ryf z+z8NjLvfE5=ERUpV`QDE(ftoRs0SW+Ks7a^Ba4KsA=65X)We=V5!7&aUC6^pYW}U# zS)Z1ceUgH6nESb$?@RBL7Tr$bz;`K{ah{@%ZxXBP6x&9J_pr7JGdB^G{AsJu*?*8{ zyA5Bizru%QQ9MI;?BvmJV`c7#MF5T0wN1cYg~5uQ>u(-EF`gqn-42i>(N2Gynf+$_ zntOleKBmvIYX(^blSC@M)>$Y;^qP6}QKGAuxWN)dSe!g7R7_BrglybwD4g z3A+yGXuGzr@V^JQ2QR8rQ%fdKngu9kD($AopPH@I={VI-U5G@N=J*!2*VU*e98~JO zOH_2xyEOggPpD|oEQR;~QK4;*Id}G_X2yx95mbv)N?Sg_Hol}_yaZ5#^6XYT=B$0< zjNtJH=}kC0Q1biQS1q64R~$dTrNG*6FHzjp!Khop)xmu%n&yvh}GLUhpw>&%H+7ISWwPqrmS4wdF{He~0pK|A-3iywfT9w|zvp?|X+bu0B`6S(6=&vt4sC!iGgl@#beKdBJ>T ztY59{tJf+0;$`x(+4&bQQqG4ysQiz7NGWHpmJjX3Q1@{a5?<=0tX`qK54>MF?|+|? zmMumzU>wtN7J~^)Y^ag$c7+=19Q0>P*k-wz_*=Cd*hYK%oojkJJJnfVrS_U5>S(Bs-;?5euR$G( zt*{&L0wB>i@je;OG$FUa*s6k8vM+x9xc+%~f3N~D>qU*0!!KK$wu2TN_7bttxGLpbfC5%@<(aJhS4pzj8LmVV` zLWj*&VEPPYE?!1ny@kp>doI#ajzX_&QQ(}bHS?2qDSzF1)ZKOJdG=Z7K7;M)_Paf^ zJwo<|n>6KbKd6iqDMwWt%jU#McI+73gwj_g)j*={xO-Kxet zTd7kHfofEHtr5Rh)x7I@wI1BeZ*>k@w5@!*S`TdH{;#U3Y(IpxSzQp)*8TjpcN6uh zA#P!Xst*E|*{zl%5bOFnh;S=T^tJqcK+WZQh(67ZN%XlH|hS$A$c z49;`+Q~raAeNoy^;KV&oq6&CbJ&n9`xFDHnBS_-xKpWATTKB?SLhK@DgR|IitUlbJ zh*H5KGz|dQONd zLfFh$qZnqE-l~1_*6mYL`w{Gw=q`E;2S6Ksh+qf1Vp-R5L!phexgU}M8UYI~p0BJ+ zE>_NY=O}$fF{(T4RmNTT;VxKAUbdNFpxX%t=F7x;ipVCofRjYF{up6nFvg?5Kw_I$ zaOyN=&YVq|%>CeM*iV{Y-AdNdIm$VA9X>-Ih1giSo_(&5__%Gj?Yk;0Q%q!Ca}7lM zdijB>*T1ld0HDu0;ob%kz%>>RkK1L?t!`_O1s;IVcq$LeTh3ytKdjUk&gnc4OLXwU zx=kT`QlPa(Nw^;*h1wJ#=$^m!75OT+$XmNz-s`oovb4|24(mE{^_^c3 z(|nlobX$LeNPb5AO!710XXT9^He|-j*_v^fG>Yp;ZD01S|DgxmP&R|1Y&hNlXCvlI75L&BO zxRQFaS!1ZWA|dw8_@Xw|YBX)Jyc5nN62k?9*AF+zV}!Pd=bpKiKpa76<^jNV2hsi4 zVgkvLXUgR`53f+vmj|In0xb`zr97&~xzmn8Vu6k|0yrpxY*Sz_ebS=&D!BEX%Dw1f z#0IJHSAWsr?|e_Y{^9f5`I*nE?8iS)$Ez>k%a)@2D=t<3E$`r(1dge%O@ib>rXVAhq z3pX~K9dZtv;#|rssPJ?KU@8whm3PW1e4kETt2dkTC3cQ=IhBE#Zf(=XOdfPP9dNI+ zI#$=Nu{tI89Mqe|=QOUh^Y(mmkwmQ6cl)h`bLP)h%>ThNT>aVK=4X0UQyBI*qs=tBgv2c;(y3?ksbNWTHRmr?i=~lCD+K}r1^M6(M)qhg$ zcfX_BAAC;@-~5UipZ>GD2$hjkGE13DmysELN+0KK5`A!Tp)xMIKzV=r0Tq7glPb6i zRVKDWvnQHeF?sH^*KCI@Dkq;F(QIP|;qQmvkHP6UB>`);fY2TY)WG%&X+Q77A5g}X zYZNFRFCHiVEuLIgGosgOQB-m3d79w6+-~p@2^*^o?UB&y2;!+nO*s)!f$Rn z=A3T+dCBz0>Kd-hO5b&MjygxxxBsaFt?O&oxz4?B|KAzTplh5>bkw46xY;Gnlm*@2 z=4X=MfBpPnNAjDW+v!MtmaTm;owV%j{Y@pt==8Vw+5e|P@*6lV*5P=Kw#|mL&QEo0sON1Pp3?y$uxunzY~q#inmi z6o6bLd!nKNd%NRDG%1Dp6S&VR#Y%WSJLMSpjUZEKI~GW%z4O#tvWB`76+u;N>QQr> zddm>2r)kRGXtT!p7acb~ieJ?;B| z{v`9i5&ARXcswKxTTj z{$6_W8yKX2g%mhTNi&u!fV-3bW&Z!g-%>tGRE00AXX8&51pt>mWq~plT>-HKrI0q2 zv}=E*^qDIaZLU@L`G=(6eNFo9Jqkbbb8rx4O6M6emt0HG3)HC=4Br;0Y0$dbc${=) zExbhOQx_~Gui$!D!m&fDLqY;^0%nfSjM5i-Bq27!&j5^`=e49SQxsqqRz^jx?s^xDrpqpl~Obncse1t6DOZ|!Tp`oI56)g<_AKeAuJ zq70=H%-WMNSv{?&Z@JF9X;U8x^f{c{pEpRSIjplPs!=t*)QsI5u-0=FOBg%q3fda$ z+cQv(t@Jg7bbsA-*J|oiUZgkq7#i)_1mGnill(3K@M1PUEEj`Hey0lUd7@pnwdZPL z4IE<%DAPnaq+$f2L;FB5U1eIA$KH%Kp_aYWlG2(AKAK%ZmXe#4O!ktIcy!zTvH3Ru z!OERjuCI#%JqIw!`4>`=8Gimj>Dixv0(~Kl0^R)tT1(J0 z1anxC%sGnXVE)M>xP2!t+95zQT`#L=(oG7NoFm`FdGh2;0%Wj&q@-8jw0<>C_ZP}L zV+H4C0a(FYV~Ehwm$~+*Ohh>VxPxdkyA{nu4LWHVYT5JUpT3f~z|#PhQok9L=supy zhrW(@t;!%ZSI$IKv_Sn(wR(sRoV52Zfad-)j?(HxcUC?C1)A48rssapSfEU)bL77B z1{L4(9%W4-8hkZw0Du!B?Mdor>{e?-Gcf!Rt}z&0YpT@!$3G}s*Xa<>0O_<-*2jgTb-DerFVZtwcr1tEH;7TqOcmj!ke#DE|eRTW(g?l4(kv znT|hOwGRE$*X3XTAq6*AopyiYYx3XsZLy4;Y~cSy`FGT{(`HOow#DisB>h_~483W4 zj7ffNZ7sU;g0=e49iPxVGFZG7hsE|Zz>C@Z4Dez$zbP=(*JJZDz>C@Z22*>Q4i$!Y@Sn4N-w zJ*Pxd&byId4NHJW!xo#QV~0D~0|(s|wFZh@4p@ZZs^-aj5=}vJK_ldCVKzg}uNiJl z@m&G4OsS`QfGz+O<&!eseE-*ABJv=&zd%;^QBe{vK7Q zg}HkW$M-p$5GP;nYe4ds94c-XL4fZih;e)Q@%rN?o=Pip^b%DCzpbm7Giz>H%Epx+4K*T13eKmSZQH(aUoMe_jN zOvT@=QRV+d`@i^u(|&M5KL@5?O^~Gou_>K^3O@Ylk|W*RoJO z_B{j+2G)oA)lW1jKlVL6%KeiW)a(9HQB$P z2XZQqj*TxnTV0)`0m6emd)*49Ok|SrM`=H_SIsZ)ROg|ZK7^ie&cU;mEB}%!@uf;v z=!F;6yYp2AX3SPnL8bz^K}QAJ{EVqUSE}G*)CH(ao1faKSZld*E?BMPymT@k;Ap;U zmzrO}S^aQLJYGBLpQDGX6_~S78K^Z((^>cQ)ABz5yrTj|LoYP+s-H7Yw|(qmnlopP zCQX{CDN`nokut?md*&AuDnQt@H`76TC_lfMs69>cGqtBlegoB>?%o6L&WX?2f6q&7 zoo~s9?ej+X3>4gJxp+J$z#qv%nQ5qrpGKq%aJ@7KA zFR*2GF!F5>!e&Z{(nASTx)a6zH|J|3mR4F5bpeYw-|f6VQF7Ix5JzHoo5arEM!gw$1nqMOuM36e<5xDi99v5Z9axw5HS*OtHYkV z3iq!%5Tn;Z0I!t?iO$>6B5x!8sV~FV9-RliejX>jF#9d}Lv?_A7-)ykiP2!P!Z_>q z;Xrk7b|}Y^=T5#!MOC6AIO+ zdHYt?J^7R>@Bf_+fA1&S_w}!9-`#iX@ZDdBNIkElnW!YMxJYRb6O+(WrX_<84ydP@ zj0fd_Swdtwpe>hSbO@ERFp1V~FkZ8|56m+(*p_Ch112|$v=(WPsH>8Q^<{|tZSnTq z!)ZU2#bTKMA@pM=1+`(j9P5VxQBL>qM$n$_v$+~HW6o?Hz1eEdfn#LPV9#V~_rnyn zvZE1p_JAzyGd_z19dX`E)Mim!jqtt&I-j8kv1%RCZXGnq$BJzT)-Tid+G(WqzGBdE z<7`bgZPys5$-Ztr#EvAD#a`kqMj}g6dmH|_XkFCFE@Q8taW?Gdj+B_?QP$Lz6x4<`3_QeG1&;ho$xs|$awcvP#cIx(sby)wKG6k<%M`WK;wLbZ*S|0wR8h`u?)qm&vs=N1_s`=gz)UtUq%uuI- zIVnn+P^i=y7VsI}Jt2j9LlG7tzA5d-It@JHnG+mh3qcDLE7Lf&;rOTxr;c;C<1Bbn z1&$T9=OBasrv7xYXixVcZS~k5WK5Y$0N>OO3~@7if$W)V&o@M>sb~9XZ4>@FBP5H2 zYm>4JC>9ST&n1l z+3H3d?#Z8yQ}~V2Mf|?xMn&e_s-Ai8QF!7q_4<<4h08%FslUQg7_+wQ?E;5!)je<^=<`3f`j<{zm`_=42%CpJ!DVmh5$#WUc$Y2rt{u~ zUF?HIgZg{rt^bHpCa-V=IcMJ(a!)WSNihz7`nl3M@1swjKpMM?6d)fb8^o8e|J?u~ zo2+i6+;HVi2sktDgA%)_PW!YQ83D9~VFa}4Fj6tnoiP_v&Qk20FDtg@?`ZEciq1J- zv55d^Adqn(0HFZF7Pa(7-3+#=Uo)0M=y8!qf!bS!3nV)al3*+)8)jiPgcSRp1;@9p z!PI+Ns^vZSh`d#=qP0fA$jrq)xCj8wS+r$b!_nm0`C*LC{V^&~1Z9P1&Q#tK0!go3 zuG|ZkqraYvCbLyN2dkXT$GBdXa@rjGC#5NMVlpCm6TX4%NPY!MnMxQQYpaU*m=(mQ ztg2ABq2Z|OQrE0TwRx!%WVYr{e^TdPo=}Q8(@)58q{qQjpe;{tRJ8VhGL|m_0gRD6 z2{E5gL!t8WJ{73DL8h!)qs;Z|oYdGrFchsKa$LSe?H-h$bpU4P` zNmpk7GXW&Qr=Ok&K8aTCdHSP5?VT_SkE`u)nxqqFTI|q16=-{z)*{4YV0!4}-R(80 z0SD}!&K}hq*siK0djZC<8{eYr4URzFgfnOXUvyv3{Di2WUg)@cN&u#Ze=3v zJQaqN?o3=qZ5nMN$aHBHs&j0Q)8;B=@k*k;#IsR2?N3Nj%7tfv0A(>+HU$u#Z@Iqg zBsSL3aLKSGKUb8p&B+#mscP7uOv_Wp_Zog{wqf9KP{dPj+N{cghVUaqsSjFx%az;^b`PJoU?KOD+U8>uY$6=odQalsb{~UErT%pcF zeuKFT6GONq7F1JPk2(RQ^`fSWS;Q6gir&KM3Qvb{0>%pG6{?v?`pwkqCVXMkY-u1s zW4!ZSnHjV>2^-~PvM>~?jr?h?JVQ6^cz0@s!ZUFCUWm&9gdvhky#nr?kxm~VJk)an zVI0Mg46;aCk><()k#u5Z?nbrf_z~J+7qUPx*BJ8C-;5woN}S%(hp9(>4u4lOv3M)w zt;EiT3Xkbol7=TLEOO6XgQtLta z4#A>V>~P`|+c=qoXHNQ_s$KHnn&GJ+{%^h6JehL6=Re{(WU9arui_)LH?h@rJ znxWL(n0j#5Y}&X{kzM#2o@LJN_yGGu1qM7<*wnV1B>N%!1wbvS(TL88l{28TMf+cq4x7$7tjF zve{Txn<)2pGRd&04De@rpsVRR>i(RMAVpZfe-Dexu5F)>lB?oXnAZbN zh%FEHdyiw!hin?Ek$~>OloX{FAb~VCsQQ`5)bRZ8)Lyn-5eSW+Ko|jB9mrm(w2WNt zm*=DjtA6@X>{m}fG-|m|o8#PV6BGl75P+FYLH*d%Sf_@~_eyEJMn+ z;)O~|O~-cDDQ`3B$M(Id%8iey>Z#u-bm&C|XcHx3UsjZ3vOyHEtEE5$>s|%~vk`#H zGq@1&xsT8NiO&PiIl<_IO?#Bm+YT_#pifv$nQVV6sz(csUAYag5JV@&0`f7@1QhW1 zBDE3dUbvI#0KSEL0ohpFv?tnA+kVy;tOh~^QLW|cBmjs3U&>#h4t@*xB6>?-;5UdI zAV3d$rswdB@>g$x=<&T80$93P{;DnVwLyS;%|02C4-idKW2utrcFRjv8*SgEmcuQt z1;ai@0vua&e=GrHy|o#q&9wTaf(Dzn$Z=Q~1jjcq2lc~h(3>liwg&a$MdvGf<$R^h zoPphN3hM9{fKN}V?YEDp>rj=v)8{CC8PXq7U}A8JNgzCft5++X>vC2tM$H09hREfu zJGMaB;DG$Ov^CvPfd=wi6zE3O0IO7Z>BYQ!ezm>uf;w=7?>Yj9RkA>7OO`u+F;R9% ze=*TtmaS0c1?MYw$#fzL6%#L%7besW0esC7ew+Xfn>?I!#bKj8U8%~rsl03=cdrD| zhAL_?u?&};pl zj3OeRq|!dLA(e5%XVfsQ>k>f5{TKq6jf@+73FZreR|$(;&1ZGulSnKw4i9X&|?|5 zWgJ+~A@)cJOg+~(L$r+e`3txk<6&u$!YJ_Dw$lb`(IXJP{_WZCRwoHZd4s@4*xTBX z{u*DUKKHBS-p+j?tYL^-2gI_PcIqIc-4N6ciu->jzJ$>h+F`;hmtcrzY2~@v?cNaQ zgDpp+K#xNJ$HLqnO8_B$Mj%XG=|ct5d!!0ZxP~x2L1nC2u56sk3og4#1xR+;E0*9S zo2On3!7b0eK(>fKsBJ6x?2ZsE!S;x3Lh*!oxmmdBtIk#~>51})w2-}gF;QATK%pk6 zdttlkAG%*X+tGuU;D0oY2n*x^3=+sXf*PXn>8IqIagHWjb*1y7v~7A`?SKBWBS|VV z9nOmvkQXt1#R}TLPI;GHs!WS7+EFbJ+^Dy3HZNCHb+hdhFqi=F#mi5?N!QJd4Y20okcK)V&>luV_S~v3s7-W zhqJd>9M|mSZ`0)KKTNp1)nuNjL1KZKGQOO)j|Y}A;%6W}W4ben(v`RDS{0rDb`_m> zz4BIGq&#d=d8;l`&a8#X%uHpik!-kjmm&3?{RJF{bN{TR*J{EQ@72T$Z&2=v^Hi|n z0u}O^xBNT>DdK<8j^>{Q;G>v;#sNZ9p{6RW)J%3{lLU`I{I<22$}NT@*hN0U&8Iz| z;BW|FYk~mUKJPP49P^gB_-akK?ET;b&L<}x5PKvvuT6-l8S&LM0F9sUUIx?%H_AIn-3)Lh_=N$KRRHNDa&+iu8*Y0iS zz5L%7YK?nZq!H_i{wcW_ME~=gmvaXZd zwq@%cwe2J5wJjCkyxru|3ssTy6&qhWYFFE!dYc;5vK!GIf4{EU+Sl5DfH)md}!?yVuhh?@tQwsuO z(6Z|kTYR0u6DFuVH3=YvN9}B=5!On8%_6<9P&soJLy&G#)~ajd&nj_LlP2f|0d8c? zBzGmnzMHf#96yP~a#V8BDrGNyud?T^P%r~Kw!!8TMq^u20o-ZQCQc@^%?f3o^&Vv` z0iXdu!PKVq0tNF5ls$W)l5_J(m6__O0lgM%fOG9U2x*iRq8}mrX1j|fVk4WS?kV&c zZp?suOCbv9U=v(f999WBx(L}zs;jGskn^A(c;Erm)L$7dKq z88ruQq~Hh=y`>p)B*~uceV*f)veRRNxm2qGF8@0|ESL9_f zT>_MNYNwui-XUOxiT3-qXE%@cGTujsnYH6%K{(G~_cg+1I)3B6jPOygg*wIgpSrej z_u2WZ9nKlyb$+*UygkD`Id)UH*Ztd{!-KqX6%Sx=M+y53$d3B<;`l{w@-~oZw*gA;aqFiwQYVGB-J5e+M!Fg z3qc!%QCD`>*07*i)O!voe4rYYR(dmftW)>F-A-=iG?0bqgqkwn(3b5_ ztK$GjVY@|Q!yc?hj_Q*=%NXg51sALET+oBqy&7M6S~X8Tq`Iw})cDfVXsysTAW8VJ zEd>fdM*_A=LUq^OL^=T)8s+62;x(E|FqKFjnG4oB5@*F9{znzR`Zu&!cKt>*Zsi@> z!kT~XF?ClRRB9TMWWc9((&$9Yb%-#2(RM%~?3=0VQw>Ohhg*$1u!vcm+PrxSQF7|F z3VZyi&Mbe71X!2_3bc^WTN4OW0&yd$Z{y21k9?yQ7JYhQ0Suq(AYE=H% zFX-n_oxMLP6QTuD5wBlR-@EYBZNME0R|YoyrX5exf z)q|lys%qN)sAEgbo3|3CVNSnVjjuF@pOpWP=KeCdp+LTtBjyp zEKqYrD{CKI0vw}rf80ngeft!It$S}NL}a@Gm50x z`O-_=e=90kh@U}79UL{A1nDS_X&-xH_pU?g+I>jv_Wh-oNvl+=%q+hOP=~g&xW`qX zr}mw6ZGN>#=np*jAer2MC|{^jC0P+CpWjgtUL0|sVqA}vvo4m-y+J)}x@|jQk~V%- zO+@W!c?^5+(_4U#Z$sij;s8*QGJP=`rYsm90uvtq1OPLhI%};m=dX3Z60JL*fdD>p zd;*w2e1b{`RAD(wFHzP4++~nBYo2;gwGaJFZLe_e?a#9gvAy`~osB%X2o*g(ZXU$8 z*24$6{|>+$Y^-zEld0rfC;74wznZ)Mo1h+Cj}5A02W8tPg&qg!ka`%^9_sm&By~H; z8jn&NNng|40Ab`=5-Q!Omna^vkd1(P%qCb>QKsC}kXim10+hY!YL3yByhAlvE3WxXFO78 zu0oiCxCKhErOs2{LP8iahE~th0mDqZPCqJNt7n-EV!_#%M{vQKw?e5f8%kziELP|~ z03f(BBw_0_U2Lzxfiq}l%6cM4;Sxo?l-!9<1RGxx+0=~yHdQ(Vu&1@za3$je@OT7p zjL!XW37{(w+o!u%4fT1HWbN8^j2QO2)@ati>z(V2+cMNmzxwWV?r;6uadb;2Jq)9L zyQeG3rlZm+&zpsAf9{uaT{t&69Q7ahi>)`m$%O|S?8<0ugeVnz; zAA6h7IBC)Ol#A3I_Nw}cKdAoE7Zf!t1)3i}d!WbLsg5!L2pNkYRA&RoNC5=#0@1Yq zNKr3&#yY?zfJ``Acfw%34gqu&O{}*d(fc#;#Y!jiR}xVA&blhqZ+liD(t3Gu*@0TeO&DUXC=z#LP?wS|G**o;Oax8|l=GNP@L6ho@2! zJSr3#nz@XEbfTQl@e-uXIp^ZDwph8d7prI$HqAAcC~r17=u%RZk(a}I$>%YDNN|Ea1&;f`Ucdb;{3D82Jjp4Z;+y*$r{@AD5Ob`|K|KV(>gI(Kq zo#Oy_bSnc@)kocHK;8aC^0?2KAhN@G-tjua8v)nmXEv(`k^IbVW#7$?HIYa_E7|;) zLP!P%wsu=Lw-qbqWak5T;D^Ico{N+*a~jb*QXSAlxCz4cmtHlz^sE~9>{4slA=GQl zj@s=F8FroYA8=o$en6LMIo?u9_m#OYM;Ws~6dQ5oR2R_pw*9|WGxp?ASvje@utOu| zIQKuUO=aL1nk_4CUo<~Er`zuJ{9MG_xDbhQEvB4nP{%DU>`^XKYIA2)<&`!1)x!@m z#;3t1m@rY9KUp`?nA+W*j{6_51fG(QUJ+2*&v=i zd!6q4*1cLoM4IvA#73ZhRtF<^CixlhGkaAeVk7R;|C!OFPt74(793_g%0a(-@ZI7Q z97N3*yYeF{x%uyKeaTnrZgNT@-9^Y?-L@Y9)$T?I^=)f0FdHr6;=e`$OvVQd78CVh!>63aD<1rY>L2?$_O-YZ{h;Ax&Bl)w!CW6K>Q(OfpHtD5AH~lsMXj5D ztM;9bVSlSrTjlfEq)7W!Ypxd5pF9twIxY^VF1t!M5r1~41H8+>;?tV?_D=%{>Cx`{ z?s8P1Nh~x&$vZ@j#n+4GKKt6KD!%5UB!VtLJx8$S(!I)fmFy{p@fkCBGGj;SXf?!e zH_x{b!hb)fUahsakpS~B6d5`By8ea@`uyiVuOgB|+tGh6PGlC3Nr!}#x)0zoiPXOg2d+EN59BY z5M6*<3qh?t1|dD6de}z0X)kQ;;SzBOcz+jC-IPT{Tp@Z2>T)ltaJzpLw0JLB(xdnu zdSGJ0_`kK`U_Pt2Mr+b4ROrXn$eaUXIes<>yl=FgF)f0#F%|1*$&cosiYPU3FdJ)R z%9LZ$A&t?wA18q01n@-m%%kcWGSLX0Nq+a-a}ScAu@+t}%86+~MpW0cmt2M3Gusf} zuK_EaHY`0&Jp}3ie#biZuQc=OzfsOqaOeaWjsj^9hsYv=%CDuSouC?)VFXlVONF`* z|4L!5={2Odp}XPkjQ~yA@JWZj4vPTVMrx9@_R_^UN7XfxfZX9Ngyj z1BVbsE$AvT+4%(#-8P*V$oK)L8)`egZ}%Oh@~og#aUyJl#Dg15Yc2k})c_(wxFQf4 zggkJm^VX6a`F!Q!Qj^WqT?6%38EeISZC6(}F_e=PEUa__Kc8YD}u5BW7<(nQ^w# zXW>GTQ=s%|vvJk9So!!b<}K&h@dM1mMwY+&5@pX@ibH*YI-8nQx%qkZJpZ`zqp0Xy zL$y0XjFqMCG1)4M?&6uD@;2gYw#WShPnAuuFC%;hu|Odb>D;i6J9KiJ6rAQlq)4eamyN;xzQ>ezn6Q42KbPxhvfvW}ihhTJ2mOL+X>+} z6*C&oiL_^^*gp6b->nbkcHsk}A3C&42Y>Y=MgI72DrSr z39tzK%TC6`<|P9nSQSp!#_nm_*i3pJ^vNd4j)cR5ADj=B>$%zWS{E$U#H7%;1UQrm zbQT%m$MD>b6Too-IIKNwI5xix#XY(m$!|q=JO|!UnZf(r#iID^F_Q$Ft&?aRB56UV zEx?BPhb86CB60^tiDZn2IG*{i;rKmmNLO`4Hj^t~=2TL=5k?Q{76r_coa#|Vc32tHmnwDs#R{Ra zJowXZtL5?kApIAa#;+b)1!^g`420qLbt@B;WB$rZ9phyEvk$7}#s9%wqFR}aO`2vw zJcb~G)r`~Wun7)D08I+a=6Sjb7Ao!XPhfjJkGz?!*mg$-ip-B%AR{AFJ^P+g`=j?N zrEZ6scyz)JkJ|tT+5iU-z_B*>;{}#d9z{EkxM@WT%uMA>y}Pc=$F-GW(vNpz*~w*z;#7wBs@CfRF0P-u+6dDAf$cqQGpD zgU!Zik_3k$fc1=ZuKDreUb67EAIpnmJQ9y+&0g*N&U-;xJ>z8Q$YIWB(h>L>2i;3% zAboNl{X8IjgP*34MH}D%0yx&@{)F5hM&e5_{>*P|1o~%kH#?u9Jq_?;-{af0&ry4t zIs|cRr%rNOv2te2)x?!+ReaIaDq2V8k;2uEYLXOdN;2dn zYEdsX3Tv{fsTGN7zk0|A8SQF|hj%)O!-$`$J_Fe$Dq4E3iqF1K6PB(}7HND;612_H z4`DN3z98zMDBWy)1z-vR-g`Q*6{4>Vrg@c&jng8dSgIY9^gQS|eFShe1gKq`geo|I z9m=9=MS0XP@cuAa3c{q*>BZLRiFp-dEUa&(6fh@)2O!~j^N?2O@m!bE-rMJr+mtbn zM}r{LT2sBg&b-`x_uXnB=caq~pSu$oCdW_G3SpMIQ0b1;!=61#9|rN78mV16?aw{d z=6;+2p7td*vTrcBpP$91j5)dNOzmklKS%9pHa}ZYgX}oAT^q?X;SO}agEIF5e(@6O z$BE@Re>Lh&LW<2IIjRvBlR((?jTk!F8XzJTJlRJQ&?pXg;m&SCTmif>6>7g6XO@cR zs62j1af9Xcb0jk&h6K}tB-EZnBo{J>EWeTaUxdSZg0NA?Nz!d9ObD_cl&8l~GZ70< zWH;_Nw~0P`(04jX0xU$M0e}qs51q1fO1<3?RIb#-Y(VPphAx5%pfn+c!cFd-iw~(edL%M_{bX{Wt+U(Umbq>Yr-K z&!iiZa?Ji`a+}%3dOIo=DkX9Y;k3N?ou!s6QO@i+%EBAM?1J5>r>u~1N0{W4H;0g0 zb5_egaf!ORiKkhy)lpGez+?y336+ULTq1a5Sg{N=;i}h)sa7MXy)3}G9lbrxgv#2B z1Qt{BEW(*Bzec$WmMIg-(?alBrkSoC@c{ml&bd~T=FcV~3`C&|hw;`nAl^TNs{0gS?c569K$1U3<2yDffTB@FTj)fX=?NXc&ku)t60wFsZd#Jo3_^P4o%;_YdA^JL ze@yuw;8`yFta6rLOn~S#bysuEzHLs}H1IJ_1|X+Hj#D9-3oP5oVDFB-X-JPTBtY{I z43hUSIA?=A84DePY{`CYY;25dtZd9|?2b9!0!i?M7S2eo>@X_{hQ>`7GU7k`^=YKf z&nbTXK0mW%oRF?u8|ewFv*s`=P5c0f|Cl}xzrGb$Dvx}CxhqM!y!dQF zqb)X{-&YAQBS7MJ(onZ>l92SW@qtSWspoadpUUo@x#l(4=)El zyj*hoWz8X$B}sRE*zh_+5rs(O)7??8FwTgv?neCkJPJ&l2h#I=r;QwZ_wvuaL>Z)E zN&>jjL9W4i?pwFzQML0NQS#fF4KQ{71;2~0YmRQyl#_vjiJ{UAd;L+1~L`^R}A`k8}WNi{|jmP%`oJJ>SFmYLls05CQ zo52|Ig^rjTLOj}B)|T|&Ngs!KpwcRh>gDldLb8P(4@Z5p&aolsf6{pczi$=X2ngfze<=>*wKXJyAroRDC~ z6XrALx&oxNJSa>CMz`SpKg+xI`||82h;=QgdAPsb)9#%P_n!{>H9%GqZ`na<%fkx1 z@N4C?98w{hhP9Q}P$%yJwv&Uql+{|VB5r1g&c1hueiT6{b0D_C@;&mA-ND=3rnF9M zc!-gO3{U}etiFwrwP|B^T(7%vN$}K@WOGop@I=+<+-qRjEOgkYDD=hpWPNj@35_4_ z2smyKw}TS6i(fFaIFgcap2st3jKtwHf@gRH1)o61w^=huIInB-?L ziXn~7E_j4GK8yaJyM#ECti%*Z6`&I*9-{$H%-Gfr=%r~N4)NO@9Ey|gkA>>bTL|Lv zET|bG>0t329TgT&(2ajX>k--@&tz*EZWsJ-U>p{Pz2>Edlkp($R-@AKpZ`w4DwB=BSqlg5^z424zaNf?UA( zxroptZtgz(JZ>M`kEw6O&xqjb;#}$0iTVk;^E0F$AYC>$i0ITcn(@B-$U3xUB);+_ z+TNstKfXg=;SB#^Kl?$rwRf z+iCZYEbiYEXRem)2&IlKBdQ4#Cg^jY`FC&@;{=eP(15JG2|qy7fR2Tug7@bx zvS|DwI<^U*Gxs*(!{RhY(aNy>&k4UZemI!~+{1kP%*QY8=Lf_wA>ypfjp|bfMjPOc zgGM+Ko37)Ab}EW3Kz9+Ep3-!I5L+2XW(D6jhckx|n{CY@7*^lCw@s)8c{LS=d(B{< zW&k!FsMWXYZS`Am?`>_{J?vg~Pqz(w7JDXpwt@GyXE2Gu+BONo&Kt2CI4CurcIv3j_sAD6coE8~z1gJ&TG z$MWIMy(y4lx4`~>fYGpc55@qG*0HfY$o3})zkWp7zJ_#2_l>7R>LMd|69JkZe)wU> zncC7D*)HxSLW-pg`nx&3dN0If2DUBIxe-`6K^w>N8*~Qs-PSeU8EWTCEky8TG`qh+ zs`=evzXMK28apf>lYK)tc0c>7{OakMw~s*F~i&=_-LmZ-fv&!4Yf{_>X!l34iN@4i)MSN~;9Zi3|yzyH(#&e{J6FwdU<@i9sO-MRn&0pD;gz1n?y;s5{u07*qoM6N<$g0P*ZX8-^I literal 20852 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 P00000NkvXXu0mjfZmW?p diff --git a/src/entity/entity.js b/src/entity/entity.js index 13ce2c587a..2a609b6071 100644 --- a/src/entity/entity.js +++ b/src/entity/entity.js @@ -487,6 +487,14 @@ * @name me.ObjectEntity#onladder */ this.onladder = false; + /** + * equal true if the entity can go down on a ladder
+ * (!) READ ONLY property + * @public + * @type Boolean + * @name me.ObjectEntity#disableTopLadderCollision + */ + this.disableTopLadderCollision = false; // to enable collision detection this.collidable = settings.collidable || false; @@ -659,6 +667,7 @@ if (this.onladder) { this.vel.y = (up) ? -this.accel.x * me.timer.tick : this.accel.x * me.timer.tick; + this.disableTopLadderCollision = !up; return true; } return false; @@ -847,85 +856,86 @@ updateMovement : function() { this.computeVelocity(this.vel); + + // Adjust position only on collidable object + if (this.collidable) { + // check for collision + var collision = this.collisionMap.checkCollision(this.collisionBox, this.vel); - // check for collision - var collision = this.collisionMap.checkCollision(this.collisionBox, this.vel); - - // update some flags - this.onslope = collision.yprop.isSlope || collision.xprop.isSlope; - // clear the ladder flag - this.onladder = false; - + // update some flags + this.onslope = collision.yprop.isSlope || collision.xprop.isSlope; + // clear the ladder flag + this.onladder = false; - // y collision - if (collision.y) { - // going down, collision with the floor - this.onladder = collision.yprop.isLadder; + // y collision + if (collision.y) { + // going down, collision with the floor + this.onladder = collision.yprop.isLadder || collision.yprop.isTopLadder; - if (collision.y > 0) { - if (collision.yprop.isSolid || (collision.yprop.isPlatform && (this.collisionBox.bottom - 1 <= collision.ytile.pos.y))) { - // adjust position to the corresponding tile - this.pos.y = ~~this.pos.y; - this.vel.y = (this.falling) ?collision.ytile.pos.y - this.collisionBox.bottom: 0 ; - this.falling = false; - } - else if (collision.yprop.isSlope && !this.jumping) { - // we stop falling - this.checkSlope(collision.ytile, collision.yprop.isLeftSlope); - this.falling = false; - } - else if (collision.yprop.isBreakable) { - if (this.canBreakTile) { - // remove the tile - me.game.currentLevel.clearTile(collision.ytile.col, collision.ytile.row); - if (this.onTileBreak) - this.onTileBreak(); - } - else { + if (collision.y > 0) { + if (collision.yprop.isSolid || (collision.yprop.isPlatform && (this.collisionBox.bottom - 1 <= collision.ytile.pos.y)) || (collision.yprop.isTopLadder && !this.disableTopLadderCollision)) { // adjust position to the corresponding tile this.pos.y = ~~this.pos.y; - this.vel.y = (this.falling) ?collision.ytile.pos.y - this.collisionBox.bottom: 0; + this.vel.y = (this.falling) ?collision.ytile.pos.y - this.collisionBox.bottom: 0 ; + this.falling = false; + } + else if (collision.yprop.isSlope && !this.jumping) { + // we stop falling + this.checkSlope(collision.ytile, collision.yprop.isLeftSlope); this.falling = false; } + else if (collision.yprop.isBreakable) { + if (this.canBreakTile) { + // remove the tile + me.game.currentLevel.clearTile(collision.ytile.col, collision.ytile.row); + if (this.onTileBreak) + this.onTileBreak(); + } + else { + // adjust position to the corresponding tile + this.pos.y = ~~this.pos.y; + this.vel.y = (this.falling) ?collision.ytile.pos.y - this.collisionBox.bottom: 0; + this.falling = false; + } + } } - } - // going up, collision with ceiling - else if (collision.y < 0) { - if (!collision.yprop.isPlatform && !collision.yprop.isLadder) { - this.falling = true; - // cancel the y velocity - this.vel.y = 0; + // going up, collision with ceiling + else if (collision.y < 0) { + if (!collision.yprop.isPlatform && !collision.yprop.isLadder && !collision.yprop.isTopLadder) { + this.falling = true; + // cancel the y velocity + this.vel.y = 0; + } } } - } - // x collision - if (collision.x) { + // x collision + if (collision.x) { - this.onladder = collision.xprop.isLadder ; + this.onladder = collision.xprop.isLadder || collision.yprop.isTopLadder; - if (collision.xprop.isSlope && !this.jumping) { - this.checkSlope(collision.xtile, collision.xprop.isLeftSlope); - this.falling = false; - } else { - // can walk through the platform & ladder - if (!collision.xprop.isPlatform && !collision.xprop.isLadder) { - if (collision.xprop.isBreakable && this.canBreakTile) { - // remove the tile - me.game.currentLevel.clearTile(collision.xtile.col, collision.xtile.row); - if (this.onTileBreak) { - this.onTileBreak(); + if (collision.xprop.isSlope && !this.jumping) { + this.checkSlope(collision.xtile, collision.xprop.isLeftSlope); + this.falling = false; + } else { + // can walk through the platform & ladder + if (!collision.xprop.isPlatform && !collision.xprop.isLadder && !collision.xprop.isTopLadder) { + if (collision.xprop.isBreakable && this.canBreakTile) { + // remove the tile + me.game.currentLevel.clearTile(collision.xtile.col, collision.xtile.row); + if (this.onTileBreak) { + this.onTileBreak(); + } + } else { + this.vel.x = 0; } - } else { - this.vel.x = 0; } } } } - // update player position this.pos.add(this.vel); diff --git a/src/level/TMXLayer.js b/src/level/TMXLayer.js index bba72a2ead..e75d0e3bed 100644 --- a/src/level/TMXLayer.js +++ b/src/level/TMXLayer.js @@ -669,17 +669,15 @@ // check for y movement // left, y corner - if ( pv.y != 0 ) { - res.ytile = this.getTile((pv.x < 0) ? ~~obj.left : Math.ceil(obj.right - 1), y); + res.ytile = this.getTile((pv.x < 0) ? ~~obj.left : Math.ceil(obj.right - 1), y); + if (res.ytile && this.tileset.isTileCollidable(res.ytile.tileId)) { + res.y = pv.y || 1; + res.yprop = this.tileset.getTileProperties(res.ytile.tileId); + } else { // right, y corner + res.ytile = this.getTile((pv.x < 0) ? Math.ceil(obj.right - 1) : ~~obj.left, y); if (res.ytile && this.tileset.isTileCollidable(res.ytile.tileId)) { res.y = pv.y || 1; res.yprop = this.tileset.getTileProperties(res.ytile.tileId); - } else { // right, y corner - res.ytile = this.getTile((pv.x < 0) ? Math.ceil(obj.right - 1) : ~~obj.left, y); - if (res.ytile && this.tileset.isTileCollidable(res.ytile.tileId)) { - res.y = pv.y || 1; - res.yprop = this.tileset.getTileProperties(res.ytile.tileId); - } } } // return the collide object diff --git a/src/level/TMXTileset.js b/src/level/TMXTileset.js index b45e6bca29..83897b3dc0 100755 --- a/src/level/TMXTileset.js +++ b/src/level/TMXTileset.js @@ -108,6 +108,7 @@ L_SLOPE : "lslope", R_SLOPE : "rslope", LADDER : "ladder", + TOPLADDER : "topladder", BREAKABLE : "breakable" }, @@ -268,6 +269,7 @@ prop.isRightSlope = prop.type ? prop.type.toLowerCase() === this.type.R_SLOPE : false; prop.isBreakable = prop.type ? prop.type.toLowerCase() === this.type.BREAKABLE : false; prop.isLadder = prop.type ? prop.type.toLowerCase() === this.type.LADDER : false; + prop.isTopLadder = prop.type ? prop.type.toLowerCase() === this.type.TOPLADDER : false; prop.isSlope = prop.isLeftSlope || prop.isRightSlope; // ensure the collidable flag is correct