From 6f988a2dfbe4de1096a5ca6a4b30e7fc5355316c Mon Sep 17 00:00:00 2001 From: Marek Moeckel Date: Sun, 2 Jan 2005 19:00:43 +0000 Subject: [PATCH] added PoisonIvy badguy contributed by Stephen Groundwater SVN-Revision: 2271 --- data/images/shared/poisonivy-left-0.png | Bin 0 -> 4801 bytes data/images/shared/poisonivy-left-1.png | Bin 0 -> 4878 bytes data/images/shared/poisonivy-left-2.png | Bin 0 -> 5012 bytes data/images/shared/poisonivy-squished-left.png | Bin 0 -> 2232 bytes data/images/supertux.strf | 106 ++++++++++++++++--------- data/levels/test/mrtree.stl | 8 ++ src/badguy/poisonivy.cpp | 79 ++++++++++++++++++ src/badguy/poisonivy.h | 23 ++++++ 8 files changed, 177 insertions(+), 39 deletions(-) create mode 100644 data/images/shared/poisonivy-left-0.png create mode 100644 data/images/shared/poisonivy-left-1.png create mode 100644 data/images/shared/poisonivy-left-2.png create mode 100644 data/images/shared/poisonivy-squished-left.png create mode 100644 src/badguy/poisonivy.cpp create mode 100644 src/badguy/poisonivy.h diff --git a/data/images/shared/poisonivy-left-0.png b/data/images/shared/poisonivy-left-0.png new file mode 100644 index 0000000000000000000000000000000000000000..2a984f3dcb0d10c56570d43c2d19d4d50fea006f GIT binary patch literal 4801 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 bw_pEn_>$DY7{XFv00000NkvXXu0mjfLxG1p literal 0 HcmV?d00001 diff --git a/data/images/shared/poisonivy-left-1.png b/data/images/shared/poisonivy-left-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fc9827ee0c67b9c1d7b025a92e5b801a4a522c GIT binary patch literal 4878 zcmV+p6Y=bcP)F3Tq4WGy&sne`LTnjqqZu}e!BY}_2j`@T&A*A)QR8tr+aqzYK)bCO>_Fk1fnVw$XflC?_4%- z{?%3ZMS>y6BZ`V6uiXB6rJ=X;fkn?(0QSe1kr)EV0z81@?KH~tu+}wpGClZbfLKyin)}kd zKf5Y`H;qSg$(7w48VZsX$i^R**iMH2uHikzm<&|nG8>x>9AnR4CnI(Evkm{s%DSS@ zM~g!-$91!NJBG~mW1|TSDtr%2mQ1RchWK1OV>y@@l2Aq zJA#lBN7;y6C2JNI%*{#}*PQGbc#R>3Ck)1F>Y|TbdB_3K)#-#*^3Mo1o*HM{ig-h(60!0Bg-Y_IR>`yO9bbIJ9wSitLF zxu^NWb_O{~3`yUa8PW(s{bX17$(XUil90boJDl+6xNpEl;<67jOZ{fy8+m;J*w6x*~D6W`< z<(LQ|kU}DaL<((uDviO;#5Mq`n6~)p>eoK|kMkx+eS;Xn#dLj?#d7)SYhSoNHzL`! zc_az+pFvS>`p%_ay#DS5w~qRf?CotKof^Y&Y+U6|IPGGNj$)>g6Q8{guE&aV#a)v> zKPenoa;$Oi?Q}AYP%foGgXxt8oM`Q)w|9VOX#~qLvE2-|V@^y9+qH093)`{S|9baZ zOe5#AWmW&P;yW`Y`+YV(kwO<1Dc6HfAEP+jgQLK;o&7-O3?Q?XPQ5)NERGFzV3}#g z2KwmUzYjApI*|nzEz3uuy_3|y;OXt&d8(;0FEs;VKFfUe0 z|IiqPMOj#BJvDWfJ%;O~Q7DvB_{11K zs{?^c>#-DD*EZ=h>n6W`29T^A@AU4mK^)gX8V0^d1m(JP)Hl$!`5n5p?_{jy6jRD8 z7;ZWa>CAX$7~f_?=_Kb}87ix-4V7$pzH3`oe}ay&6a|q0#RWM?>0;UGaR5%{wDa#} z!*MM-n&Q6~6_hUiLiwH2YhzkTQjUx5xPZb+4sxQsmyGKrzaob_9=&{SZc+9bXG98t zK4ztGYzI4&qOE=h5nq5%PMGszGbt-BCE3@{!EFsF$3e9ZP?4R3Aq1}LFk+=avnijQ zb@9Mp=5OBoMVDFM+C?H`F{LS2xd8gH-Cgb5Uuqh@<<3hlICi9- z(y7(VtgWK6t&6Eu)r=)av8)U^kr3^zr|9eIC6b>*O<6u|i8%eKF*3G=WjO&3(b(w5 zzc;B)d&nF;N?3ZaZ5Lsu(KH<)B~s{U!bPEQUB%wDLqBRuCE6~&r1%yW7pWYS(9m=b znvuoEP5TLW6cr^=(x%|mU+-qu){}!H!^t+yly5s8_i6xbcm1)ppqaJh#yjSJ_Hg@A zCRbPC!6A|x#Ze{z!Eg@I!hDL$i^$6HbMoj(lyWJKhA^bUbZuHTjUMXUnO?05+19ov zGrf3@9_#2Iz|bW!2nYpAo#qpn5m)X1L;UeK9_qP2XOic}Yra+f1;eW$gv7BObWKMH zNncMNr`o!>Xm%ADJwkRQo4l|t=Ps&SylvCbXF1F(0J_!VtZ5$VjC39yOyy0P>eqE2 z**-t1OdLb^BZNgDJAmU_AQaJ}d_ws_+FIHe=pG~#4UlnM;(b;cfF|5j%>B~($3|w| z@UOnA(cv_@(s42d-MiU2+Rbj^Xg$aOn11Q_=G0C=&G}T`N>8>#sqw>YW=zILl7u6< z^!N2)7#d!WfnbFEYKO|oDc!k&-~aLZ4^02`byQOQiyv(I_v*>{h4VgBzVf|aDB#rI_-KD?;6LNBbNbvhpOEQK1qOx&nG~c` zX5uXBUCER=*GBFVa-0=AwnP2426Dn7%*^=ttSpOCIk}YmM|FPx$R;M01=0KDugwp| zH>%zv79f{|xTJ=l7t(@uk%ut>rq#5KC!lW7IyzY9t{R91vHhpgB$!Uv2 zet|?F=<6ONoyw3-^#V{cxsaQ^ZwhYNZn^ZE**qDitrSP4nur(Wx z)X;_G_#ZM`H~n_xTGc|F7_uPO`{3suoP1xT#E&Koq|j;Fd4z$ULBc^l3uadmt1L!J ziK8@ZJPgGRe)!d`j~rgtdGBA+v*+D;=N(7?vu?bZk;cavH02#@1*9-30&z%e3-rq4MWqZ$kqvY zJ%sAy4CB)Ez6$fvx>gBI#(<`*v?DgWz5&a! zFbod@NwhGJBZrRBbg+e?p^=ZwieYG|lm|`oA*C0AptC7upKKi5WSeA!CKlvGyt%FU zKEeSF9WWh1ds~KsyN3r4?e1Hfw9TK;#6DsK!*c>FFTAY!#*yCC^!oKjzwM%4`jbFP z%5s<8^yqBy=0n{qzu~hOhH?74+iqXMtm#vjKE3KALB!(;9(rsQfeU-lw0ywBmS;PA z-~L_4t*Iva^@+Yb2uufRP`oFzWPm1M7fp;1Ll4aK-hTOwGroVtEptkDZfqIby5XH$ z+(Pv-1Am6nctvvJi+y5L21i}#`drL=j;4AcT_#@AVC>NFg@|$aqMyH>WnhcOhk8-Ns zrSE_b&B-F84N!5h%}`f@o}+0JgAU3CZ$J_*(kYJlD4OO)2|teOM`~HD`ug7HmbF7Q zA97R!&Zminvz(}tD%K3iTd7y}fRmauhAC-uymkcoV5(|hUR4#|sr0{4N7JW4^F6yh?ads=l zKv;l-avhKcQfPSnMhP+Aul(aTWKe%i4gNZ$$=P7po!!FhKy1>vTAqk_2Yz!lcCQA@%5~vWiE0AbNTyFUKjI2<=zn&Nu6B`ep zUmCaG^~j=2CWUgobb2?`h#Rk2K4-(%etg9^2y7gu9ZedP*B0{plUv+`nc6^%GGcs6 zOcPJx@cda@%P7|`Tk+|+Z=L#WgDoA`6(FQQ8nqEwy}Vi+_~|~yNE$Qb7dgcN_1TxN z6qc1h(}Hv~4O1Ko z=Tv6R6Ae$=wwm+$sVXok`;TLzGS%LkNLx z=m;T5XGX~Kg(vj2BBaPh2z_E*761dCBRqW13s3AneDZGXEO|ah>sbD+MR!%sEx{Xs z;<^H&3ra=n<`&1cguL|8YsJDl=hEFYK==A1G(Xp*`VJ0>D;{1d7XHl~`c90}zWSis z{_=4~m0#2?sm0I(Na;b~Adu*~4_))1Nu47*y4C83>;G=X{OSwCQQ;SIyey_NalD2f z*R_E(jys6sj-YEHgz&O|%Zc<853Ij`|KXGOa|rh=AWo?}(D3Hb%R_-cSxI#mC2WF| zd`$b)JUQbFb4Bd3N`%npJvOLXUp=g{rWeT-zh5EptFrNWd{i&4U^wH7!G;cZ_C51u z;nX}d>A}#mFpL}weVim}Qb(fm#xwg??|7#9zP6^ZHR1f?Ig=`K%5}rR>j_}lX>`py zF6g15QOlM!EzZW@G(P+E!y9jF-`c;1{_$JuEFkoulEKVxcWpR)pkq^yR#Z_`TUuQv zf_YiwL<6UlLd#SlqiJfzlQ)Q*ya1M+8b4#2m+DKWFqCp-!L%sRirjIhrH&LDn$*#x z&e)K}+Ew)%*Zs2LR(DjHeXSz{JKkz}rvId9*0f+l5N?NELr>2)xEmQ+4}t<*+9T~ znVQU0y{_t0b-K>!?r;CL@9)>}-`yISsnyG8{0-j6`Tw#tqKSHLnR`|B#CP9Vr;6uC zK6h%IM!bLP<>Y@8h~gZd@8#=n`@}tWJ+>xbh%pA!W0iSlhkiG=sVe3{-}1L!Qu~{O zXrQj9Ci?nq53FvPy`%zN#ZkTxqsLRr@A&1X8|&tldN)12_uFceUH_vJ5fM@Dtu_LG z)ok_Dwk({!`L>5InORunM>qTE9ggFT=zQtk3()fb{+*TA_dNC9f>x zt!t?`XU>Jy&0fFZAMT0wzxcZy7p=OX<&xNm#4p}@zU`iLr#W^8Nkm%Csea+QdzO|3 z{1!fuBtF=VFK;fklLf$a1p_C>9N}`Q-l$a?XlJEd^IhP3|5YFYfLioL=Qmz=(YmHv ziswYCY|X+|3Qb5du`CI9f~;;5+mSrB^}&OmJ^IGrjz6EM=8~fIH$AZIT7TGJnlFY= zT5R3bLEen{^!N2rSyheHbWXI!NGEIx%R+2^x+DJ5^9LG%en8NQ^Ox+7RtC>(BaO&& z7uElI`Rz?#&lH=HxIMvWDn=|FBWYzwiWFI4Vq;^JiM)pSWuHlpnePm=k9VFvjp?H9 zGq=qCMOj@~YQmzzpFkHbZy)TX`@~5~%1iM2y(s07Q{*AP+|NjFk|%z!^L86|tCki& zRXVRQdRCWwdq_g8V%E46*%5`vD zn{0VDbn#c~pRK#7c;2Z=n$9j=Q+r-S%UTnJv=jmu9Z!>(F!2SvgmQz}PWJuonrwUS z2$5p{y88O)+n0QP_6iP>Jrf8W?csm^&SmqKEN}cNjrga=*L~PVj)L=oN*#Af zBCcbjghDA7+ja;v`ev^FdgFah-n{3USnouK&@^%k2PGywy3eCyS`LO!BQ`ROW!dBx z)Ln= za&eWza3(?B%DgWu+)?)Qu0Ql`UV2@*s;)AGR}+Asp}L4&hx+I`+KpwJOrKSWpD2DL()i# zv#%<-KQ(L}@7@=CcQj*B;GI;Ws?rF4ug<`U0m^37W7R}UgT>Jg5Yy>7A5-hr;oSDtVIIcs--rhHXb7|xr09jBGJ~y6CqLhom zB|R47#P+xGI10_Qk%Xw?HQY3 z!kTnEnv~R477{K9Vk;Bt6ad%6aZMc8!f{QG?Tc-djwoL757Te;=YiweSaxbkdXwu& zl_f`xV!9fxa(R2hA=(c1lwE$sxvzyZ-x2`b#tueZqMfS7=XU{vE(z0^0W(KB=+jU)* zt-6@;@i=V8%NnC*tpvt9lkCygYCfvf->RY_vqNBh3#Y~fe48d zIvOrYDE{>HQ0sWg+}wC!>pdAt^2` z!sjy>I@$}lKJxuuPPR?NT3?LcH`Z+p>OM83*I1Y0QKG$LhzTc4AWuUn7nA}NO2Ph( ziR9KNhp#9r4J=#!<+9aMlL#S@Vsc#}B|`&4WHK4XhWcr$DPqD6ld*ja9Z%TXo@;ya zsR!S<*-1OAFj%hJA?Ig+w|oEaX#R{qzGch&jNDQ0lQ{H3y`tkMtBGv3(k-5>%ad3tlEGLVVkfcXt#!3pSYnQcm_e;rtu{+!y zjeno}W1+o2w~LEVE>gMV7Z$K()2mFcD8N;cjO*b~zdgXqPwz7gzh1QJs(H`1?K&x1 zk95z`X~hQYBd?ykyZVBHpVU>)z|3aw7(rZ|sY6sKrcM)uQVNgHLv2kdmSd6_wd~Wu z%t3AWY2voRIf3g7YLIHg<;WYE)VojEH;uHr8wrvnmr>eKqLPNnX8$<~_w>9dNQ@`Q z%g-m3njo9a5)Sx~xD@GwtX&so?YgA_gwgocn~MK3 z3a{Ay(2?&uu9aB)`RU*C<_HPkST5~vk0eI=CUy$x4h0Kjec4=Zv-Anl6Hd+t1G6e4 zWu{!q!Sx1;6`TIe{C;8&>j4-8dZz;TqVSC+4O9LaHT6`C4v*5?)ki!Q2cWbl_Y}RI zIx7zc4|@37-7o#Z7S6pNrtw`kZ~d_2+LEg9^gVy<+S=B8vZ!i7o>g;BzBe(F<@p~U z*tvaE&sud%bu){Giptm zjmvYc5kj0M;%3$&;P;@EqPw#T0Kd<}^opX>-=y6jTQ?(U|^5^+Nm`nRmOFzz8bwXT;LOvR74}2wm7`Mli`73vY9NJlq^|L%lw8) zQc0I5f8NJaKix+|b3Rs5zB>G;#BV;DSba=04C9J#eDjVcZ@c9VkJ3yAlij?$X%m|d zJV$g%hOQlP3av7VebwlA=pO2!hXd4HCdm}q#LN^yO_FDLndo+{%@4#MJbonohk#F8 zdg)E2ch)Tldo*cGaVmqso?+Ve9YF{|S#g9V3u-Bk<{^Y&cnHk2OE6kM=V6h#>*{Bh zq&l*@{wg5A+lFDB`-OF1;QssWNAtVHIl;t4iXYv5A78#L&xK3RVWw{$FFd}T=v;+iNOU1EydDax1BCK?Xi_KS@i0B?rzBty4g07r zFQl|6Ldfr%nsbr~q+K5)WkegQ?@EDp# z#G?~1G(1wG34stAE*cIx$&|tI)^un4w!sHB|LV{~gYj{*Adpj$7)sk_#_m3273G6% z^=&OJc6*rS+Vfa+{-V>F@#?j!_|5ufaBQ1swBU^AP*qh%AX9=S)1U=8_*oIFcW>{0r)XMu z#fmRCJvMD-;iBEI9c$nGi~U#r#d6STVN}Ywi~d*Dyex+(Jr-o?(xp?u%As-2Ebe>w z+x+pR=SU_eFii`O$M~@4iziwC*pmdBM$xrA+TNOQp8dhmwb?_?27ulZ$z*Rb`E7dn zd8okSgrnYKq%d4Z*|FaAK-RJ26yfIkgMWABO$&EiaAjkiKj`PNZ*KWNufKfY7G|K+ z`d6sdMc2)_cij)lzm~Q8u`QS09UjahmFRYujGbgWXD@Ru(>S_4!DyR7gi3O~MHrfg zSbC6A{V+3^`N=H{gXZH`|I+rt!F@xkX`Kq+fTv8Gd*Rv{*S+$S!(aZ$1}cdzy|n(J z%dek*c|~oZ(4@{2-`&>#{1ZEGsjiByJJC6uYx|t@XvICVL>e%fE~viRRS61$i!tpn zw8i^i@ey1{A*F_))!-_VSr_!c1qxIW*G{8Ul0w}^NH0ohxQ>C89ui|#GvI;uDFo`XB>^*j#%+Ge*D?ry!pa` zce=U;KK(%uAM3U9qM=pS{_C>qd|Cys{%k)!e=gw?9orqp&~piR8WB!}W4p8Dmj!WM z6I~Rc86h++1OxzuZ98aM2&s7q=j7z>eY3C5EmB(c*z;)h;ND=$Z#X3W15C=WxNACh_cpZ*{)@+TNvfF!Z5{%Mj`# zs&&OT7Ckd-PWjrg{v?a8n$5N+_fR@3mzoQG=(2#=K$3@Vdrj#9DQ^7H5=<+Grsps* zW)sNOu&g-g%s2`QO?uI!j@MU2+uMV@_2RLV$EzP(vbv^X#{8mODI@}gKnEncrcLD| z7D^>h?l^wmY&03boUr-3=I?BGyzV_f8k=c8;khWInHy;33Grw3q};{x&+545?oSk# z%*Z2=8Ybi~;174bO0+gYq$?uhhtp% zz2%~!A%bCeXwwN1`Xr=o3hEgTBG*7O6r%-#OwEvF_Q=chVG?qX*K;F zG16&8MME)C8t8fej}b!Cyhx!D>r3(0zqkMTg{OAi${6ZI+i35O7rP(r-aqlW;gKHY zXfyJoxgIgaew50Pi1)E`%K?4gt|QjaNYdvBN+=>r5yK4qWztA}i29~0=j^IqIV+Gi zJzo@7MhF)M(De8Dm1(CL89Pom6h#Uhj}btr$sAk=K{}CTR4M98aOYOa$~OKCRdlZX|1G0#bUt zR@M=A#~%50000H`2t`Rm zK~z}7?U#FSRMi>4f9Kx2cXyM`J8MD+n0I1$MFA0FgH(Khj0!DSL=>^@Xte{=+PAHp zYN6BCIzH-Nbq1yK3YZWc5fVa7NXUzXO*XsP?B3nG_n!U{aICG5f9yZq z-^@36=FGWszu%ejo%W?BuMaogt+jW2z(Fl15X0OpZR7b z3ZPvG$45d3oDAV-022rR@_!+scrx5|xBs|iPGl^`j!lQojHX2PB9KU&*facl$*a#FB7DZl zh}n;Iq7~_J;ayO`jK%p_wuLR@Sauv+TKN0Nuq+EHZ9HBLU9l-}>2w5oC`-vC6pev^ z<-aS}pIp-L)3D!M@@cs%F5#?RS$s?BoZOYEnMreMfAp>htFh}pQDVGS9a>&lRyIIe zLobcnyP1BAMn%5hYfDzK^|?({%}M3_P>d4;ehf1m%O02LXc*wV7td3a*TrbxY-Z1# z$R%fq7PhJZWqjm6nf=wgS=FnGYKv!GQsr_xMQfdp zaBplQVVeGJViBIwiFxxo+Xm;G@%T|RURT^6-6fIyV^agqZLQ_l2N{$XyLoNv8yG`P z#N(2-^MzchUPbde14QFtc0bcb#o)Evb>lLwU2HM^>Sk_Vv54oM+Q8zHn<L0yTQ;fo>iHENp-|+tcsSn4XuI?y3{cR*CC)08&m-3nWIC-pz^ptW=1+%#4 z_6JZb2j8w;Lq?S)dbe4VsiX%%ryibCouB@5jMZHo&2IM=HApzbQn~p2X_*b<}K%* z)!*cR{|&M{ZUhRsp_$~&Je9R@t+BJMJ~Cz+a=7M>?EIoDQ^c+7oi9WJ_{wWC${ec1 zsRmJnf+7@9oZPl4Rq(-qlEO*q~_E3Rd3z6@LHlY9{4r^hc&~vc};8{qUG zEiTEjSbfJ@6rs~Hd@twP%lOH@@{>A2`eipugM`24Pb@^M|SiO zI;rC}(wKJ5TO6%(v10KCy1M!}ept*ZqmH&z>J0Y zX{wMYB8XrN!wBGV=FoXON=H+SV86{!_gKu=GuqgH#=kopitd&M4H$$j)`$Qooi(xk zH+A>URyBpNF@j~ADCo2|o}=r zM8N`r*mj(;;dCBdvm@Tq=4)h(<@o9Tq`vK9)41~1^>hDx*JBG24vV;DV#Xt+BzdXd z(L&G5`_Zb(S-gH8QrLtIKSC&&Ruq@+!Im~=G>+;JNNjA|W^^dRP*;G!nE-*#0D<-q z{HOi&_KjjhEJh635HeU5i*s5i!dWpd@8P*i%O9Gzv{Luxr=tiJgkaPcwx9apj*)|P zr&H0;Oa*vEd1|3&1YOgV5lPyrMI`G6P51U!Hnfri8e;(!T+F0|@_ z3)g^iKtIq2bOC1sbf##G2IHT*o!5cOE_{0sc>lAm0{;TFI=Y1-p`HN%0000 + +#include "poisonivy.h" + +static const float WALKSPEED = 80; + +PoisonIvy::PoisonIvy(const lisp::Lisp& reader) +{ + reader.get("x", start_position.x); + reader.get("y", start_position.y); + bbox.set_size(31.8, 31.8); + sprite = sprite_manager->create("poisonivy"); + set_direction = false; +} + +PoisonIvy::PoisonIvy(float pos_x, float pos_y, Direction d) +{ + start_position.x = pos_x; + start_position.y = pos_y; + bbox.set_size(31.8, 31.8); + sprite = sprite_manager->create("poisonivy"); + set_direction = true; + initial_direction = d; +} + +void +PoisonIvy::write(lisp::Writer& writer) +{ + writer.start_list("poisonivy"); + + writer.write_float("x", start_position.x); + writer.write_float("y", start_position.y); + + writer.end_list("poisonivy"); +} + +void +PoisonIvy::activate() +{ + if (set_direction) {dir = initial_direction;} + physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED); + sprite->set_action(dir == LEFT ? "left" : "right"); +} + +bool +PoisonIvy::collision_squished(Player& player) +{ + sprite->set_action(dir == LEFT ? "squished-left" : "squished-right"); + kill_squished(player); + return true; +} + +HitResponse +PoisonIvy::collision_solid(GameObject& , const CollisionHit& hit) +{ + if(fabsf(hit.normal.y) > .5) { // hit floor or roof? + physic.set_velocity_y(0); + } else { // hit right or left + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +HitResponse +PoisonIvy::collision_badguy(BadGuy& , const CollisionHit& hit) +{ + if(fabsf(hit.normal.x) > .8) { // left or right hit + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +IMPLEMENT_FACTORY(PoisonIvy, "poisonivy") diff --git a/src/badguy/poisonivy.h b/src/badguy/poisonivy.h new file mode 100644 index 000000000..811fc4e97 --- /dev/null +++ b/src/badguy/poisonivy.h @@ -0,0 +1,23 @@ +#ifndef __POISONIVY_H__ +#define __POISONIVY_H__ + +#include "badguy.h" + +class PoisonIvy : public BadGuy +{ +public: + PoisonIvy(const lisp::Lisp& reader); + PoisonIvy(float pos_x, float pos_y, Direction d); + + void activate(); + void write(lisp::Writer& writer); + HitResponse collision_solid(GameObject& other, const CollisionHit& hit); + HitResponse collision_badguy(BadGuy& other, const CollisionHit& hit); + +protected: + bool collision_squished(Player& player); + bool set_direction; + Direction initial_direction; +}; + +#endif -- 2.11.0