From b048a3b242eafcebb40b0224d07762d825608505 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 9 Oct 2014 01:15:37 -0400 Subject: [PATCH] V0.2.1 : WIP sprites for new quest bosses, plus a small Fetid Rat tweak. --- assets/crab.png | Bin 4783 -> 6450 bytes assets/gnoll.png | Bin 4250 -> 5351 bytes .../actors/mobs/npcs/Ghost.java | 24 +++---- .../sprites/CrabSprite.java | 20 +++--- .../sprites/GnollTricksterSprite.java | 62 ++++++++++++++++++ .../sprites/GreatCrabSprite.java | 38 +++++++++++ 6 files changed, 120 insertions(+), 24 deletions(-) create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/sprites/GnollTricksterSprite.java create mode 100644 src/com/shatteredpixel/shatteredpixeldungeon/sprites/GreatCrabSprite.java diff --git a/assets/crab.png b/assets/crab.png index f80950592dc527b36f720bc1911c9bdfd139220b..ecca05df6885368c5f15352f21380b712652696e 100644 GIT binary patch delta 6441 zcmV+^8P?{nC9*P*7Y-l@1^@s6{i&wp000U(kvbcHNXMO)cT`l@7KhKhcY2}CFalDB z-n+m6(tDF$MPZm3U?>9)Gc>Uwq5=^`M4BQavC@~mCR4i{s z){CyJy!Z0*`{S%{?X&l}`|Q2XS{DG4r!SY621@~u$`kN|Je=tfkx_K)0Du7=V1OwA zOjbsJx?iw+2oTB3&4r#Jaspoj0q}ZQyaI63&@+He2mha>S?PR%=$HTzo3l9?ED;xo zI3-JvF1F8#m>QQXW*8-Az9>Nv%ZWK*kqtikEV84R*{M9Xh{ZXlvs2k(?iKO2Od&_a zh_8qXGr62B5#JKAMv5?%E8;ie*i;TP0{|3%No*HzScxJw5iyA$667M{MTtq^NHl*T1?CO*}7&0ztZsv2j*bmJyf3G7=Z`5B*PvzoDiKdLpOAxi2 z$L0#SX*@cY_n(^h55xYX#km%V()ba7P-BdM)O9LAe(eV+3K1aD`^8=Vqi??WFd%+; z;VP4hbN}x*{b#|Y;w6Kd@Hx&UD1^=u@-r9r#Lp6-0Rcz?Dv$@tKpp4+LtqB1fGuzY zZonJ(gAfo2Rs$AD1gU@zvOpf#1PVbh*a`N4YETCnK{IFt$3Z7J1u$9dISw z03U@r;Pdb`_%=KWKZEBGfDjRX8ls9AA`HX@@kgSNc!ZCvM~aXNqycF~x{*HQCNhf5 zAa79^6a_^`8KP`ao~Te13$+Hd9#w*>Mjb|Vpn6d^QDdlC)JHTKt%%k~+n~MB5$FVT z7P=5!fo?*#qc5UwqbJa>F&GRDqm8k`cw!qSW z9o8Sq#0s#5*edK%>{;v(b^`kbN5rY%%y90wC>#%$kE_5P!JWYk;U;klcqzOl-UjcF zXXA75rT9jCH~u<)0>40zCTJ7v2qAk2k8*$9O*9UC7DdtB0G|!$O7^Xax?h?`4Rbz1VzF~!b^fJ zu|c9nqC;Xx;<+SVQd81Na9-IjYNPnUO-PnO>$-zoo40i~d)5U7x)uwUV#!pu_YQro4hrA14RFTJM- zE9xl*DXvvKsMxQ6IH#nn$1Tab%m#xv(&ej{OPg%dUv9uA` z9Jl$+*3dTD_K5A&a_!}u<&De7?bPg;cJ+3n_H_GL`vdl)4yq1JhX#koj_QtV$0o-~ zCtar`r=w2KolTti&h5_gE;cUfT+X>7t{$#Mt^;m=GH#)6)ozd6)!Y-@Tij3mrl`4 zt5a5=j**OE#+-;n$A-rqiG9!XXEreB;=JN&<7Qbdti7yfY)5uEdzxd%DdSAW+r^i~ zPbJtT>`s_YbV#g7oZ-4~tGO?dJd^5@=9B$@lMf|-N(oPCOU0$erk>=<@RE7GY07EY zX@lwd>4oW|Yi!o+Su@M`;WuSK8LKk71XR(_RKHM1xJ5XYX`fk>`6eqY>qNG6HZQwB zM=xi4&Sb88?zd}EYguc1@>KIS<&CX#T35dwS|7K*XM_5Nf(;WJJvJWRMA($P>8E^u zll-#$SDV8(cNZuXY%Cbx;<2TrP@<4uII`7tYuz@~Htx28?dIF7wtp;Q7hNqjDXu7f zU&1Q6`iQBE%}Du1;nX3v$1 zWfgUM344WmM=O0RyQ(y*c2>QwPOQFvUE^HSR;yUMy>@;dd*9H0$NjB!N_E9`?+$Pe z+^P4d?`Y6!s5po@n0fF?V_0L~w~TL_n-rRgn?4-k9U46xbhx+Ks=4`y;*ru8xJB49 zeKh*$jqhB)>uNP@t#6~X6(0k~gvXwKAN&3Aai8NoCm1JMf6)A)ww=;m)B$yWa$PfXAK z3lSG?^#=A1T=cnk`I7sk3w=&~XD{1bK6SDQ$NC=!KfXWC8h`dn#xL(D3Z9UkR7|Q&Hcy#N zotk!^zVUSB(}`#4&lYA1f0h2V_PNgUAAWQEt$#LRcH#y9#i!p(Udq2rJoIYWtDd=l zxks;4UoXrTy^()&_$}jY-@EX4lM7kzvF|HC=zi$_==1Txr_@iM{sjY=^ZdHR=+giI z00v@9M??Vs0RI60puMM)ks%j<00(qQO+^RZ3JC-*1~xT>5dZ)VdPzhOOySh8jKh)xe7?5t-bQ%-2@gt!`N&I71MbtmYRu@ey zG}YKRY@3#kHJS`k(STw?breK~0i}`+GDyK}5SWlo!r4ED`{vD?_ujmJ`LH;4Zt^nW zzIV>K=kuO>&Q(T4ICA6&!Xq@t;lqbt4C2cbB%NZ}21Y~y&0^TKrGG9BoWkr-pz99M+L@%XXZtJf0}e8UwU;Q$aGzmD^BhqX60qN=wKyYJj* z08rN3N2smG*rEO29an^Z2LLWqd?Wi=+3FMmz`}x`y5UmfbGc1AtGs+KR}g>X-rLQs z=t@ZR*roZSRgZRatJ~V74n~)Z#2>9j>WlrMGn3GnDQ`c2x(0T=)`aV|CT#j~p=b8V zVN`Iuk{N*A+=@uO9)keM8D?yai4EptQB`jrBK3Mep{S#xJQh`aLcrnAki)Y}=DSF} z-dV7c>^xd|2z7YHVvo`eDsrOrlYxiNiydGvCyQchOkVY9Z?{5xbdUxC#+XMIq-uYi znG{>o;1lnEHb*M%RgaR*k&3xVfU#tZhH^Ip05cr0vawSobfNbf)$G%mDKz{x0svQP zS3)9oD-?hDuC#SQJV_&dFoH)g@Yv0*xKLZKm~txd5X$gkxs|7{kcHJ6gqsTUY280h zF}dBFF{arGn+o%3{pY8d)*!BEf1R1cojEpFoBi#7*4=0Ksz+&Vl3w`cz4xp z97JxY6>0_2V9JY=JSdD-{qB`$V@8OX9L&jb_HTP^u-9Kh)Mp0(08yVE0H2o@-#Ej6 zu{9>P?k}sI3S6WUzPI<-oO3@}Rja{);^7g^A07gg!BoO)l^b0$(l3`QNqo7-8*NT^ z((z#Lv0?c9d9QjDvIZa4AxD2zt{K*QH)VO3))!)HOpNIo7#?j$OUEca{;Lr=)3?ET z?ZsR0f>~Bj3-!`^d^8w!x8<3VGi zDtvN+9(dd>yM8V3oW6$~0?>hfRBlq)iRCZXXZMx1>`g%#{VAm46pMd>*wof87X{Nr~4oSO_B4IpcVsIBM> z9D@t82r+YBo-P1SA;pF!{Z2eLn3F}k0Oc>dv>NFvytD#aR8$nu8q|&zO8AuIC-=Sd zZ#f>c(39#QSn_)n;CUyYY;}rTSD>jdU#R*w73O{JPVmF1+UK4Yg!$gKu5 z*{LvJ{nV}Nz`F&~xxTjjbgw#1c&5Ayfba+pnNd(M;o*d(r4cL`c>Ki`9>E`BC4`5p z!$!{@M|J(MFu!n46yBa6t=VzKc>de(aC`Sw-0K(}njQ`U;Q$aGFPrmohc#R5z{pux z?;d0Tpi4bU0I+a>(PuDyKZ9w-0|4gc(~946{NXXh0id8@g2E9w8~~mYYxjOFc^d?9O65q98(QJO7KczsfkGynbgBzB0~#RcYmO;Q%l>dVU@Q0O&IM zNiO=AmPW9w51vy@EV+FXsPckk1Y+Z>t{;XkJcKg57P)C1Qo20t=MJkyk8*gl1dK`-iqsEM3s%u}kwutNb6@MiqI}vW`IQ zuQHBEywi(EUO!{C?H5toei2P?eyF&)sNr}eGk}M-QKY>S380_klxJ;-W4a9IyR>&A zVQ$t=fJbZ7_cH_>{tT^n(%y*#Mx0I{-g&h05bE%MO2b?B(ev{dtPLAkpz`nec}#W3 zms^LL{Z+;h_ zwx$QT_!|iTT&YVJw4vH4uROtE-q=CXh#!pL5ez&JZKLS<>9nE&D)A7?@KU+S!D@Bh zTtgjyRU0=d($?yPN_dpkp=5uRaYWpii!|C_UjIQ>)NP{WiA#iU-e0x_X#W;a;XS>h z38u+4<~1-@gU7Tp(REA^X9TzYMz3ZIQL5y1mDP{22)xZ z!OFjwpi}3Ldo2hB1CPHvgfhH0xw)OE6*2`aw4-N_qxwH5G!^#zS%;YZ(=V-(KcXB!V;YX6}ni+~60-n9_pwKjP?3HL^GAWbJ zbjmr5XJ*2%cUbrZpxPr2)bN9WCr}wb^!Qs0|45(J27w1Cd3?Nu*B42-kwd^ zwI{-LYA(^1B;&n#|*=6zq6h;W9GnFMW&uP zM)1rrf?Jjm7|+ZUl*s3`q)mb134{k<;FZ?!Yti>6H!icufQe_05od=%W#^WE(w5Tq zw)Q~RA;deArCiCdNtlz%Zn#a;7IZ2Jeq znTApaOX&zDZDGDN834b%_2~L(Re+@T@@1p&THR4vy)+$jBiG8p4cMD;r{gw;=k8F= zAe!rrLkpf}>p|HaFc2OJ3MQz3_t{nSnQyDY$ET&Eqj$OA@M`q^U4NkR4^(!6>Mt1d zwaOsb5#^Qv@cRPa&0Yzffn?XrfF-7uXA3aw9Y%J|4B;L@ZTm$5M?t{^t^3Z2?$F|= z*tlY@NA|;y7l-B_gZ1t~mi57N^5x%FywENH0MxY(VCjN3G+PfcUFuPPTDmkHypo%1 zs3U%LGd?YyfaM;DhUf0UosP2rZmT*@JlX)66iAoRPrc8sB0eo0cg(j{@eI%10ay=u z%m=~)-#z&E;+t?{SZ7Jx^R9v%Jf|;(SCU~}>ww!G0P*_8Ym$QxRQ`eLKT!PzN}mUi zJJ(OE(oT9WA59iJ(7jK8n9J*D4E@dkGAqUzKrAt}cx~l6yoGf*_U?AzIdJ1oKVba6 z#RKQM@0bu6iho=PbWI*%`e&jtj$Ca;0PEYMfQ){MiG9gxh+>15t+dKqN_m;!1I6L( zc%oMImc=KnaLZJ@gGw*N^%o3y-U-m99(C&qV}lP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000NtNkl>*YdrewvmjjoOd(ZcM=lgrU^L>XA5e5ebQ5`#T3=9lB8N^fLB)?+qU5tpz#BLRAFSp>o&^tHEE_uj{WJZ@NH}0b-0&T69hP)ZQTb1eleU_K77n9sB2?5dO9cRqC%Bft*-y?GK1bIQcn}Vw=icI$?XNm2 znE_0VlNMR9e3oPFUCih68NO9Sd6mE;t``R5uYS5DshaV(E*0 zggyI^@_OhhPuCPF3ksQng$cyy410As8m3o2@V@m8vv zn6<@wGSh_l+nbckG~u;+AmC5aMn@X}u&xU+mLB%g*xJpa*=IIWnEihQ0It*(=MnUn z6o2@x)Oqj#$q~O2!J`s*w8#R+re{o3PBR{MGQ23a(UZrNuvUZcTz@aU^W`v8?cR(r z%T74g-%F>yy27jmaZ~$?w-R^ex(;jh*W+4b^S3wYwR*Qc=lu^o_!c3gV9xtWV^}zX z%(BG&CJOjn`9LYu5Ag8(^K*|uWFqDD&|H5n$*CGo*Jvq1{9Nes`M`@%A{@ubA919- z9vxns!{^z>qxx=#hf-^J*5S?MuaX^?S$f#7q%YzjA|-7*dMrjmTt`ve#abwFzmEcb zR{`&$?W*{nzkPxd_xtoG^8Keeo`UsF28bUi`ES7Q%F`tR#af8t4ESC8e3}29_Aoi! z)0KVL1#RX|J~chGUr!}P;}eZ=#d!p$zPiF>gJJDmjFuuadhUEddMNBLw(&?il;NCd zg$J`W>=bx82p5x^=w!UVuaaLW+8I`ZYnQ$#sYe5@BJ1e>Wr3N|kH)+4?<>dQT0UIB zyWE{fc|EjuNYiPJPd)|!xQ@Sz*!*2|U5GIrL}WYE2Kotm_Q7#_TCWwz!IT##c~IC4 zzVuwQF?Wefro5hP|8_MAZRQSYKf3?`sQv5$_ttPYY z{)iQ=2A7M6N3^Z*P_7KN6W*%aXfiQT=cY^*~? z|9D3PvH817-sSp2-9(5n*DS-s^N22Q;**a8@Yb9|Z2m61HRp8N(Rep@cm88obM2+e z%yD`e$xKtOesF?lDMEbL$MUblkD!~umy`uWJDnJ_BKNj;0fI;%iglnKKs}HS`3=8O ztRsj-*@kNtCChc7a(J){Z&n3=TJ)cU^UAbk`Z8^m9ydDLw!97%@7{)Umh6vb0orO3 zN7p|#wH=-n7=lQwg_4;j@D9OSZ;S%F`jN~uVd?iYw3$1gr3mdE($GEjD#T2~w1Xvd zUBnIp&m`ow_O{;xz|=UMb)Ugl_$D5N%>mB3&!7_r^7jA)cclU-FOfV7lm(dx`9W(E7xxYp3^UoLm4`d zx%%IV{whh|P5{xuVE{41{Qv+M@ir0!?3NKe9?ZV3ySf9^V z)*6Z(E6nhj$xk(3{;%S}3O!i|m6G4{0M9!CBh8J5uE1P>uU_?^>+db7;Pc{Rde~1R z-o~O&de~2f8ceQJ5&8a8L)U?K3*>i+`+YQj`-J{%cNgHl0RVko^cD31q{ILK002ov JPDHLkV1m{|5F!8o diff --git a/assets/gnoll.png b/assets/gnoll.png index 9fa644a9ef84009c5542ab545e7fcbf23c6b8d2e..a19acdbbc15a2abdf7dbdbefaf87446e8a2eeeda 100644 GIT binary patch delta 2679 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 delta 1570 zcmV+-2HpARDViaW7YYyv1^@s6`O~3Eu_1X1eooL1N>>)k3_ukx_+?zHX*z>`q_s@5}{8G;E ze>=Z(?govs69&NYT2YjOT&H|3SIf84#%cTuJxZ-F4sk5yu@WYzU$=rKq8HN>XlaeWD~I5fL+IRB z#Rwsm?KYQ}sn50N0s@XI0N%N?2~AN^n;p@2ZSBOsoj>@37s=%Z;jNvY1{`W_1^^5V z_Tf}lZ_(Pt$79Xcj=CxO7+x8+e=3-z(g)zkG(^Q9u&4&WVU^H!Fg`)??8zgX>gpwn zrR}th9Yb=O(52AV8W=YW-VOjHNkZA$a>RVDoLG3p(9@mLnMS_#2myhD1~5KB;jNW& z66{o0FHw~3w)j@b?^L@`o0I39@fT_si>BT>?jYkNtWQ#5I-V(8pgrRulI5K{($+zKF@TvxE`vuF2%5<@R}Py^TkQRx3p$Qx1g>(H^K?O`QoJ7 zc?bJ{XOVzDaX5IQe*pj?1TmirEv*q`T=R(#nfq%jrSrv8IWvk%LrfR0Wl%qz!uY| z#$^1ij4?F%-SEm;v*>6~qS|d;F?8;$Vw6&KzXsp5WoMC5e_$C^0C)eMB~5-etDG6d zi39WHX-jJa9qmb7f)>N)FylWOxt_!8x;;bCo@6bp`bxlxe{Y(Rn9r3H4*;YezS6}r z`Fs}V`!hKDc`XKee?hu;zJw3UHIO6;&EHeA2)$Yt!PUWL?wkMe$Bp5QT`i#;7X zj}xblsoG}oe~0B7wEZ-pRz%yv^?c4xv{MUx#WR)NiMi3bVo1@)2+QRd@4tbvwdDn; z3@~{WEAaY4b^N(emkp#}>N<1G=VIxHuh94CUjhJ%q97iRmxRw30G;R;iXVXbgB`xw zosS#yxfnMM?Pu`KHCnAg@$l#TbDYF(#pSE`{QQ$oe|KYBxL&P{jMIhsbt@Q<-LgGb zg(31~+_W0O)yRw#1vqe8i0U+!1BX?T+%-v U<`T{=3;+NC07*qoM6N<$f>aIslmGw# diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java index 07f6f750d..8e05160c8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/npcs/Ghost.java @@ -34,9 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.food.MysteryMeat; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.CurareDart; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; -import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; -import com.shatteredpixel.shatteredpixeldungeon.sprites.CrabSprite; -import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollSprite; +import com.shatteredpixel.shatteredpixeldungeon.sprites.*; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.watabou.noosa.audio.Sample; import com.shatteredpixel.shatteredpixeldungeon.Assets; @@ -61,8 +59,6 @@ import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon; import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.MissileWeapon; import com.shatteredpixel.shatteredpixeldungeon.levels.SewerLevel; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; -import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite; -import com.shatteredpixel.shatteredpixeldungeon.sprites.GhostSprite; import com.shatteredpixel.shatteredpixeldungeon.windows.WndQuest; import com.shatteredpixel.shatteredpixeldungeon.windows.WndSadGhost; import com.watabou.utils.Bundle; @@ -407,7 +403,7 @@ public class Ghost extends Mob.NPC { @Override public int defenseProc( Char enemy, int damage ) { - GameScene.add( Blob.seed( pos, 100, StenchGas.class ) ); + GameScene.add( Blob.seed( pos, 20, StenchGas.class ) ); return super.defenseProc(enemy, damage); } @@ -422,18 +418,18 @@ public class Ghost extends Mob.NPC { @Override public String description() { return - "Something is clearly wrong with this rat. Its matted fur and rotting skin are very " + - "different from the healthy rats you've seen previously. It's bright orange eyes " + - "and larger size make it especially menacing.\n\n" + + "Something is clearly wrong with this rat. Its greasy black fur and rotting skin are very " + + "different from the healthy rats you've seen previously. It's blood red eyes " + + "make it seem especially menacing.\n\n" + "The rat carries a cloud of horrible stench with it, it's overpoweringly strong up close.\n\n" + - "Dark ooze drips from the rat's teeth, it eats through the floor but seems to dissolve in water."; + "Dark ooze dribbles from the rat's mouth, it eats through the floor but seems to dissolve in water."; } } public static class GnollTrickster extends Gnoll { { name = "gnoll trickster"; - spriteClass = GnollSprite.class; + spriteClass = GnollTricksterSprite.class; HP = HT = 20; defenseSkill = 4; @@ -521,8 +517,8 @@ public class Ghost extends Mob.NPC { @Override public void storeInBundle( Bundle bundle ) { - super.storeInBundle( bundle ); - bundle.put( COMBO , combo ); + super.storeInBundle(bundle); + bundle.put(COMBO, combo); } @Override @@ -536,7 +532,7 @@ public class Ghost extends Mob.NPC { public static class GreatCrab extends Crab { { name = "great crab"; - spriteClass = CrabSprite.class; + spriteClass = GreatCrabSprite.class; HP = HT = 30; defenseSkill = 0; //see damage() diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CrabSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CrabSprite.java index a6485a045..41ce1969a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CrabSprite.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/CrabSprite.java @@ -21,29 +21,29 @@ import com.watabou.noosa.TextureFilm; import com.shatteredpixel.shatteredpixeldungeon.Assets; public class CrabSprite extends MobSprite { - + public CrabSprite() { super(); - + texture( Assets.CRAB ); - - TextureFilm frames = new TextureFilm( texture, 16 ); - + + TextureFilm frames = new TextureFilm( texture, 16, 16 ); + idle = new Animation( 5, true ); idle.frames( frames, 0, 1, 0, 2 ); - + run = new Animation( 15, true ); run.frames( frames, 3, 4, 5, 6 ); - + attack = new Animation( 12, false ); attack.frames( frames, 7, 8, 9 ); - + die = new Animation( 12, false ); die.frames( frames, 10, 11, 12, 13 ); - + play( idle ); } - + @Override public int blood() { return 0xFFFFEA80; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GnollTricksterSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GnollTricksterSprite.java new file mode 100644 index 000000000..a39d6f17a --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GnollTricksterSprite.java @@ -0,0 +1,62 @@ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.items.weapon.missiles.IncendiaryDart; +import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.watabou.noosa.MovieClip; +import com.watabou.noosa.TextureFilm; +import com.watabou.utils.Callback; + +/** + * Created by Evan on 09/10/2014. + */ +public class GnollTricksterSprite extends MobSprite { + + private Animation cast; + + public GnollTricksterSprite() { + super(); + + texture( Assets.GNOLL ); + + TextureFilm frames = new TextureFilm( texture, 12, 15 ); + + idle = new MovieClip.Animation( 2, true ); + idle.frames( frames, 21, 21, 21, 22, 21, 21, 22, 22 ); + + run = new MovieClip.Animation( 12, true ); + run.frames( frames, 25, 26, 27, 28 ); + + attack = new MovieClip.Animation( 12, false ); + attack.frames( frames, 23, 24, 21 ); + + cast = attack.clone(); + + die = new MovieClip.Animation( 12, false ); + die.frames( frames, 29, 30, 31 ); + + play( idle ); + } + + @Override + public void attack( int cell ) { + if (!Level.adjacent(cell, ch.pos)) { + + ((MissileSprite)parent.recycle( MissileSprite.class )). + reset( ch.pos, cell, new IncendiaryDart(), new Callback() { + @Override + public void call() { + ch.onAttackComplete(); + } + } ); + + play( cast ); + turnTo( ch.pos , cell ); + + } else { + + super.attack( cell ); + + } + } +} diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GreatCrabSprite.java b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GreatCrabSprite.java new file mode 100644 index 000000000..e2b8adf06 --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/sprites/GreatCrabSprite.java @@ -0,0 +1,38 @@ +package com.shatteredpixel.shatteredpixeldungeon.sprites; + +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.watabou.noosa.MovieClip; +import com.watabou.noosa.TextureFilm; + +/** + * Created by Evan on 09/10/2014. + */ +public class GreatCrabSprite extends MobSprite { + + public GreatCrabSprite() { + super(); + + texture( Assets.CRAB ); + + TextureFilm frames = new TextureFilm( texture, 16, 16 ); + + idle = new MovieClip.Animation( 5, true ); + idle.frames( frames, 16, 17, 16, 18 ); + + run = new MovieClip.Animation( 15, true ); + run.frames( frames, 19, 20, 21, 22 ); + + attack = new MovieClip.Animation( 12, false ); + attack.frames( frames, 23, 24, 25 ); + + die = new MovieClip.Animation( 12, false ); + die.frames( frames, 26, 27, 28, 29 ); + + play( idle ); + } + + @Override + public int blood() { + return 0xFFFFEA80; + } +}