diff --git a/omniwheels_x4_soccer_goal.blockly b/omniwheels_x4_soccer_goal.blockly index 99627ca3926ecd569fe0f024b1036b1478420b64..89cb1ebc758cea09840f0f1abaa507aacce017b6 100644 --- a/omniwheels_x4_soccer_goal.blockly +++ b/omniwheels_x4_soccer_goal.blockly @@ -252,1616 +252,1611 @@ <next> <block type="loop_endless" id="V,Gw25li,3_,;92QCQLj"> <statement name="DO"> - <block type="procedures_callnoreturn" id="O6U,(~H4n-^0fP^x)_,{"> - <mutation name="checkTimeouts"/> - <next> - <block type="controls_if" id="LIzedxH5dle@WM!lcbM#"> + <block type="controls_if" id="LIzedxH5dle@WM!lcbM#"> + <value name="IF0"> + <block type="display_get_switch_state" id="/xkM7bR[)*BEY41xd)JA"> + <field name="instance_name">txt_switch_active</field> + <field name="property_name">checked</field> + </block> + </value> + <statement name="DO0"> + <block type="controls_if" id="MN`F(]itK#DR^wQxXz,."> + <mutation elseif="6" else="1"/> <value name="IF0"> - <block type="display_get_switch_state" id="/xkM7bR[)*BEY41xd)JA"> - <field name="instance_name">txt_switch_active</field> - <field name="property_name">checked</field> + <block type="logic_operation" id="4(iam8G0^]{P-vv8rZ~f" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="~/u3*G]LZK9pvIFTV#^q" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="D%l9OSY`vM-xzaB}nY1r"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="92sOCNRLiogo~;}oI++#"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="UJ,gxhveD7#?I9I*:A(r"/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="Nd,4OywJ0ocibay-klwh"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="xiIzl/p_!nb4$eUrqxet"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="z0gO+`Su.;sXQ(oI,(y^"/> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="logic_operation" id="n+p!xL0Cy:ManlHugN9b" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="Vs3%xCaz|qN@}C*=Tq3$"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="GddxTJE,O^,fb~pxb3(b"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="zdJr-qt**l*{;JppUgmP"/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="1IfAVQZEPrL6SRY?6A28"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="I@,t{sciNOi(fg$?r)#f"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="woPk%eJHq,DN-n%_Z+nD"/> + </value> + </block> + </value> + </block> + </value> </block> </value> <statement name="DO0"> - <block type="controls_if" id="MN`F(]itK#DR^wQxXz,."> - <mutation elseif="6" else="1"/> - <value name="IF0"> - <block type="logic_operation" id="4(iam8G0^]{P-vv8rZ~f" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_operation" id="~/u3*G]LZK9pvIFTV#^q" inline="false"> + <block type="variables_set" id="=B4Rj[z{i:0)u!6?C.@u"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="Vz)~xH3AGhNl8(w~ZeE1"> + <field name="TEXT">BALL_NO_GOAL</field> + </block> + </value> + <next> + <block type="controls_if" id="+oz+[YfRRkvCLn10-B4d"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_operation" id="^asrJKsemc}^7|@CcyFs" inline="false"> <field name="OP">AND</field> <value name="A"> - <block type="logic_compare" id="D%l9OSY`vM-xzaB}nY1r"> - <field name="OP">NEQ</field> + <block type="logic_compare" id="TwsU8jOZc$*pZ+:EbKo8"> + <field name="OP">GTE</field> <value name="A"> - <block type="variables_get" id="92sOCNRLiogo~;}oI++#"> + <block type="variables_get" id="0Ipt`Bjn]B09@rni:!Bt"> <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_null" id="UJ,gxhveD7#?I9I*:A(r"/> + <block type="variables_get" id="Y{MczN`(?*Y74i0iF|bh"> + <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + </block> </value> </block> </value> <value name="B"> - <block type="logic_compare" id="Nd,4OywJ0ocibay-klwh"> - <field name="OP">NEQ</field> + <block type="logic_compare" id="s:+dT(r%}]H#_Y~wHeTE"> + <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="xiIzl/p_!nb4$eUrqxet"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="mW,P#kP}6gH1+ZmkJ/L8"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_null" id="z0gO+`Su.;sXQ(oI,(y^"/> + <block type="variables_get" id="8:8~qf8*mh3[Jhzmk^A%"> + <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> + </block> </value> </block> </value> </block> </value> - <value name="B"> - <block type="logic_operation" id="n+p!xL0Cy:ManlHugN9b" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_compare" id="Vs3%xCaz|qN@}C*=Tq3$"> - <field name="OP">EQ</field> + <statement name="DO0"> + <block type="controls_if" id="Bp.|BTULdy(,]aAoN,l["> + <mutation elseif="3" else="1"/> + <value name="IF0"> + <block type="logic_compare" id="Y-Fctm`Flpx7MN)@x%-u"> + <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="GddxTJE,O^,fb~pxb3(b"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + <block type="variables_get" id="=t4?53|MsS#r1P:M`ZP4"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_null" id="zdJr-qt**l*{;JppUgmP"/> + <block type="variables_get" id="nkMArfis6_;l59N|,9yJ"> + <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + </block> </value> </block> </value> - <value name="B"> - <block type="logic_compare" id="1IfAVQZEPrL6SRY?6A28"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="I@,t{sciNOi(fg$?r)#f"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="D$_8aQ2X|h{SIewjUD_R"> + <mutation name="fwd"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="Y]2FiJdrWo42L$WHl,($"> + <field name="VAR" id="1idj3sw*{G$j`2:II{^5">v_fast</field> </block> </value> - <value name="B"> - <block type="logic_null" id="woPk%eJHq,DN-n%_Z+nD"/> + <value name="ARG1"> + <block type="math_number" id="K``m#vm=PeC;2HJxr=Jx"> + <field name="NUM">10</field> + </block> </value> </block> - </value> - </block> - </value> - </block> - </value> - <statement name="DO0"> - <block type="variables_set" id="=B4Rj[z{i:0)u!6?C.@u"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="Vz)~xH3AGhNl8(w~ZeE1"> - <field name="TEXT">BALL_NO_GOAL</field> - </block> - </value> - <next> - <block type="controls_if" id="+oz+[YfRRkvCLn10-B4d"> - <mutation elseif="2" else="1"/> - <value name="IF0"> - <block type="logic_operation" id="^asrJKsemc}^7|@CcyFs" inline="false"> + </statement> + <value name="IF1"> + <block type="logic_operation" id=".cYqj,XlTza-:6y_=EOC" inline="false"> <field name="OP">AND</field> <value name="A"> - <block type="logic_compare" id="TwsU8jOZc$*pZ+:EbKo8"> - <field name="OP">GTE</field> + <block type="logic_compare" id="#%BG`,J51l+POEj{Q4Vj"> + <field name="OP">GT</field> <value name="A"> - <block type="variables_get" id="0Ipt`Bjn]B09@rni:!Bt"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + <block type="variables_get" id="KDP(VY1Jh?W1cz~WWh=,"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="variables_get" id="Y{MczN`(?*Y74i0iF|bh"> - <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + <block type="variables_get" id="L/RedQ[=!jNwBI,ivSt/"> + <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> </block> </value> </block> </value> <value name="B"> - <block type="logic_compare" id="s:+dT(r%}]H#_Y~wHeTE"> + <block type="logic_compare" id="!r4f:gx)bYp.aGG:gEck"> <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="mW,P#kP}6gH1+ZmkJ/L8"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + <block type="variables_get" id="t$DoS#o~XI)VEHk9e7sN"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="variables_get" id="8:8~qf8*mh3[Jhzmk^A%"> - <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> + <block type="variables_get" id="lEUT-.WcN]l3/82:-voJ"> + <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> </block> </value> </block> </value> </block> </value> - <statement name="DO0"> - <block type="controls_if" id="Bp.|BTULdy(,]aAoN,l["> - <mutation elseif="3" else="1"/> - <value name="IF0"> - <block type="logic_compare" id="Y-Fctm`Flpx7MN)@x%-u"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="=t4?53|MsS#r1P:M`ZP4"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="nkMArfis6_;l59N|,9yJ"> - <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> - </block> - </value> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="~M+5pWsaHLkyCq)rYO$k"> + <mutation name="fwd"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="iXjkVkHFgqS:.%6Q=Z_f"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="D$_8aQ2X|h{SIewjUD_R"> - <mutation name="fwd"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="Y]2FiJdrWo42L$WHl,($"> - <field name="VAR" id="1idj3sw*{G$j`2:II{^5">v_fast</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="K``m#vm=PeC;2HJxr=Jx"> - <field name="NUM">10</field> - </block> - </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_operation" id=".cYqj,XlTza-:6y_=EOC" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_compare" id="#%BG`,J51l+POEj{Q4Vj"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="KDP(VY1Jh?W1cz~WWh=,"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="L/RedQ[=!jNwBI,ivSt/"> - <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> - </block> - </value> - </block> - </value> - <value name="B"> - <block type="logic_compare" id="!r4f:gx)bYp.aGG:gEck"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="t$DoS#o~XI)VEHk9e7sN"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="lEUT-.WcN]l3/82:-voJ"> - <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> - </block> - </value> - </block> - </value> + <value name="ARG1"> + <block type="math_number" id="m]yorgh~PALhYi-x%]93"> + <field name="NUM">10</field> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="~M+5pWsaHLkyCq)rYO$k"> - <mutation name="fwd"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="iXjkVkHFgqS:.%6Q=Z_f"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="m]yorgh~PALhYi-x%]93"> - <field name="NUM">10</field> - </block> - </value> - </block> - </statement> - <value name="IF2"> - <block type="logic_operation" id=":2kiZ:)l/(drayLhwske" inline="false"> - <field name="OP">AND</field> + </block> + </statement> + <value name="IF2"> + <block type="logic_operation" id=":2kiZ:)l/(drayLhwske" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="dKOwmYr|Z6CW(+u8.a:w"> + <field name="OP">GT</field> <value name="A"> - <block type="logic_compare" id="dKOwmYr|Z6CW(+u8.a:w"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="_PZg0?|Eka9OOdKCVIhZ"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id=".5Q?xw/;CtWi-HzsEBhp"> - <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> - </block> - </value> + <block type="variables_get" id="_PZg0?|Eka9OOdKCVIhZ"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="({,ER8#k!G3+tpPl645Q"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="QB39f^ga_-f?bwb+!.8X"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="qkncjacBYB1~0@aF1Q[x"> - <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> - </block> - </value> + <block type="variables_get" id=".5Q?xw/;CtWi-HzsEBhp"> + <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> </block> </value> </block> </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="5?xr%Un4{ZZP/*kbTrS4"> - <mutation name="turnSideLeft"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="zX7$-2rcp(Tan$g?Z%[U"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="2xa_b^blTx3j,Xt)H#5}"> - <field name="NUM">20</field> - </block> - </value> - </block> - </statement> - <value name="IF3"> - <block type="logic_compare" id="O3!qDGS(I#FcP9l5t9T!"> + <value name="B"> + <block type="logic_compare" id="({,ER8#k!G3+tpPl645Q"> <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="a_^h(hS^A_Nr^XWwIDo9"> + <block type="variables_get" id="QB39f^ga_-f?bwb+!.8X"> <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="variables_get" id="cgnlj~O=P[`vJ5ggLQ{z"> + <block type="variables_get" id="qkncjacBYB1~0@aF1Q[x"> <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> </block> </value> </block> </value> - <statement name="DO3"> - <block type="procedures_callnoreturn" id="iE.eGjQ64)ne8c#zdVbM"> - <mutation name="bwd"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="[3C}+lMgr=zfSwjcYdsJ"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="CWASv61O4meIid@gp|5P"> - <field name="NUM">10</field> - </block> - </value> - </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="sx~{uZ4bCDN4vbG6oz~)"> - <mutation name="stop"/> - </block> - </statement> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="@i?;*nt)I.q@3:as9$CV"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="r6YxtH4C]YX0#d={f!-G"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="/*nplOY#VKPMyS,KOq3!"> - <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> - </block> - </value> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="Do:{V-Htoxi(Ky;5q%7)"> - <mutation name="right"> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="5?xr%Un4{ZZP/*kbTrS4"> + <mutation name="turnSideLeft"> <arg name="v"/> <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id=",KoGdtd-~NDCr4a3[S}!"> - <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> + <block type="variables_get" id="zX7$-2rcp(Tan$g?Z%[U"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> <value name="ARG1"> - <block type="math_constrain" id="O(GD0npMQ5}pU7S_p6Fw" inline="false"> - <value name="VALUE"> - <block type="math_arithmetic" id="EmeRL7tak./N9g?B@nFs"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="($1]A%(r+nV+-me@mi{*"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="5*ed5[K7:%|#-rdvwe2p"> - <field name="VAR" id="rOE96qIEVvA5gBu*K^?x">factor_ball_rot</field> - </block> - </value> - </block> - </value> - <value name="LOW"> - <block type="math_number" id="ex%*G*X[(1UM%,lV]FfW"> - <field name="NUM">3</field> - </block> - </value> - <value name="HIGH"> - <block type="math_number" id="nqm#GPG6WTZ|}UMKIt!{"> - <field name="NUM">100</field> - </block> - </value> + <block type="math_number" id="2xa_b^blTx3j,Xt)H#5}"> + <field name="NUM">20</field> </block> </value> </block> </statement> - <value name="IF2"> - <block type="logic_compare" id="sFua#TKb}~WWPqj6KeIW"> - <field name="OP">LT</field> + <value name="IF3"> + <block type="logic_compare" id="O3!qDGS(I#FcP9l5t9T!"> + <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="J{E0oBqm),8kwbHyQ?=."> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + <block type="variables_get" id="a_^h(hS^A_Nr^XWwIDo9"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="variables_get" id=".ts{wyW$c]RydnDM,}dN"> - <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + <block type="variables_get" id="cgnlj~O=P[`vJ5ggLQ{z"> + <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> </block> </value> </block> </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="#7@$9Gz4rn?uePi|!w5H"> - <mutation name="left"> + <statement name="DO3"> + <block type="procedures_callnoreturn" id="iE.eGjQ64)ne8c#zdVbM"> + <mutation name="bwd"> <arg name="v"/> <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="Ur=9P[d2~h+UuLiecS=0"> - <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> + <block type="variables_get" id="[3C}+lMgr=zfSwjcYdsJ"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> <value name="ARG1"> - <block type="math_constrain" id="W3t]erG4jM/-7Ha9Rz8=" inline="false"> - <value name="VALUE"> - <block type="math_arithmetic" id=";7U*){*?kwgf!k^}}5GA"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="ii5E[ARI)`Bgg5KUe]}u"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="_rWdYF]99IuNPR?jeS*v"> - <field name="VAR" id="rOE96qIEVvA5gBu*K^?x">factor_ball_rot</field> - </block> - </value> - </block> - </value> - <value name="LOW"> - <block type="math_number" id="fC}]TN}rkpW?/cte-Bp]"> - <field name="NUM">3</field> - </block> - </value> - <value name="HIGH"> - <block type="math_number" id="8+tZg^1UjmO}E,sNn-t{"> - <field name="NUM">100</field> - </block> - </value> + <block type="math_number" id="CWASv61O4meIid@gp|5P"> + <field name="NUM">10</field> </block> </value> </block> </statement> <statement name="ELSE"> - <block type="procedures_callnoreturn" id="K2~d9j?nrPh-CWpCKZ^I"> + <block type="procedures_callnoreturn" id="sx~{uZ4bCDN4vbG6oz~)"> <mutation name="stop"/> </block> </statement> </block> - </next> - </block> - </statement> - <value name="IF1"> - <block type="logic_operation" id="B~L1BuQh-S6uKm^YJSgH" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_operation" id="4bB{1Bu{%4*rAe!/uepL" inline="false"> - <field name="OP">AND</field> + </statement> + <value name="IF1"> + <block type="logic_compare" id="@i?;*nt)I.q@3:as9$CV"> + <field name="OP">GT</field> <value name="A"> - <block type="logic_compare" id="*p.1tBx0!3(A,.#v~}gR"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="JhBQ6%W7fhLicBS4$+~r"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + <block type="variables_get" id="r6YxtH4C]YX0#d={f!-G"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="/*nplOY#VKPMyS,KOq3!"> + <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> + </block> + </value> + </block> + </value> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="Do:{V-Htoxi(Ky;5q%7)"> + <mutation name="right"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id=",KoGdtd-~NDCr4a3[S}!"> + <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> + </block> + </value> + <value name="ARG1"> + <block type="math_constrain" id="O(GD0npMQ5}pU7S_p6Fw" inline="false"> + <value name="VALUE"> + <block type="math_arithmetic" id="EmeRL7tak./N9g?B@nFs"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="($1]A%(r+nV+-me@mi{*"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="5*ed5[K7:%|#-rdvwe2p"> + <field name="VAR" id="rOE96qIEVvA5gBu*K^?x">factor_ball_rot</field> + </block> + </value> </block> </value> - <value name="B"> - <block type="logic_null" id="/pF(LOrFaYg`Z;:T=pMq"/> + <value name="LOW"> + <block type="math_number" id="ex%*G*X[(1UM%,lV]FfW"> + <field name="NUM">3</field> + </block> + </value> + <value name="HIGH"> + <block type="math_number" id="nqm#GPG6WTZ|}UMKIt!{"> + <field name="NUM">100</field> + </block> </value> </block> </value> + </block> + </statement> + <value name="IF2"> + <block type="logic_compare" id="sFua#TKb}~WWPqj6KeIW"> + <field name="OP">LT</field> + <value name="A"> + <block type="variables_get" id="J{E0oBqm),8kwbHyQ?=."> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> <value name="B"> - <block type="logic_compare" id="|rcsXSAUj_o}mh1L:hw3"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="V1Jj,Q+-!7UMu,ag}Y2#"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id=".ts{wyW$c]RydnDM,}dN"> + <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + </block> + </value> + </block> + </value> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="#7@$9Gz4rn?uePi|!w5H"> + <mutation name="left"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="Ur=9P[d2~h+UuLiecS=0"> + <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> + </block> + </value> + <value name="ARG1"> + <block type="math_constrain" id="W3t]erG4jM/-7Ha9Rz8=" inline="false"> + <value name="VALUE"> + <block type="math_arithmetic" id=";7U*){*?kwgf!k^}}5GA"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="ii5E[ARI)`Bgg5KUe]}u"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="_rWdYF]99IuNPR?jeS*v"> + <field name="VAR" id="rOE96qIEVvA5gBu*K^?x">factor_ball_rot</field> + </block> + </value> </block> </value> - <value name="B"> - <block type="logic_null" id="b7),FwxGz-g+3(2a:iAH"/> + <value name="LOW"> + <block type="math_number" id="fC}]TN}rkpW?/cte-Bp]"> + <field name="NUM">3</field> + </block> + </value> + <value name="HIGH"> + <block type="math_number" id="8+tZg^1UjmO}E,sNn-t{"> + <field name="NUM">100</field> + </block> </value> </block> </value> </block> + </statement> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="K2~d9j?nrPh-CWpCKZ^I"> + <mutation name="stop"/> + </block> + </statement> + </block> + </next> + </block> + </statement> + <value name="IF1"> + <block type="logic_operation" id="B~L1BuQh-S6uKm^YJSgH" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="4bB{1Bu{%4*rAe!/uepL" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="*p.1tBx0!3(A,.#v~}gR"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="JhBQ6%W7fhLicBS4$+~r"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="/pF(LOrFaYg`Z;:T=pMq"/> + </value> + </block> </value> <value name="B"> - <block type="logic_operation" id="fGq*Z2TDY5Aiyb._(iWw" inline="false"> - <field name="OP">AND</field> + <block type="logic_compare" id="|rcsXSAUj_o}mh1L:hw3"> + <field name="OP">NEQ</field> <value name="A"> - <block type="logic_compare" id="@zlHHSd5%+h?_A?s;121"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="O/m@rtsP1-]GZu;z!Kd7"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="c0`hO)W_@*rN3v3J#n/b"/> - </value> + <block type="variables_get" id="V1Jj,Q+-!7UMu,ag}Y2#"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="ppt3KZ(DNQQ?lul~f,#i"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="%*W`_VauA#TUT8Bhr(l["> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="oSv:/]3N6Gn3|DbI0mHC"/> - </value> + <block type="logic_null" id="b7),FwxGz-g+3(2a:iAH"/> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="logic_operation" id="fGq*Z2TDY5Aiyb._(iWw" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="@zlHHSd5%+h?_A?s;121"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="O/m@rtsP1-]GZu;z!Kd7"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="c0`hO)W_@*rN3v3J#n/b"/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="ppt3KZ(DNQQ?lul~f,#i"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="%*W`_VauA#TUT8Bhr(l["> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> + <value name="B"> + <block type="logic_null" id="oSv:/]3N6Gn3|DbI0mHC"/> + </value> </block> </value> </block> </value> - <statement name="DO1"> - <block type="variables_set" id="%Io@znvhX3QvyZ*mPL},"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="y/+X`X}C3$Nc/TH%3_dv"> - <field name="TEXT">BALL_GOAL_LEFT</field> + </block> + </value> + <statement name="DO1"> + <block type="variables_set" id="%Io@znvhX3QvyZ*mPL},"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="y/+X`X}C3$Nc/TH%3_dv"> + <field name="TEXT">BALL_GOAL_LEFT</field> + </block> + </value> + <next> + <block type="controls_if" id="*BrJG}XZ76}TB4xGqW~`"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_compare" id=";t5FsnVMWwTmT^NniB|e"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="T7qB~%1Qe1a.P*MQs$Ij"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="D)b~KYP=}7Q`ujSBZJyh"> + <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + </block> + </value> </block> </value> - <next> - <block type="controls_if" id="*BrJG}XZ76}TB4xGqW~`"> - <mutation elseif="2" else="1"/> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="3TBW}iU2UgA?brmPI5+J" inline="true"> + <mutation name="fwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="bLDCOqV7YSx,/UkFj)T%"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + </block> + </statement> + <value name="IF1"> + <block type="logic_compare" id=".k[+$zFZm_;CFMOBjQ=U"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="iY/UC$Qo23IduI}_6|fy"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="NF,/T;m.#62@CZQe#+[`"> + <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> + </block> + </value> + </block> + </value> + <statement name="DO1"> + <block type="controls_if" id="KJ#o$M|scI;Nb]boFDzc"> + <mutation elseif="1" else="1"/> <value name="IF0"> - <block type="logic_compare" id=";t5FsnVMWwTmT^NniB|e"> - <field name="OP">LTE</field> + <block type="logic_compare" id="Hvw%^q~Hu5/N%}1^$97E"> + <field name="OP">LT</field> <value name="A"> - <block type="variables_get" id="T7qB~%1Qe1a.P*MQs$Ij"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="]Pnwg,R0`8-u%~|{ySI)"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> <value name="B"> - <block type="variables_get" id="D)b~KYP=}7Q`ujSBZJyh"> - <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + <block type="variables_get" id=")Y^E1(LwkP6u5Zr]E#v/"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> </block> </value> <statement name="DO0"> - <block type="procedures_callnoreturn" id="3TBW}iU2UgA?brmPI5+J" inline="true"> - <mutation name="fwd_v"> + <block type="procedures_callnoreturn" id="8_rFe%[Ngs/W)u{[wK-/"> + <mutation name="turnSideRight"> <arg name="v"/> + <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="bLDCOqV7YSx,/UkFj)T%"> + <block type="variables_get" id="%jZ0j@6g~afS~;)?{MXB"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id=".k[+$zFZm_;CFMOBjQ=U"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="iY/UC$Qo23IduI}_6|fy"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="NF,/T;m.#62@CZQe#+[`"> - <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> - </block> - </value> - </block> - </value> - <statement name="DO1"> - <block type="controls_if" id="KJ#o$M|scI;Nb]boFDzc"> - <mutation elseif="1" else="1"/> - <value name="IF0"> - <block type="logic_compare" id="Hvw%^q~Hu5/N%}1^$97E"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="]Pnwg,R0`8-u%~|{ySI)"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id=")Y^E1(LwkP6u5Zr]E#v/"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - </block> - </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="8_rFe%[Ngs/W)u{[wK-/"> - <mutation name="turnSideRight"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="%jZ0j@6g~afS~;)?{MXB"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="cJ`!Y,Vi0EX0|.|y6Nc|"> - <field name="NUM">20</field> - </block> - </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="nUbsUlJ45(hnk!)6CNAr"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="tchE8Qc)Kp|9?UE;Fpe%"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="M9wjV+z*e*Hh*PspIXEY"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> + <value name="ARG1"> + <block type="math_number" id="cJ`!Y,Vi0EX0|.|y6Nc|"> + <field name="NUM">20</field> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="_q6X5`*YO|;FU%~(RZ2?"> - <mutation name="turnSideLeft"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="|w.R`6dQM5dRkA(EE+yC"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="E](Zlbs1};rS=bm)zpcI"> - <field name="NUM">20</field> - </block> - </value> - </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="4!};}Pi@kx7+v]x,}fg2"> - <mutation name="stop"/> - </block> - </statement> </block> </statement> - <value name="IF2"> - <block type="logic_compare" id="Bl$M.GwPg~+!37[;`0o2"> - <field name="OP">LTE</field> + <value name="IF1"> + <block type="logic_compare" id="nUbsUlJ45(hnk!)6CNAr"> + <field name="OP">GT</field> <value name="A"> - <block type="variables_get" id="hk4|9x7W)79Bt`+.QJ}h"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="tchE8Qc)Kp|9?UE;Fpe%"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> <value name="B"> - <block type="variables_get" id="lFZoL.IQB6RM@%_m9*-3"> - <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> + <block type="variables_get" id="M9wjV+z*e*Hh*PspIXEY"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> </block> </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="QN+5a=dUZe|3;6UVwiue" inline="true"> - <mutation name="bwd_v"> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="_q6X5`*YO|;FU%~(RZ2?"> + <mutation name="turnSideLeft"> <arg name="v"/> + <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="v5iy]*Vt3nsse;Eg[EjI"> + <block type="variables_get" id="|w.R`6dQM5dRkA(EE+yC"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> + <value name="ARG1"> + <block type="math_number" id="E](Zlbs1};rS=bm)zpcI"> + <field name="NUM">20</field> + </block> + </value> </block> </statement> <statement name="ELSE"> - <block type="procedures_callnoreturn" id="`pvAUE*_G,HFP6Y*ra9~"> + <block type="procedures_callnoreturn" id="4!};}Pi@kx7+v]x,}fg2"> <mutation name="stop"/> </block> </statement> </block> - </next> - </block> - </statement> - <value name="IF2"> - <block type="logic_operation" id="QKmOZD,=Y4S|jqiAJ4.k" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_operation" id="Xu[n/TE:SYcd;s+dYubv" inline="false"> - <field name="OP">AND</field> + </statement> + <value name="IF2"> + <block type="logic_compare" id="Bl$M.GwPg~+!37[;`0o2"> + <field name="OP">LTE</field> <value name="A"> - <block type="logic_compare" id="OeAZ19W_g)]s*LP0=8r,"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="M/Nu-s2$K?+~7cG|vO,;"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="z~Da7_)q,Bo-$yJb73oH"/> - </value> + <block type="variables_get" id="hk4|9x7W)79Bt`+.QJ}h"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="d9U8).!K)LC)*3RzV-$z"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="^H7sM5ajVqht|@UM.F/m"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id=":8|/_EWW~8cxsv_2[8XZ"/> - </value> + <block type="variables_get" id="lFZoL.IQB6RM@%_m9*-3"> + <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> </block> </value> </block> </value> - <value name="B"> - <block type="logic_operation" id="?A+N_1,#}@kRY%dxQMa9" inline="false"> - <field name="OP">AND</field> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="QN+5a=dUZe|3;6UVwiue" inline="true"> + <mutation name="bwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="v5iy]*Vt3nsse;Eg[EjI"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + </block> + </statement> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="`pvAUE*_G,HFP6Y*ra9~"> + <mutation name="stop"/> + </block> + </statement> + </block> + </next> + </block> + </statement> + <value name="IF2"> + <block type="logic_operation" id="QKmOZD,=Y4S|jqiAJ4.k" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="Xu[n/TE:SYcd;s+dYubv" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="OeAZ19W_g)]s*LP0=8r,"> + <field name="OP">NEQ</field> <value name="A"> - <block type="logic_compare" id="`~AJbhHRzn/)DgR4fRI;"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="?uA|$zvDe+x4kMz%-{d."> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="vG[m`V+N^1KjrN:te9QO"/> - </value> + <block type="variables_get" id="M/Nu-s2$K?+~7cG|vO,;"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id=";P}d!ou6kF,_]Y}2c}oU"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="D3C[P^f3vp}xb!,-2#r5"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="1@:,7WVUfe~r2),.)v7f"/> - </value> + <block type="logic_null" id="z~Da7_)q,Bo-$yJb73oH"/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="d9U8).!K)LC)*3RzV-$z"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="^H7sM5ajVqht|@UM.F/m"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> + <value name="B"> + <block type="logic_null" id=":8|/_EWW~8cxsv_2[8XZ"/> + </value> </block> </value> </block> </value> - <statement name="DO2"> - <block type="variables_set" id=",9T_FbUWwGZlugNQ_c#x"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="5?`m/5fCq/Z(s/u)oR*~"> - <field name="TEXT">BALL_GOAL_RIGHT</field> + <value name="B"> + <block type="logic_operation" id="?A+N_1,#}@kRY%dxQMa9" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="`~AJbhHRzn/)DgR4fRI;"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="?uA|$zvDe+x4kMz%-{d."> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="vG[m`V+N^1KjrN:te9QO"/> + </value> </block> </value> - <next> - <block type="controls_if" id="oOSLtR1E1%!.Oz+LD*|O"> - <mutation elseif="2" else="1"/> + <value name="B"> + <block type="logic_compare" id=";P}d!ou6kF,_]Y}2c}oU"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="D3C[P^f3vp}xb!,-2#r5"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="1@:,7WVUfe~r2),.)v7f"/> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <statement name="DO2"> + <block type="variables_set" id=",9T_FbUWwGZlugNQ_c#x"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="5?`m/5fCq/Z(s/u)oR*~"> + <field name="TEXT">BALL_GOAL_RIGHT</field> + </block> + </value> + <next> + <block type="controls_if" id="oOSLtR1E1%!.Oz+LD*|O"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_compare" id="{AkiSJ!:M-e{%|_5,Va{"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="u2W_3eBph941yf[`AO1:"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="m`EhNfvklFtISL#l0*_4"> + <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + </block> + </value> + </block> + </value> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="]2;?=Iy9hHyC!C}^y~h~" inline="true"> + <mutation name="fwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="Ytx*_*[sy$_4eoX:jjS#"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + </block> + </statement> + <value name="IF1"> + <block type="logic_compare" id="rWZfl+Ze,4+*KK/_Y|f2"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id=".K(H|%8UHLv-,l~)q36:"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="~UptJA?^oJ2DWj=i2Yfh"> + <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> + </block> + </value> + </block> + </value> + <statement name="DO1"> + <block type="controls_if" id="s(!f@_5wN)RYM`|~CC8r"> + <mutation elseif="1" else="1"/> <value name="IF0"> - <block type="logic_compare" id="{AkiSJ!:M-e{%|_5,Va{"> - <field name="OP">LTE</field> + <block type="logic_compare" id="!5NG0L6Qc4L9!/ENQ#^6"> + <field name="OP">LT</field> <value name="A"> - <block type="variables_get" id="u2W_3eBph941yf[`AO1:"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="BBBFnF[e5`GyH[7wiUs#"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> <value name="B"> - <block type="variables_get" id="m`EhNfvklFtISL#l0*_4"> - <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + <block type="variables_get" id="Pu,Rl$nTFT,nE2be^LM2"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> </block> </value> <statement name="DO0"> - <block type="procedures_callnoreturn" id="]2;?=Iy9hHyC!C}^y~h~" inline="true"> - <mutation name="fwd_v"> + <block type="procedures_callnoreturn" id="@$;_yG?U8opM|/]Of75$"> + <mutation name="turnSideRight"> <arg name="v"/> + <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="Ytx*_*[sy$_4eoX:jjS#"> + <block type="variables_get" id="pL8o,[Ydi/Wp^J{smt$3"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="rWZfl+Ze,4+*KK/_Y|f2"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id=".K(H|%8UHLv-,l~)q36:"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="~UptJA?^oJ2DWj=i2Yfh"> - <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> - </block> - </value> - </block> - </value> - <statement name="DO1"> - <block type="controls_if" id="s(!f@_5wN)RYM`|~CC8r"> - <mutation elseif="1" else="1"/> - <value name="IF0"> - <block type="logic_compare" id="!5NG0L6Qc4L9!/ENQ#^6"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="BBBFnF[e5`GyH[7wiUs#"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="Pu,Rl$nTFT,nE2be^LM2"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - </block> - </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="@$;_yG?U8opM|/]Of75$"> - <mutation name="turnSideRight"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="pL8o,[Ydi/Wp^J{smt$3"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="l-M{#v:Q6XmgnnE+3,Rf"> - <field name="NUM">20</field> - </block> - </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="Y-@u6Td#HTIS8}mNdpK3"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="9ve,4}tDg.,ZfkLL0wUL"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="=$ulk!vkDhWA^fYK?b*b"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> + <value name="ARG1"> + <block type="math_number" id="l-M{#v:Q6XmgnnE+3,Rf"> + <field name="NUM">20</field> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="0il^Cdoc`7I6eVmi6htz"> - <mutation name="turnSideLeft"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="%2]eKO_ysvhOPwk$a6Qx"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="AW2n8Mg#t@e6)x-)NCI]"> - <field name="NUM">20</field> - </block> - </value> - </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="Vc$f(+c;1~P{_)XVhUsj"> - <mutation name="stop"/> - </block> - </statement> </block> </statement> - <value name="IF2"> - <block type="logic_compare" id="faLX{cmn%m5GLE$Qa$jP"> - <field name="OP">LTE</field> + <value name="IF1"> + <block type="logic_compare" id="Y-@u6Td#HTIS8}mNdpK3"> + <field name="OP">GT</field> <value name="A"> - <block type="variables_get" id="p/ukr6sWeNnUPhQlK[{B"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="9ve,4}tDg.,ZfkLL0wUL"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> <value name="B"> - <block type="variables_get" id="}Tawuqa_TE/qeAVT.RC5"> - <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> + <block type="variables_get" id="=$ulk!vkDhWA^fYK?b*b"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> </block> </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="$Z+:;,t[mQ]aaUe_UNhM" inline="true"> - <mutation name="bwd_v"> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="0il^Cdoc`7I6eVmi6htz"> + <mutation name="turnSideLeft"> <arg name="v"/> + <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="|eX:`Adtu3l.8ZaYcgJF"> + <block type="variables_get" id="%2]eKO_ysvhOPwk$a6Qx"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> + <value name="ARG1"> + <block type="math_number" id="AW2n8Mg#t@e6)x-)NCI]"> + <field name="NUM">20</field> + </block> + </value> </block> </statement> <statement name="ELSE"> - <block type="procedures_callnoreturn" id="bi9hG~0MI@s}v(fCd[tp"> + <block type="procedures_callnoreturn" id="Vc$f(+c;1~P{_)XVhUsj"> <mutation name="stop"/> </block> </statement> </block> - </next> + </statement> + <value name="IF2"> + <block type="logic_compare" id="faLX{cmn%m5GLE$Qa$jP"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="p/ukr6sWeNnUPhQlK[{B"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="}Tawuqa_TE/qeAVT.RC5"> + <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> + </block> + </value> + </block> + </value> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="$Z+:;,t[mQ]aaUe_UNhM" inline="true"> + <mutation name="bwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="|eX:`Adtu3l.8ZaYcgJF"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + </block> + </statement> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="bi9hG~0MI@s}v(fCd[tp"> + <mutation name="stop"/> + </block> + </statement> </block> - </statement> - <value name="IF3"> - <block type="logic_operation" id="ohFi[Z{Xu0.EXNHvg7!|" inline="false"> + </next> + </block> + </statement> + <value name="IF3"> + <block type="logic_operation" id="ohFi[Z{Xu0.EXNHvg7!|" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="JDmD0uu$,6*6XI.*8Y=T" inline="false"> <field name="OP">AND</field> <value name="A"> - <block type="logic_operation" id="JDmD0uu$,6*6XI.*8Y=T" inline="false"> - <field name="OP">AND</field> + <block type="logic_compare" id="JvLUnlLulIk{o},vW~}y"> + <field name="OP">NEQ</field> <value name="A"> - <block type="logic_compare" id="JvLUnlLulIk{o},vW~}y"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="$-jleAiV2GHR%[$RfY4I"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="TvSq3M9?{oeuq~TW*ihg"/> - </value> + <block type="variables_get" id="$-jleAiV2GHR%[$RfY4I"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="9/b,vDMaH:m,r{gleX7O"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="F!:=i0jN5fR[{l7EwBYG"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="lP$*f:B}Uv4E]8^Ao)y2"/> - </value> - </block> + <block type="logic_null" id="TvSq3M9?{oeuq~TW*ihg"/> </value> </block> </value> <value name="B"> - <block type="logic_operation" id="V+@.6tZ~:.0S4;fVjGa/" inline="false"> - <field name="OP">AND</field> + <block type="logic_compare" id="9/b,vDMaH:m,r{gleX7O"> + <field name="OP">NEQ</field> <value name="A"> - <block type="logic_compare" id="[y%,{E^TI)LH+?|meGy_"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id=",+(z.@/%C`r?(v8{Xk6?"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="%PXc[::|r[K5tThFGgi."/> - </value> + <block type="variables_get" id="F!:=i0jN5fR[{l7EwBYG"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="RoSQV[2xNmOan/JtAO~{"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="k9g4HbL]=_@lVwgYM*{e"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="aboD!(qALukkFe}v6#WN"/> - </value> + <block type="logic_null" id="lP$*f:B}Uv4E]8^Ao)y2"/> + </value> + </block> + </value> + </block> + </value> + <value name="B"> + <block type="logic_operation" id="V+@.6tZ~:.0S4;fVjGa/" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="[y%,{E^TI)LH+?|meGy_"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id=",+(z.@/%C`r?(v8{Xk6?"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> + <value name="B"> + <block type="logic_null" id="%PXc[::|r[K5tThFGgi."/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="RoSQV[2xNmOan/JtAO~{"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="k9g4HbL]=_@lVwgYM*{e"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="aboD!(qALukkFe}v6#WN"/> + </value> </block> </value> </block> </value> - <statement name="DO3"> - <block type="variables_set" id="?=|7j%BS8lgVb|CMk2`B"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="Y4VWl.KGLr*CB@5lWqMT"> - <field name="TEXT">BALL_GOAL_BOTH</field> + </block> + </value> + <statement name="DO3"> + <block type="variables_set" id="?=|7j%BS8lgVb|CMk2`B"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="Y4VWl.KGLr*CB@5lWqMT"> + <field name="TEXT">BALL_GOAL_BOTH</field> + </block> + </value> + <next> + <block type="controls_if" id="mBr6R|Ld1(7@wFK@LEc%"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_compare" id="Ef@EH~LEo9ldV~aTkL)v"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="eNn.jAQuZB`.!|a-}8Bm"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="Vn}:ap@@leJ;ERn5!ulQ"> + <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> + </block> + </value> </block> </value> - <next> - <block type="controls_if" id="mBr6R|Ld1(7@wFK@LEc%"> - <mutation elseif="2" else="1"/> - <value name="IF0"> - <block type="logic_compare" id="Ef@EH~LEo9ldV~aTkL)v"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="eNn.jAQuZB`.!|a-}8Bm"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="Vn}:ap@@leJ;ERn5!ulQ"> - <field name="VAR" id="}*jl@)UA_Hjh5rc,Gt)c">y_ball_far</field> - </block> - </value> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="ug]~pSocMN6aC`I.!9FY" inline="true"> + <mutation name="fwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="3-Iarkq=#yiSq^]Squ6+"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="ug]~pSocMN6aC`I.!9FY" inline="true"> - <mutation name="fwd_v"> - <arg name="v"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="3-Iarkq=#yiSq^]Squ6+"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> + </block> + </statement> + <value name="IF1"> + <block type="logic_compare" id="Gm+JczBwo$*$lI1hn(bE"> + <field name="OP">LTE</field> + <value name="A"> + <block type="variables_get" id="}m|a8Yo5TtRP74mP_mv`"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="Gm+JczBwo$*$lI1hn(bE"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="}m|a8Yo5TtRP74mP_mv`"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="$#D6FdXJ6/Dl!OW3tB3d"> - <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> - </block> - </value> + </value> + <value name="B"> + <block type="variables_get" id="$#D6FdXJ6/Dl!OW3tB3d"> + <field name="VAR" id="09n]XF2CKURQs)nHOfam">y_ball_near</field> </block> </value> - <statement name="DO1"> - <block type="controls_if" id="u:~b5-PiU+[pu_1,Xa98"> - <mutation elseif="2" else="1"/> - <value name="IF0"> - <block type="logic_operation" id="aA(*kb?~twOr6-H-5Y6L" inline="false"> - <field name="OP">AND</field> + </block> + </value> + <statement name="DO1"> + <block type="controls_if" id="u:~b5-PiU+[pu_1,Xa98"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_operation" id="aA(*kb?~twOr6-H-5Y6L" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="s@[Z^y:V@HE1Rj;{0kMC"> + <field name="OP">GT</field> <value name="A"> - <block type="logic_compare" id="s@[Z^y:V@HE1Rj;{0kMC"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="i5K6*S_7LI]YP*oc?o#("> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="2.y#4B,;Y:6:KX.dWY!e"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> + <block type="variables_get" id="i5K6*S_7LI]YP*oc?o#("> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="pj/D#[B!S_nEJX02j9b`"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="$R,CQ$q_:mge?X159P8L"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="ru(1|is|xmE}.]MuY*xT"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> + <block type="variables_get" id="2.y#4B,;Y:6:KX.dWY!e"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> </block> </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="sZ-Q381UDm_7-@_=u,Nb" inline="true"> - <mutation name="fwd_v"> - <arg name="v"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="EZ7O-Q%B5i4/XcO)EWY*"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - </block> - </statement> - <value name="IF1"> - <block type="logic_operation" id="y1toQcQ?JoXNUk]#BWyd" inline="false"> - <field name="OP">AND</field> + <value name="B"> + <block type="logic_compare" id="pj/D#[B!S_nEJX02j9b`"> + <field name="OP">LT</field> <value name="A"> - <block type="logic_compare" id=".p%vg@`T{)!T6f3i$rO9"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="V2_?}A{Yt7$iai=yCSJ)"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="lpS.y*[{cEi1+0~K+1A0"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> + <block type="variables_get" id="$R,CQ$q_:mge?X159P8L"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="-I~|7,G,H7p/(=+cA3L}"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="g-:OONj{*4WfXZ](X!%a"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="QgHqf)%|h?u;iSsKC}HP"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> + <block type="variables_get" id="ru(1|is|xmE}.]MuY*xT"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="@n*^wewk`x?NX#m2}EQE"> - <mutation name="turnSideLeft"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="+m}1a:ZW]JoRW2QP.n06"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="_;2gj%#h1g[wnD|7oXuo"> - <field name="NUM">20</field> - </block> - </value> + </block> + </value> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="sZ-Q381UDm_7-@_=u,Nb" inline="true"> + <mutation name="fwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="EZ7O-Q%B5i4/XcO)EWY*"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> - </statement> - <value name="IF2"> - <block type="logic_operation" id="}V=E{bot4=a@4;{W:Eqi" inline="false"> - <field name="OP">AND</field> + </value> + </block> + </statement> + <value name="IF1"> + <block type="logic_operation" id="y1toQcQ?JoXNUk]#BWyd" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id=".p%vg@`T{)!T6f3i$rO9"> + <field name="OP">LT</field> <value name="A"> - <block type="logic_compare" id="Z{tUKy/pPWJWfeWiqZqa"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="1MDI2fR,ALRZOi}FccVJ"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="B[@Bq0mDVmk`6X84BFeR"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> + <block type="variables_get" id="V2_?}A{Yt7$iai=yCSJ)"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="FkJHQ#CLjJp,s#{H{pha"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="(Dk1+3wh2]HCao.dq?PS"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="6=]nXa6@Nlp}dkXwpg6@"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> + <block type="variables_get" id="lpS.y*[{cEi1+0~K+1A0"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> </block> </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="R590b9iY$aQ~B7!m8f2l"> - <mutation name="turnSideRight"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="vk%)2O)R9Ft/FMn)2yr7"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + <value name="B"> + <block type="logic_compare" id="-I~|7,G,H7p/(=+cA3L}"> + <field name="OP">LT</field> + <value name="A"> + <block type="variables_get" id="g-:OONj{*4WfXZ](X!%a"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> - <value name="ARG1"> - <block type="math_number" id="N.3ER1#5:PMk;ocu-#q("> - <field name="NUM">20</field> + <value name="B"> + <block type="variables_get" id="QgHqf)%|h?u;iSsKC}HP"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="Xa4Y={.L=QNVSnwr3E|_"> - <mutation name="stop"/> + </value> + </block> + </value> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="@n*^wewk`x?NX#m2}EQE"> + <mutation name="turnSideLeft"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="+m}1a:ZW]JoRW2QP.n06"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> - </statement> + </value> + <value name="ARG1"> + <block type="math_number" id="_;2gj%#h1g[wnD|7oXuo"> + <field name="NUM">20</field> + </block> + </value> </block> </statement> <value name="IF2"> - <block type="logic_compare" id="cn5,`k@5*q#XXj0ugN64"> - <field name="OP">LTE</field> + <block type="logic_operation" id="}V=E{bot4=a@4;{W:Eqi" inline="false"> + <field name="OP">AND</field> <value name="A"> - <block type="variables_get" id="%s03s#6dgd9,gsBFI%jB"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="logic_compare" id="Z{tUKy/pPWJWfeWiqZqa"> + <field name="OP">GT</field> + <value name="A"> + <block type="variables_get" id="1MDI2fR,ALRZOi}FccVJ"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="B[@Bq0mDVmk`6X84BFeR"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> </block> </value> <value name="B"> - <block type="variables_get" id="[p/x;`ab/;Bg4Kn8589%"> - <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> + <block type="logic_compare" id="FkJHQ#CLjJp,s#{H{pha"> + <field name="OP">GT</field> + <value name="A"> + <block type="variables_get" id="(Dk1+3wh2]HCao.dq?PS"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="6=]nXa6@Nlp}dkXwpg6@"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> </block> </value> </block> </value> <statement name="DO2"> - <block type="procedures_callnoreturn" id="0`3ax3Vh.zGnD9];Yb=W" inline="true"> - <mutation name="bwd_v"> + <block type="procedures_callnoreturn" id="R590b9iY$aQ~B7!m8f2l"> + <mutation name="turnSideRight"> <arg name="v"/> + <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="@%~/x=Q=6h3dYJ8NF`SF"> + <block type="variables_get" id="vk%)2O)R9Ft/FMn)2yr7"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> + <value name="ARG1"> + <block type="math_number" id="N.3ER1#5:PMk;ocu-#q("> + <field name="NUM">20</field> + </block> + </value> </block> </statement> <statement name="ELSE"> - <block type="procedures_callnoreturn" id="=56A!T,|yxe![pQgmxd5"> + <block type="procedures_callnoreturn" id="Xa4Y={.L=QNVSnwr3E|_"> <mutation name="stop"/> </block> </statement> </block> - </next> - </block> - </statement> - <value name="IF4"> - <block type="logic_operation" id="awUXoJ:Avy=jfaq3Lnw2" inline="false"> - <field name="OP">AND</field> - <value name="A"> - <block type="logic_compare" id="yh3|ZUJR1=Q-QK;7j4Vq"> - <field name="OP">NEQ</field> + </statement> + <value name="IF2"> + <block type="logic_compare" id="cn5,`k@5*q#XXj0ugN64"> + <field name="OP">LTE</field> <value name="A"> - <block type="variables_get" id="T$V8$ZEi|{};;VR5guWF"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + <block type="variables_get" id="%s03s#6dgd9,gsBFI%jB"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_null" id="o5dj.]+Z)07l-FMKaT%{"/> + <block type="variables_get" id="[p/x;`ab/;Bg4Kn8589%"> + <field name="VAR" id="xjf5O*w9;IZf$n55ytVF">y_ball_touch</field> + </block> </value> </block> </value> - <value name="B"> - <block type="logic_compare" id="L1~%)SdSHa$uo6A.8#6f"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="WAl1M*;;q)J/[%+s[Nt^"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="0`3ax3Vh.zGnD9];Yb=W" inline="true"> + <mutation name="bwd_v"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="@%~/x=Q=6h3dYJ8NF`SF"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - <value name="B"> - <block type="logic_null" id="_D1?^^LL[mra-s}9x67K"/> - </value> + </block> + </statement> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="=56A!T,|yxe![pQgmxd5"> + <mutation name="stop"/> + </block> + </statement> + </block> + </next> + </block> + </statement> + <value name="IF4"> + <block type="logic_operation" id="awUXoJ:Avy=jfaq3Lnw2" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_compare" id="yh3|ZUJR1=Q-QK;7j4Vq"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="T$V8$ZEi|{};;VR5guWF"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="o5dj.]+Z)07l-FMKaT%{"/> + </value> + </block> + </value> + <value name="B"> + <block type="logic_compare" id="L1~%)SdSHa$uo6A.8#6f"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="WAl1M*;;q)J/[%+s[Nt^"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> + <value name="B"> + <block type="logic_null" id="_D1?^^LL[mra-s}9x67K"/> + </value> + </block> + </value> + </block> + </value> + <statement name="DO4"> + <block type="variables_set" id="u#?[x*W2[}s=7T+@kGX3"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="Gi1v,-rKbpMdik!jz5aA"> + <field name="TEXT">NO_BALL_GOAL_BOTH</field> </block> </value> - <statement name="DO4"> - <block type="variables_set" id="u#?[x*W2[}s=7T+@kGX3"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <next> + <block type="variables_set" id="[N80,Pt{V6fUM/*V.[V,"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> <value name="VALUE"> - <block type="text" id="Gi1v,-rKbpMdik!jz5aA"> - <field name="TEXT">NO_BALL_GOAL_BOTH</field> + <block type="math_arithmetic" id="stzng{bs`Stm,oBHUX4!"> + <field name="OP">MINUS</field> + <value name="A"> + <block type="variables_get" id="((%]wA!T|%@cv3,wHB|j"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="0%WOX|exw*bIEaQ3.`9q"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> </block> </value> <next> - <block type="variables_set" id="[N80,Pt{V6fUM/*V.[V,"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + <block type="variables_set" id="VutK`C):{nbAi#Axhu!x"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> <value name="VALUE"> - <block type="math_arithmetic" id="stzng{bs`Stm,oBHUX4!"> - <field name="OP">MINUS</field> + <block type="math_arithmetic" id="(KM3-N3=G5B(T:(!4_lq"> + <field name="OP">ADD</field> <value name="A"> - <block type="variables_get" id="((%]wA!T|%@cv3,wHB|j"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + <block type="variables_get" id="bS|/)kwXja$*IpF01zL/"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> <value name="B"> - <block type="variables_get" id="0%WOX|exw*bIEaQ3.`9q"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + <block type="math_arithmetic" id="X;-9(dOX5-El:hAx$.=B"> + <field name="OP">DIVIDE</field> + <value name="A"> + <block type="variables_get" id="Z4=3XhJOodeLD~q6l?{4"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + </block> + </value> + <value name="B"> + <block type="math_number" id="+%Vyps+4_*q%/:(:2j+E"> + <field name="NUM">2</field> + </block> + </value> </block> </value> </block> </value> <next> - <block type="variables_set" id="VutK`C):{nbAi#Axhu!x"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - <value name="VALUE"> - <block type="math_arithmetic" id="(KM3-N3=G5B(T:(!4_lq"> - <field name="OP">ADD</field> + <block type="controls_if" id="ip*`sP8:b(5pR4)~R_an"> + <mutation elseif="2" else="1"/> + <value name="IF0"> + <block type="logic_operation" id="fn=DRPVeg$aV~zkMY*tl" inline="false"> + <field name="OP">AND</field> <value name="A"> - <block type="variables_get" id="bS|/)kwXja$*IpF01zL/"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="math_arithmetic" id="X;-9(dOX5-El:hAx$.=B"> - <field name="OP">DIVIDE</field> + <block type="logic_compare" id="2Q5e3vZ!5/=nainF0od+"> + <field name="OP">GTE</field> <value name="A"> - <block type="variables_get" id="Z4=3XhJOodeLD~q6l?{4"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + <block type="variables_get" id="CDb^~4feXbvngdh004${"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> </block> </value> <value name="B"> - <block type="math_number" id="+%Vyps+4_*q%/:(:2j+E"> - <field name="NUM">2</field> + <block type="variables_get" id="cR*DIW$3$NL#u11S8#v,"> + <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> </block> </value> </block> </value> - </block> - </value> - <next> - <block type="controls_if" id="ip*`sP8:b(5pR4)~R_an"> - <mutation elseif="2" else="1"/> - <value name="IF0"> - <block type="logic_operation" id="fn=DRPVeg$aV~zkMY*tl" inline="false"> - <field name="OP">AND</field> + <value name="B"> + <block type="logic_compare" id="c(LuogB[ECxBtM-6/r4b"> + <field name="OP">LTE</field> <value name="A"> - <block type="logic_compare" id="2Q5e3vZ!5/=nainF0od+"> - <field name="OP">GTE</field> - <value name="A"> - <block type="variables_get" id="CDb^~4feXbvngdh004${"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="cR*DIW$3$NL#u11S8#v,"> - <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> - </block> - </value> + <block type="variables_get" id="z~zx!V^G#Ywd}HPCLcCn"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> </block> </value> <value name="B"> - <block type="logic_compare" id="c(LuogB[ECxBtM-6/r4b"> - <field name="OP">LTE</field> - <value name="A"> - <block type="variables_get" id="z~zx!V^G#Ywd}HPCLcCn"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id=")0O+HGV1!`X_dJGq4=yZ"> - <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> - </block> - </value> + <block type="variables_get" id=")0O+HGV1!`X_dJGq4=yZ"> + <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> </block> </value> </block> </value> - <statement name="DO0"> - <block type="controls_if" id="#R16p?0!Rt1}82Q_5zO2"> - <mutation elseif="0" else="1"/> - <value name="IF0"> - <block type="logic_compare" id="UzXI%rAMZA[}UE*cbXUd"> - <field name="OP">LT</field> - <value name="A"> - <block type="variables_get" id="@5%T+t9W1)BZT@oXqnww"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> - </block> - </value> - <value name="B"> - <block type="math_number" id="Wb8s[K5@WIquU`@,7c@w"> - <field name="NUM">130</field> - </block> - </value> - </block> - </value> - <statement name="DO0"> - <block type="procedures_callnoreturn" id="pu3s6{_T@bDFusTBxc)c"> - <mutation name="fwd"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="]RO~:%x7+T~!YzQ5FD:C"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="v0c-z!Z^U6/IWhKEPnE*"> - <field name="NUM">10</field> - </block> - </value> - </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="Y6^M7Oqd:JSsRteXXtVD"> - <mutation name="bwd"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="8F$+J#P35!A!gFI[:AHU"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - <value name="ARG1"> - <block type="math_number" id="dFB2rRWf.tj`$C?![{FH"> - <field name="NUM">10</field> - </block> - </value> - </block> - </statement> - </block> - </statement> - <value name="IF1"> - <block type="logic_compare" id="(H+T:yEGNo[y%GO7P;Dz"> + </block> + </value> + <statement name="DO0"> + <block type="controls_if" id="#R16p?0!Rt1}82Q_5zO2"> + <mutation elseif="0" else="1"/> + <value name="IF0"> + <block type="logic_compare" id="UzXI%rAMZA[}UE*cbXUd"> <field name="OP">LT</field> <value name="A"> - <block type="variables_get" id="D`d-ScN5}NDq#So6U%2M"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> + <block type="variables_get" id="@5%T+t9W1)BZT@oXqnww"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> </block> </value> <value name="B"> - <block type="variables_get" id="kw^gNGg!Q00uE[+DZwGg"> - <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + <block type="math_number" id="Wb8s[K5@WIquU`@,7c@w"> + <field name="NUM">130</field> </block> </value> </block> </value> - <statement name="DO1"> - <block type="procedures_callnoreturn" id="mG-?FU_hknyuqCH{oWJT"> - <mutation name="left"> + <statement name="DO0"> + <block type="procedures_callnoreturn" id="pu3s6{_T@bDFusTBxc)c"> + <mutation name="fwd"> <arg name="v"/> <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="R%Oe)=kR9%E%`E3L[QVN"> + <block type="variables_get" id="]RO~:%x7+T~!YzQ5FD:C"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> <value name="ARG1"> - <block type="math_round" id="6n}aM10-I0P:)!Gr(]i5"> - <field name="OP">ROUND</field> - <field name="DECIMALS">0</field> - <value name="NUM"> - <block type="math_arithmetic" id="9e@Xpj!L)E*5)/BWxD;,"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="|5*]zYtMm]955K1])q46"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> - </block> - </value> - <value name="B"> - <block type="math_number" id="=Vugu-k,xt8LKJmb5/PQ"> - <field name="NUM">0.01</field> - </block> - </value> - </block> - </value> + <block type="math_number" id="v0c-z!Z^U6/IWhKEPnE*"> + <field name="NUM">10</field> </block> </value> </block> </statement> - <value name="IF2"> - <block type="logic_compare" id="VxyB%0*)9[A{wCi_b~$0"> - <field name="OP">GT</field> - <value name="A"> - <block type="variables_get" id="-;*b3g{dTtQ{%@$gw6P)"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - </block> - </value> - <value name="B"> - <block type="variables_get" id="?q##-)hY2%F2{Lx*2U0U"> - <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> - </block> - </value> - </block> - </value> - <statement name="DO2"> - <block type="procedures_callnoreturn" id="oGweCRo;|ZbP%1KR7B]a"> - <mutation name="right"> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="Y6^M7Oqd:JSsRteXXtVD"> + <mutation name="bwd"> <arg name="v"/> <arg name="ticks"/> </mutation> <value name="ARG0"> - <block type="variables_get" id="Vc7Fp*A$WDu^X7t.%1`9"> + <block type="variables_get" id="8F$+J#P35!A!gFI[:AHU"> <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> <value name="ARG1"> - <block type="math_round" id="5^^7yxNg{mw+_^(*rmC#"> - <field name="OP">ROUND</field> - <field name="DECIMALS">0</field> - <value name="NUM"> - <block type="math_arithmetic" id="eW}|s]3dmm#iEvK%uj/1"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="B}iVX#7NZ$fvR1!YH6@S"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> - </block> - </value> - <value name="B"> - <block type="math_number" id="(n)Uz^8S1N!C^7@](sJ)"> - <field name="NUM">0.01</field> - </block> - </value> + <block type="math_number" id="dFB2rRWf.tj`$C?![{FH"> + <field name="NUM">10</field> + </block> + </value> + </block> + </statement> + </block> + </statement> + <value name="IF1"> + <block type="logic_compare" id="(H+T:yEGNo[y%GO7P;Dz"> + <field name="OP">LT</field> + <value name="A"> + <block type="variables_get" id="D`d-ScN5}NDq#So6U%2M"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> + </block> + </value> + <value name="B"> + <block type="variables_get" id="kw^gNGg!Q00uE[+DZwGg"> + <field name="VAR" id="Ym/+Qo0YZe25;%N1d!*f">x_min</field> + </block> + </value> + </block> + </value> + <statement name="DO1"> + <block type="procedures_callnoreturn" id="mG-?FU_hknyuqCH{oWJT"> + <mutation name="left"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="R%Oe)=kR9%E%`E3L[QVN"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + <value name="ARG1"> + <block type="math_round" id="6n}aM10-I0P:)!Gr(]i5"> + <field name="OP">ROUND</field> + <field name="DECIMALS">0</field> + <value name="NUM"> + <block type="math_arithmetic" id="9e@Xpj!L)E*5)/BWxD;,"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="|5*]zYtMm]955K1])q46"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + </block> + </value> + <value name="B"> + <block type="math_number" id="=Vugu-k,xt8LKJmb5/PQ"> + <field name="NUM">0.01</field> </block> </value> </block> </value> </block> - </statement> - <statement name="ELSE"> - <block type="procedures_callnoreturn" id="txDc~?FC/.mMwB2ftP!t"> - <mutation name="stop"/> + </value> + </block> + </statement> + <value name="IF2"> + <block type="logic_compare" id="VxyB%0*)9[A{wCi_b~$0"> + <field name="OP">GT</field> + <value name="A"> + <block type="variables_get" id="-;*b3g{dTtQ{%@$gw6P)"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> </block> - </statement> + </value> + <value name="B"> + <block type="variables_get" id="?q##-)hY2%F2{Lx*2U0U"> + <field name="VAR" id="2G]XEQ3Lhl$dG]=:]8Ge">x_max</field> + </block> + </value> + </block> + </value> + <statement name="DO2"> + <block type="procedures_callnoreturn" id="oGweCRo;|ZbP%1KR7B]a"> + <mutation name="right"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="Vc7Fp*A$WDu^X7t.%1`9"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + <value name="ARG1"> + <block type="math_round" id="5^^7yxNg{mw+_^(*rmC#"> + <field name="OP">ROUND</field> + <field name="DECIMALS">0</field> + <value name="NUM"> + <block type="math_arithmetic" id="eW}|s]3dmm#iEvK%uj/1"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="B}iVX#7NZ$fvR1!YH6@S"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + </block> + </value> + <value name="B"> + <block type="math_number" id="(n)Uz^8S1N!C^7@](sJ)"> + <field name="NUM">0.01</field> + </block> + </value> + </block> + </value> + </block> + </value> </block> - </next> + </statement> + <statement name="ELSE"> + <block type="procedures_callnoreturn" id="txDc~?FC/.mMwB2ftP!t"> + <mutation name="stop"/> + </block> + </statement> </block> </next> </block> </next> </block> - </statement> - <value name="IF5"> - <block type="logic_operation" id="n;fJ-X=w7VQ~lqJ!9izM" inline="false"> - <field name="OP">AND</field> + </next> + </block> + </statement> + <value name="IF5"> + <block type="logic_operation" id="n;fJ-X=w7VQ~lqJ!9izM" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="NFf.9WuEcFjGpo|he2Lq" inline="false"> + <field name="OP">OR</field> <value name="A"> - <block type="logic_operation" id="NFf.9WuEcFjGpo|he2Lq" inline="false"> - <field name="OP">OR</field> + <block type="logic_compare" id="R$,3LHh`g+6Wa:m#*[Ys"> + <field name="OP">EQ</field> <value name="A"> - <block type="logic_compare" id="R$,3LHh`g+6Wa:m#*[Ys"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="rwEBIEg)#f$fNY):g16?"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="9d:a29Y`@{YMRdTLZH|W"/> - </value> + <block type="variables_get" id="rwEBIEg)#f$fNY):g16?"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="chjUw+0f?gW,C~KalQZQ"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="J;t`p`a%Tr`zE:+/Lx%x"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="tsl[NONq~[]^~}KRpNQy"/> - </value> - </block> + <block type="logic_null" id="9d:a29Y`@{YMRdTLZH|W"/> </value> </block> </value> <value name="B"> - <block type="logic_operation" id="w[--Ee4II.j.3yFUzaHC" inline="false"> - <field name="OP">OR</field> + <block type="logic_compare" id="chjUw+0f?gW,C~KalQZQ"> + <field name="OP">EQ</field> <value name="A"> - <block type="logic_compare" id="O{Tccxva=xl#e:%Ta#cj"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="XnSX|A;Vc=7XtVTPe;II"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="fWFBJEE}YZGKJY)tiNyv"/> - </value> + <block type="variables_get" id="J;t`p`a%Tr`zE:+/Lx%x"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="w[W/2lkK6=`$]ikD=RR|"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="J-=Q(vP@Rc16*!had-;y"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="@Is_#Ked]NGd$K2MW-N^"/> - </value> - </block> + <block type="logic_null" id="tsl[NONq~[]^~}KRpNQy"/> </value> </block> </value> </block> </value> - <statement name="DO5"> - <block type="variables_set" id="qjHV]^:Wo)#J|x`[z9Dw"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="0tLy^$!b-,Fdll2TwLa0"> - <field name="TEXT">NO_BALL_GOAL_LEFT</field> + <value name="B"> + <block type="logic_operation" id="w[--Ee4II.j.3yFUzaHC" inline="false"> + <field name="OP">OR</field> + <value name="A"> + <block type="logic_compare" id="O{Tccxva=xl#e:%Ta#cj"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="XnSX|A;Vc=7XtVTPe;II"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="fWFBJEE}YZGKJY)tiNyv"/> + </value> </block> </value> - <next> - <block type="procedures_callnoreturn" id="U96^i60j(oeYzU8kTgU}"> - <mutation name="right"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="NNO?/UcvB5S=//YOQ51j"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + <value name="B"> + <block type="logic_compare" id="w[W/2lkK6=`$]ikD=RR|"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="J-=Q(vP@Rc16*!had-;y"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> - <value name="ARG1"> - <block type="math_round" id=")kbJ+|FY0:`OyFD|5o1n"> - <field name="OP">ROUND</field> - <field name="DECIMALS">0</field> + <value name="B"> + <block type="logic_null" id="@Is_#Ked]NGd$K2MW-N^"/> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <statement name="DO5"> + <block type="variables_set" id="qjHV]^:Wo)#J|x`[z9Dw"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="0tLy^$!b-,Fdll2TwLa0"> + <field name="TEXT">NO_BALL_GOAL_LEFT</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" id="U96^i60j(oeYzU8kTgU}"> + <mutation name="right"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="NNO?/UcvB5S=//YOQ51j"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + <value name="ARG1"> + <block type="math_round" id=")kbJ+|FY0:`OyFD|5o1n"> + <field name="OP">ROUND</field> + <field name="DECIMALS">0</field> + <value name="NUM"> + <block type="math_single" id="w#OguMAoO|^wrS9~m7QM"> + <field name="OP">ABS</field> <value name="NUM"> - <block type="math_single" id="w#OguMAoO|^wrS9~m7QM"> - <field name="OP">ABS</field> - <value name="NUM"> - <block type="math_arithmetic" id="A9MgtS+IiS%Ns7f$JnJ`"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="^$$6dKK$Lr7ThLi|d_3y"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="math_number" id="=+CXXJ[n-?V=f6zroOtS"> - <field name="NUM">0.1</field> - </block> - </value> + <block type="math_arithmetic" id="A9MgtS+IiS%Ns7f$JnJ`"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="^$$6dKK$Lr7ThLi|d_3y"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="math_number" id="=+CXXJ[n-?V=f6zroOtS"> + <field name="NUM">0.1</field> </block> </value> </block> @@ -1869,115 +1864,115 @@ </block> </value> </block> - </next> + </value> </block> - </statement> - <value name="IF6"> - <block type="logic_operation" id="@A84Nx^IpXz%LCYDf+3a" inline="false"> - <field name="OP">AND</field> + </next> + </block> + </statement> + <value name="IF6"> + <block type="logic_operation" id="@A84Nx^IpXz%LCYDf+3a" inline="false"> + <field name="OP">AND</field> + <value name="A"> + <block type="logic_operation" id="9{.L1,^dK`cx%gkekh((" inline="false"> + <field name="OP">OR</field> <value name="A"> - <block type="logic_operation" id="9{.L1,^dK`cx%gkekh((" inline="false"> - <field name="OP">OR</field> + <block type="logic_compare" id="B.4G5j0lpHiK^%Co:jY("> + <field name="OP">EQ</field> <value name="A"> - <block type="logic_compare" id="B.4G5j0lpHiK^%Co:jY("> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="N|{6x7I=]/-FV.9c}m6;"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="_]3{l!O7]TQml!/!$`],"/> - </value> + <block type="variables_get" id="N|{6x7I=]/-FV.9c}m6;"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="1rtp?f;WQuGueC0!fsF1"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="P)7_c}h5-WzhIT2+Sm!3"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="6|946y1Dt?3;v$m7}3b#"/> - </value> - </block> + <block type="logic_null" id="_]3{l!O7]TQml!/!$`],"/> </value> </block> </value> <value name="B"> - <block type="logic_operation" id="/CB,rxMtGbnS.o4@P$H9" inline="false"> - <field name="OP">OR</field> + <block type="logic_compare" id="1rtp?f;WQuGueC0!fsF1"> + <field name="OP">EQ</field> <value name="A"> - <block type="logic_compare" id="5}=h$U=O8]*WCIA_=(9a"> - <field name="OP">EQ</field> - <value name="A"> - <block type="variables_get" id="SSnH/1RJv#G9|cl`hYc*"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="wSe^9aT1?BoFCiEZ)67i"/> - </value> + <block type="variables_get" id="P)7_c}h5-WzhIT2+Sm!3"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> </block> </value> <value name="B"> - <block type="logic_compare" id="E}DH@Yb00(X!:w660oS^"> - <field name="OP">NEQ</field> - <value name="A"> - <block type="variables_get" id="i@GB;88$3cms~;*_]d*C"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="logic_null" id="_]zY;9N^B,D_VA;,OV8_"/> - </value> - </block> + <block type="logic_null" id="6|946y1Dt?3;v$m7}3b#"/> </value> </block> </value> </block> </value> - <statement name="DO6"> - <block type="variables_set" id="zX@s(@}$N7L6cM*{mc:{"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="Zw4*=firw67G(Xw@?.}|"> - <field name="TEXT">NO_BALL_GOAL_RIGHT</field> + <value name="B"> + <block type="logic_operation" id="/CB,rxMtGbnS.o4@P$H9" inline="false"> + <field name="OP">OR</field> + <value name="A"> + <block type="logic_compare" id="5}=h$U=O8]*WCIA_=(9a"> + <field name="OP">EQ</field> + <value name="A"> + <block type="variables_get" id="SSnH/1RJv#G9|cl`hYc*"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="B"> + <block type="logic_null" id="wSe^9aT1?BoFCiEZ)67i"/> + </value> </block> </value> - <next> - <block type="procedures_callnoreturn" id="Wizmeh4`g4Fgmk1A|sV@"> - <mutation name="left"> - <arg name="v"/> - <arg name="ticks"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="s+91j;@jAXoyAP!%ls#{"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + <value name="B"> + <block type="logic_compare" id="E}DH@Yb00(X!:w660oS^"> + <field name="OP">NEQ</field> + <value name="A"> + <block type="variables_get" id="i@GB;88$3cms~;*_]d*C"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> </block> </value> - <value name="ARG1"> - <block type="math_round" id="!9XkF[+`Qfl(y.B94[cc"> - <field name="OP">ROUND</field> - <field name="DECIMALS">0</field> + <value name="B"> + <block type="logic_null" id="_]zY;9N^B,D_VA;,OV8_"/> + </value> + </block> + </value> + </block> + </value> + </block> + </value> + <statement name="DO6"> + <block type="variables_set" id="zX@s(@}$N7L6cM*{mc:{"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="Zw4*=firw67G(Xw@?.}|"> + <field name="TEXT">NO_BALL_GOAL_RIGHT</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" id="Wizmeh4`g4Fgmk1A|sV@"> + <mutation name="left"> + <arg name="v"/> + <arg name="ticks"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="s+91j;@jAXoyAP!%ls#{"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> + </block> + </value> + <value name="ARG1"> + <block type="math_round" id="!9XkF[+`Qfl(y.B94[cc"> + <field name="OP">ROUND</field> + <field name="DECIMALS">0</field> + <value name="NUM"> + <block type="math_single" id="gOM#UD(tV-_1Cyz:a;/^"> + <field name="OP">ABS</field> <value name="NUM"> - <block type="math_single" id="gOM#UD(tV-_1Cyz:a;/^"> - <field name="OP">ABS</field> - <value name="NUM"> - <block type="math_arithmetic" id="nqa/Wid0hzlziX,(MK#4"> - <field name="OP">MULTIPLY</field> - <value name="A"> - <block type="variables_get" id="1sebS=sup~V3d9+*a:d="> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="B"> - <block type="math_number" id="qoM$8go,0,2xd@dr`hjO"> - <field name="NUM">0.1</field> - </block> - </value> + <block type="math_arithmetic" id="nqa/Wid0hzlziX,(MK#4"> + <field name="OP">MULTIPLY</field> + <value name="A"> + <block type="variables_get" id="1sebS=sup~V3d9+*a:d="> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="B"> + <block type="math_number" id="qoM$8go,0,2xd@dr`hjO"> + <field name="NUM">0.1</field> </block> </value> </block> @@ -1985,181 +1980,186 @@ </block> </value> </block> - </next> + </value> </block> - </statement> - <statement name="ELSE"> - <block type="variables_set" id="50o[ObTwzWD=aupUSv#W"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - <value name="VALUE"> - <block type="text" id="BaG@T;!/Smm@WZeM1+h#"> - <field name="TEXT">NONE</field> + </next> + </block> + </statement> + <statement name="ELSE"> + <block type="variables_set" id="50o[ObTwzWD=aupUSv#W"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + <value name="VALUE"> + <block type="text" id="BaG@T;!/Smm@WZeM1+h#"> + <field name="TEXT">NONE</field> + </block> + </value> + <next> + <block type="procedures_callnoreturn" id="_X-|0l5pe^4k**|RuSSZ" inline="true"> + <mutation name="search_ball_rot"> + <arg name="v"/> + </mutation> + <value name="ARG0"> + <block type="variables_get" id="q9XrN{.:T$USmI[ZR79Q"> + <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> </block> </value> - <next> - <block type="procedures_callnoreturn" id="_X-|0l5pe^4k**|RuSSZ" inline="true"> - <mutation name="search_ball_rot"> - <arg name="v"/> - </mutation> - <value name="ARG0"> - <block type="variables_get" id="q9XrN{.:T$USmI[ZR79Q"> - <field name="VAR" id=")rK_fR,m=]b(j[{.CtBj">v_slow</field> - </block> - </value> - </block> - </next> </block> - </statement> + </next> </block> </statement> + </block> + </statement> + <next> + <block type="display_set_label_text" id="QDZ)v?E3iW-Liq4HKvUn"> + <field name="instance_name">txt_label_ball</field> + <value name="value"> + <shadow type="text" id="B`M|)AOBioxQGjue#9y^"> + <field name="TEXT">abc</field> + </shadow> + <block type="text_format" id="bMzX7EzL+}J^dowK5pv|"> + <mutation items="2"/> + <value name="value"> + <shadow type="text" id="(C2/oN~6=q7Bw[A5`Pz)"> + <field name="TEXT">x:{}, y:{}</field> + </shadow> + </value> + <value name="ADD0"> + <block type="variables_get" id="N3bK$!XutDL@t?7tqOnB"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="ADD1"> + <block type="variables_get" id="CIUI@k|{^~}vfJeTSYP2"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + </block> + </value> <next> - <block type="display_set_label_text" id="QDZ)v?E3iW-Liq4HKvUn"> - <field name="instance_name">txt_label_ball</field> + <block type="display_set_label_text" id="2Ac72_SmdOYaC#|w[dk%"> + <field name="instance_name">txt_label_goal</field> <value name="value"> - <shadow type="text" id="B`M|)AOBioxQGjue#9y^"> + <shadow type="text"> <field name="TEXT">abc</field> </shadow> - <block type="text_format" id="bMzX7EzL+}J^dowK5pv|"> - <mutation items="2"/> + <block type="text_format" id="xXJlH+s%1,D1WcfOkt#6"> + <mutation items="4"/> <value name="value"> - <shadow type="text" id="(C2/oN~6=q7Bw[A5`Pz)"> - <field name="TEXT">x:{}, y:{}</field> + <shadow type="text" id=":(AhX7mg_fQeOGz*xR@g"> + <field name="TEXT">x:{}, {}, p:{}, w:{}</field> </shadow> </value> <value name="ADD0"> - <block type="variables_get" id="N3bK$!XutDL@t?7tqOnB"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + <block type="variables_get" id="ppSdz+]@cvkJ)r-5HdD^"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> </block> </value> <value name="ADD1"> - <block type="variables_get" id="CIUI@k|{^~}vfJeTSYP2"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + <block type="variables_get" id="^dcWdBa0xHuSF#~S44{U"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="ADD2"> + <block type="variables_get" id="#`/5m819@:#HS;yIM[b0"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> + </block> + </value> + <value name="ADD3"> + <block type="variables_get" id="FtuJ6v[UEy/YEuJ3qlsr"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> </block> </value> </block> </value> <next> - <block type="display_set_label_text" id="2Ac72_SmdOYaC#|w[dk%"> - <field name="instance_name">txt_label_goal</field> + <block type="display_set_label_text" id="Fn{?O{el^_@qD+)BLOev"> + <field name="instance_name">txt_label_counters</field> <value name="value"> <shadow type="text"> <field name="TEXT">abc</field> </shadow> - <block type="text_format" id="xXJlH+s%1,D1WcfOkt#6"> - <mutation items="4"/> + <block type="text_format" id="XRX)WXoaE,9N}4t?YAI#"> + <mutation items="1"/> <value name="value"> - <shadow type="text" id=":(AhX7mg_fQeOGz*xR@g"> - <field name="TEXT">x:{}, {}, p:{}, w:{}</field> + <shadow type="text" id="UlS|}~2{uOl01S@(ahiE"> + <field name="TEXT">{}</field> </shadow> </value> <value name="ADD0"> - <block type="variables_get" id="ppSdz+]@cvkJ)r-5HdD^"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="ADD1"> - <block type="variables_get" id="^dcWdBa0xHuSF#~S44{U"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="ADD2"> - <block type="variables_get" id="#`/5m819@:#HS;yIM[b0"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - </block> - </value> - <value name="ADD3"> - <block type="variables_get" id="FtuJ6v[UEy/YEuJ3qlsr"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + <block type="variables_get" id="XdyZ*L#*0E`A`0/3UYf~"> + <field name="VAR" id="5@U(%o_ghQ1;jiB#odH8">counters</field> </block> </value> </block> </value> <next> - <block type="display_set_label_text" id="Fn{?O{el^_@qD+)BLOev"> - <field name="instance_name">txt_label_counters</field> - <value name="value"> - <shadow type="text"> - <field name="TEXT">abc</field> + <block type="text_print" id="##1hG%c^2!NKjN~e1lyg"> + <value name="TEXT"> + <shadow type="text" id="p_E`2=Fj^pN,D}gxPEvW"> + <field name="TEXT"/> </shadow> - <block type="text_format" id="XRX)WXoaE,9N}4t?YAI#"> - <mutation items="1"/> + <block type="text_format" id="mB*d7.SSna@S_Ds5Y4[o"> + <mutation items="10"/> <value name="value"> - <shadow type="text" id="UlS|}~2{uOl01S@(ahiE"> - <field name="TEXT">{}</field> + <shadow type="text" id="a{L7ErJR}=Flx|}3~+X4"> + <field name="TEXT">{}:{} GOAL_x: {}, {}, p:{}, w:{} BALL_pos:{},{} v_x:{} v_y:{}</field> </shadow> </value> <value name="ADD0"> - <block type="variables_get" id="XdyZ*L#*0E`A`0/3UYf~"> - <field name="VAR" id="5@U(%o_ghQ1;jiB#odH8">counters</field> + <block type="variables_get" id="UGc[vu*b~9D^!p.3?7mo"> + <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> + </block> + </value> + <value name="ADD1"> + <block type="variables_get" id="wVt[k#I:X+:T`RVkRf]K"> + <field name="VAR" id="fPH`.@]riH+=v{,A)bP5">cmd</field> + </block> + </value> + <value name="ADD2"> + <block type="variables_get" id="+?O{K7(C)vw`Y6!T4L(o"> + <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> + </block> + </value> + <value name="ADD3"> + <block type="variables_get" id="/(B3zJewppd~EofXj-kV"> + <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> + </block> + </value> + <value name="ADD4"> + <block type="variables_get" id="u$4~ei085+j]JF61p!Kz"> + <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> + </block> + </value> + <value name="ADD5"> + <block type="variables_get" id="#umK_pdUK0;[tcAYO_7s"> + <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> + </block> + </value> + <value name="ADD6"> + <block type="variables_get" id="sPxj5C*ZzYUH*$WCe4|q"> + <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> + </block> + </value> + <value name="ADD7"> + <block type="variables_get" id="~vY0WPr#jWq#SxvDb1@n"> + <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> + </block> + </value> + <value name="ADD8"> + <block type="variables_get" id="r!O8lsSDk:Xs*=-;)LRu"> + <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> + </block> + </value> + <value name="ADD9"> + <block type="variables_get" id="`fG05b:bzq8[q?bquCg6"> + <field name="VAR" id=";S3?%3)**s[[l~Aq3*,{">v_var_ball_ypos</field> </block> </value> </block> </value> <next> - <block type="text_print" id="##1hG%c^2!NKjN~e1lyg"> - <value name="TEXT"> - <shadow type="text" id="p_E`2=Fj^pN,D}gxPEvW"> - <field name="TEXT"/> - </shadow> - <block type="text_format" id="mB*d7.SSna@S_Ds5Y4[o"> - <mutation items="10"/> - <value name="value"> - <shadow type="text" id="a{L7ErJR}=Flx|}3~+X4"> - <field name="TEXT">{}:{} GOAL_x: {}, {}, p:{}, w:{} BALL_pos:{},{} v_x:{} v_y:{}</field> - </shadow> - </value> - <value name="ADD0"> - <block type="variables_get" id="UGc[vu*b~9D^!p.3?7mo"> - <field name="VAR" id="vH;^OzJY7dOdepMScU1s">state</field> - </block> - </value> - <value name="ADD1"> - <block type="variables_get" id="wVt[k#I:X+:T`RVkRf]K"> - <field name="VAR" id="fPH`.@]riH+=v{,A)bP5">cmd</field> - </block> - </value> - <value name="ADD2"> - <block type="variables_get" id="+?O{K7(C)vw`Y6!T4L(o"> - <field name="VAR" id="=2ARo+;2DS07SU~j29Fk">posx_goal_left</field> - </block> - </value> - <value name="ADD3"> - <block type="variables_get" id="/(B3zJewppd~EofXj-kV"> - <field name="VAR" id="7Tp~7_.qfmJN0SR]5p}F">posx_goal_right</field> - </block> - </value> - <value name="ADD4"> - <block type="variables_get" id="u$4~ei085+j]JF61p!Kz"> - <field name="VAR" id="{]]L-TSC^#XtGnVinxf[">pos_goal_both</field> - </block> - </value> - <value name="ADD5"> - <block type="variables_get" id="#umK_pdUK0;[tcAYO_7s"> - <field name="VAR" id="v0BvP7[91TGaMpQG$r0f">goal_width</field> - </block> - </value> - <value name="ADD6"> - <block type="variables_get" id="sPxj5C*ZzYUH*$WCe4|q"> - <field name="VAR" id="S4.mduNQC(va3iR{oSdB">posx_ball</field> - </block> - </value> - <value name="ADD7"> - <block type="variables_get" id="~vY0WPr#jWq#SxvDb1@n"> - <field name="VAR" id="q#H`+Gwt~43Dh@fu;G-D">posy_ball</field> - </block> - </value> - <value name="ADD8"> - <block type="variables_get" id="r!O8lsSDk:Xs*=-;)LRu"> - <field name="VAR" id="O=Lc:FQ[]f3iuM/V@.mv">v_var_ball_xpos</field> - </block> - </value> - <value name="ADD9"> - <block type="variables_get" id="`fG05b:bzq8[q?bquCg6"> - <field name="VAR" id=";S3?%3)**s[[l~Aq3*,{">v_var_ball_ypos</field> - </block> - </value> - </block> - </value> + <block type="procedures_callnoreturn" id="O6U,(~H4n-^0fP^x)_,{"> + <mutation name="checkTimeouts"/> <next> <block type="util_wait_for" id="U4XL;U0gG@tD~]*kp|L{"> <field name="format">ms</field> @@ -3313,7 +3313,7 @@ <field name="direction_1">Motor.CW</field> <value name="speed"> <shadow type="motor_number" id="I[z`|1U#HYI4M/h36r|N"> - <field name="MOTOR_NUM">0</field> + <field name="MOTOR_NUM">100</field> </shadow> </value> <value name="distance"> @@ -3407,7 +3407,7 @@ <field name="direction_1">Motor.CCW</field> <value name="speed"> <shadow type="motor_number" id="Fe^Kn2-*_?@V=YxQ`_d#"> - <field name="MOTOR_NUM">0</field> + <field name="MOTOR_NUM">100</field> </shadow> </value> <value name="distance"> diff --git a/omniwheels_x4_soccer_goal.py b/omniwheels_x4_soccer_goal.py index 8fd87527631e25424fcbc428f3d564f448b98f31..8a2d7da91bdf91bb2a1bb72b68ad543cb5fde4ec 100644 --- a/omniwheels_x4_soccer_goal.py +++ b/omniwheels_x4_soccer_goal.py @@ -220,8 +220,8 @@ def turnSideLeft(v, ticks): global factor_x, ts_ball, ts_goal_left, ts_goal_right, cmd, factor_y, posx_ball, posx_goal_left, posx_goal_right, counters, factor_ball_rot, posy_ball, search_dir_left, x_min, v_var_ball_xpos, x_max, v_var_ball_ypos, y_ball_far, y_ball_near, y_ball_touch, v_slow, v_fast, goal_width, pos_goal_both, state cmd = 'turnSideLeft' if ticks >= 1: - TXT_M_M1_encodermotor.set_speed(int(0), Motor.CCW) - TXT_M_M2_encodermotor.set_speed(int(0), Motor.CW) + TXT_M_M1_encodermotor.set_speed(int(100), Motor.CCW) + TXT_M_M2_encodermotor.set_speed(int(100), Motor.CW) TXT_M_M1_encodermotor.set_distance(int(ticks), TXT_M_M2_encodermotor) TXT_M_M3_encodermotor.set_speed(int(v), Motor.CW) TXT_M_M4_encodermotor.set_speed(int(v), Motor.CCW) @@ -236,8 +236,8 @@ def turnSideRight(v, ticks): global factor_x, ts_ball, ts_goal_left, ts_goal_right, cmd, factor_y, posx_ball, posx_goal_left, posx_goal_right, counters, factor_ball_rot, posy_ball, search_dir_left, x_min, v_var_ball_xpos, x_max, v_var_ball_ypos, y_ball_far, y_ball_near, y_ball_touch, v_slow, v_fast, goal_width, pos_goal_both, state cmd = 'turnSideRight' if ticks >= 1: - TXT_M_M1_encodermotor.set_speed(int(0), Motor.CW) - TXT_M_M2_encodermotor.set_speed(int(0), Motor.CCW) + TXT_M_M1_encodermotor.set_speed(int(100), Motor.CW) + TXT_M_M2_encodermotor.set_speed(int(100), Motor.CCW) TXT_M_M1_encodermotor.set_distance(int(ticks), TXT_M_M2_encodermotor) TXT_M_M3_encodermotor.set_speed(int(v), Motor.CCW) TXT_M_M4_encodermotor.set_speed(int(v), Motor.CW) @@ -361,7 +361,6 @@ state = 'NONE' cmd = 'NONE' time.sleep(2) while True: - checkTimeouts() if display.get_attr("txt_switch_active.checked"): if posx_ball != None and posy_ball != None and posx_goal_left == None and posx_goal_right == None: state = 'BALL_NO_GOAL' @@ -457,6 +456,7 @@ while True: display.set_attr("txt_label_goal.text", str('x:{}, {}, p:{}, w:{}'.format(posx_goal_left, posx_goal_right, pos_goal_both, goal_width))) display.set_attr("txt_label_counters.text", str('{}'.format(counters))) print('{}:{} GOAL_x: {}, {}, p:{}, w:{} BALL_pos:{},{} v_x:{} v_y:{}'.format(state, cmd, posx_goal_left, posx_goal_right, pos_goal_both, goal_width, posx_ball, posy_ball, v_var_ball_xpos, v_var_ball_ypos)) + checkTimeouts() time.sleep(0.08)