From 8abfb9123731a859b40f2af2fb97a35479494950 Mon Sep 17 00:00:00 2001 From: ncusimano Date: Sat, 19 Aug 2023 18:43:22 -0600 Subject: [PATCH] Push --- godot/Models/grape_animations/pickup.res | Bin 27930 -> 12625 bytes godot/Villager.gd | 74 ++++++++++++----------- 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/godot/Models/grape_animations/pickup.res b/godot/Models/grape_animations/pickup.res index e98b629001b0d6d80a3204a6ac2737b942b384de..0471c90c518a2d0c192b398b6f3490ff06cea8af 100644 GIT binary patch literal 12625 zcma)@V{j$Fv*^!>ZEoyrY&+SFZEItDW81cE+cq}Vh9|b2-2LBoZ@mxi%j@Z`?wYD! z)qLvdp6XFj78L~p{1X%a0Lumd$c6v_hF|~y!hco|4FFL8^FjaY2l&6ZneoE_fSgSZ zpnRE=ipy{qfzZ^KkHj)8$%D#kjaK;vQ3T7z3=zqqIHoyUgOYm@DkL)0tcTca{dI%i zDDSRT!bz2ym(Y~TDC3;s*Y)^vafdqnLW>a_DJcyS-+YgHb8J~s*(ys`na~^f2`g6~PJCyj z9r<`NPDt!+7?VVomV__vcYFOtvn3A+Vkw4;L+E#ZJ4SC&)IhthNJ0?gaPHn8lmNtoFn&~Ba4g@iwslE6cf!9a>)d8 z$(VhvnEl^uuTfBNQ37OhIBc&w_FVW#p`CwiTQ@FD8`rEkGON`pmn@st|IzL_|L78n z|IjA?p%Xy=Xs#IgBqS&%ho1=yLhyJTkC`#)%pu_x5zZ_yYz>Zb_0K4K)CAJU>GUR+ z@85A?;5DQs;0Y>Oz>Iq>u#<53RDXa$zOe)+J5`v3ATls~Eo*}B3V;VlC_!uU3*jKf}(1Z;vA(E@6#Jo;R`XJPoXgJQ8i=W;bHY96+0-( zU;B2jC(_M&pM6t5pp?0E-rW#B@BMKwYrYW!P0;@QDm6$o=q*ozAdp$Q3*G`Knuy<* zYL+7F6y*aTjSNTSsE?fCOLz9-urh)|o59!ZEXf0ra^_JW5JmUaJ`8Z;oGeX*5%C{_ z;3yV;?629unI1xluSLvph%xZ`Mo^YPP_p4z+S5(WdMU(8aL)O@2%d! zIi-#;0EL_cMi?ys<<}oRvDF#zo!y8n>kr1%?AX3RqxgEHw7@XK!vk^%5(yDAZ8Y-yuX|V2h81^UJ~_6WBS7@LYl(Dg~2FSFEH=CY?z#i-1zU3MnAl z3pz2PNqNE|p^mkf9?#^I1bwb?Sn^cXEwW@WvxY#n+)9r(0r`(HdX(QzgKVi>cYb&w{;`cyN6N#(zEA1 z*8S5Z%q&s`555rHJ<3MbFHO?aL`qcGg~Vwu_l%sfe2F_P7wf$oKJ75<%${BN{8-{&n9xUr;BIqJ*6(x8GSj~)l7nP&2jg|k~Mrk;L+GGC3w_d^EB+4oHli2@PhWhNDjhii>} zc-P6SP2kE60`cs+3WkcF{5tWott^-DGxhD{oKoS*JDY>6x89JgJ39@Wzy{*eG=kaa z+AoLzY^LkP*$f2pvTnlJ5mXaACPJ+#B5Ll4+AYV+PAQ%wKc0XlYL9^-`}wv%8D`tw zE*UbqV132qfwU=I70PFF%SH7YdtOT;?5A`HT(dJy3KtJqcMI#2COP@`dMkQ_cU7Y= ze6vc;>W5h?^(q$+&iY7%`zAa09-%S_zqyX2VY!Z^B(t0dW?qnv@WTuHM4Wb8jAn+i zwDFI007sjlPCoa&uu|RIxWY5-%Y43LD7sfq;Z4CSBej-SPm29PPl@mQ35A<#4xh4V zLU%s8EH<;47_fKNwLbD!sT9ThH^TB2kB;oF^4{BKh&J8meZV7r-XBp{nXGxT3(6(^ zd{0Ei2|ck?2x`~tM-N=v97|g{8Nma0khTK?HoD#tAy__Cz++e8iwC1Tm0Y@UQMWzN z7?B^UnUxsy+x{h?u2Xb?*(+`Rl4Xv!Af0yi)bz(<>Di;u#e)i6)@L-Ss`tatveie1 z4RGc|IrS5slhKn7l5i^^zU{)Vhg%;8H)!<;_D|?{MBDI&p$}40;vpgOlJ`&=>kR;} zi7&H^37tVuIkMqe`vWuHo4DTDUVf>@tT$TY-|?CkiHx#g(G-`Q$%*EJA8thBV7!Em zsKZVhAaj#fA2JjBJ>c*7oXFFC(;R*U{2i(-98~!F68FnAI@K9|l&k~sMT7|d5kC)G z3XsLcgHYNBcs^+a@HebGL$n6#-FaXioggxug#&VO$&uy5MBCm+za9CZI7fFFtzB;O z3ViXzR0?RHff`=d`Md=a&XoM1LE*06?R;O zkwtEGXk5*bAE{CSELU;VE8R!q8(()ZH8P*G6qNNJ{djNEQ z4N>6n2&L12njrrZ%-b8SEgbq|+KAo!x9)eD&#ej*Uj<1l`Fxt<+5v$~jBY)#S2BTf zz=B__FM^H4S2$V3b`Z_UWh zP%(zP(bnW(A-${_Hf$}l&scq8pCWj>#&sfVA{F19iL#a3;a5)&4kxVT*ediW4i7|W z1h!K`UfqS1dB3TozX!>=RHlHgSS1iH{H#b1=Gb6cB=62=RnFhJvKFePRr74gQ-)e- zTv$0-E55^K-Q~cb6cIk#R+@nzev;6ws?BI8#QOnAlkDK7+B>{PHe;Q%ORrUT4@#D3 z^!|pTjF|JSUeTg+t;^(Bd)kc%tFLq5{-NS)Ho91rYA#Uzb1pU})izr@>C0zRtWR*E zSV~^^OONJ#5E3UNGAq^(=6lpc@ThQtmGj1v6`A?tIa1N{Rd8%g^}Vb)%9$3AA~Pj^ zwwbthZ*LQ!QL_KL)6WQKvq$gW5Z(-mQm#UeBQ?(Vo|43_-y~HI5UeCzlxx3IB0G`k zc{PJg6cAWfd)>uWu|3D)UIsL}0bU=5dS^)A%YG1oZiQ^oKTA|DJN{Y-K{cS`l=j~= zsx_aas+u$yEg)yb@47`hE!TFr#947-Z4I^AZVlAiWk|*om|)ro3)m7c+Rd`SQVFi- z+sPT(W|MT9<xyhffIekYhmVpYv_ zBx%3hGLmfJAQ%|bnkmBt9Q#0WNk`N?CQ))~3@2eF0^#kN`G$_3lA<2n;^Nr6>0NqJ z!3LuB%F0ll$IHK+ZdY5~o=^WzAg}67()(9}UT|Yv%BM44%cmvLWVdd!hx;;{_FB6? z<_eKKH}iqnX}(SJh2vzh$b91+Y8-6ku-&3@vr*G_jn2(F-5c8ay;X2^fly^;cEtBB zvfC@KohOqgrit3&0X~Q|)!1n-xXcH0%iHH~bW#YIft_#-;($495|OMEwgZr^Hy!?bRr(8lZX0!`9iS3 z(?CXMvM4`MZp3on|I{$WLI4lj`)@qN#4A8XQZp#fL=y})Lq&*8!7n}KuTUaQYR%fQ zIos@0!7TrmLkZ{{M%faH=n)$$whRxxTTxBS;#^=3FbfDb!KUQV+xR#cqW7d)rN}4n zNkMCtz{WqAt$J+jTG5Q78O#`TvKn%SJJTS?>2R3elBd#qA~c_W<8##ZO}e`>sxfAr zwW*z&pTxo=CUKBAc}t7F4+AQ407GrBWb;*p0_qbmG3Dsg2vu zhYlM%C3#*45k2tIb&;i2F8n(jW(=gUL5+ChIHT%~3BMPB8+bcqqa?AQc&YLeC(L#X zb>_Q{Rv3hv-sy*XufiiaA0YOu?zmGJ#4;rbimTT|bI;mVMGST?0O=+{k)a(r`Ll3r z1jLjSqPDONyq`9&6d`Sn7uyGxTmcjZyWr#N*Dx8owq-}T3~f2S8#iiEam{AsL-HNU z6k2r5OZ`Zbw=l6zu?~EK7oUat&370YH67FDXj>A3cdap-^<6eIe;wwIOosLfTOQ+D zBT;_DRGMw4E4(DOYumkZ9Pllj9Xys3du)}?HD%xH5U8m%!;Nyp7v@BGK-(~5`b)Pe zUt@B4CyUHsCY0-F&b{;GAHx3+!5dqxT1#rIJOw?7f=rKp)yh+Rpto=oFOgVMHpB;G zjLy|3xY&!BlBS|J@^C|k9)wB>bfA+s%mmXIjoIWa6=$CN#}wj7BWmfonQ36YP#yg- zL8<&Oub_YpuTfSF8f!Mpz_FJZ49O$E{MI~3qaFi`Zr1)-FUtq4MeNX&U+0LRug_T( zI2Y2zB(G1;Q>~SAu>Rl)(&hwAHsTFG>!R8VjN%qQuz<-mW926zijU=5Eo8S<{%xyZ z6%xLJpHYF955VmYkRqdN4PQN79zk3}WeKZO_hH@Up%TUunV+mo@=x0+1v^_jC8} zEp1C*=R8*Jy$rb(j&OuCW*4f`D+^f_R=)yXfRRsVp+9&l6T(8XqzgWAyOPP9&-wZ3 z`O@mDPqBuxok`}Q$jm@^E_4&W=mS$F`K7P{H2LedwO?m3L$^u3mh z+|Gv>#Rk&nB7@>{hlT-ytnHZ2(C*?Q63PI(TdT#d?HOl2oSjsmaF5fI<%Zk^@ zWvsq)$b4T&QllR(85gnyu{q6r@79;dPy=nAeLVhY!arh@)pqaAak{)v+q&u+cIhrm zH2Ro~HK$)nVVi_>oFTBEX)O`Sa-s*%x`PFDLdgoc5|SLbhQ)a3s8Fw%=&Yio;J9j@ zkpA4`fkGHgCd9G6DRM3#r8_Sp)oPzMjBDc}imikG_Q3 z$<))&@3|IQR_FcWD}{zKWWQ4| zN=K6FiYl+3(LC(%1*9NI)6gF@ScrrPYQF`o>`&g z%*|ZhicUE<5qoYr5tyGV;c!BqtE>)vyD8)AM_?s&^1ZzaJz~a|5?s|?COJE`&=nRD z-T|8nb>thQ^<3u-l2rTs-&ywd%L&DovHC@oAO7%Vz+%H87#NbEFdRxLryD3z_NEim zJT@_MN^}WgDoGb!EasZU?t`Y-b4sATgO<2Q^u6KQe)D0w)?HT#zurPlCHrjXesE@v z$4z;9syv?zi8n|+=P}8SdxNa^wkg(YaxKRcrBa!XrA@Oscx^nT3P(G5T{ z<+#}okyZwcOKCVAM;FAT4YH*3A^eFm@!OYKA<`YB-{+$7isUEU63K3jGA%TtYOELj zsq9nmC3^qWmB3_#Z(}eWCZmxn zRl4z87999?V2yx~UP}(RXLr7D>f7=axpW+nDs>;n#8=PSl@D&)@zdGz5Pbz|%1IYG0) zXz4=0D0;YSi*SSvu{8kqi)PY`5F69*A=3KQr#2I_gYuW^`_3Vfpy!thB>Hz^Eex(V zvdOcbjf(PU2&{`brri|# ztvjxfpJ%0SXI0@?gW4?^Y2XJW%pt+~n8XWg7^DY{k!gL4`^wzdL~GFAk_RiDK*x$5SxMT`|lS^i$FSn02-%E9%wQjIWs;aOIFdYTO1nitLC zTltfd{iIFCZ6s^+FCAiKi;q9Wg4E$Ciz;GIzr*9}5GE&*d{8N7nl)g$BIZ2AX zbks6IWx_V(5^OE@Q9;uuvX#PR==X8;^6MF9_F4tc-b@%L0Vkd9LhB4|pYJ;ule0h6 zhweZQM^lt~0@NkOc@N4D)UVkM&D<d6?#FbtIhlU$}l3(k^HD& z#_>_kgptU@(sy!k;IM(HA|QW;S7n_MQx0n8A`i=OP0lj?hoWrwW+r4tVs|l?C=(Gy zq@NO^r&%B*hq49{qX=GS+1}GX)^egn6THHq{(=q6C|YM^^-OgfcxqhiTzGa`R$%%X zjYFdu-vyTGWK!T>HEF(Ib)ti=i*2 z+QWTpTO>7d*A$~KGQ(A(1AbMhScb+(gsP;eZkqeU|zg<>RVs-W!1jVZrY>dZvsoRw!?!4jp0A@h}m`{u&RV z7F zM;%y&tw2orGaBf(>_k);kJ>wxvTD*Y#L!6LnoeIoX&tU>Dt*q9x%dWJy%3${f}SckJ^bz$I!~h&xI@iA5zpmQ(t6;I zhV#4;IP5bCyz9bmU%&s*`HiwXM0Jme955L`H0+hTe&jpvL-Dr4gC!>?ySTUNWkNk*CQfLKv{ox1kUEBvh&i{MtJL75E`Xy zgNr$x10?_&%wW5B-wn;dW`4JTL@}OrhdHMRKx?&u(noRi7MCZ9V_j08CZR&s#sDPZ_Ceq)Y&G-fb)b^FY>~%*V+;39 z+maZUAmyXUVk(1HHkrBDX7G~T6~PX({uoMbNbjCyYjJjAV5vUO>APj`0KuEn!K-Df zu$&`Ah@0jHH#iRE3A$nO2)X1rWIVQ*9*U@6kK5yOvNE@^6zqkE$*?a4V^V4qxqmFYE^)z=T;J z4hL~gB2p>P16Fx-I$oxXxl`d`fqy zSs)K(3k(Fh0zG}B+9bhE*0_`(Ln1?*>}P8bZA$tgSuX`Pk=Uat5PAtY;%62L`+EDr z`?6JFi#OkH?jw#_nDcFSE+>?wrAZE69DY;UC{jtjp?7ivyUDR(nOLz=i74R)A0x~pB`Uvj}p7v(W{-mqmmAuegq9kmQ5q#8o~ ziOK1GeSQ(9UfgXrjYNRps~LenAen1w=gd0~F5I{ddg(vJ=)}QRyPwMW zJpB!4yG`6pgA9AR4RK-;j(VO_+>`ivQPchy+l(IzZr zcp7v15g1%e8(b0a&8SECyawH{2kc_^yJ>~S_y0~K>#CuY-OwhV{Zch8xdd|`5%mW# z{A9nEt$PZs|54V6faoX-Da3=t47LT%^!}?c)I;R~=sR^fFS-QUVkv6HnhqHJPyx77 zvghfYZ`rk2sIO#laA~GdXTux^J;4nkgF|Ud4^4uZCA4>tDQ)5j<>=F&h}smv!=^^1 zg6Tppr>7yRdmg)6G1yf>2Xn~tE=XLcybrkUdU>TowSPONap3p% zE4ut}*OYcqI>PcWcZ3&|LG{S^1!Yr&AnmJ))}C0+v0fFnDVL)=@6BD&qW$SrU{Tda zvRRz(ecx8_0rDFeyE~Jl2BnL+9g|3Yv+xim-lE2}<(ZJQ1GAmCkQr|9n)=E@%}=K0 z7Mc|vikZ0EmtE^q)C@J}W{p-`;EaURbet=cBNKV~ldCKBWQ2@=4U<4v{~B^gQY2r> z=X<_-)M9jU@fb;bAyx!Kh2VQ0Dh+Q|+X7;OSsZ~i=0Owu6_rE80)^z7lA5Qdr{&>Z zF5#1ScZ-*qy4};2MlfOQN)@|yFnPA9ub26GyPnq|eNEf>+S5?UfG6+GVf$*0@2?nn ziQ5dyQH&fRA(#~`YWxu8k%lNV>M~GShyR)XQUB*_^bz#6+JxCN3s;f2lyEysOnWw3 z?XC5~0cd~NUluemp;5~78+VPOW5cy&oVPyjhClDF^}MPtE%2yPE)VE{QZ5)h1$dQf z1TB?oeAg9SNg8eG*0_CFF`r*_Cg$~o`eq($llP)^@uBJ*?-7HSpYucfQ7FLl3Im}R zGrRbk>Wp#iL}G4V%V4Ccu?W3*W4*Yr~p~BG_&d&86fT6fWiSvnI zj&I3jE2ax8J`b&-v}2NRv;sJ&^+_~c$17s~z-snPef+HEDDIdB8;LQHG<>=fzX}En zZjTBrT3!k`=Lz8G#-isx`SbZg^9{Tr6p))mgHBz3;nxOs_rfD4b;!WBYS+m?>zr9N z>!%qI%Li|!Y^U!lxLW>&g|pl`*>gR$gch6-cr3(B^RRc^AQuv~^@~)&{w7p(1Z7LB z5_DR#l?SSlhvUtd&bQrH|-?Q3Gx*S(tXA1S9`nn4m5 zc?)l@GAEm4>IeoJ>P&StsM}?@Pg%4;3e6ix}6}`z089z2-apRGVK`Px_`V9mZM1 zTI?jWfF7#MPKE9Cz&NvT03nwc4Zc=TV8vxXqvvhSQp#zk06YxSK57{89HP^H3IcNf zm14-uMPitnnbNBJ9cY~C$qcP-d_~^`cK^~RP$;)8e=|*_{TEh4^3gBZ7+J$z1S+5A z0KMY#w}`4Z53~6tdf=V_bD7OFbMz&_!rm6M4gG0j{eqb>`FLk-YS-I!f}3`-uD|}; zFm_PWO<>&ZGjWl3s(M9l7thDRgE>q(fj@OwemMXYmOL(xJPlseiUev1hfM4a3U!V; zpbY~d93r8J8avS1=yh_3%t|x2E?-)Xywyn{!+{Xp8F3nZgsVM+nV|?0Dn) ztR+?TJsaAfHw};69t88)#cgtp6vVDLCKlwYiPRgYF?nn6f+218hdXM@;vQf8h>rz& zo=mA>16=Y>K!yu#?q|uHC^KLW=pGGF&nMY4pX3EpzmA(aABZ8 zi&2MJP>2lnwE3tT@h7D$bW`6cb*M~DpMKEfGS-Y$LX?u5NT9pN%hT)mey3`rPHc3+ z)LI;|&{PvVN^rjU!?p8mTrDu&!fwW{7mm(%0HH37gUKj=JWi`GES&PK$qyC%;N=%2 z8D&P*AE=))Y`FQbYsfx7I|SeQkBEF82WP+RJ3fRbC6<9!^vIlIRYxKU7iSRvJGvkW zfOAU1<0K}QhZY|!_LFyqL`F$~COMk!6#4|*!gRoz4ZE5gWWzNo_0Go~@72jt#(V66 zrRVpQ8ULy@V#|4tKCLK%|e=0M|T30 z4uR*HHLo8{cC9-on8Gtz48zG=K?qxZMn+fr(=ZkOPX|t@V4lV~L)H9&$Ki9TO34Lf z9mc8bZzxd#MCXKgNHE~%T3G$A1qDp{FrySF-Y-imjc(IOPevLdxUd?&<6v}QEjm62U2|ld%uk8jYM&@4;Q3Dn4l1s%DPug^ z%xou!-G@R>hYsSF&U9w;)XsgCaL z@QTjcF!`y|Sugn53;Dn1FZ!qXk;{IAIZYlo`7k&SW1Dn_<(GeT7VIB-bN@xh`iNUM zgvL#J@4*dA;lAr=Dy(U~ZGWRKCX_#`pGujm$D(v5)dpPfmXi=Y-7EDlj=EAl5}C?& z!U<2*#>dA^rJH4&pSYVNyJ`_0PZ|K$|2lG8|12522wpX^TlrFwp1AGFf(Gl;GhT0% z4~yx+(n>iym?CgG229mnBHSZP@NV!v&Dm=Ax|%j zMy`%2382A#(#8Iu;ojrn!&R2V)z6FsELkxE_sfYo%83)>FNQRJ%r=VP=S8wZdQKKH zv%kGdkJY_}eP>rqa6RqgAr++PSozpfp#HI`rv=_}dUqT?_Sq&;k*8>_6-H`pCk`zf zkd79&)aNAE@oREBXWbFe0%nF7pP&4&EH%1~FfofYIP30POkq}|){JJk@XSj{bXKF{ z46e`&H~lt@qA|2iCVmF~Ci{^N@ljTi)6aePP(8XBLdX0uD)Bj+0xk6r4l%XpHe&Df z$wdJWgC78*fYzji-3D%QKF&?9>R7|2`L|YSgr>#Yv15YNLk}Ng35w|NMj=LiKx2Io zW|^`!!|cY}v#jtpL|3)eGg8`eCGI;uq}+ORYg_{A(`Hm@>vEi})P2np)J|@+()O<5 z3#n!@%V7G{{qN?dl7T_@X6Cy{Ci&&)j)!hKlGy_}k<<6`g#Ld3mWywWoy=C-`A*t! zlaIK4fC2%V_N-7?E5`l3#%6>EpEH9(sE91(Sn$~hx~00*zb^~gu<5gE!IT?@l^fSn z1w^#uFB}9a4RSso(e@RstGM2rV(r!mdZ}mD3%Yuvv%Bg{CTn01Z&kaawd^_HRl#z zt35^3igL_H&wtH3!BOpgpg|=~>>?b4D(0-0*_s%cP6HX`}?B28k7)Li&x+6Bm9C~bL3v0m0JO0F5s^;6p&kZd5At)XA)muh}s=> z2O7cdJKF$wt3&^c>gOuice9!4qQv6=#WkM0(&%#9aCBcD_{Er@Ue2DrW0y(1BXcc_ zOj=g48%D~n#X0@fgKuk}_ck84XxWwL6XhVWk}_#X-My`gTKK&(;~g7Z_V4_uJyM)A zIo^l1`evnUm7XzJLeAdEK`jS9Z|BhGFi42ZGVl7^90VQCoC{PXR+edxGTxt(rvo?H zoO?t?I(8z0ekudl@nrJ82Pl`H=A1o~vSZ`0qwqsydciN}=mJJ;k-XLmx2wa&(w*eyE5RIsa z=j(l6i6pJVBy+$pSX7alU2WYN00{mWQI<8c92$*q11>j9?KMoGEmY6%2ewE1f0PZm zN~kU{Wz74MaKTPGjQp5?Z9+O)4OR83ow0`288HthS#&zpA?IvA@BbM zTyfms5ESQvqP(N1HFmxuGMi=ydPGRhBvOzJ$olUI#wqZe&0b9|j~NtJ+y0WxYp*%i zgUV<Bqy*|^?^iyby3j&ys7b~ z8RR1Qla}>olLQ5!N%|=)H9*Bf{hNU#^+BDZ6X7G@A7Ftp=mc%kvuugZ;B{?L{%gp# zg`R9WwuQgwiH~$1`$Dns-*-ePy`Bez@oe`71I2Zm_X=nUkB5g@865XTUGd-dDMbmr zKtj^CuOMM%2FHT}ZGroP9cFCD!$B(~4<~ddLa(C&e(aAsp+E)!=lCB)x5p3)*GiF` zst+dxg@nh8!<7uTr=q3=UT2h@gzslUgSH;$!jlZQ=LHJ_&KEm2D+pz?+WS)U!t%hg z(h2|tT4Tf|R$eFMu`RG$v-O)g$teAVeI(0fK~yL4K10%Mv@Y)~^bLt12>OLw02KOe z{_93^a%HMBX1kXe?IDM1OE>e}v9^~ZvDD*QJPWDk^($$6YIkC{1~5wm*VN|ET1Xk| z*(vH~>`*f9f^Yq}@^>?Mt4&dl5bDe1B{@BHoGUy2%oSo}*Ug)@+n*{D3z_^?>N)(H zY>leA-2{>1U5t?v)Ycg8efVgKR4{aU_4IFDTwVRWT6w$LE&D%j6<7#=aRDR0f~DiI zlz3oP+5W5w!GN`O7!CzI!G@9H{*u+|>4eAP07I(;9(~I-@&C$Tu9y*7F5l#qBW*#YJ#`N6ueL^Z=)2U*09=f;0da0YU&%S^2at;LHmhTkkAW4K;82Rh8II%iFqz zX@P>Q3mx-cHia(y;bcg3$X}T6(4S!MPXy1~WH&^8UpKw(Iu|8F3m?t`IWN5jy%WA$ zlK7)oqpXD-{E{5ci9%CU4*2k2X0jA%DLx&q@BC9uHN3q@ta2-vf7h>12Al-fgokfFdh_Ghjx92 z@y(kkTS}C13A6S0GW8H@Px00g{Q2t5lcb3+sL#77_NN0s$%6!?wYT_Yt?2jT$qVP+ zFL3iu!Fr9GZHh9|VFy0c-p$J|IJnnj(aR+a=xo-q2o8Vynq(~WVA3Ydy_lt%DM#zr z>b(h+u=+s~CNRJEG9VU-NkaLrHP-)3?HmA6;}DqfQHkl|gql>=k;-L;1{z*nXfe;? zbejrEimN`Pf#l=sObP&@XL7+@SiUrTZVfpBk>%nCeXz6eyK0A^CVGUdjdokXfn&l#Mro{|W&D_k@G;P?Y`GtqW8a9-aS72Kqb7uD%%RL#Qy2b^4U3CPhz$)3 zj*JQoi42a93XTg6gNmyB_a=ml57Srzi42<%9zTXmB{C{1I(U54s4(*6aq(f%WS#if zkkD~)F0L-|lcK{kwy=(YM2wG)ij5B&rK!Qwun8d}BLU(kG?Ye%z_V26NyLQsu-Ir# zO`ee{OpFatJ@dG*NpXBTH>0_@xtN-Zn~RCLxVfn30xKKM#m&X!T-;pLb8$DCi@V9W zxSN`byU|==Wuv*co1Tli(Of)?=Hg*;E*_@l;$buwSlMVU9;WBwVKkR^MssOraxU#m z&83~uTwrCRxwJDqmv%;T@idx?r^&f^nwpEJ(Oh6a zWi%I9*=R0arsv{iG?(^9b7^mKF6~XtrM=NyU}dAZv^PDM_C|B@HkymK$+>u&nv1v5 zTwrCRxpfG#6OeXf8gc=i)=>QmsrB-AaX*(@8)Ewd3>{ zFq6CT>l3}>BpRAjSNYcr7l!zR{FQ)tH|WC&&Dh%Ji6TSt`i0yiWiG$I(UeNHnV%9T&is_h)R}Kt zD$o3s4EoGZi5KYd>ys(rYoWN%*of$OSfJOKt>6(ZrhHvodc#FgWSmPlT$qFfhp=Opr;?6BmOqNIE;>pi@+DN z!5*VDcJMX6sKZygwYlXwhOhB===X6QzVyS_zL?g7!Pc!0%Rj;hqUErZD#3r6IS(_W zN3{#(ZTU{3G0Qh%unID+b24Iqfq_O0)-z&(fjLHOTYkO~(`XJGvB1E~Mr>RD6C(z5 zhHX`EueA{i474+18ch?z`llcB?*32A-dBYAn(KW2UX>xmw8@g;7!nqCsk?8- z?io^GTRT~!@guB~dA{%5YtyBTQ@8tU%l9YDV#rrt{h;YmR#!oQeMMMRhc?=4r_!Z5 z9>?LHWdvcHyAIPnZIdqLZL2G8%O6YFTCosulw9rz9Q zy#-;idqv^*lgZN1njhd8SrPU)xkTHn{Z#3x^K&?s)`Ynfyw#?iohmJCbQ{+FfiQM% zbRp+Pb;7JWUe@mInIc*GE3mFDVVS|lw0X5trN74K!@72aZS1s5Yrh~>+Txi5&s&$U zn?JA89((c%{P}E8*r`F`+SWg$OKI1d!n#ce^GT7k=Vzx&quRX`w&gnz z7T>L&wr7Ru(t-ZD@H%Qv*zJl>eQU%|mu{Z0gV#|@!mLVPgHNX6*Ps(&seMQKI0^t=gIkF^|+HJqMb?2!!n zivC+PJw;-gZp^8!t2wMmv{TKYk4ernUR}?0Ud@@-t2xtqHD{Wy=1lk1oN2$B!*-F^ zkeb7JZ;~?~P}egrxR5_r^!<9#d-Bug2Zb=QpGlud?gvDl>~lVrjb9#W`gNMbJmLM* z58{oAqkOHiXB3zU9(eu=#7)Ky>HTtHI-Y`slIJi3WIYa6XB@K{%AN@$^aw%Ru zy09uR>NWP!fzoeBUkQJ_O_OzXetAL>0Nvj$2wT`a|#E-Pi>bYJ;^_a9|muh3xC9Y zs244IJ5V}0p{l5>zeS!>2lt_VL=9`MDjgH}}Km)y-xDrIKb<#Yta( zk^2w9^Q69X>Bs=-@t`WAa$}P`*c|U4>P_QL^_855RTf+Syk3sIP!sx4e_GI}ril3*NtH$V1QhLLcf^BQk%K+K)abEYruz-;?n9Og-ykqOH{6;6dRh`ykondI0pH zzIDB}xfI!Bt!54Ld{82rUSW7^}I0%soA zj9YFF%W99q-qr#J^EgMYz9lTHJ+A831N!ryzk673_1g2t=V^G`!ShljV@^Fz&7mdn zGBsx&r{>J#)SP*onlq16bLMes&OA=dna8O)^Efq!?SkWKYCmATFy_qTjQcbp^^P6( z=`SZ{di(o7KD5oO%;OfI9s0bj={|97?-kU6bB1}G->Y@{dljqu#vDp2Jno(XJ^V$-o&eNxHj(MGSG9kopxH_k@h@CDar5?=3KfuK)1quu$$LEi8L_n%GppWT~_6|A3X zeM)@g{NuO}^*F^QTC5pcNmv`)U*0tX_sJpk+CFQ<-1~Ke)MMl1p0FR7$31d6AqFX} zgd?xh8PY!-24!Nrp>gngnm$dkrVH4rQ&Q?a+c725G7AxdtE2l!Ae8Q*n zv`2P}M+lo7Hp=;TlYvo>8@JFEJ-;3+#BcpoHmj8kefE?3`;$7Mg9+(E<-LdGP&cd< z)Z+pk1tOcD<_H7ZAC-5BlcDx7sdqmVjs_Ml7PdQ|m4k#y(B}l<4!Paxu|>AHsQ(CyRvnSMCfyw)c1B?j9SL+ z5t2R^%P%Yvpbz!9J8M^Bop_oG#gl%2S z^vkVry}2Jgx5l8I=-80+!cOSp6M*|ukL&b4AN7eoBMklcMP5-C&xd+kC5Me@uf6Un})lDoqF7V zK`oKfhIpZtv|Jt%gRe!Y$K4-V2{m~=KnTsukR5f{Q|!t1ro@~U9nCz20RIrVkq)2F z)Z>;XWQq-!*a_#__{xRj@%isS>PH{27B!b&Xz#D9C4ah%UoX_-{+W=geL3}jc1P2D zx}9I~>x+8a=O?@5D;d+Z%I*!i;Fq`$^*Fbep8C-d&f04=gLFCt_n{uQFfdK;ZFAQ5 z!@jSD-;;44>T&&BuhF}2^!1JEGN!P-fcsF78y~n!f6JnS&!hU$1?#HdKGfr?fxlb? zf3X37`4jvFr+=pIw}EA~$Ki~xEez&y&Ro3c%;VIYd7PTVd2O-}^Eh=q^EfqU9;fEa#=n``!kIz27z6KLS!UrP3#n(&rz=5g(yzId2s-~Hb{m-ZP; z>PG=zDr)w%H+xyy2fzMPCCpv2zVDr}J-f6|D&csZo&7ZXVp3YU;q!-i+!)|%(lz^5 zbPFV$c^sbqgF?+diJ~0A zZ?EzQM!AXV0esqaOF$n+l5efIhPCi;1FlFxFV=alwabC>Jh-$cMMh5dF_# zO{N}q@`}B3{%x$>{Np0=lpnqZct!f}dFrT~%}tfR&&(CQj!l6+?+Kr`)J2J@lqDxs zSto`M$JYR#2~V2XPU$&mmfYWMlX$bi6kycjwzlvXKmUn+E&E%=6?8m3;V5| z;<0y@{3LOc7*z-NryiH_yQ{M3PL_P4=6bPOAKZs}+=Z!5O4Z18xz?do;{E-Y)8KLqe-4H#-lOS2Ue2W?15D zA?k6i4NCN`4ZF*25~4-jY`ov7$9-FRPhWpyJGp-KAThi$_9p6a%lZkqELLXDIN*BIa7M32w=N0uh%Z(3YySdT2?wJdP-0Qdx^|;NmXUJhU+v>~vnJ)T?qG*Ug{@v%3y$E4%;Tn}7yG{Xl2!QDdA+t;3GPEZuHmYy$og4F2*XyiQ#;rajILIP*AnZrKBt z)gFgEvKXC9~K%;VIYd7PRvk5hBzaca&yPR(Jv;JCv5n$dPyo8-*n)b-5c>KpZO`X7Bf zO>*XOm5uuNlX}eEx#P(0;~J|t^SF-_o67CDdUhYzT-Bf5$JJ7Cyl?POZx{18^?qO; zr=CB%k5kvP`#AM>vHLjV`K%@LQFC@5r{>J#)X&R2?hWi8Pj3G(k82J4!I|UC<8U8- ze=?85^XED9xbH^$|BT7`Gmpz%;;1X}J|Lzya4YH@-5#`vdfdK{Y$0OfIMIK0i_uHNWJkO!`u@s8>KYVASI}*6EAZ*Ns-Z>)I6kwx=8Pp&qws zRwPF890^~&8*AC)cUU7or$_y{7q85dI(1&_l z+#mbVFS@46{^8a|HJ&2qL+|5ec304x#TH8A@G3>m{}iB)J=xx4X(v(T)bsl59jX?E zr1(M~>TzDZ&!aK#v-RyBR4ZEltv&Q{AoW$#FQXMtJ@m(V)+jm_>Ir?Q$2BdvjvP}L z%R;*$AQX3I;0Z|zz|!B)=Dhu+8K zcYK1Lc(xT+<<=^CSEmj1p&r-V_Bnbza)j9BU9F-4%bcJO^|&<`Um*8Bsp6QHc17>< zT0tM`aref)MBz^|#nV1^MYp@RlG+@?AOWWo}1FkqgEq?u^N_QJAL1CNolmN2^MaAxI zppQS{tLH98e;&$H<}|EYwAc=7U?AbU_bx&+r>#-kYkgBLoahK_1mO!^=A$JkD;3uf z|0s*&`#_(ugnJyDiFQRURd%H9QQ8m0@2@2g{&q|n`qyoN(qZ^)<9HhHUo;PAXbTB% zE44ubW_D7dJJy!>FPI2@atIHxpYI5|wY7P@0B;o7oe8T7Nzbz!MbkL7p zX({erfUj3~5#G4(Q{Cp;&vcbn25LKz>)ZW=Z{E^EA8|z%Hd&R(Y0Jy*!0 zhq$UaYBDM4#Srfhg2Frr%rz&*uc;+tTjpW4GsvHs7A>eNN;1jx&T; zUhqQy!@hlD{_yYm6bWzFMZ*1y@91}D?G|^RDb`;pLx4CO(~PuWz*!&*wI&zx@4@+AZht`dq>?T%7FZ9)6~9-xokt)Pj!he03eaV=vHqRc_*`Uf5-kklXu z`cRLH2|teh@>rp-|LzRxxNQLRp&qCC=K{*Bxl=#8>P6HfqA&EJ9(VlRKWMAvas9B| zztF9qUeJen+=M%K(Uf|B>jU!tM#ZV!p%3-Ag+))$pk7b)V|(8~$8Te=q#idV|268g z`kOv?!M|wUln&5`dfX2MA5d_brP5*YUDT~VfQEvXllTcqr8# zzJPaAT%Zs2xNUW;q~YVdl!Dxs=>BbI=tDhjzB4RigX2Fy zSOPbpY%p_UU*ks*0%CYPgBHY$c*YEkXUxoa#*B<-%*1%c42);Yym-cpi)YNVcm{KZ z-I!|FR{T8{I`VbQsCdRqim~rxT_@5HFJt}<1~Vu8Jd87AVqfE0W=eP+#+f1EuNh-z z#Gcm-`Z6QJjMXv|!u`I$z~94jz~gHvqw}NY!}{SzW<2aU@pCZK!Rz1}x-K=G^6OHw z!Hms?84ddyKQfcSb77nr4E`F=lRhss7xo@-UXfe{LW8ONcQ^CcO^VHnIb#V1{9zvQlaeqYVspLzLKgosCZS*$?lN z%M34<9x1K3VS!}e0~9}~JAp&YM<)8? zY_g?j81XQe;2(hft1sQpOzd;t&5`n8tcAgZet7Bep~r}de7|*BQhyjf!(alhD?PqN z@W{md@#1vpDU4?@n6TsXq9qI`7);cU^huSD!#D{U15_$;bBom<=$IFFs1`aKWwwvfsfV!UffSNNeP;)q+NdMBX$k3m8 zf|@g5C=Im?^~@Ve!z%-4{-CaB9#I+=8S0r&sGpa4MQMm z@o3K)5+BMnhfwaP)Ww1}-d5s6xlJ^b(?KXF@uA#X2<4Wvyd?Y7t|jrI+^-PIee!Ip z&&{nR@u6Hx2<1ME9HH<0u9l<@<(&GY>LHYq_)zXX4dwKweC#9~%Jl+aHRW-=fisWm z!!7>=%W99a0@fD>^SA)6z8@^BJ?o+hhf#Cpaca&y zPR-fJ#)SP+TI|$_lpIwC@l#}>S&L2X# z-uqW02<0R`l&b}y+^h3zP$k>uQXm(~-GfkW)aE<{p`2tQltc3xR+X|ET z$V4cIAe2KULOHZEZ4dI|Lb*2(%H48Xfc%EfMi04AZaIWKa z9QiD&L%Bxhh9UnYiK1d0${`5l1QVegI+yoc=0mw#G?YVC`UUCvQ0_Q{a*ZEf5h0Y* z^P$`w2<5(Lazy`{!}NS8Hyc8^i7Oq%h?SOlK9qBSP;O@JXIi(FfjT~v+X126tShpt zw<;0Tq1>a7J@mQtvc!&DD0hp7a(Yznn7Bz5%7t#v*H``aT;xMJD;mn_w+#OdZ?Tt! za{Xv1r{903SX75{OZWbwe_La_$cJ*45X!kNTBg4<*3i?$)nhWKQLnwDCuc{tGIfW19)QP|gNIxn~KEy1MJ< zC@r{9&JseoO5Xy6-}PCqgKv@S$7<2<6t-+$lmRr!-cDa`~3W#o@VsDL1)LZY&Mu z#6J0dD^IvkE(b!nfxVuJk-cvyN4ZdL5)I|VH4FY#=5V206$s@+RfTf-$u4Ncv*$_^E|ePvq1=E34^-vh3xyBmc0wo@JkARh=Dt+!aG~64 z2<1+9_C}|yUMYRKP%aBXxf;dZ$j14VvI0W6{vfQ_)yTQWWXM^2bu{ydgy|H37 zbX^+C;bqM6BYOv^{PwOT&rSQ#u#MeFv3~fG-9+JKwr%VN3NzfFJ}4dt%uml$R%*0+?di(4(}@#%8mU$hH}dxj9aA& z<#2F{k5L#oMl_TQC=KNXaG@LyUGcHS!7B^p9zhuQq;#-Q4u^5<+~7kw9LVvZ96qP; z>lr@|2GKEf!!iUo)AOO+@-SFd>p3=p;V_t<2Xpl!U|D^`(&1}_&`9%Secw+doBDmi zuNA84#+>T9nnO#X?P|{SUCo)st2xtoHD_9{=1lL^oN2zAGu>Bnru}LT+eP$2&6x+N zIr9NEXI}74NECKm9ptlZYW$%U2cyFZgx)L%8eIOWV+6bYU0rlSKYxp7R=+iT9*c+RANq6|TL7`vej`u4W@K zwf_xm>v10om%vXpF^?#Al*H}FZH2%o&2>lixy!4p9I3E zH^~y`*Bc|8{5xIe7Fp&O%}%ToQ_SZIIX718es7QK=^Hs;^?SrOF`I)d->*Z$8%YNdi%ldif@$DsI;*DSAlM+6Lx5+$g3`* zu~19>C^vdF+7-Q7OxmiG^Vj2gb3c52a3Xva8tT7ETs5pvzHu=Y`qNJl=%ZGkW8c<^ z0hMo;W!uPu|-N|Fk>(6v3yO$tY*Rbn$xN5;<{Z*-t!$&mDtS#Ked_>}Se@{=mnP zeu`kl^!_Na{$O#|;{>^3t;x`*)U(EmC^ff(_@u{RIi@rIlnDJ4!Am#~$G~}*Pc&0m6CPNF9RT&;t5Q`Z)M{i%09( z2sN)X)cvT#uV4Bpg5!Tw5J&o~*TxhdD0IDv`_NAjY?yjT@ab=-?KrGup*#7>Df%gb zX7O3Vjr97y&AgloT7AHM=%)zOdKjWH?QtW4Gmi`9mPf&|+T*N&g~4DRH=3&thh??L zfxqq=@Tp|k(Cp#4_}pS1H|yYP--P1YK9){L54{8b1x+CLGyS`+&<@yQ>-&ATT+jtL zv?Lzqoa89<64&~!Xx*nU9X?saJZ}EPg~EMbYi-MGy9;yQ<87zEo#^Sm*Mx_W0b1|E zN;-#PqM4-6&dqhjMb)ykiO;pVd4J$~`o>e+%00wBLk??)Oq-}1x0B3=)PI$yiknWq z(N=I>rOQddeGU`;-|Jj)YKK}v^kGFe%n$dWzp$sdEgYy^QTAPkwU>I_hPv;?KcQw6^uS>=n>qPif(G%&%?hqY(*RIC#vcj$<<*Nm$p4QJs#)Z;oIjzt6aJ`nnySS$~pkNf11 z`UV4IQDVqF!M|I!JSzwHp&sY@XAD}CbX#aJW}%$22KQM@>c4o#AZN3if?M19a% zUlL8*PwJQ68ILA=pAoj#NtbKi#eJy9-M$`)`Xn3|`kzRa1K#33he`d`6XVdXKt+hS zA1|j`l>Jn1{Mxao+K9>pa`Cv41y1QP;$PSRB196{ggzv}>L(gJX3Nf1Q@|Ll<&uzlPy+@%r zR~HM7y^-7^75AYY_v-3MG@`*=VMOP4^2Hq7=LxC*BQ^xx?UEr_yE@5pw&6b1r*KGfqP z&kaGzo;`#bF=lc{GkiXq`{DB{D10!=oaG}lIP^mI+76%3)Z^A#1fhSbISDV$U(-1{ zO@=HZRNAL?x=tPkDFXM5Dk6vSvxp- zovu?T?n6D!<#c~E=ln)mn#4SE!>wV!9NTeJuFu_xQRpkE(! zq_~GR_P&{JY7y>3JuWG#H>xtgK|AI8#lqfaaUTa#AGxjX~J7rwrX`%sU2 z{J1AdE|z^eRgEhg`Y-N7J#MmpPb3e|^mSg*x-bQP`j~m#rsMu-dU{*m`{KU^{x5JJ z>T!32{899vlRnqnQVMpz#eJy99kKC8K@B{7rbItHwEhF`Lp|=)^&Y5hv8Q)qt0xC- zKI1;r<0hZ&fy`TawJ51@c=Nx&$7sqtj{j|Y5x|+pjpdfd!Lr)pY=A|=U>-M~tDgYN z>Rj$d+s5dJHlw5$=7;cakRv`;o>6b(8MGn3z%%A)JY#;wGdO>Z)@44%*RlIFo-zO8 z8S^flv3oO~!JOeZrAjpWwc&a)^uNGzA*^*kCl)AJZ^ITn`HdX9hdD*i>SOwaLefMx3@z_JNFSFoP1 zFR$kuGw8X2K^vyY2FB^RfpL0nU~mo^t;^}Tp^npY1LO4Ez&JfOFiy`64Cc)A&A>Q4 zH!x1m4UE%s1LO4Ez&JfOFiy`6jMH-it;`JPDT7dj12j$uO9nPvPp5VOg!`fHbzFX6h~~`w?s-xjrw? zsGjo-mWd|wjOjVgn4a^D={e7sp7V_9InS7$^Ni^^&zPR`43>$W^Ni^^&zPR`jOjVg zn4a^D={e7sp7V_9InS7$^Ni^^&zPR`jOjVgn4a^D={e7sp7V_9InS7$^Ni^^&zPR` zjOjVgn4a^D={e7sp7V_9InS7$^Ni^^&zPR`jOjVgn4a^D={e7sp7V_9InS7$^Ni^^ z&zPR`jOjVgVA+ozV~u8T-zr*%eL8sknj2X0shxt=g|mq1In-;;Ul=YHhu?$OF3oK) zt6K4*=ybIN)}@&ZX7#2!qFmoT>%^-FM*MZeZ_+ zx9uv5ZeGnfO4@a>JFMHpz&tZDrPv+#w+=WM*sd3gq$4v#SeIrocwPD2Dyfa^2J6xs z2D6oQH%lE3BsI?X5B3$! zT`-$?wosD2AHsg7nah4Jxp}~^I?1ouZ8TLw_1qF3$A`s_i5jJu28&qA@xK%pOx9Cj z8B4ht4E(2~(qJ$NPlshzHyxJimwpdh1^(gu_=xfFHyE(6mv;8^@bK_sMgo6?Y6AVk z3VaQ{dB-()a)}|43DBZZX$$-WxE1?$>D=1@stLpJHz0!Hk4FT<--Q@SDsgp4Y&dNL p%VeJaqfKL@HuSGa1cyeAkA}ZI27f>cw=-&)0TAz^e(+b({vSe^AJG5+ diff --git a/godot/Villager.gd b/godot/Villager.gd index c4cfe1e..f83ec06 100644 --- a/godot/Villager.gd +++ b/godot/Villager.gd @@ -1,4 +1,4 @@ -extends Node3D +extends CharacterBody3D var rng = RandomNumberGenerator.new() @export var target_location_xz = transform.origin * Vector3(1, 0, 1) @@ -8,13 +8,13 @@ var rng = RandomNumberGenerator.new() var task = "idle" # Percentage chances of the character performing certain actions while idle. -@export var walk_chance = 0.5 -@export var spin_chance = 0.8 +@export var walk_chance = 0.1 +@export var spin_chance = 0.2 -@export var walk_speed = 1 +@export var walk_speed = 0.5 -# Rate at which character corrects their direction after going off course (decimal percentage). -@export var spin_speed = 0.90 +# Rate at which character corrects their direction after going off course (percentage). +@export var dir_correction_rate = 0.95 # Margin of accuracy to which the character will correct their direction when off course (radians). @export var dir_accuracy = deg_to_rad(0.1) @@ -24,54 +24,60 @@ var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") # Called when the node enters the scene tree for the first time. func _ready(): - pass # Replace with function body. + pass # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): +func _process(_delta): location_xz = transform.origin * Vector3(1, 0, 1) direction_xz = (transform.basis * Vector3(1, 0, 1)).normalized() match task: "idle": - task = rng.randi_range(0, 100) + task = rng.randf_range(0, 100) - target_location_xz = location_xz - - # Chance to walk somewhere. + # 3% chance to walk somewhere. if task <= walk_chance: task = "walk" target_location_xz = transform.origin * Vector3(1, 0, 1) + (direction_xz * 4) - # Chance to rotate. + # 6% chance to rotate. elif task > walk_chance and task <= (walk_chance + spin_chance): task = "spin" - elif task > 50: - task = "wait" + var rotation_angle = rng.randf_range(-2*PI, 2*PI) + var rotation_vector = Vector3(cos(rotation_angle), 0, sin(rotation_angle)) + target_direction_xz = direction_xz + rotation_vector + # 90% chance to idle. + elif task > (spin_chance + walk_chance): + task = "idle" "walk": - pass + # Get the direction to the target in z-x plane. + target_direction_xz = (location_xz.direction_to(target_location_xz) * Vector3(1, 0, 1)).normalized() + + # Continue to correct direction to within a margin of dir_accuracy degrees. + if direction_xz.angle_to(target_direction_xz) >= dir_accuracy: + # Rotate towards destination at specified percentage rate. + rotate_y(direction_xz.angle_to(target_direction_xz) * dir_correction_rate) + + if location_xz.distance_to(target_location_xz) <= (Vector2(direction_xz.x, direction_xz.z) * walk_speed).length(): + target_direction_xz = direction_xz + target_location_xz = location_xz + task = "idle" "spin": - if !spinning: - var spin_amount = rng.randi_range(-360, 360) - spinning = true - - if spin_amount > 0: - rotate_y(5) - spin_amount -= 5 - elif spin_amount < 0: - rotate_y(-5) - spin_amount += 5 + # Continue to correct direction to within a margin of dir_accuracy degrees. + if direction_xz.angle_to(target_direction_xz) >= dir_accuracy: + # Rotate towards destination at specified percentage rate. + rotate_y(direction_xz.angle_to(target_direction_xz) * dir_correction_rate) else: task = "idle" - spinning = false - - "wait": - # Idle Animation goes here! - wait_time += 1 - if wait_time == 100: - task = "idle" - wait_time = 0 + + + +func _physics_process(delta): + # Add the gravity. + if not is_on_floor(): + velocity.y -= gravity * delta # Walk to target location. if (location_xz.distance_to(target_location_xz) > walk_speed) and task == "walk":