The following rules aim to create a system that generates fair and fun gameplay that can be played repeatedly
A Course is broken into even sections
Each Obstacle takes up 1 section
Each section can only contain 1 Obstacle
Medium and Hard Levels create and repeat patterns of Obstacles
Generate Actions and/or Functions
Generate Obstacles, using generated Actions as guidelines
Obstacle generation is responsive to the Actions, Functions, and Flexible Functions generated, so these must be created first.
ALL Individual Actions are available
Functions are NOT available
Flexible Functions are NOT available
Up to 3 Individual Actions are generated
Up to 2 Functions are available
Functions can hold a maximum of 3 Function Actions
Flexible Functions are NOT available
Individual Actions are not available
Up to 3 Functions or Flexible Functions are generated
One Function or Flexible Function can have 4 Function Actions
Others must have 3 or fewer Functions Actions
Once the Action Bar has been populated, relevant Obstacles are generated during the Run.
All Obstacle types are generated
Obstacle type is randomized upon generation
There is an average of 3 empty section in between Obstacles.
Obstacles are generated in Obstacle Groups which match any generated Functions
There are always as many Obstacle Groups as there are Functions available
The type and order of Obstacles in an Obstacle Group must match the associated Function Actions
The order in which the Obstacle Groups are generated is random
eg. Group A, Group B, Group B, Group C, Group B...
Individual Obstacles are generated between Function Groups
There can be any number of Individual Obstacles between Function Groups
Individual Obstacle types must match available Individual Actions
There is an average of 2 empty sections in between each Obstacle Group or Individual Obstacle.
Obstacle Groups always have only 1 empty section between grouped Obstacles.
Obstacles are generated in Obstacle Groups which match any generated Functions
See Medium, Step 1
Obstacles are generated in Dynamic Obstacle Groups
Dynamic Obstacle Groups always have the same number of Obstacles as a generated Flexible Function has Function Action Slots
The Dynamic Obstacle Group is filled with Obstacles of a random type and order.
Once generated, a Dynamic Obstacle Group must appear on the Course at least 3 times
After appearing at least 3 times, the Dynamic Obstacle Group is emptied and refilled with new Obstacles
There is an average of 2 empty sections in between each Obstacle Group.
Obstacle Groups always have only 1 empty section between grouped Obstacles.
Ladders are a unique Obstacle type. Not only do they allow the Robot to move Up or Down, they also change the Y-Axis Coordinates of generated Obstacles.
Ladders act as a Boolean switch - if Obstacles are being the placed on the ground-level (0), the placement of a Ladder Obstacle signals that Obstacles should now be placed on the upper level (1) until another Ladder is placed.