From 94f8329803cabb46d9472b1b910dbc65b4bea925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=9F=E5=A4=96=E4=B9=8B=E7=A5=9E?= Date: Wed, 4 May 2022 11:28:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E9=83=A8=E5=88=86=E5=92=96?= =?UTF-8?q?=E5=95=A1=E8=B1=86=E7=B4=A0=E6=9D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/data/entity/zombie.json | 7 +++- resources/data/map/level_0.json | 2 +- .../Plants/CoffeeBean/CoffeeBean_0.png | Bin 0 -> 1415 bytes .../Plants/CoffeeBean/CoffeeBean_1.png | Bin 0 -> 1397 bytes .../Plants/CoffeeBean/CoffeeBean_10.png | Bin 0 -> 1010 bytes .../Plants/CoffeeBean/CoffeeBean_11.png | Bin 0 -> 991 bytes .../Plants/CoffeeBean/CoffeeBean_12.png | Bin 0 -> 1234 bytes .../Plants/CoffeeBean/CoffeeBean_13.png | Bin 0 -> 1234 bytes .../Plants/CoffeeBean/CoffeeBean_14.png | Bin 0 -> 810 bytes .../Plants/CoffeeBean/CoffeeBean_15.png | Bin 0 -> 615 bytes .../Plants/CoffeeBean/CoffeeBean_16.png | Bin 0 -> 201 bytes .../Plants/CoffeeBean/CoffeeBean_2.png | Bin 0 -> 1361 bytes .../Plants/CoffeeBean/CoffeeBean_3.png | Bin 0 -> 1369 bytes .../Plants/CoffeeBean/CoffeeBean_4.png | Bin 0 -> 1374 bytes .../Plants/CoffeeBean/CoffeeBean_5.png | Bin 0 -> 1394 bytes .../Plants/CoffeeBean/CoffeeBean_6.png | Bin 0 -> 1409 bytes .../Plants/CoffeeBean/CoffeeBean_7.png | Bin 0 -> 1392 bytes .../Plants/CoffeeBean/CoffeeBean_8.png | Bin 0 -> 1378 bytes .../Plants/CoffeeBean/CoffeeBean_9.png | Bin 0 -> 1381 bytes source/component/zombie.py | 35 +++++++++++++++++- source/constants.py | 5 +++ source/state/level.py | 2 + 22 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_0.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_1.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_10.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_11.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_12.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_13.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_14.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_15.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_16.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_2.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_3.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_4.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_5.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_6.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_7.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_8.png create mode 100644 resources/graphics/Plants/CoffeeBean/CoffeeBean_9.png diff --git a/resources/data/entity/zombie.json b/resources/data/entity/zombie.json index bbc81fb..160195a 100644 --- a/resources/data/entity/zombie.json +++ b/resources/data/entity/zombie.json @@ -20,6 +20,11 @@ "NewspaperZombieNoPaperAttack":{"x":48, "width":92}, "NewspaperZombieLostHead":{"x":44, "width":96}, "NewspaperZombieLostHeadAttack":{"x":48, "width":92}, - "NewspaperZombieDie":{"x":0, "width":100} + "NewspaperZombieDie":{"x":0, "width":100}, + "DukyTubeZombie":{"x":55, "width":105}, + "DukyTubeZombieAttack":{"x":55, "width":105}, + "DukyTubeZombieDie":{"x":55, "width":105}, + "DukyTubeZombieLostHead":{"x":55, "width":105}, + "DukyTubeZombieSwim":{"x":55, "width":105} } } \ No newline at end of file diff --git a/resources/data/map/level_0.json b/resources/data/map/level_0.json index 598ad6f..140f069 100644 --- a/resources/data/map/level_0.json +++ b/resources/data/map/level_0.json @@ -4,7 +4,7 @@ "shovel":1, "spawn_zombies":"list", "zombie_list":[ - {"time":1000, "map_y":2, "name":"FootballZombie"}, + {"time":1000, "map_y":2, "name":"DuckyTubeZombie"}, {"time":60000, "map_y":2, "name":"Zombie"} ] } \ No newline at end of file diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_0.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_0.png new file mode 100644 index 0000000000000000000000000000000000000000..4abf48cbe735e5f2033a8b0ba8c5487c640102aa GIT binary patch literal 1415 zcmV;21$g?2P)G5t9=Wli110iHZFY6B84N$w|yDziXfL&E@h{3W+%J(Bw#Rzr0`fUiO@Gd(!Rg zt-HCo_Oj!BDL+`gUAU8*LwEjZ?8Wiy4(a~@ z2f%zX%YiJc&KHY|mxoglFu8>Z0f9#^3MT=lq_BWiSh*KC;*Z#hK?!*D>cCk`^UHnD z4u`@xv+kXa_cM*%*<|E}6@f+15s#$-ECGmxx;z=X+p{BgcRBIWF~5la14umX(u&bR zxomzka-Xj*+~?)oeR?zXvQSnx^Fx0<*4!0fbnxQr)Eyu0d9eF;ixuD+^5Y^72;6eE z0^C(bmj-xiTm;njyXy_uT38Rj5KM6Va{n%@R|3N=*QduGtY9_cUTZypNs7T;xVIE* zytQ?wESOty4G3HaCSWpI3G$RBuM}%oEe1vXV>14a}U zDKHj{$u!AyEg-F1Ira&W0sZ>+)BXGN&+FmGANTdky&u22T6O{~B?4}<$sqSI0TXF5 z+ALzr!ci0d{(5lk@iCX~VO*=rR&cg_0LNsE^I)vNuO<`ZoAc8=Q+)y$FeK}7FSQeQ zcZTDQ1P9pr%UR`Q781bIqdj*y+4slc^^Xs~3)kv}JHru6vK$Ezx=6Bc95We!JO_AP z!!xa=iN!8UT&c#XrdccS_Mzo0Ad><|z$+2>KjRh-?F5bohwkK8F=!{|oa|-kvhm4F zg&}}Po|F)R6AL~Dj`*^GF)%Ewm7)kVS_5xjv1XTcs&L{Lce-EV zZXJ6BxIkn%l@el!4unuBTI|4kfct^Q<#Ibo*R~lgoZueCoz_?;;9)>&r^R)C1D?GM z|F@m6cVPy?OZp@+!1`ZXz`_ZW1E;o$B}`2x$J$g=Hnftcz9Ci^fPu%NA()Lt0oJ*= zG(g-jk+)iAJ$1!`wB51Vb)c4$V=rD%9m^(zBg(AYWWmw^*`z&$-7}~QwmUI3orsqJ z&j03_Tc=SYV3Ziw;zn6dFrh4*=T+e*5Ml=ei_F4^RTR80@3gx5$kn4%z zSc!?kDQokNxWak>Sx9{m*wnW+fFtiE+#5Ecm1&IScq1i3ljQ^!hpPt!F1DSlgwr-L z-{?fF7lYGArwmsONR0$AbZu=B)ECbx>s7|w?63wf0-0UQ{ow|v7LM2}STB+sG3#ws zi}rAxEvL+t^um!^eQX_blA6%M_mlP4rbgFB+ow33Uzvhp+z4k^4Q(4OU@TkX za5aG0wUn-K!`%w53DAPIhuergFV+OKh6@4h+FJ=%>)Ms*USd}33}*p}K>>zfc|tV6 z(ft5c^@*Z0oC-7RdDiYnHCez=&Hz85oYmniO` zDQ((IYz-Ge>ieCQ-4fAJ(>BlAIovMQJ3xX00}O^4N1KNB)9}O zB=ruE;1b-B)H^_eOK?L{?*Iud!3{~h10=WvHzf5Akl+&BkkmUsf=h5iQttqD`VSto VV24AawVD6`002ovPDHLkV1i@>jzRzc literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_1.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_1.png new file mode 100644 index 0000000000000000000000000000000000000000..29823294261a08c1199baf4c50d81feda76626d6 GIT binary patch literal 1397 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 literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_12.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_12.png new file mode 100644 index 0000000000000000000000000000000000000000..295ce58251b1e2974c60fb0c73e881700d84aba9 GIT binary patch literal 1234 zcmV;@1TFiCP)iyN>G%*lgK0FMM-#%TgUq8MZo}V5sSMKX`tHHg#zFa1K z`uzR^fB_Wm$(97X=|Ws4g@BMd1uR23ncS^K$h4@t!3j!}Yf{{(Nl^@!3N)$*;1V&I zszwaqPE?Anbkk>~7>m#X7ljiTaVAw_tc@9}@x8h6ceOJsFqug)S6qwib@5fKjj2Tp zwv4#+ad2}L@~;;futz=ZREGv8rkrXVUTuUdhfRsKTWqd zrCf{ycPB?YHcFg`@|D5(&euIcrv*6*=Si6g!9;#&#!$*Djc*X*l^A4!*(OP${DTb2 zMA=ToVjL2Gp5HtL@gUNLC@F_J4&bivxI|SZr<8dp0Obp9rIVX*9%oE~%h-ik{IPRc z2(EYc`2xCQj={+CGyu`PZp5R5;9>`j<*cM!mY6B-EwGqY*rCLlyBH-~PogG4d9dTA zSS`Gr@_vwb^j#gF!nZo(NnoCz$nv<3zK-}oT~zY$0EiHw5A1@|pgbW*8C>MhypGDW z8VE`mePOFgj4Brc)hD7(W)SRHU41800v*0JcWFZq?DTDFAaRQaHx?E17JkZu#1fph zK)y4*17RcJE^?r&N7Weny`rp~yNAHn#C~4&SakIOCIR1aX&KIA4n;U7`T>WtFOOJ( zc36~L49@Fk+yJhomnC<*@75_lL6tXyr;V1|`J2ZSlrF+x>TeTemwG*Px5R@D532b* zt{zJtvtkYdfY+WvFi)@*sM&DT%*uDX@ZTLSP7*s4cWJ9Fx(i%O89(b%1-t=R#jPzh z{Sie}Q!%(YTs%vVboHJ;^6LI!ZmyBbyi4Ie3)l?K1K-t*pIIF)s~9LbXWT{LvTin0 zvYHncb87_4U@Jc@-3^WweeO7`DA)TR5_f@%)@reK0kUE w;Pzyj0~~M%+@5T6fCKJ;+mme$@Xx~i0Y<4o#cYKKuK)l507*qoM6N<$f`869tpET3 literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_13.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_13.png new file mode 100644 index 0000000000000000000000000000000000000000..295ce58251b1e2974c60fb0c73e881700d84aba9 GIT binary patch literal 1234 zcmV;@1TFiCP)iyN>G%*lgK0FMM-#%TgUq8MZo}V5sSMKX`tHHg#zFa1K z`uzR^fB_Wm$(97X=|Ws4g@BMd1uR23ncS^K$h4@t!3j!}Yf{{(Nl^@!3N)$*;1V&I zszwaqPE?Anbkk>~7>m#X7ljiTaVAw_tc@9}@x8h6ceOJsFqug)S6qwib@5fKjj2Tp zwv4#+ad2}L@~;;futz=ZREGv8rkrXVUTuUdhfRsKTWqd zrCf{ycPB?YHcFg`@|D5(&euIcrv*6*=Si6g!9;#&#!$*Djc*X*l^A4!*(OP${DTb2 zMA=ToVjL2Gp5HtL@gUNLC@F_J4&bivxI|SZr<8dp0Obp9rIVX*9%oE~%h-ik{IPRc z2(EYc`2xCQj={+CGyu`PZp5R5;9>`j<*cM!mY6B-EwGqY*rCLlyBH-~PogG4d9dTA zSS`Gr@_vwb^j#gF!nZo(NnoCz$nv<3zK-}oT~zY$0EiHw5A1@|pgbW*8C>MhypGDW z8VE`mePOFgj4Brc)hD7(W)SRHU41800v*0JcWFZq?DTDFAaRQaHx?E17JkZu#1fph zK)y4*17RcJE^?r&N7Weny`rp~yNAHn#C~4&SakIOCIR1aX&KIA4n;U7`T>WtFOOJ( zc36~L49@Fk+yJhomnC<*@75_lL6tXyr;V1|`J2ZSlrF+x>TeTemwG*Px5R@D532b* zt{zJtvtkYdfY+WvFi)@*sM&DT%*uDX@ZTLSP7*s4cWJ9Fx(i%O89(b%1-t=R#jPzh z{Sie}Q!%(YTs%vVboHJ;^6LI!ZmyBbyi4Ie3)l?K1K-t*pIIF)s~9LbXWT{LvTin0 zvYHncb87_4U@Jc@-3^WweeO7`DA)TR5_f@%)@reK0kUE w;Pzyj0~~M%+@5T6fCKJ;+mme$@Xx~i0Y<4o#cYKKuK)l507*qoM6N<$f`869tpET3 literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_14.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_14.png new file mode 100644 index 0000000000000000000000000000000000000000..ef68634b2f11295b92448ecfadbd14faf6d1c55c GIT binary patch literal 810 zcmV+_1J(SAP)$@gbOfm2?hoPh6JVr1_lHK1}uQpV_m8a zb$!*tXQqE@2d}2VhCbZ)Z6A)u<3q339ALl=xSp&zz>y(@N999%=4q#C@|8fpU z9e9uGMd0@PuajMajWF5Zq9Reb-EKPxS`;qjCO>$yc|XB9n4Wr1f8)Jt=VXmDR}B!^ z_H#3-UUs+$B7l$e+gTkwUtgYns5IryOOT7;+*Rw<>)DM`O0Y5qa?s*%@xZABNkJ8Z zODT~mB~p<1n<_6^W6r-gW}+Xiwf_h#s+tWhsukBjD%K*b1K;A(MQ$Y#C=;F(vG}qk zL5e8nuJl7G87b3e1g+9S*KpOd!4c$B+3EGoyG4vUK(i)<4v}jF7~gkj|1p3_z18#M zX&-yD!pZ!LaT^da+^l^9(waSbee3wNC?QA+S1B4`QROOdm+BU-j^%`;C=Q2tALVdL zi(cdIdsJHlH&uvf`hfW!SF#wK!$=`1!+|Iz^SxRtTc=_%JDjgw6}pH1PMrgeI#?~{ zfRrn#fvGOw?XEantn%?5F*gyiz@bD`1GjoVjqp|68r`QS2@=~HN>*`e3X&d5BKTZK zOja$zo~4XOloEGm)tKX86m&=+1 o47ijrMs*3dq;>soxBh9kZ;m;9Aj_)vOaK4?07*qoM6N<$f_YSP$p8QV literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_15.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_15.png new file mode 100644 index 0000000000000000000000000000000000000000..fef0b70613ba6996b149c674e49f554088e378bf GIT binary patch literal 615 zcmV-t0+{`YP)U6ULj-~!H*kh4U=uJKURTaBzt+MngJYf%jzH7&wXE0v z@oG5amEE1GYqmJw>tvIh%fVSNIQhN*91oW|2Z-I<^Fkv4W3%egj6FMWN|C{(Yn+1l9zdm~Bz4Yi3Yl{`C*hQJ zv804_gG7 B4~+l- literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_16.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_16.png new file mode 100644 index 0000000000000000000000000000000000000000..c52d3284ac8bac3502988722a8e6919b9d5a3e64 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^>Oh>x!3HEl7wvEXQk(@Ik;On71Q;1wD#byZYEKu( zkcv5P&nYq_vDo2N}5F9O(fc1Gg9q$)TE|oeKCR6Qh2|pSP_XgWF`mo;0i_hZ862kMuuyjwiL)=$B)y#sf{>Gw zL#HC4u`3mWgG|yrI7mNDhUvq{sk8gbae6-+l>%Om`tFCI;I6W|Frc^t?8oiZ5^Mn% zQV=j~Htc5#z6l)V1a|@^IIA3RfR(|a-sq^elaf}=4>0ZBo?aJ5y>f?pH8PTnrc>kKcbe z`}Xz0)j{rE7ch5XT`Dj^F#&Z96=ol%ZmA=_6l-!PFzL&Sv%gP&)90U0?g$tvt^-(z zw};Cm918J36krnHxCfvtA?DD42+jijd3<)yS|<*(4=92{#Fny@$#|%pNR#=1lfgkw zH6IS+`*qX{!U0BNpqM|IKOyiJ=cnoEQRj71bDb3D8eP8;oQkjDTw`fq?4))wDFPh# z=vuDfnSLm21xL&QXjOZ8{_RX^_^t&6*OD}R=6jCZ!%;tmdpCwV?ssx$d(&D!(1dg_Kb0%=X|=R3E2%?;IYF--wS z3*`gW*%0MUR8Gh=+)7ia__Hm0)_l&@MV(}ki7FMStn3Y2uU11^7*Ove5LzLX7k@9I z{RHYc7tYN=v6mQ>E9Y#n->3pC4DicwtrW5#z5(XcrEt$pZMq+4bpS&ziGp%!N3Zt0 z3NEy#wIyVgaXqmbD$qeVWJbL#&T6P9xTSJ60q55e7NGQGho7EL=G5x~l<){oqPb z3(hahTFSPA>t$nQjc9E+y^>W^U;#_vDqZ_(RXtv9IN!x~?e*cZgs1_h?l{!GuMNjT z)VbgetDb$CxPDAX(FAv*hjRQou2-hZS93a9)xHehi01+<2 zwaFR>h;R|EP1ZO-go|)(vc>@-T!d?rH4YHrB3zrSaexRH;o4-414Ot8*CzW1Z)IoA TTPzz%00000NkvXXu0mjf_V8z~ literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_3.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a41fc346a640c0368ee975683b1eb45e3f45b599 GIT binary patch literal 1369 zcmV-f1*ZCmP)$)=ZcSzOMblh&N=shCWD^4{WSHmfO0SdL$guOKM)SS3f$@G zY@SDb_w(}13#b*~(!CJS!YRaDXX81CYvdSU);YhOgWa5r+_ixdn8X;x!gXGne>vB9 zYC$16Xx#%4xDbpn+~XR+v1JBm3YppQ3;q1bLol3VP8%&JYmN!wG$tsDf`{ciLB0r% z3zJV4?BsBNbwl7n$S|Bh{Jnc{kN1yW55Ml+-H+dmmcCrRDZeZj4t)Q1>u;o+as1i- zZU&Cy0dr4JE3wZxY;~cDooJXiho!W4m zNa%15FkHc{*v%{;@I1u+U@Hg5aZe9_a>rIJkSH8sWvv7xgwsuJxOfP`=^Q|Cm92#% zXKTZ0T_vmlTGx1bBrt`_ilxgILl}Okk#iv&PZ@IzhuQLXxxzkaz>=pNmAe*F?Yl35rV|7r^$N3W1Z!!^Q zcHV7ouO{Ky$7v2OoLJei4*;$)od5_ZO(r=K zRp81)+^Y{4=3W?Hn{U@9wAr;brVYTUatFb;lNg*WihLvRJRCU}&UeqkDfcqrodXul zbNSGQEmRy%Yj>q;4Z|CL;35BFm0ArhJFZF%*V#&NWq{4$*5YM8_Sv>FoCRcQTQvdZ zYiDsm6vOG8a;!V41!n>2T-2R}u2qEtjM<>*`$=s$6$xQb?`J<~=i%018mHGIl(qZ0 zx-RNNAx;u*wM`P>Y#G-F?V>JZqi}K&Nd4nPu%YZfR2seDbWN=TB)A0ECAAKa;1XPy z)H*i`KZ!F5Tk10=Wv*Cn+Mkl+$rm()5yf=h5+QtJQ-F2Qw4tpg;u1lJ|C b4p63l9~Se?Zl}9oay7j!4M2hM{__N zd=@zFnu~w`aOq^hbi9(Z8|3~(U+{JJmy-u-pD|8ZCT`u5Y!gKYt8`DR_?&e_K| z4lv<2=S7 zb)F1|E4URK%mMsFkGRh+C;?hud=&W1{kFqq(U4*PKxAPYy% zwua*b!6EA!caJovLS;omKyK>)F#OU+;JC|JNO72f`CqQEO&ZXpC`Xl_7LswO+9y@3 z;A~jg#!ZFJx*@o;;kL^ujtiYrNY|=XJI^Vss!~brS=R(dQ829#Uc~v5qO$fphjzBN z-J(uGkUt?@II+rI0C0`zWLoUH-!!I#**2)${MvA?S)5I#ILDG@=eSgot159#aPx2d zo^K0ot(-&T3m3V)7*{JqxD;8bK(tCcf-Rs%dmb#)O`C4T+u*KPH`TWhUXoZ#m#seb z(X(+g>P9@*X4|;$I^bPDPWsT7s5r(J?5b= z{%ewd-iD?VJv+QVExeAH++xZQ6yjJwCEVmXZc>hbDeO%gtnI)Rs!Yu#Fmf>Lj`grZ z`&8-8eCbQMX2V{rcw(#V;7)L_f>`9A6`io!b)^7qs>ge*+!a~@7_}2P9CP7}KnYB; z4?YgASQb)W9Iv+sjo?UnPN<$8R>0jXRE4>k-&R9XNVpzrM5A!3TJ?7J$twm2kOx;y zE6o6bb1#vCMl@N*Ovp&?S+Ef9qXCP_NTDu!nYpgi1J_gtx&WB9B*J}iq1T-%b({Qoo(`a@a&&#pbwvFK|pqc?q&PlkM zdv!RqPqFT#6`ZYL+qr~bRkbcHia8k9O0`X`;Z!7Af5{j6KKr(_YCZ$k1Wm6;C|mb) zZC%vsF`Oja;fri?6!9NW9GmJwHVP*ffn+ciZo!6PrNM2EUF!j-Z|WQ%!)3TWsdIn~ zm*M)P&H*x9hU=3$2gq<4u21S5Aj4(2KB;qn442{hq|N~{T!!nDItR#b8Lm(293aDG gxIU?Kfd3ZmA3K|Cd}EeRYXATM07*qoM6N<$f?*(mu>b%7 literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_5.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_5.png new file mode 100644 index 0000000000000000000000000000000000000000..1b0f155f6a66aea4d18f7422c5ffde51c479bbf5 GIT binary patch literal 1394 zcmV-&1&#WNP)?5z*}3YZ9RH_>6J2a z&W(mDm5$Zw!ksS{ZgKLbzuw$jyWZh|IJud)^Djpw0kSW^;>K$#07C$lTwSf-6w?2h z9%T>~(6$A)e!p_d+2YLrN4K}PPHdFD+uhc@1wpZWj@;X***@Ifm~@Kt>d zAyPwATEO|yfrnd8$6mM}|8eNAy!)zfGO>jN>hk2s-JVU|-Q}z#^dbBo$cwYny=t-2 z0gS-V)cw_kyI(Kemv?h77Rt)aa#Cn>Ux1Ykd`RX3?BT;I1I*>~Dh>$TdXWL{E21kM z%o;GD{<*s@fuTX*kPyrY@4uSQU7sF%uuy9jPTC8>2fk7EHNJGS5wK&B{Fi z!T-Ph_27Pd`{Cv3-)~Ot(iO1O@FsmRn+*o~=DGho{{5d924|f`%b~9UX$!V3-n571Ke)_)xX8{=$ zIEqmPg8a8)`@tFuUorNmPrrv7}C%^NieHoYyjQ|B{t7EhV+&r(@*0bX* zIP!|69xjXOZ6>aC$h3k0P&Hn-6I0PCNZ`C_7n5c%1Hhtg077e{EnzpAZ*i|J*KF_H3I?{+fLTPX`9%jy>4*zfaFL38PD!98j~P1Y0_S; z&lM3H1FS*<$NQb&$X6xpMS>%yz0GRT4vuF#YYrjfBldV=oA!2ri$&~KIQgDk%3_fk zHEju`8E%>{eXXK3wrXhGsN`H15OKH$z{R9u($;VS)CS1m*9pZy#pk;1UDq<9U#FaxFJdJ0KYBVPteU~!AIQ->Hq)$07*qoM6N<$g4ADl AWdHyG literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_6.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_6.png new file mode 100644 index 0000000000000000000000000000000000000000..427813259142b64b1ce19f76e361b213b6f76cd2 GIT binary patch literal 1409 zcmV-{1%CR8P)#elUGvLIM{4wvGd*{wa zCRvtEtZr{_GUPuWLKUdf+j(~Wc46%d`eGWQg4#8r}Z9$u7>;H8{D+HJzXX|0|pXr0{DVZvq|1BU0w&AqD}lDt${83=NXk^c3|*DQN|b+0dfeaZfPesRzH0@m`)x`so9 zhWDO7|Lq!*a1>VnlXF++YX<_D#JvFdExywmj^rg*fU~ag!#E(RF$o~&UNUvS7R+~# zPU8GtaP&-YxYpE|8kA^oy_n>Q@45E+@=w_z+^54`2S^1jDc}ezjwpA0(U=Vvoe-RL zm=M}@;MxtkzHnM}K3%UIpmmMjBZ2wO@$76lD|0U7u622DIMp(G8FCAUdF6e%!o4du zZzGsa>9c-*^4&foHaJ=ZCkKGzo`w}V-#Oqemq!&qe{_>?eP)edol{utD7CfAx+XZc z&P!(H8jnt>Ga77r*EuvjIx6Q?4G3S>5xENlu2D|hLiFuAIo^qT&9{5Qxq@3vUm^GW zP{}p7R4-~B?(JS@<-Oqcs&j~8&W|u+RqJf-SvVy;<)U2AS+I1s#><~gUAgJATB+QS z6K<9u?}|BAb;*uQB{-j_1HWA)6_*6adpk#S5oRLP1+a3%7sxvrvkL$KC4h9TeT5uS zZXxBG1?vk~xluXM-T_Df^7`v#>ZDnO*X{De%`B2eX+C=EU~;v~hN$*{gk2O1P8w%` zSU`V2fdG^k<>eN#5pL?-2C&V++5?5QT$&g8$LiPDLjfmHa?HV|^Hwk)5C=n3TF_2D zOhayiQ^5IvfIXP~tc26mfzd9~q^Up$;rJl#m7#2bd+;{g$ggqlxd$Na`QZ)1DYRPK zX;ae~E}i!R`3hnw|lSY z;HMLu0QmuO!xrcF;btvxx%l1Cflp^R>mVByJNNo<_As#xj?b`sYFeH2g0q0+pq5Y8 zJ$ty*HYn^-S?5(r7hykP;D>P$$k2ge#Wk~R*GlBQt>RvA)@!bP|-X>foD7vaXF!2u#%gd39v2Z(SHZcG{+Ai_nsF==ps9~SOE+LU5q>24gv P00000NkvXXu0mjfXE~I? literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_7.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_7.png new file mode 100644 index 0000000000000000000000000000000000000000..88d34966c5c59306c33e3f29d97412c8f97dd469 GIT binary patch literal 1392 zcmV-$1&{iPP)FxX|y*r=e#x>)!3=mLi|!cX@th?gR|0QmzV4fPBs;NjjgNJ{hp28gC54% zRwai@%8xJK%|3tploBf2tZoVy=F&_V59SqMX@w~+Rr`oFxf7W5@zLzhuRrO-w_o-N z7;)GIur}VL7!O1NCJBvu0Ll|0i!ne1=K+8Jc(7-6DKmxIc6@YTa4I1$F3#+sngrvz z1UNl3GgTazhr>{{i+Tk(+$T5^1I5D0!U=)pCC(-XB{(VWU#QE%wcu7MhicX*9ZVgZ z6akKV^jm;D%9G$QuiE3oPcx|z!U4jh3Il}z_juK~_sPl$&MU?wD5Rhd;mBOM zmTQ^+9htsWLgd++l@hO<0DavGCl%asHnJBKV3;^vT-pc+gxn+Z@#f15Ae0nq{8`r0 zC2%n++rA`oCCS#c-YJ#{cpaPvY+8_(2DJ9lx>aQ^J1or|}CQ%mC}Z5R1eoB7d&8-e$PExJz<()-B&V!|@Q67{8|TE^VV6>pm^d>h=|#;bind?Fn?KEy(aF z7SoB84z{_Mmu%YbYz-$Bi4{#|+rLSYCl5fF7Nm0FCa9gjg`m_#Cf2H0XL~yO>iX{# zJA>PY^$rl>BHWOycYp{N;f7?r14Ot8HzeyFAi_nsAzAML5iY_F$$AHfa1m}u);mCi yi*Q4--T@+9gd39e4iMoY+>mT<58lOpv-%5E7FzpqakVM{0000Y zXGfkeU^fEcAON5MH~^5~a5(VU6aWAafRlKbgH!3{2ZiJtGfuMX613P};N_JO@VSbX zdBuMj!j{S9a!E8cZE0Ao(#_>KwYV@$ z30YY!<1x zU_xq&!~2@0f2@Y0UI{cnj(E8CVXr{|{c`qt@BSWp%H+yY0JM$`8?06Q7^O(Jqt-}^ zCBl^^2$-7MO`%p!l6lu#9H!?K*6Q!>%0K=aQ>$Yvl2%nS;7|z?(_5hi+06dsLjEbW z{P2mythevx{<>xAisnMd@*wNN6MS||JDo5zY@189%oRbE^$1WB?(8K)q_6#a#CD`J zQsufnf~$i`s;j%AZg+B0Wpvhz=xOdyTw*IVdl{#-uVC?f4Y9sG%t+FE_Pb>9+S$-P zs6>}bUvRNkuT*WwY1&|5_tDHuhsh{+?4}ftPe*c0Hyj#O!)-{)!oF-8HGpnxZYGB| zA&xZ5{NK5eL4^!_4NUfX)!qwXW-XLDrjrl*NkeMlzTLkY@cit{l0?PZ2$F)rA8okSpsKw5^#@OMiRBd-o*Q zLyoF$ClG?MysYG3iQz`s+0`R-+~)+_g67J|J84@Tw)=4g$>(M3Brh!MRpFYg&*{8@ zSjl7{NdV`tURm{7&_9bZ`qmBZ$mYOVuzP*UKgf~{43UE=B#=mHnE!Zm}BiIA4 zT}qwwH6JUzCg){zjN42wUL2fX;Pf5g*_}w3w`sLW^%BJg-#LPr8W9XpDt-&-(f)}OW@1vW)MGk&}6@9&kt{lyc?sm=|paf~2 z`u&sQuv1ozK^QK#6S=2Jx~h4B!yEn{8+=vFvWGvT>}~T}#TXC7@E!l8<*3}8->Mfu hPln{L-S|J{miplRXiay=7p=RWlITWuZ6k!|{Ra>UWfA}Y literal 0 HcmV?d00001 diff --git a/resources/graphics/Plants/CoffeeBean/CoffeeBean_9.png b/resources/graphics/Plants/CoffeeBean/CoffeeBean_9.png new file mode 100644 index 0000000000000000000000000000000000000000..fece09c9857cdc1c8fb7071fb4e2f856bed2cb97 GIT binary patch literal 1381 zcmV-r1)BPaP)R+aFXDBKnsdmfkV^LBnT$p{=0n_f3hOi zi;MGD0nRlDct6gp)y9LK)A6Y9#67V4z22+DW1$0U_)zDw!{ll)D(Lcf=(L)o$;8-~ z%;;bzfJ`(U_LHw?^Hi&8a(y~3fJqnA12-PXmvVEklgwq3n~zJUE#O*Tmg52(UKhMIILgv*~YO)j_qJ zK;{~}h)D&8PETg;lSB+&wtm|GG=Qf4kWh>_%{kH)}Owk3L?^1WbgO z97_P>!~MOzPm;&St!VQM*Sd*P8gIZ+5`dBwG?9hGvMM7k0Sp+D^>~(Lug(TG2q&un z7MjdL0?1M}8}1dxGxqWRPi}0TRU`*TT*-2LAuspgtg8@Xm<%|sdWJD11wa;#_tu8f zR$b-7T7j?Eq&Cp4fCI*cfCZBpSugqo*(x~e zR@zuoaMl`vTa0?nZHx;g55G0a)-Bw6iIQ98B1smsRudd$gp9?#+-rjY1^btr*_1Y0wgGe<;H_dd;squ34Aaci&ZRG=+ME&Z7$c=15|+irjz~K=lM8= z8XY=mad)Mq6mH*H8Ngi@EOhX4f>sdPmMacvOWJfItO=ZsiaWsqfFTP8iE%BH$$A#3 z3{G-z<6SPzyO;50B_;@mTX;ZjtO}kDIC_5YgI}ryEO<`4v1@YUa179vVzL2 zR|c0Aam!KW6S&0tE50DUm~m(C2X9IR~XUK>t;1TXGjU9_&v!Fg5_ zFfpbL=dKf3BRC6593m`cDYTSQ*rs-B*f6EJr-|PHS<=Jqr zsn!7^T!ibAS_g=55w1&W9U#I*xGt%6fCv}ix}??tB3y*)l3E9da1pLcY8@cLMYt}h nb$|#L;ku;O0U}(4>yrKfc;{x0co<8200000NkvXXu0mjfmE3vt literal 0 HcmV?d00001 diff --git a/source/component/zombie.py b/source/component/zombie.py index bdd8511..9e87151 100755 --- a/source/component/zombie.py +++ b/source/component/zombie.py @@ -4,7 +4,7 @@ from .. import constants as c class Zombie(pg.sprite.Sprite): - def __init__(self, x, y, name, head_group=None, helmetHealth=0, helmetType2Health=0, bodyHealth=c.NORMAL_HEALTH + c.LOSTHEAD_HEALTH, damage=c.ZOMBIE_ATTACK_DAMAGE): + def __init__(self, x, y, name, head_group=None, helmetHealth=0, helmetType2Health=0, bodyHealth=c.NORMAL_HEALTH + c.LOSTHEAD_HEALTH, damage=c.ZOMBIE_ATTACK_DAMAGE, canSwim=False): pg.sprite.Sprite.__init__(self) self.name = name @@ -574,4 +574,35 @@ class FootballZombie(Zombie): for i, name in enumerate(name_list): self.loadFrames(frame_list[i], name) - self.frames = self.helmet_walk_frames \ No newline at end of file + self.frames = self.helmet_walk_frames + +class DuckyTubeZombie(Zombie): + def __init__(self, x, y, head_group): + Zombie.__init__(self, x, y, c.DUCKY_TUBE_ZOMBIE, head_group, canSwim=True) + + def loadImages(self): + self.walk_frames = [] + self.swim_frames = [] + self.attack_frames = [] + self.losthead_walk_frames = [] + self.losthead_attack_frames = [] + self.die_frames = [] + self.boomdie_frames = [] + + walk_name = self.name + swim_name = self.name + 'Swim' + attack_name = self.name + 'Attack' + losthead_walk_name = self.name + 'LostHead' + losthead_attack_name = self.name + 'LostHead' + die_name = self.name + 'Die' + boomdie_name = c.BOOMDIE + + frame_list = [self.walk_frames, self.swim_frames, self.attack_frames, self.losthead_walk_frames, + self.losthead_attack_frames, self.die_frames, self.boomdie_frames] + name_list = [walk_name, swim_name, attack_name, losthead_walk_name, + losthead_attack_name, die_name, boomdie_name] + + for i, name in enumerate(name_list): + self.loadFrames(frame_list[i], name) + + self.frames = self.walk_frames diff --git a/source/constants.py b/source/constants.py index ed20440..adc1f82 100755 --- a/source/constants.py +++ b/source/constants.py @@ -141,6 +141,9 @@ MAP_POOL_OFFSET_Y = 115 MAP_ROOF_OFFSET_X = 35 # 暂时还不清楚数据 MAP_ROOF_OFFSET_Y = 105 # 暂时还不清楚数据 +# 泳池前端陆地部分 +MAP_POOL_FRONT_X = 770 + # 植物选择菜单栏、传送带菜单栏等类型设定 CHOOSEBAR_TYPE = 'choosebar_type' CHOOSEBAR_STATIC = 0 @@ -277,6 +280,8 @@ BUCKETHEAD_ZOMBIE = 'BucketheadZombie' FLAG_ZOMBIE = 'FlagZombie' NEWSPAPER_ZOMBIE = 'NewspaperZombie' FOOTBALL_ZOMBIE = 'FootballZombie' +DUCKY_TUBE_ZOMBIE = 'DuckyTubeZombie' + BOOMDIE = 'BoomDie' # 对僵尸的攻击类型设置 diff --git a/source/state/level.py b/source/state/level.py index 403ccdf..96f6a39 100644 --- a/source/state/level.py +++ b/source/state/level.py @@ -657,6 +657,8 @@ class Level(tool.State): self.zombie_groups[map_y].add(zombie.NewspaperZombie(c.ZOMBIE_START_X + randint(-20, 20) + hugeWaveMove, y, self.head_group)) elif name == c.FOOTBALL_ZOMBIE: self.zombie_groups[map_y].add(zombie.FootballZombie(c.ZOMBIE_START_X + randint(-20, 20) + hugeWaveMove, y, self.head_group)) + elif name == c.DUCKY_TUBE_ZOMBIE: + self.zombie_groups[map_y].add(zombie.DuckyTubeZombie(c.ZOMBIE_START_X + randint(-20, 20) + hugeWaveMove, y, self.head_group)) # 能否种植物的判断: # 先判断位置是否合法 isValid(map_x, map_y)