From 47ccaceac463f7e91dfeabff705d266169eabeef Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 4 Feb 2015 15:20:10 -0500 Subject: [PATCH] Merging 1.7.5 Source: sprites and assets changes --- assets/banners.png | Bin 28409 -> 14475 bytes assets/bee.png | Bin 0 -> 2522 bytes assets/mimic.png | Bin 0 -> 2689 bytes assets/shadow.png | Bin 0 -> 125 bytes assets/snd_bee.mp3 | Bin 0 -> 13008 bytes assets/snd_degrade.mp3 | Bin 0 -> 8352 bytes assets/snd_mimic.mp3 | Bin 0 -> 5360 bytes .../sprites/BeeSprite.java | 51 +++++++++++++ .../sprites/CharSprite.java | 64 +++++++++++++--- .../sprites/GooSprite.java | 71 +++++++++++++++++- .../sprites/HeroSprite.java | 60 +-------------- .../sprites/ItemSprite.java | 31 ++++---- .../sprites/ItemSpriteSheet.java | 10 ++- .../sprites/MimicSprite.java | 51 +++++++++++++ .../sprites/PlantSprite.java | 13 ++-- 15 files changed, 255 insertions(+), 96 deletions(-) create mode 100644 assets/bee.png create mode 100644 assets/mimic.png create mode 100644 assets/shadow.png create mode 100644 assets/snd_bee.mp3 create mode 100644 assets/snd_degrade.mp3 create mode 100644 assets/snd_mimic.mp3 create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/sprites/BeeSprite.java create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/sprites/MimicSprite.java diff --git a/assets/banners.png b/assets/banners.png index 6041dbad8f5e0a4b3c369ee7afb530630f618ff1..1b0923d161c636e6f15ea46a70a8f098a8bc9b60 100644 GIT binary patch literal 14475 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 MR!yc}$|C�i9Scl>h($ literal 28409 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 aKtGEQM|W#l5BfM7ASbOX^+v)d@c#fpoELBa diff --git a/assets/bee.png b/assets/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..51f7081fef99676da9672c95cffabed3ea2a20eb GIT binary patch literal 2522 zcmaJ@c{o+;8ee2<>twDpVOyj@dmh&|?@5wb<)UHPdts+NwD&gcQ>Mf|M*Y1bEtp5G#>Sa{&&{v2s`#iKuX)NVr()2)?bZ1#x1LBe;?7N%E9) zkqGe`wF2>1dj$y9kwQoWIy>PUV%aEx1X01bSjl#&k{#;^e&%JP=V>(&#CSur)-wz|L@88= zAXH$D^-5T|HJsM zwK5=1ju8D2r7TJzMDHWadIpTv?(ZE<8=}#$y%l2gQsC`8nJ`L%NLB7UM-cr&5Q#-> z3J)T21xzM~Nfz)aWHO6Iul(>M@=$EQ(w z3@V*TqtX~NSa+#X1xtm4y1B1I?(=uADx88wXVQHc*HZogxJ~E@yr|6b%5FQFoqeKbour!!6RDxxZ$TP z#3MD)SQKSoYMU;VB72~<S>#@53($$R*YaX~ho3tTbi+TTN&-xYEwY{qCqvPQ1A+Xgi0)Cdi?vCJOmobQUKh1AAB zWKk4dEHX?jFSfM!*p=wM^jA#enLV4e1Fv$L5a_)0mVVJdV+ZOOzF--mV3@NcuPpnHNUQDy2MdB zcK1|bMuN=aF~VrG8yAI}xTRR`Q4ToVV^X>T;OMPB0PIg03f*t^{`N7y##3pjgqQw) zMHjNBUQV3zT{~nN|DuwWm-EUzw6o%X<&nLuh9dg4*w_3kFZ=X6+P3q8AJeFD2kqO% z!6Az;t@N(?r=^nyk247s{eYv*)zz*H@sHO@bpP}*xO)K>5aWQN)2|w^1OMpf8{Db` zhjh!vn+gi2RGD|9U2}^*CSxYN+v(4@6(6ip{daWFa8XP6?Z{DcSy#=-GACnWQJRsn z+*moeL@)?89-dM~-iq7&?EeFx4ra!*zXy;!ng7L^`B1?_iBoE`lL$gPK6spJ$-&|%R9(#uCejc zw6-=o-Lzk8hbxjFyz<$puO8n-1%*8feU8^$&m+P)Bm}?VBYpL&A30jQ$>#Z)}v9sl(yh_&Lut zC?c*uWg6h)ed_LcRaEn<@zs9fK za-zG&s3r%6vSLx}_!kT2DZbNzA(JCEW;k!en*mt;REq7Ym z{PxVp)Ksenf#nZdJbE*hJEruF4KfUFD0dwr*rrHdEeWmfbc@4m9ZwS489O?Q5Q)%< z9{O~0;CPvnw^QTLN7?Rcm?Z4e>kAr!-9Sy*p!Wh$W0$)mpuFb7q~~QrwrF{<=1ALa z9b*vCvzu*)c$mJya_-<$bld@(hJ_8CoHbcGE}Xrbz1%f=;2ePO+p5!b{KJBK=}@on z+McZvx1l1RHyQc6F`ZU7S*KHK(n5({oIKd)6HHaJRFY k?CTDE@#E<}XDwYosN8p4&+6&r>Ax*^z8CK-XKV8R09Nl3%>V!Z literal 0 HcmV?d00001 diff --git a/assets/mimic.png b/assets/mimic.png new file mode 100644 index 0000000000000000000000000000000000000000..e7fcd83ade2bcec78b593e94d068a332b7f21542 GIT binary patch literal 2689 zcmbVOX;@R|5lmrMMv7&+$0j=baoJa~;$N~{rg~}#Xu(;7e zQ7aa#1w{lY39U#_tbj{dTtGm$C=x+2rfdyXdhd@u{c+Eab7sCX^UlmWGtcv7@7T84 z)MS+j005>;f1e-#fayfQ%-B%(*4{5=>OL!_zM;~cLasC(6hnX)M;Hkqn0#;_6a;~s z{js;8O#q-D#|sXXh6ZeYvwIt{T&PSpYMAt{KE^J4@Os@wzl0hg+i=Z`T+ z#0L{;vvRm3jKO13SPIphK*iz_ zA0MPHnwZ0-2Ko4XjHS~&kWo^ph>F3)$H$}N3232s9|lLEP%v0L29HPSEKrjD0x2j* z2_*Il2tJU6E#`@&JfQ$Fj|fHzWl|5MF4MnC;EMtR{stCEJ`$y)3?m0c7#tdl;q&L~ z`d}@Q20{N#;~%Xh!TUuJCJ2%UWn#9jA6)wdXB~I{9%$ZBmko8hn5SzB7~>;k%lME$ z%JlI->i(cPJPsAd#k)tcDR>ltz~P`kq8k@QCW0V}5Q%dmyWu&6NO#Ht&OiBkVZCq+ zBA(!d#bI$cUpH^EpPLuKjezrF5WGo#j0In&Kq3VNY-k}iPZ#^6FaBSBsSGg$N`>NJ zp)h7)3U)*Zr9w%RP=sJGK6D+iZWm9$5yneg=G*jF)jp7z7YA|t#6mve1J6|6Kjc7U z6WBy7mxN*yuxu0=??yy{Sa%$Xq?-eGHa?O|B16cJ{+$1pKa4IZ%>1zY&+sf9=_Ybs z{CgF2%HPWb33MAI)~(8$uRi+&01Qi+K3>7{p3&VYTR)R6r^gfRZm}E?U#-O?62rW0 zh(A_!j2c~LIbCtG+;jKd?3p@~TTF@Tg_iE{nycdl-QLsrT;k>}cIoHspa6nwa>t51 zjhXa2)`<9;TASQk_c*?{VVPXr-Ee2BdyVF)L^0eTQI8Ev+BAun0@qgT!>Tgx0yqWs zROZtrCkm;Z(={pUXRXt|~5vA9>K(sd`n?={m@6E8gC(lGUG15Ah=>%O1M8I6JGj z9l<{VWbW}Q`ed5JK%8-Zg?nLRMy?U|h(T?i;y)yxF3>i@U}71LW(z~FyjWmE>J%ST zPESKMi~RGH@Y^S7{Tnu9c(lf@q&+FI?rRl0wl4m%%)xR_ zpS<(Jc?O<5aj$KZnS&(NHtD< z{=GTuaMF;)dqtRjWqCqEYJ+4^(LiUm?WgNWFZ1$=Uq3DQ5#jmF-b=ocGs$OT4Ly6#DtMOojBX{ zGo3l2&l#>L(`VCAN2h1c!INOAPDT6>tJIre!1J5e^!&>l8~t5GdPt(Hrt#=~RQjVt zy^7N0XMVYpPXa}e(&eB0rtNH_bx)h4Hkxp*6MN(hUFNT|ro%Q3r53hbeW&MG99f(^ zVw`x5(M7m4wFH~woLAZ#F?|8C$$YMJ4H(f#tEaCx*CsYTFfp#uRyk{o1Uu8S=2Q{= z);8%``lgRqdvhw=UM1Znz1z_^>DWIvVpX_B+kEv*cuyz5yK=T}2CNIM#uO;4y7yVZ zut-*P5e+tO7-HETqqn_!>!rhxqRVrN^Jdxb^lo;h?!%aHKXJsd zKJ-OyNY?gGlgXORHU%Z48{ixJE?&!g^a}D^LWHH8n+4Keo;S96;QUNJ9_nJB_BP9U zecH(4a#Shfm(}#S*tX85Kx%skB0x#rw~v#NVD(@}E<+w@s$$6lOVot+mw zyIXU^+TM}(*~CAb?itt?4IgnIt67=^T4xpl7DcC1AL#E;Rj48#vTp40 zukQuIzAmz}Xdz)t-Jg!8sGba10$1+RAHT=cd!8D|JZP`XLKVI_c2lFwF7qhV9`k*I gK48LfnzdvB2$}lIIlr)r^Or)V?>3)H-mHUv0!Rsf$p8QV literal 0 HcmV?d00001 diff --git a/assets/shadow.png b/assets/shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..827ed71387ffdc82de876c79208ff689a8fc292d GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%$$PpuhE&{2`t$$4Ju_DW*PnKS|HcM}3mDx>bQu`g7+kmT Ve*e(8(HE$c!PC{xWt~$(69E52B{={9 literal 0 HcmV?d00001 diff --git a/assets/snd_bee.mp3 b/assets/snd_bee.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e26a0a4078bc1f190efd29e0e51e12eaf3c6455e GIT binary patch literal 13008 zcmeHsXIN8Pw=OC+Km}Ba2!;SkCkY(_f&}SBs(^rj1PCDzL+D+KfC7SaML?uC0S!$+ z>AfmddKD=G0vix=6Wn{BZ=ds(z3(~Sxj(M!N1m)T#~kCG?|8?UGb<`E;bRn}3oNLu zqhdfoLHm+|;JgL!vU@sJ9|edR~aB2;b4K3B7G-676JkeP4H+Lpgeg1 zKney>aKIq}qJm-qmLRYQKwMG~EGi}e0rLYOqDfI!kX;J1}vurQ6^-P=0~9o;(8#El!$~BM1+r=ZO|dWLwg4V%F69e zT5D)Xsn|Q>;r5nD6_^Z=G+z*fLP&wd#NiNxg}4Ah5+orY3KEeJkc1!*0v6)pAW1QZ zg`_12@moNW3z&nY6B+q$E)aj+g%%D)svNl8-*Y8qL0YsZ+)6;y%7XNP5D^iO1dAaA zge9yb#lV(gqM{(nLo^6WDJusY22RQ^+zEkl5W--Q)`!9cKuJr3X-MheNOkH+mh!J+ zz5%!XarZ;pcBsQ4vX05-c(S=B977^r!3nADfU?H}G~hTi66g3s5PvWv%jVGVk7HIi zk^`N?>{&q|AW;xd=ud`(0S@v0%aDgw|3g7_oh&TvP}qMNQ^j7(3I8W!LWRhE;y0?H z)#*PkFco#ShDQ`_Gh2J{1JV}R#ol-&Jut5ug0o;ZtdxV3FBhPQ_ z{XlGK1Gl$ElJ*QCa_=Ws{6Emi|JB<6bVdKZoc}j#|831bB=cMP4<+-T1oEq9U`QN_ zl>M7H2h3sV9yVvG|6clk_(1%fuJ-38^uve4f48k2wu&EQ{LQ{gs)--ZNc%bIAR+Yo zN#fUHAtmwOdHvcW|D7QKfS*DB62Cv``bpPcV&E?s|5Vpcy8aRaf64f#y8g%LqWX__ z5lDN|VbX>4rh)v*;^*~~fu9WgWZ)+QKNGSV&VJDsny{y1-)HWN*7lA0)C}%G7qHC@$j0;mcd6!u8ixL}>h+mYH zdfQCr8PIFv3O)zEuPKWtC=87#C>{)>vbmqchPSKFsxbAvvrYLpwG*$d7234|^9q z)fmsuj^Rl-X?nrP{h|K$5H*nK-V+jb`q9v}%S72{nptx9;nXQH8nQ;8b1s7Q58`O( zB+Jr5h$^PgHc$)A@%tRnk|&psnrm;`<`V7YKg}{^ydY!qXI&i55c9ZMu{n#5Po>YQ zKcaH%I%Db!t2;0Kj~fc_fv!EdUFpH=)pGERb+P+OAHHF2&6RF4XK;U>xI2C&(cjrc zgbVNTwhCJ4tUEX=E&JWIy!ocdZLy(d#jZ}W-j7+K@LdhPT_6O4dw+=Fq(2I#093nv*{;*}DH?AW@-%4Ljm^|R8z z%TZ-qOpN@PkA0Bzf>6XWQ)|hZ%%<9y8C5HFlkf8f^=zj!&##U)r|79)X*y%B-EzSu zGkf5L;)9fC1$!X<>42|~O1G5t>CDqJUKJe)p6@ojTVPM~PX3qdz|reA4l5L2BL=cx zkrGpQpdwz9#3cMSUjB%@MUiHvsqz6jUYs z>Q+ExVY2O>B(+QX?x@e03*kuxb%IXwaNl+-(XGt9=b;L9G}~>llQ7|u$Ro5B)C>#y z-l@l^Z5S7PQxiCLF5MG+iMWuMhIf=$bk(K8+;6=hO^lJf)|FlVA%x<1#!T!mRFVIx zwdvwpKojGm2gUtu6P(+eFb?P%Hm_&1O(EM0rT%SZjEt>_U7CR)=5eCp7Suqo>9Mr1 z@W%|==C%?8-K##{Xrt_@OTle?T^`I%wWij6;5(c$+ zL|^#0kG-l~oqMa^Q2N@~{lr9X#*G;tZ%UUrF z)-j5CA12zh5&#U`3Z*#f1mMo*Kd=K*rTh}~)(9$1}Hb8#OZ_eP2lHO~a1UFq7d(PW>`gee}CT+DS{yd!0ir`#hN>_W!&j)OzBD7LnJn8=*$O(SWQN43)K z{(SIO@@uz8H?-@@z|V>yMl0wFGnWH(O1Y%R0@MW;KENyEyT!o$w4ZxOE`OVmj;f^~47uMgz(? z(Sr^Gp<{urqa3WhyBai)(Ny7R7qfi^x&C{f@?8t7IR><=$h>uN(mRu}m99Nn#c%IyZ~GOST)dMGL#L~Or>pXc zr8hZgja*tiALS0V6Rio`R{cZ=<}?dgd#}~C!bWCaYgA87M;+Hmb&KFcRrU7rjVC9R zLu%LMd-*A2*l(PWD7WVJejI}$?L}&VMy4&<9d+oX+Jx(vrb(T)*9*QImC>sA;ZM2q zoS0ET@CkqM)|1{vk!tZdWNaN*Eyc1)IUR00Kep(@uVba2Eg}BNMX|uiOXFTIeDYPm zR={b68UIb1_OOemf;=}u9i9cw5qn?aTanVUaj|Ak+q0M@+0UtmT->2P(RD4{D&x^5 zX5b~p>rc=E#1@Wgjw#(yt@dh|5xB9rDDB=}Oj(|t_?lfMGd)X{VB&4=PWrND_(j|3 z{W*7_k8%G~nW{6GZ$9&fwZOq5Myk`sk$eX00-+kW5r+eBGmKBoaM<_z$B>UC6tRfa zZokjbXI)Qm-o9`Zdyidi3oHC^nG+YLM5~(AOqU2K17KEclfxp!Ms6MDi8M2}5Vd`8 z+35>PtH$xJf1wC?eB3shFsCOXsWe09QXnhm)@V@{|1zq~Kyr)@kI1bP?An@nWSBKH z4T0v*diH1~WV(5LA!DoOP-Dw5t2;4da`5=ME%jWRCoJOFZNQ3mb`!Yum|iEhu1tI+ zbSuZ`#8HKO^@*6HbdiAZbE5jxeG-7}93N;wH5*+{5MxxQGs{EMqx52%nac4r=)EwD^K>J%Gs+`)!$ zn@gn9*0=;&f9;Jm8CwJAi`ERWw#G`PZ%ebK06V{a-3!touiigTRi4-C9oJ3ZLI7bl z8IKHjV_Y~wX5S(lQyII+z_%fe1#Q_{sNxe zin}5!^icWyyu&sb+j~F`?+aOv6R(^1M=QLk1N1-nDZW1fhvcg8_;fiC3~EIRKCX;c z(B2zbCw$KJ{yz9^Cwy6;GNHQU%^L+{(bF9n6|ljq)N}y*NxM7dt&JnAcbd79GIKqf zDDt1M;6_V{#0nMD1W!U}<)XoeS6|(?aL*+YK-l++ADAS`> zEproHC<%Gfi@aoP9UQGwNzXmn%l)%`p1Noih+TK;%nLk0BTRYhjM!XOsvaL}s24q; z_NZ?|-v_`{9kr^$=ZN)T!!^Y^x4G`_9Qz(gHr6+HdgD@f^($PKElcSFy$U*)tf$NO z_9T@+zZp1Kf<8t=W=S5b{Pz@>3I%>DYy4crDFK_9oiRYnt!%Dpl zbd7I!RK|`#Ddxb|Tp(J$wW?#4fVoEO$4Ra{%_|WXi!uVtwhne7x#JAy z^t-mcEkzmZa1lnAkyR2^2C&;yj~VqBx92N>viIKO9!}q1kAQjl@;^}RQTQm?P^c~= zQ!ridz3Z@tG;?||WXRSvmYX7ZuH0Oo-Nl3|S_L|G8_}N*Hm3G4E@DWC>*X3#;N)Lu zcWPdY4YE_*H+0SjzDIxIW}7hQ?f@{TCXt0wSMRdei`BD%a;mB$Y#ML56T@H=%~1^H zT!fLmErRU;oetmyUF}tZA!{(rXY6^9vua)T{TjsR8Pf%>TG#2!Z4e?*>kZY(|GZ(~Q zf-vb|R|kQ4i(j)o59wa2`ieOcMDOOyLisd=-`QU>!MV3S%4(Z4cI0c!7e4S10te^v zJ?VnklB7*)JGvkq&Z=P6%1Ah_j@%Qc_jjB2ss?beS+N?jM2I&L*E$Q%`@J|V`pwn| zb@+Rson89uA-4IF-P+!fJVkllSL=fDf69rLpuN z+~Nc@GDV)#@6z6_Ai--&$PG=O(vwTyy_%*EHYZkhgDGMOGlY>+YsRoa6J78To5c4C zP}jGDf0?oIigS+I<48@U$(5jSnr#$y9@F5d%SUR$R_Kp zpHoWkg=}5-8;{MZ&ryS=M4K{%7PbF?)hDHV&wMo=-mJP@R&0mW_nmS>E<$CAt7mid zfY%;DMy9@Rz!5%Ys|wx*KFe>@wYZC5_3YlT)QQgMr-gh)E3iC& zVlB5sfAiDF2-k#k&N;hAMU_C`RNGsRTg4vJFj@@TT=nO|DHRo4n>I@C=*Pnq$=E({ z^#PyDx~mTwTYX2GIJq#7jgM8Uph}`b8k8KJ*eOm;9`VQ>G_!pQ2J155o7x{rEMQJlZtCBQkvRE*O(PQ2lgtNc&5Lx5;D-1Gl;muyKOGl3)(y-V=+hqKBJds&pk)4h zh^@d%Q;}I+yXxBsnLy&xfqAXH3a07nu?O2v9Vh8ZrHcXiv<&3Rz-)6Rs9TOVYgsj;=6~x0h>5Xjusr$ohaW8 zu!O#PH=iz_lGYi>C&As%zQ%FZQg<@0;nvOIuj6N#H(X^H?)CG?8Vk|&_4Z#>4|JRH z$&O+bQ+@Y2*S}s{jYxR*^pljj(Tl+Q_HjPj-He$eTGayEwb$W_Y@n|-CSq8_{DzkHZ?}B)AB8e&{fxr z&JE|W4WChB*Fbnz_=8OFHUEqv9*@Kod+5?N>BL`#?lE7%39_L-F&go9XRZ$KWO+g> zh*c%LSsXkr90<|#HE)}w&deS(ebDY__J)e3L++F^5G#$=Pm^o zApNp98=+_9ue*3`KfE%>x9wr!z9CUs*)>sLz3*6g*n69R>)tO&weW^6qZ-Y8t*O1x z`J`C;y#DkZBOVb&?##%ARQP5o)y?wf8I7+~W)jj3zsD0p0~#Bn`|Ro}ar+brKQPE-kV(v z%WD}MSL@ADzhUf7{Cqv*-q~gKm|yak{1nwx==@k^v-f{-=T4()_k7P2eVi*d6E-_% zKoc^Xdo5d|6|vE=VPgJWdzs#NN1zf@JahBo=QF|1CPngTcdlrlxi{95oxdiC^Rcr% zSBj;aWV`+BO7gml{w2QPZPW$pN;ipy=ri=7sq@{3XYx+qdTrtuY0rwD^yzpn2FeQb zw;#-N7aN18Kih8{~y0I%xCxBbmZzo)| z!IyMX`L^6Qu{UuZS!Jp1n!lWo@L)xbLm9nAoJe13+?Vx91jK1e4GrfRmW<<`7mA-< zHQv_Xdo}LW^g#{wiK*COcYkc}D#e&tSRYzvncw<3L}^UFu~Vm5 zT@M$~EY%)e3?5btjkU_DBBEQeAE&xArQWE%NyhexbNC?Etgf+)K1mNl{Z^2L!8MFB z>OADkjWig#>V3v(l@CSQ+8)Qx1=jOxhqESMaN|k0)C}nFNs+kaG~D6iK_^huulLb6 z>%JOJg)>SmT*PQ|D^N=&G@3Rxd|>LSv4C;wBqSB0n-zD;rb*SMTv9&^b*DE%EHWo< z*^XK@r{sL^R2`ji=FQr~uRU&GbH^4h<802bkg*N0hqwpHdeA?P8WVzS-OI~Xs&Voh z8yX=d2z)WxVtOlnJc3Khs2eOER412J7CSL`%4|*|t3LH)a4hPYY7#KI%v4CeGpz9{ zt$&%jy=v)*j;0NP2p|kM@caN^QcX9#sis_-+=WjKppLV*m&3b9~ zmxYhT*L`xwYKZ^kB4HZ@(&JR38);wvm%%?iVCg@~^~Wdw<~tI$F&4i|;NZ4S>^~26 z@Xv?;4WlG%M2@nfpcK*{EC0g%|Mp)mWW5nN-W|R3za98b#M6^k`V&_FK9m0gNM-xz literal 0 HcmV?d00001 diff --git a/assets/snd_degrade.mp3 b/assets/snd_degrade.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a2685a448c879384cec0b4935a3032fb3184a5dd GIT binary patch literal 8352 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 literal 0 HcmV?d00001 diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/BeeSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/BeeSprite.java new file mode 100644 index 000000000..547a5952f --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/BeeSprite.java @@ -0,0 +1,51 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.watabou.noosa.TextureFilm; +import com.shatteredpixel.shatteredpixeldungeon.Assets; + +public class BeeSprite extends MobSprite { + + public BeeSprite() { + super(); + + texture( Assets.BEE ); + + TextureFilm frames = new TextureFilm( texture, 16, 16 ); + + idle = new Animation( 12, true ); + idle.frames( frames, 0, 1, 1, 0, 2, 2 ); + + run = new Animation( 15, true ); + run.frames( frames, 0, 1, 1, 0, 2, 2 ); + + attack = new Animation( 20, false ); + attack.frames( frames, 3, 4, 5, 6 ); + + die = new Animation( 20, false ); + die.frames( frames, 7, 8, 9, 10 ); + + play( idle ); + } + + @Override + public int blood() { + return 0xffd500; + } +} diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java index 5be57d6e2..df3988cdd 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CharSprite.java @@ -19,6 +19,7 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites; import com.watabou.noosa.Game; import com.watabou.noosa.MovieClip; +import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.tweeners.PosTweener; @@ -75,15 +76,16 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip protected TorchHalo halo; protected EmoIcon emo; - + + private Tweener jumpTweener; + private Callback jumpCallback; + private float flashTime = 0; protected boolean sleeping = false; - - // Char owner + public Char ch; - // The sprite is currently in motion public boolean isMoving = false; public CharSprite() { @@ -186,7 +188,18 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip flipHorizontal = true; } } - + + public void jump( int from, int to, Callback callback ) { + jumpCallback = callback; + + int distance = Level.distance( from, to ); + jumpTweener = new JumpTweener( this, worldToCamera( to ), distance * 4, distance * 0.1f ); + jumpTweener.listener = this; + parent.add( jumpTweener ); + + turnTo( from, to ); + } + public void die() { sleeping = false; play( die ); @@ -227,8 +240,7 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip Splash.at( c, PointF.angle( from, c ), 3.1415926f / 2, blood(), n ); } } - - // Blood color + public int blood() { return 0xFFBB0000; } @@ -383,9 +395,18 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip @Override public void onComplete( Tweener tweener ) { - if (tweener == motion) { + if (tweener == jumpTweener) { - isMoving = false; + if (visible && Level.water[ch.pos] && !ch.flying) { + GameScene.ripple( ch.pos ); + } + if (jumpCallback != null) { + jumpCallback.call(); + } + + } else if (tweener == motion) { + + isMoving = false; motion.killAndErase(); motion = null; @@ -415,4 +436,29 @@ public class CharSprite extends MovieClip implements Tweener.Listener, MovieClip } } + + private static class JumpTweener extends Tweener { + + public Visual visual; + + public PointF start; + public PointF end; + + public float height; + + public JumpTweener( Visual visual, PointF pos, float height, float time ) { + super( visual, time ); + + this.visual = visual; + start = visual.point(); + end = pos; + + this.height = height; + } + + @Override + protected void updateValues( float progress ) { + visual.point( PointF.inter( start, end, progress ).offset( 0, -height * 4 * progress * (1 - progress) ) ); + } + } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GooSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GooSprite.java index 7a19cd54e..b9413338d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GooSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GooSprite.java @@ -18,13 +18,22 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites; import com.watabou.noosa.TextureFilm; +import com.watabou.noosa.particles.Emitter; +import com.watabou.noosa.particles.PixelParticle; +import com.watabou.noosa.particles.Emitter.Factory; +import com.watabou.utils.PointF; +import com.watabou.utils.Random; + import com.shatteredpixel.shatteredpixeldungeon.Assets; public class GooSprite extends MobSprite { private Animation pump; private Animation pumpAttack; - + private Animation jump; + + private Emitter spray; + public GooSprite() { super(); @@ -43,7 +52,10 @@ public class GooSprite extends MobSprite { pumpAttack = new Animation ( 20, false ); pumpAttack.frames( frames, 4, 3, 2, 1, 0, 7); - + + jump = new Animation( 1, true ); + jump.frames( frames, 6 ); + attack = new Animation( 10, false ); attack.frames( frames, 8, 9, 10 ); @@ -58,13 +70,64 @@ public class GooSprite extends MobSprite { } public void pumpAttack() { play( pumpAttack ); } - + + @Override + public void play( Animation anim, boolean force ) { + super.play( anim, force ); + + if (anim == pump) { + spray = centerEmitter(); + spray.pour( GooParticle.FACTORY, 0.04f ); + } else if (spray != null) { + spray.on = false; + spray = null; + } + } + @Override public int blood() { return 0xFF000000; } - @Override + public static class GooParticle extends PixelParticle.Shrinking { + + public static final Emitter.Factory FACTORY = new Factory() { + @Override + public void emit( Emitter emitter, int index, float x, float y ) { + ((GooParticle)emitter.recycle( GooParticle.class )).reset( x, y ); + } + }; + + public GooParticle() { + super(); + + color( 0x000000 ); + lifespan = 0.3f; + + acc.set( 0, +50 ); + } + + public void reset( float x, float y ) { + revive(); + + this.x = x; + this.y = y; + + left = lifespan; + + size = 4; + speed.polar( -Random.Float( PointF.PI ), Random.Float( 32, 48 ) ); + } + + @Override + public void update() { + super.update(); + float p = left / lifespan; + am = p > 0.5f ? (1 - p) * 2f : 1; + } + } + + @Override public void onComplete( Animation anim ) { super.onComplete(anim); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/HeroSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/HeroSprite.java index 8b8d3c62f..85ccc49ae 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/HeroSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/HeroSprite.java @@ -24,16 +24,11 @@ import com.watabou.gltextures.TextureCache; import com.watabou.noosa.Camera; import com.watabou.noosa.Image; import com.watabou.noosa.TextureFilm; -import com.watabou.noosa.Visual; -import com.watabou.noosa.tweeners.Tweener; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; -import com.shatteredpixel.shatteredpixeldungeon.levels.Level; -import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.watabou.utils.Callback; -import com.watabou.utils.PointF; public class HeroSprite extends CharSprite { @@ -46,9 +41,6 @@ public class HeroSprite extends CharSprite { private Animation fly; - private Tweener jumpTweener; - private Callback jumpCallback; - public HeroSprite() { super(); @@ -100,34 +92,12 @@ public class HeroSprite extends CharSprite { Camera.main.target = this; } + @Override public void jump( int from, int to, Callback callback ) { - jumpCallback = callback; - - int distance = Level.distance( from, to ); - jumpTweener = new JumpTweener( this, worldToCamera( to ), distance * 4, distance * 0.1f ); - jumpTweener.listener = this; - parent.add( jumpTweener ); - - turnTo( from, to ); + super.jump( from, to, callback ); play( fly ); } - @Override - public void onComplete( Tweener tweener ) { - if (tweener == jumpTweener) { - - if (visible && Level.water[ch.pos] && !ch.flying) { - GameScene.ripple( ch.pos ); - } - if (jumpCallback != null) { - jumpCallback.call(); - } - - } else { - super.onComplete( tweener ); - } - } - @Override public void update() { sleeping = ((Hero)ch).restoreHealth; @@ -142,7 +112,6 @@ public class HeroSprite extends CharSprite { public static TextureFilm tiers() { if (tiers == null) { - // Sprites for all classes are the same in size SmartTexture texture = TextureCache.get( Assets.ROGUE ); tiers = new TextureFilm( texture, texture.width, FRAME_HEIGHT ); } @@ -160,29 +129,4 @@ public class HeroSprite extends CharSprite { return avatar; } - - private static class JumpTweener extends Tweener { - - public Visual visual; - - public PointF start; - public PointF end; - - public float height; - - public JumpTweener( Visual visual, PointF pos, float height, float time ) { - super( visual, time ); - - this.visual = visual; - start = visual.point(); - end = pos; - - this.height = height; - } - - @Override - protected void updateValues( float progress ) { - visual.point( PointF.inter( start, end, progress ).offset( 0, -height * 4 * progress * (1 - progress) ) ); - } - } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java index 4845d77fc..1b1f27b87 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSprite.java @@ -18,7 +18,6 @@ package com.shatteredpixel.shatteredpixeldungeon.sprites; import android.graphics.Bitmap; -import android.util.Log; import com.watabou.gltextures.TextureCache; import com.watabou.noosa.Game; @@ -34,6 +33,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Gold; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.watabou.utils.PointF; import com.watabou.utils.Random; @@ -140,9 +140,6 @@ public class ItemSprite extends MovieClip { place( from ); speed.offset( (px-x) / DROP_INTERVAL, (py-y) / DROP_INTERVAL ); - - Log.d( "GAME", toString() ); - Log.d( "GAME", String.format( "drop aside: %.1f %.1f", speed.x, speed.y ) ); } } @@ -158,22 +155,30 @@ public class ItemSprite extends MovieClip { public void update() { super.update(); - // Visibility - visible = heap == null || Dungeon.visible[heap.pos]; - - // Dropping + visible = (heap == null || Dungeon.visible[heap.pos]); + if (dropInterval > 0 && (dropInterval -= Game.elapsed) <= 0) { speed.set( 0 ); acc.set( 0 ); place( heap.pos ); - - if (Level.water[heap.pos]) { - GameScene.ripple( heap.pos ); + + if (visible) { + boolean water = Level.water[heap.pos]; + + if (water) { + GameScene.ripple(heap.pos); + } else { + int cell = Dungeon.level.map[heap.pos]; + water = (cell == Terrain.WELL || cell == Terrain.ALCHEMY); + } + + if (!(heap.peek() instanceof Gold)) { + Sample.INSTANCE.play(water ? Assets.SND_WATER : Assets.SND_STEP, 0.8f, 0.8f, 1.2f); + } } } - - // Glowing + if (visible && glowing != null) { if (glowUp && (phase += Game.elapsed) > glowing.period) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 5b1b05080..8667f24e2 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -57,10 +57,10 @@ public class ItemSpriteSheet { public static final int SMTH = ROW1+13; //Row Two: Miscellaneous single use items - public static final int GOLD = ROW2+0; - public static final int TORCH = ROW2+1; - public static final int STYLUS = ROW2+2; - public static final int ANKH = ROW2+3; + public static final int GOLD = ROW2+0; + public static final int TORCH = ROW2+1; + public static final int STYLUS = ROW2+2; + public static final int ANKH = ROW2+3; // Keys public static final int IRON_KEY = ROW2+4; public static final int GOLDEN_KEY = ROW2+5; @@ -71,6 +71,8 @@ public class ItemSpriteSheet { public static final int KIT = ROW2+9; public static final int AMULET = ROW2+10; public static final int WEIGHT = ROW2+11; + public static final int BOMB = ROW2+12; + public static final int HONEYPOT= ROW2+14; //Row Three: Melee weapons public static final int KNUCKLEDUSTER = ROW3+0; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/MimicSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/MimicSprite.java new file mode 100644 index 000000000..6d9c3f9f5 --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/MimicSprite.java @@ -0,0 +1,51 @@ +/* + * Pixel Dungeon + * Copyright (C) 2012-2015 Oleg Dolya + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.watabou.noosa.TextureFilm; +import com.shatteredpixel.shatteredpixeldungeon.Assets; + +public class MimicSprite extends MobSprite { + + public MimicSprite() { + super(); + + texture( Assets.MIMIC ); + + TextureFilm frames = new TextureFilm( texture, 16, 16 ); + + idle = new Animation( 5, true ); + idle.frames( frames, 0, 0, 0, 1, 1 ); + + run = new Animation( 10, true ); + run.frames( frames, 0, 1, 2, 3, 3, 2, 1 ); + + attack = new Animation( 10, false ); + attack.frames( frames, 0, 4, 5, 6 ); + + die = new Animation( 5, false ); + die.frames( frames, 7, 8, 9 ); + + play( idle ); + } + + @Override + public int blood() { + return 0xFFcb9700; + } +} diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/PlantSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/PlantSprite.java index 9e524d5c2..84e1cbf65 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/PlantSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/PlantSprite.java @@ -23,8 +23,8 @@ import com.watabou.noosa.TextureFilm; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.DungeonTilemap; +import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.plants.Plant; -import com.watabou.utils.PointF; public class PlantSprite extends Image { @@ -44,11 +44,9 @@ public class PlantSprite extends Image { super( Assets.PLANTS ); if (frames == null) { - // Hardcoded size frames = new TextureFilm( texture, 16, 16 ); } - - // Hardcoded origin + origin.set( 8, 12 ); } @@ -65,10 +63,9 @@ public class PlantSprite extends Image { alpha( 1f ); pos = plant.pos; - PointF p = DungeonTilemap.tileToWorld( plant.pos ); - x = p.x; - y = p.y; - + x = (pos % Level.WIDTH) * DungeonTilemap.SIZE; + y = (pos / Level.WIDTH) * DungeonTilemap.SIZE; + state = State.GROWING; time = DELAY; }