fix various bug and optimize layout
All checks were successful
Deploy to Production / deploy (push) Successful in 6s

This commit is contained in:
Đặng Minh Quang
2026-02-26 14:17:39 +07:00
parent 5e295ac696
commit b0e2171a5e
50 changed files with 1886 additions and 11 deletions

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2uistate>
<!--This is a UI state file - its content describes the user interface settings when the event sheet was last open.
It is entirely optional and the project will load without it. If you are placing the project under source control,
you probably do not want to add any .uistate.xml files to the repository.-->
<show-addaction-links>1</show-addaction-links>
<scroll-pos>1024</scroll-pos>
<conditions-column>310</conditions-column>
<actions-namecolumn>86</actions-namecolumn>
<condition-namecolumns>
<nest>80</nest>
<nest>80</nest>
<nest>80</nest>
<nest>80</nest>
<nest>68</nest>
<nest>50</nest>
<nest>32</nest>
<nest>25</nest>
<nest>25</nest>
<nest>25</nest>
<nest>25</nest>
<nest>25</nest>
<nest>21</nest>
</condition-namecolumns>
<events />
</c2uistate>

View File

@@ -0,0 +1,842 @@
<?xml version="1.0" encoding="utf-8" ?>
<c2eventsheet>
<!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.-->
<name>Game</name>
<events>
<variable constant="0" name="gameState" sid="539503153258101" static="0" type="text">Playing</variable>
<variable constant="0" name="OptionIndex" sid="701702298089281" static="0" type="number">0</variable>
<variable constant="0" name="FinalAnswer" sid="342353772129151" static="0" type="text"></variable>
<variable constant="0" name="FilledCount" sid="377137633613480" static="0" type="number">0</variable>
<variable constant="0" name="tempScale" sid="529411214032395" static="0" type="number">1</variable>
<event-block sid="549205817072564">
<conditions>
<condition id="-2" name="On start of layout" sid="597870668036321" type="System" />
</conditions>
<actions>
<action id="0" name="Load" sid="202557125263620" type="SenaAI" />
<action id="-16" name="Wait" sid="952196818529068" type="System">
<param id="0" name="Seconds">1</param>
</action>
<action behavior="DragDrop" id="0" name="Set enabled" sid="702939057496858" type="answers">
<param id="0" name="State">1</param>
</action>
</actions>
</event-block>
<event-block sid="768327268818740">
<conditions>
<condition id="0" name="On LOAD Complete" sid="157854561629165" type="SenaAI" />
</conditions>
<actions />
<sub-events>
<event-block sid="939160499379423">
<conditions />
<actions>
<action id="1" name="Start" sid="112633710369332" type="SenaAI" />
<action id="0" name="Call function" sid="215312930941469" type="Function">
<param id="0" name="Name">&quot;SetupUI&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
<action id="14" name="Log" sid="738387227904582" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;SenaAI Loaded &amp; Started! Options count: &quot; &amp; SenaAI.getOptionsCount</param>
</action>
<action id="10" name="Load image from URL" sid="310599052911762" type="Hint">
<param id="0" name="URI">SenaAI.getQuestionValue</param>
<param id="1" name="Size">1</param>
<param id="2" name="Cross-origin">0</param>
</action>
<action id="14" name="Log" sid="821665902069313" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;✅ Load ảnh thành công!&quot;</param>
</action>
</actions>
<sub-events>
<event-block sid="275281932743956">
<conditions>
<condition id="-8" name="Compare two values" sid="966644000004331" type="System">
<param id="0" name="First value">SenaAI.getOptionsCount</param>
<param id="1" name="Comparison">4</param>
<param id="2" name="Second value">6</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="167570100299072" type="System">
<param id="0" name="Variable">tempScale</param>
<param id="1" name="Value">0.9</param>
</action>
</actions>
</event-block>
<event-block sid="924626844575014">
<conditions>
<condition id="-8" name="Compare two values" sid="434909502006706" type="System">
<param id="0" name="First value">SenaAI.getOptionsCount</param>
<param id="1" name="Comparison">4</param>
<param id="2" name="Second value">10</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="570717869674839" type="System">
<param id="0" name="Variable">tempScale</param>
<param id="1" name="Value">0.85</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="579497392478296">
<conditions>
<condition id="0" name="On function" sid="894377128803980" type="Function">
<param id="0" name="Name">&quot;SetupUI&quot;</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="130502662612493" type="System">
<param id="0" name="Variable">OptionIndex</param>
<param id="1" name="Value">0</param>
</action>
<action id="-9" name="Destroy" sid="804363046879822" type="AnswerTxt" />
<action id="-9" name="Destroy" sid="908445118959135" type="SlotTxt" />
<action id="-9" name="Destroy" sid="947783578724586" type="Slot" />
<action id="-9" name="Destroy" sid="597263169611080" type="answers" />
<action id="12" name="Calculate Object Positions" sid="823188349173873" type="SenaAI">
<param id="0" name="Count">SenaAI.getHintCount</param>
<param id="1" name="Object Width">140 *tempScale</param>
<param id="2" name="Margin">max(40, 90 - (SenaAI.getHintCount - 5) * 12)</param>
<param id="3" name="Max Width">LayoutWidth</param>
<param id="4" name="Row Break">0</param>
<param id="5" name="Row Gap">100</param>
<param id="6" name="Type">&quot;&quot;</param>
<param id="7" name="Group Gap">0</param>
</action>
<action id="-16" name="Wait" sid="578236747375036" type="System">
<param id="0" name="Seconds">0.1</param>
</action>
</actions>
<sub-events>
<event-block sid="420951645933385">
<conditions>
<condition id="-12" name="Repeat" sid="703700136369336" type="System">
<param id="0" name="Count">SenaAI.getHintCount</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="455370097314226">
<conditions>
<condition id="-8" name="Compare two values" sid="413739513101283" type="System">
<param id="0" name="First value">SenaAI.getHintValue(LoopIndex)</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Second value">&quot;_&quot;</param>
</condition>
</conditions>
<actions>
<action id="-3" name="Create object" sid="410642989172264" type="System">
<param id="0" name="Object to create">Slot</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">0</param>
<param id="3" name="Y">0</param>
</action>
<action id="-1" name="Set X" sid="140706566386258" type="Slot">
<param id="0" name="X">SenaAI.getPosXbyIndex(LoopIndex)</param>
</action>
<action id="-2" name="Set Y" sid="285477521472615" type="Slot">
<param id="0" name="Y">750 + SenaAI.getPosYbyIndex(LoopIndex)</param>
</action>
<action id="5" name="Set frame" sid="208939150633609" type="Slot">
<param id="0" name="Frame number">1</param>
</action>
<action id="-10" name="Set value" sid="358294085606629" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Value">0</param>
</action>
<action id="-10" name="Set value" sid="762745403333695" type="Slot">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">LoopIndex</param>
</action>
<action id="9" name="Set scale" sid="148760556597463" type="Slot">
<param id="0" name="Scale">tempScale</param>
</action>
<action id="-3" name="Create object" sid="406503163078354" type="System">
<param id="0" name="Object to create">SlotTxt</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">Slot.X</param>
<param id="3" name="Y">Slot.Y</param>
</action>
<action id="0" name="Set text" sid="240961907969018" type="SlotTxt">
<param id="0" name="Text">Slot.value</param>
</action>
<action id="3" name="Set font size" sid="400710477532726" type="SlotTxt">
<param id="0" name="Size (pt)">36 *tempScale</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="516397285690983" type="SlotTxt">
<param id="0" name="Pin to">Slot</param>
<param id="1" name="Mode">0</param>
</action>
<action id="-3" name="Create object" sid="998994917807971" type="System">
<param id="0" name="Object to create">answers</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">0</param>
<param id="3" name="Y">0</param>
</action>
<action id="-1" name="Set X" sid="247766170395109" type="answers">
<param id="0" name="X">SenaAI.getPosXbyIndex(LoopIndex)</param>
</action>
<action id="9" name="Set scale" sid="789539844378330" type="answers">
<param id="0" name="Scale">tempScale</param>
</action>
<action id="-2" name="Set Y" sid="659120042275762" type="answers">
<param id="0" name="Y">1000 + SenaAI.getPosYbyIndex(LoopIndex)</param>
</action>
<action id="-10" name="Set value" sid="825308187830477" type="answers">
<param id="0" name="Instance variable">origX</param>
<param id="1" name="Value">Self.X</param>
</action>
<action id="-10" name="Set value" sid="118876830921160" type="answers">
<param id="0" name="Instance variable">origY</param>
<param id="1" name="Value">Self.Y</param>
</action>
<action id="-10" name="Set value" sid="919942935192296" type="answers">
<param id="0" name="Instance variable">OrgW</param>
<param id="1" name="Value">Self.Width</param>
</action>
<action id="-10" name="Set value" sid="376584768872877" type="answers">
<param id="0" name="Instance variable">OrgH</param>
<param id="1" name="Value">Self.Height</param>
</action>
<action id="-10" name="Set value" sid="120370806104811" type="answers">
<param id="0" name="Instance variable">value</param>
<param id="1" name="Value">SenaAI.getOptionsValue(OptionIndex)</param>
</action>
<action id="-3" name="Create object" sid="122191354564609" type="System">
<param id="0" name="Object to create">AnswerTxt</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">answers.X</param>
<param id="3" name="Y">answers.Y</param>
</action>
<action id="0" name="Set text" sid="848448916783921" type="AnswerTxt">
<param id="0" name="Text">answers.value</param>
</action>
<action id="3" name="Set font size" sid="998311746796944" type="AnswerTxt">
<param id="0" name="Size (pt)">48 * tempScale</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="699493768428686" type="AnswerTxt">
<param id="0" name="Pin to">answers</param>
<param id="1" name="Mode">0</param>
</action>
<action id="-10" name="Add to" sid="182730619643428" type="System">
<param id="0" name="Variable">OptionIndex</param>
<param id="1" name="Value">1</param>
</action>
<action id="14" name="Log" sid="440482875462457" type="Browser">
<param id="0" name="Type">0</param>
<param id="1" name="Message">&quot;Loop: &quot; &amp; LoopIndex &amp; &quot; | Hint: &quot; &amp; SenaAI.getHintValue(LoopIndex) &amp; &quot; | PosX: &quot; &amp; SenaAI.getPosXbyIndex(LoopIndex)</param>
</action>
</actions>
</event-block>
<event-block sid="304626328262125">
<conditions>
<condition id="-22" name="Else" sid="961464069246915" type="System" />
</conditions>
<actions>
<action id="-3" name="Create object" sid="341749072471234" type="System">
<param id="0" name="Object to create">Slot</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">0</param>
<param id="3" name="Y">0</param>
</action>
<action id="-1" name="Set X" sid="950657190119533" type="Slot">
<param id="0" name="X">SenaAI.getPosXbyIndex(LoopIndex)</param>
</action>
<action id="-2" name="Set Y" sid="604924286586907" type="Slot">
<param id="0" name="Y">750 + SenaAI.getPosYbyIndex(LoopIndex)</param>
</action>
<action id="5" name="Set frame" sid="757159077034853" type="Slot">
<param id="0" name="Frame number">0</param>
</action>
<action id="-10" name="Set value" sid="469578461961545" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Value">1</param>
</action>
<action id="-10" name="Set value" sid="542370827313726" type="Slot">
<param id="0" name="Instance variable">slotIndex</param>
<param id="1" name="Value">LoopIndex</param>
</action>
<action id="9" name="Set scale" sid="110787545618608" type="Slot">
<param id="0" name="Scale">tempScale</param>
</action>
<action id="-3" name="Create object" sid="647586354625940" type="System">
<param id="0" name="Object to create">SlotTxt</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">Slot.X</param>
<param id="3" name="Y">Slot.Y</param>
</action>
<action id="-24" name="Move to top" sid="923005143097237" type="SlotTxt" />
<action id="0" name="Set text" sid="554000673571406" type="SlotTxt">
<param id="0" name="Text">SenaAI.getHintValue(LoopIndex)</param>
</action>
<action id="3" name="Set font size" sid="559499469199642" type="SlotTxt">
<param id="0" name="Size (pt)">48 * tempScale</param>
</action>
<action behavior="Pin" id="0" name="Pin to object" sid="826606792383653" type="SlotTxt">
<param id="0" name="Pin to">Slot</param>
<param id="1" name="Mode">0</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="885232395664091">
<conditions>
<condition behavior="DragDrop" id="1" name="On drag start" sid="462077248880784" type="answers" />
<condition behavior="DragDrop" id="3" name="Is enabled" sid="881833931574563" type="answers" />
</conditions>
<actions>
<action id="0" name="Play" sid="765474901635440" type="Audio">
<param id="0" name="Audio file">Card_Drag</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-24" name="Move to top" sid="397403794429243" type="answers" />
<action behavior="EaseTween" id="5" name="Set target" sid="798607807460393" type="answers">
<param id="0" name="Target">(Self.OrgW * 1.25) &amp; &quot;,&quot; &amp; (Self.OrgH * 1.25)</param>
</action>
<action behavior="EaseTween" id="10" name="Start" sid="333043575480598" type="answers" />
</actions>
<sub-events>
<event-block sid="715788682150145">
<conditions>
<condition id="-33" name="Pick by comparison" sid="686462805859677" type="System">
<param id="0" name="Object">Slot</param>
<param id="1" name="Expression">Slot.slotIndex</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">answers.currentSlot</param>
</condition>
<condition id="-7" name="Compare instance variable" sid="975555513158536" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action id="-10" name="Set value" sid="363961653226411" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Value">-1</param>
</action>
<action id="-10" name="Set value" sid="745135912100760" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Value">0</param>
</action>
<action id="0" name="Call function" sid="741791155071768" type="Function">
<param id="0" name="Name">&quot;CheckSubmitState&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
</actions>
</event-block>
<event-block sid="193892616913206">
<conditions>
<condition id="1" name="Is overlapping another object" sid="297897281213159" type="answers">
<param id="0" name="Object">AnswerTxt</param>
</condition>
</conditions>
<actions>
<action id="-24" name="Move to top" sid="812019026325329" type="AnswerTxt" />
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="876456068332522">
<conditions>
<condition behavior="DragDrop" id="2" name="On drop" sid="792974910922911" type="answers" />
</conditions>
<actions>
<action behavior="EaseTween2" id="5" name="Set target" sid="312326656063231" type="answers">
<param id="0" name="Target">Self.OrgW &amp; &quot;,&quot; &amp; Self.OrgH</param>
</action>
<action behavior="EaseTween2" id="10" name="Start" sid="997643361117365" type="answers" />
</actions>
<sub-events>
<event-block sid="962248118287846">
<conditions>
<condition id="1" name="Is overlapping another object" sid="124677826324657" type="answers">
<param id="0" name="Object">Slot</param>
</condition>
<condition id="-7" name="Compare instance variable" sid="852890087723952" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">0</param>
</condition>
</conditions>
<actions>
<action id="15" name="Set Data" sid="856884064221360" type="SenaAI">
<param id="0" name="Data 1">answers.value</param>
<param id="1" name="Data 2">str(Slot.slotIndex)</param>
<param id="2" name="Data 3">&quot;&quot;</param>
<param id="3" name="Data 4">&quot;&quot;</param>
<param id="4" name="Data 5">&quot;&quot;</param>
</action>
<action id="16" name="Post Message" sid="358652204734414" type="SenaAI" />
</actions>
</event-block>
<event-block sid="544622279635595">
<conditions>
<condition id="-22" name="Else" sid="108034191530448" type="System" />
</conditions>
<actions>
<action id="0" name="Play" sid="457959652468953" type="Audio">
<param id="0" name="Audio file">Card_Swipe</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-3" name="Set position" sid="502835260746870" type="answers">
<param id="0" name="X">answers.origX</param>
<param id="1" name="Y">answers.origY</param>
</action>
<action id="0" name="Call function" sid="174110906329546" type="Function">
<param id="0" name="Name">&quot;CheckSubmitState&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="903256601857551">
<conditions>
<condition id="0" name="On function" sid="553171385010499" type="Function">
<param id="0" name="Name">&quot;CheckSubmitState&quot;</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="151584341392847" type="System">
<param id="0" name="Variable">FilledCount</param>
<param id="1" name="Value">0</param>
</action>
</actions>
<sub-events>
<event-block sid="326454811928491">
<conditions>
<condition id="-11" name="For Each" sid="900563057628926" type="System">
<param id="0" name="Object">answers</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="512468327333204">
<conditions>
<condition id="-7" name="Compare instance variable" sid="273625493381606" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">-1</param>
</condition>
</conditions>
<actions>
<action id="-10" name="Add to" sid="427897992150255" type="System">
<param id="0" name="Variable">FilledCount</param>
<param id="1" name="Value">1</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="197957600391126">
<conditions>
<condition id="-14" name="Compare variable" sid="676094959731453" type="System">
<param id="0" name="Variable">FilledCount</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">answers.Count</param>
</condition>
</conditions>
<actions>
<action id="-15" name="Set visible" sid="871171250612987" type="Submit">
<param id="0" name="Visibility">1</param>
</action>
</actions>
</event-block>
<event-block sid="830039838453468">
<conditions>
<condition id="-22" name="Else" sid="540974332855602" type="System" />
</conditions>
<actions>
<action id="-15" name="Set visible" sid="801779902196330" type="Submit">
<param id="0" name="Visibility">0</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="956282998966849">
<conditions>
<condition id="3" name="On touched object" sid="460379891558451" type="Touch">
<param id="0" name="Object">Submit</param>
</condition>
<condition id="-9" name="Is visible" sid="271469166922398" type="Submit" />
<condition id="-14" name="Compare variable" sid="776465406058056" type="System">
<param id="0" name="Variable">gameState</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">&quot;End&quot;</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="288012782577815" type="System">
<param id="0" name="Variable">gameState</param>
<param id="1" name="Value">&quot;End&quot;</param>
</action>
<action id="9" name="Pause Game" sid="658653282719226" type="SenaAI" />
<action id="-9" name="Set value" sid="529456506010094" type="System">
<param id="0" name="Variable">FinalAnswer</param>
<param id="1" name="Value">&quot;&quot;</param>
</action>
<action id="0" name="Play" sid="813632462410441" type="Audio">
<param id="0" name="Audio file">button-124476</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action behavior="Flash" id="0" name="Flash" sid="388147726390308" type="Submit">
<param id="0" name="&apos;On&apos; time">0.1</param>
<param id="1" name="&apos;Off&apos; time">0.1</param>
<param id="2" name="Duration">0.4</param>
</action>
<action id="-16" name="Wait" sid="725241333542329" type="System">
<param id="0" name="Seconds">0.5</param>
</action>
</actions>
<sub-events>
<event-block sid="667347878010134">
<conditions>
<condition id="-12" name="Repeat" sid="389186915205398" type="System">
<param id="0" name="Count">SenaAI.getHintCount</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="631589558920999">
<conditions>
<condition id="-8" name="Compare two values" sid="253358370212568" type="System">
<param id="0" name="First value">SenaAI.getHintValue(LoopIndex)</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Second value">&quot;_&quot;</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="403636493907996">
<conditions>
<condition id="-7" name="Compare instance variable" sid="526836686186341" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Comparison">0</param>
<param id="2" name="Value">LoopIndex</param>
</condition>
</conditions>
<actions>
<action id="-9" name="Set value" sid="245728951174934" type="System">
<param id="0" name="Variable">FinalAnswer</param>
<param id="1" name="Value">FinalAnswer &amp; answers.value &amp; &quot;|&quot;</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="998053537243308">
<conditions>
<condition id="-22" name="Else" sid="403067100774907" type="System" />
</conditions>
<actions>
<action id="-9" name="Set value" sid="357495810182952" type="System">
<param id="0" name="Variable">FinalAnswer</param>
<param id="1" name="Value">FinalAnswer &amp; SenaAI.getHintValue(LoopIndex) &amp; &quot;|&quot;</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
<event-block sid="903901720494647">
<conditions>
<condition id="-14" name="Compare variable" sid="745073279826626" type="System">
<param id="0" name="Variable">FinalAnswer</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">&quot;&quot;</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="329696770758719">
<conditions>
<condition id="-4" name="Trigger once while true" sid="328974045681107" type="System" />
</conditions>
<actions>
<action id="-9" name="Set value" sid="124785536589290" type="System">
<param id="0" name="Variable">FinalAnswer</param>
<param id="1" name="Value">left(FinalAnswer, len(FinalAnswer) - 1)</param>
</action>
<action id="2" name="Finish" sid="165608742942470" type="SenaAI">
<param id="0" name="Answer">FinalAnswer</param>
</action>
<action id="-15" name="Set visible" sid="845345037379065" type="Submit">
<param id="0" name="Visibility">0</param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="961823775126713">
<conditions>
<condition id="3" name="On Correct Answer" sid="119018979468992" type="SenaAI" />
</conditions>
<actions>
<action behavior="DragDrop" id="0" name="Set enabled" sid="205409471313749" type="answers">
<param id="0" name="State">0</param>
</action>
<action id="0" name="Play" sid="634975830871135" type="Audio">
<param id="0" name="Audio file">alert-234711</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-15" name="Set visible" sid="486294929517038" type="Submit">
<param id="0" name="Visibility">0</param>
</action>
<action id="-16" name="Wait" sid="166118146748558" type="System">
<param id="0" name="Seconds">0.1</param>
</action>
<action id="-3" name="Create object" sid="786114696442570" type="System">
<param id="0" name="Object to create">Correct</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">Submit.X</param>
<param id="3" name="Y">Submit.Y</param>
</action>
<action id="-16" name="Wait" sid="609402064923823" type="System">
<param id="0" name="Seconds">2</param>
</action>
<action id="9" name="Pause Game" sid="518261006133178" type="SenaAI" />
</actions>
</event-block>
<event-block sid="433043078641250">
<conditions>
<condition id="2" name="On Wrong Answer" sid="889460128806113" type="SenaAI" />
</conditions>
<actions>
<action behavior="DragDrop" id="0" name="Set enabled" sid="146493902040842" type="answers">
<param id="0" name="State">0</param>
</action>
<action id="0" name="Play" sid="221256152272583" type="Audio">
<param id="0" name="Audio file">error-010-206498</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="-15" name="Set visible" sid="523842542618557" type="Submit">
<param id="0" name="Visibility">0</param>
</action>
<action id="-16" name="Wait" sid="773344591454861" type="System">
<param id="0" name="Seconds">0.1</param>
</action>
<action id="-3" name="Create object" sid="165468245100549" type="System">
<param id="0" name="Object to create">Wrong</param>
<param id="1" name="Layer">0</param>
<param id="2" name="X">Submit.X</param>
<param id="3" name="Y">Submit.Y</param>
</action>
<action id="-16" name="Wait" sid="585683943374630" type="System">
<param id="0" name="Seconds">2</param>
</action>
<action id="9" name="Pause Game" sid="192197113002945" type="SenaAI" />
</actions>
</event-block>
<variable constant="0" name="TouchCount" sid="700336615770216" static="0" type="number">0</variable>
<variable constant="0" name="TouchCount2" sid="659159357412798" static="0" type="number">0</variable>
<event-block sid="927130323863294">
<conditions>
<condition id="8" name="On Message" sid="478315324770064" type="SenaAI" />
</conditions>
<actions>
<action id="60" name="LoadJSON" sid="866608751777684" type="JSON">
<param id="0" name="JSON">SenaAI.getLastMessageJSON</param>
<param id="1" name="Reference point">0</param>
<param id="2" name="Key {n}"></param>
</action>
<action id="-16" name="Wait" sid="898084153489066" type="System">
<param id="0" name="Seconds">0.0001</param>
</action>
</actions>
<sub-events>
<variable constant="0" name="tempValue" sid="588492428623009" static="0" type="text"></variable>
<variable constant="0" name="tempSlotIndex" sid="837282953682922" static="0" type="text"></variable>
<event-block sid="192751377142467">
<conditions />
<actions>
<action id="-9" name="Set value" sid="985302384075282" type="System">
<param id="0" name="Variable">tempValue</param>
<param id="1" name="Value">str(JSON.Value(0, &quot;data1&quot;))</param>
</action>
<action id="-9" name="Set value" sid="784535869908907" type="System">
<param id="0" name="Variable">tempSlotIndex</param>
<param id="1" name="Value">str(JSON.Value(0, &quot;data2&quot;))</param>
</action>
</actions>
<sub-events>
<event-block sid="717532173518652">
<conditions>
<condition id="-33" name="Pick by comparison" sid="897177332292204" type="System">
<param id="0" name="Object">answers</param>
<param id="1" name="Expression">answers.value</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">tempValue</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="830047612897979">
<conditions>
<condition id="-14" name="Compare variable" sid="313297279412452" type="System">
<param id="0" name="Variable">tempSlotIndex</param>
<param id="1" name="Comparison">1</param>
<param id="2" name="Value">&quot;-1&quot;</param>
</condition>
</conditions>
<actions />
<sub-events>
<event-block sid="987142133493849">
<conditions>
<condition id="-33" name="Pick by comparison" sid="501652547294599" type="System">
<param id="0" name="Object">Slot</param>
<param id="1" name="Expression">Slot.slotIndex</param>
<param id="2" name="Comparison">0</param>
<param id="3" name="Value">int(tempSlotIndex)</param>
</condition>
</conditions>
<actions>
<action behavior="MoveTo" id="4" name="Move to XY" sid="886292576185836" type="answers">
<param id="0" name="X">Slot.X</param>
<param id="1" name="Y">Slot.Y</param>
</action>
<action id="-16" name="Wait" sid="807973074409752" type="System">
<param id="0" name="Seconds">0.2</param>
</action>
<action id="-10" name="Set value" sid="722747184589753" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Value">Slot.slotIndex</param>
</action>
<action id="-10" name="Set value" sid="677565831946800" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Value">1</param>
</action>
<action id="-5" name="Set width" sid="728577274014164" type="answers">
<param id="0" name="Width">Slot.Width</param>
</action>
<action id="-6" name="Set height" sid="842496810645542" type="Slot">
<param id="0" name="Height">Slot.Height</param>
</action>
<action id="0" name="Play" sid="450052898268101" type="Audio">
<param id="0" name="Audio file">pop-reverb-423718</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">-5</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action id="0" name="Call function" sid="161025675674457" type="Function">
<param id="0" name="Name">&quot;CheckSubmitState&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
</actions>
<sub-events>
<event-block sid="986645365858166">
<conditions>
<condition behavior="MoveTo" id="3" name="Is moving" sid="758994539361470" type="answers" />
</conditions>
<actions>
<action id="-24" name="Move to top" sid="644405939821927" type="answers" />
<action id="-24" name="Move to top" sid="394569174480144" type="AnswerTxt" />
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="705809592523983">
<conditions>
<condition id="-22" name="Else" sid="382716901892735" type="System" />
</conditions>
<actions>
<action id="-10" name="Set value" sid="341577524636907" type="Slot">
<param id="0" name="Instance variable">isOccupied</param>
<param id="1" name="Value">0</param>
</action>
<action id="-10" name="Set value" sid="800092334974255" type="answers">
<param id="0" name="Instance variable">currentSlot</param>
<param id="1" name="Value">-1</param>
</action>
<action id="0" name="Play" sid="415836329180286" type="Audio">
<param id="0" name="Audio file">Card_Swipe</param>
<param id="2" name="Loop">0</param>
<param id="3" name="Volume">0</param>
<param id="1" name="Tag (optional)">&quot;&quot;</param>
</action>
<action behavior="MoveTo" id="4" name="Move to XY" sid="475425452093839" type="answers">
<param id="0" name="X">answers.origX</param>
<param id="1" name="Y">answers.origY</param>
</action>
<action id="0" name="Call function" sid="975177798373507" type="Function">
<param id="0" name="Name">&quot;CheckSubmitState&quot;</param>
<param id="1" name="Parameter {n}"></param>
</action>
</actions>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
</sub-events>
</event-block>
<event-block sid="358501409218662">
<conditions>
<condition id="3" name="On touched object" sid="576939908724748" type="Touch">
<param id="0" name="Object">Button</param>
</condition>
<condition id="-9" name="Is visible" sid="855746781658475" type="Button" />
</conditions>
<actions>
<action id="15" name="Set Data" sid="356423887441344" type="SenaAI">
<param id="0" name="Data 1">mid(&quot;CLOUD&quot;, TouchCount, 1)</param>
<param id="1" name="Data 2">str(TouchCount)</param>
<param id="2" name="Data 3">&quot;&quot;</param>
<param id="3" name="Data 4">&quot;&quot;</param>
<param id="4" name="Data 5">&quot;&quot;</param>
</action>
<action id="16" name="Post Message" sid="235501835738424" type="SenaAI" />
<action id="-10" name="Add to" sid="968689316639076" type="System">
<param id="0" name="Variable">TouchCount</param>
<param id="1" name="Value">1</param>
</action>
</actions>
</event-block>
<event-block sid="454393564099895">
<conditions>
<condition id="3" name="On touched object" sid="451949029914748" type="Touch">
<param id="0" name="Object">Button2</param>
</condition>
<condition id="-9" name="Is visible" sid="781433291302939" type="Button2" />
</conditions>
<actions>
<action id="15" name="Set Data" sid="727114998947220" type="SenaAI">
<param id="0" name="Data 1">mid(&quot;CLOUD&quot;, TouchCount2, 1)</param>
<param id="1" name="Data 2">&quot;-1&quot;</param>
<param id="2" name="Data 3">&quot;&quot;</param>
<param id="3" name="Data 4">&quot;&quot;</param>
<param id="4" name="Data 5">&quot;&quot;</param>
</action>
<action id="16" name="Post Message" sid="842635204925899" type="SenaAI" />
<action id="-10" name="Add to" sid="966531693069063" type="System">
<param id="0" name="Variable">TouchCount2</param>
<param id="1" name="Value">1</param>
</action>
</actions>
</event-block>
</events>
</c2eventsheet>