mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
1177 lines
72 KiB
XML
1177 lines
72 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<project firstLayout="">
|
|
<gdVersion build="84" major="3" minor="6" revision="0" />
|
|
<properties linuxExecutableFilename="" macExecutableFilename="" useExternalSourceFiles="false" winExecutableFilename="" winExecutableIconFile="">
|
|
<name>slot_machine_example</name>
|
|
<author></author>
|
|
<windowWidth>304</windowWidth>
|
|
<windowHeight>280</windowHeight>
|
|
<latestCompilationDirectory></latestCompilationDirectory>
|
|
<maxFPS>60</maxFPS>
|
|
<minFPS>10</minFPS>
|
|
<verticalSync>false</verticalSync>
|
|
<extensions>
|
|
<extension name="BuiltinObject" />
|
|
<extension name="BuiltinAudio" />
|
|
<extension name="BuiltinVariables" />
|
|
<extension name="BuiltinTime" />
|
|
<extension name="BuiltinMouse" />
|
|
<extension name="BuiltinKeyboard" />
|
|
<extension name="BuiltinJoystick" />
|
|
<extension name="BuiltinCamera" />
|
|
<extension name="BuiltinWindow" />
|
|
<extension name="BuiltinFile" />
|
|
<extension name="BuiltinNetwork" />
|
|
<extension name="BuiltinScene" />
|
|
<extension name="BuiltinAdvanced" />
|
|
<extension name="Sprite" />
|
|
<extension name="BuiltinCommonInstructions" />
|
|
<extension name="BuiltinCommonConversions" />
|
|
<extension name="BuiltinStringInstructions" />
|
|
<extension name="BuiltinMathematicalTools" />
|
|
<extension name="BuiltinExternalLayouts" />
|
|
<extension name="TextObject" />
|
|
<extension name="Function" />
|
|
</extensions>
|
|
<platforms>
|
|
<platform name="GDevelop C++ platform" />
|
|
</platforms>
|
|
<currentPlatform>GDevelop C++ platform</currentPlatform>
|
|
</properties>
|
|
<resources>
|
|
<resources>
|
|
<resource alwaysLoaded="false" file="01.jpg" kind="image" name="01.jpg" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="02.jpg" kind="image" name="02.jpg" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="03.jpg" kind="image" name="03.jpg" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="04.jpg" kind="image" name="04.jpg" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="05.jpg" kind="image" name="05.jpg" smoothed="true" userAdded="true" />
|
|
<resource alwaysLoaded="false" file="06.jpg" kind="image" name="06.jpg" smoothed="true" userAdded="true" />
|
|
</resources>
|
|
<resourceFolders />
|
|
</resources>
|
|
<objects />
|
|
<objectsGroups />
|
|
<variables />
|
|
<layouts>
|
|
<layout b="209" disableInputWhenNotFocused="true" mangledName="slot_95machine_95example" name="slot_machine_example" oglFOV="90.000000" oglZFar="500.000000" oglZNear="1.000000" r="209" standardSortMethod="true" stopSoundsOnStartup="true" title="" v="209">
|
|
<uiSettings associatedLayout="" grid="false" gridB="255" gridG="180" gridHeight="32" gridOffsetX="0" gridOffsetY="0" gridR="158" gridWidth="32" snap="true" windowMask="false" zoomFactor="1.000000" />
|
|
<objectsGroups />
|
|
<variables />
|
|
<instances />
|
|
<objects>
|
|
<object name="slot" type="Sprite">
|
|
<variables />
|
|
<automatisms />
|
|
<animations>
|
|
<animation useMultipleDirections="false">
|
|
<directions>
|
|
<direction looping="true" timeBetweenFrames="0.010000">
|
|
<sprites>
|
|
<sprite hasCustomCollisionMask="false" image="01.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
<sprite hasCustomCollisionMask="false" image="02.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
<sprite hasCustomCollisionMask="false" image="03.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
<sprite hasCustomCollisionMask="false" image="04.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
<sprite hasCustomCollisionMask="false" image="05.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
<sprite hasCustomCollisionMask="false" image="06.jpg">
|
|
<points />
|
|
<originPoint name="origine" x="0.000000" y="0.000000" />
|
|
<centerPoint automatic="true" name="centre" x="49.000000" y="49.000000" />
|
|
<customCollisionMask>
|
|
<polygon>
|
|
<vertice x="0.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="0.000000" />
|
|
<vertice x="98.000000" y="98.000000" />
|
|
<vertice x="0.000000" y="98.000000" />
|
|
</polygon>
|
|
</customCollisionMask>
|
|
</sprite>
|
|
</sprites>
|
|
</direction>
|
|
</directions>
|
|
</animation>
|
|
</animations>
|
|
</object>
|
|
<object bold="false" italic="false" name="text" smoothed="true" type="TextObject::Text" underlined="false">
|
|
<variables />
|
|
<automatisms />
|
|
<string>Text</string>
|
|
<font></font>
|
|
<characterSize>20</characterSize>
|
|
<color b="255" g="255" r="255" />
|
|
</object>
|
|
</objects>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="255" g="255" r="128" textB="0" textG="0" textR="0" />
|
|
<comment>____________________________________________________________________________________________________

SLOT MACHINE EXAMPLE by erdo.

____________________________________________________________________________________________________

NOTES ON HOW TO ADAPT THIS ALGORITHM TO YOUR OWN PURPOSES: 

--- IF YOU WANT TO DISPLAY THE SLOTS ROW AT OTHER PLACE:

* The variables 'x_offset' and 'y_offset' holds values representing the coordinates where you want to display the slots row ({5,5} in this example).

--- IF YOU WANT TO CHANGE THE NUMBER OF SYMBOLS (FRAMES) IN THE SLOTS:

* The 'icon_max' variable must hold a value representing the actual number of frames in the slot object animation.

--- IF YOU WANT MORE OR LESS SLOTS:

* Change the value of the 'slot_max' variable at the start of the scene to automatically change the number of slots displayed (you'll need to resize the window to be able to see further slots, because currently it's sized to show 3).

--- IF YOU USE SPRITES OF DIFFERENT SIZE THAN THE ONES USED IN THIS EXAMPLE:

* The variable 'slot_width' must hold a value representing the actual width in pixels of the slot sprite. Otherwise, slots will be misplaced.

--- IF YOU WANT TO CHANGE THE SPINNING TIME:

* The 'spin_lapse_min' variable holds a value representing the minimun time in seconds a slot will spin and the 'lapse_between_slots' variable holds a value representing the time in seconds before the next slot stops. For example, if the value of 'spin_lapse_min' is 5 and the value of 'lapse_between_slots' is 2, then the first slot will spin during 5 seconds before stops and the next slot will stop 2 seconds after the previous one, and so on.

--- IF YOU WANT TO MAKE MORE EASY OR MORE DIFFICULT TO GET A MATCH:

* The 'probability_pool' variable holds a value representing the maximum probability rate of a get a forced match. For example: if the value of the 'probability_pool' variable is 10, then the user has 1 in 10 probabilities to get a forced match. The higher the value, the difficult raise (if the value is 1, then the user will always get a match).

--- HOW TO EVALUATE IF THE ARE A MATCH?

* The result of each slot is pre-calculated since the start of the spin and stored in a object variable called 'value' in each slot object (expression: slot.Variable(value) ). There is also a scene structure called 'result' that holds some data in child variables:

------ result.match - holds a boolean value representing if there is a match (1 for match, 0 for not)
------ result.icon_matched - if there is a match this variable will hold a value representing the matched icon (example: 1, if the result is a full row of the first symbol)
------ result.icon_1 - holds a value representing the number of instances of the first symbol in the row
------ result.icon_2 - holds a value representing the number of instances of the second symbol in the row
------ result.icon_3 - holds a value representing the number of instances of the third symbol in the row
------ result.icon_etc - you get it...</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Initializing variables and objects at the start of the scene:</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="DepartScene" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Create" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>text</parameter>
|
|
<parameter>5</parameter>
|
|
<parameter>108</parameter>
|
|
<parameter></parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="TextObject::Size" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>14</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="TextObject::ChangeColor" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>"128;0;0"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="TextObject::String" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"Let's spin!"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>x_offset</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>5</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>y_offset</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>5</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>slot_max</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>3</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>slot_width</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>98</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_max</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>6</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>spin_lapse_min</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>4</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>lapse_between_slots</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>probability_pool</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>5</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>frame_lapse_increase_rate</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0.002</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Repeat</type>
|
|
<repeatExpression>Variable(slot_max)</repeatExpression>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="Create" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>slot</parameter>
|
|
<parameter>Variable(x_offset)+(Variable(slot_counter)*Variable(slot_width))</parameter>
|
|
<parameter>Variable(y_offset)</parameter>
|
|
<parameter></parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="PauseAnimation" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>id</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(slot_counter)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjetTxt" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spin_timer_name</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"spin_timer_"+slot.VariableString(id)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ChangeSprite" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Random(Variable(icon_max)-1)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>slot_counter</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>Preparing for the 'spin' if the user press any key:</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
<condition>
|
|
<type inverted="false" value="BuiltinCommonInstructions::Or" />
|
|
<parameters />
|
|
<subConditions>
|
|
<condition>
|
|
<type inverted="false" value="SourisBouton" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Left</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
<condition>
|
|
<type inverted="false" value="SourisBouton" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Right</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
<condition>
|
|
<type inverted="false" value="AnyKeyPressed" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</subConditions>
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ResetTimer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>"frame_timer"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>frame_lapse_max</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>forced_match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Random(Variable(probability_pool)-1)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result.match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result.icon_matched</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Repeat</type>
|
|
<repeatExpression>Variable(icon_max)</repeatExpression>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result["icon_"+VariableString(icon_counter)]</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>forced_match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>forced_value</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Random(Variable(icon_max)-1)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::ForEach</type>
|
|
<object>slot</object>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ResetTimer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>slot.VariableString(spin_timer_name)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>forced_match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>value</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(forced_value)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>forced_match</parameter>
|
|
<parameter>!=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>value</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Random(Variable(icon_max)-1)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_id</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>slot.Variable(value)+1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result["icon_"+VariableString(icon_id)]</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Repeat</type>
|
|
<repeatExpression>Variable(icon_max)</repeatExpression>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>result["icon_"+VariableString(icon_counter)]</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(slot_max)</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result.match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>result.icon_matched</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(icon_counter)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>'Spin' algorithm:</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>change_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>inactive_slot_counter</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="Timer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>Variable(frame_lapse_max)</parameter>
|
|
<parameter>"frame_timer"</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ResetTimer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>"frame_timer"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>frame_lapse_max</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>Variable(frame_lapse_increase_rate)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>change_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::ForEach</type>
|
|
<object>slot</object>
|
|
<conditions />
|
|
<actions />
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>inactive_slot_counter</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>inactive_slot_counter</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(slot_max)</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="RemoveTimer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>"frame_timer"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="Function::LaunchFunction" />
|
|
<parameters>
|
|
<parameter>display_result</parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
<parameter></parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions />
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>change_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>current_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>slot.Sprite()+1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>current_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(icon_max)</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>current_frame</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ChangeSprite" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>Variable(current_frame)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="Timer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>(slot.Variable(id)*Variable(lapse_between_slots))+Variable(spin_lapse_min)</parameter>
|
|
<parameter>slot.VariableString(spin_timer_name)</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
<condition>
|
|
<type inverted="false" value="Sprite" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>slot.Variable(value)</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="RemoveTimer" />
|
|
<parameters>
|
|
<parameter></parameter>
|
|
<parameter>slot.VariableString(spin_timer_name)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarObjet" />
|
|
<parameters>
|
|
<parameter>slot</parameter>
|
|
<parameter>spinning</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
</events>
|
|
</event>
|
|
</events>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Comment</type>
|
|
<color b="109" g="230" r="255" textB="0" textG="0" textR="0" />
|
|
<comment>A function that displays the result:</comment>
|
|
<comment2></comment2>
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>Function::Function</type>
|
|
<name>display_result</name>
|
|
<objectsPassedAsArgument></objectsPassedAsArgument>
|
|
<conditions />
|
|
<actions />
|
|
<events>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>result.match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="TextObject::String" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"No match!"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions>
|
|
<condition>
|
|
<type inverted="false" value="VarScene" />
|
|
<parameters>
|
|
<parameter>result.match</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subConditions />
|
|
</condition>
|
|
</conditions>
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="TextObject::String" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"Match!"+NewLine()+"Matched icon: "+VariableString(result.icon_matched)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Standard</type>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="TextObject::String" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>NewLine()+"_______________"+NewLine()+"Icons per row:"</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>0</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
<event disabled="false" folded="false">
|
|
<type>BuiltinCommonInstructions::Repeat</type>
|
|
<repeatExpression>Variable(icon_max)</repeatExpression>
|
|
<conditions />
|
|
<actions>
|
|
<action>
|
|
<type inverted="false" value="ModVarScene" />
|
|
<parameters>
|
|
<parameter>icon_counter</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>1</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="ModVarSceneTxt" />
|
|
<parameters>
|
|
<parameter>current_icon_variable_name</parameter>
|
|
<parameter>=</parameter>
|
|
<parameter>"icon_"+VariableString(icon_counter)</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
<action>
|
|
<type inverted="false" value="TextObject::String" />
|
|
<parameters>
|
|
<parameter>text</parameter>
|
|
<parameter>+</parameter>
|
|
<parameter>NewLine()+"Icon-"+VariableString(icon_counter)+": "+VariableString(result[VariableString(current_icon_variable_name)])</parameter>
|
|
</parameters>
|
|
<subActions />
|
|
</action>
|
|
</actions>
|
|
<events />
|
|
</event>
|
|
</events>
|
|
</event>
|
|
</events>
|
|
<layers>
|
|
<layer name="" visibility="true">
|
|
<cameras>
|
|
<camera defaultSize="true" defaultViewport="true" height="0.000000" viewportBottom="1.000000" viewportLeft="0.000000" viewportRight="1.000000" viewportTop="0.000000" width="0.000000" />
|
|
</cameras>
|
|
</layer>
|
|
</layers>
|
|
<automatismsSharedData />
|
|
</layout>
|
|
</layouts>
|
|
<externalEvents />
|
|
<externalLayouts />
|
|
<externalSourceFiles />
|
|
</project>
|