#VAR name = LevelComponent.TYPE VAR S = LEVEL VAR LAND_SEGMENT = LEVEL_SEGMENT VAR LO_HI = LO_HI VAR HI_LO = HI_LO VAR LO_PATH = LO_PATH VAR HI_PATH = HI_PATH VAR lo_path = FLAT_LO VAR hi_path = FLAT_HI ### #Coin Dive (Some empty blocks. The user climbs them and runs off; coins line their path as they fall back to the ground.) #Free power-up. (Sets the player up to get a power-up with little or no challenge.) #Straight. (A straight stretch of land with maybe one enemy and maybe some coins or blocks.) #Single Pit (A pit that the user must jump over; rocks on either side.) #Bowling Alley (A red koopa right before a long line of enemies. Kill them all in a row by throwing the shell.) #Cannon Line (A stack of 2-3 canons.) #Maze (A... y’know... maze.) #Lemming Trap (A little pit with a few enemies that jump down into it.) #Platform Jump (A bunch of platforms to jump between.) #Pipe Jump (A bunch of thin pipes to jump between. This can be rendered much easier, because sometimes the space between the pipes is filled.) ### VAR coin_dive = COIN_DIVE VAR power_up = POWER_UP VAR single_pit = SINGLE_PIT VAR bowling_alley = BOWLING_ALLEY VAR cannon_line = CANNON_LINE VAR maze = MAZE VAR lemming_trap = LEMMING_TRAP VAR platform_jump = PLATFORM_JUMP VAR pipe_jump = PIPE_JUMP VAR CHALLENGE = CHALLENGE #RULE name -> {probabilities}, (clause) [+,|] (clause)... RULE S -> LAND_SEGMENT + LAND_SEGMENT RULE LAND_SEGMENT -> {0.25,0.65,0.10}, (LO_HI + HI_LO) | (LO_PATH) | (LAND_SEGMENT + LAND_SEGMENT) RULE LO_HI -> LO_PATH + CHALLENGE RULE HI_LO -> CHALLENGE + LO_PATH #RULE HI_PATH -> {0.10,0.60,0.30}, (HI_PATH + HI_PATH) | (hi_path + CHALLENGE + hi_path) | (hi_path) RULE LO_PATH -> {0.10,0.60,0.30}, (LO_PATH + LO_PATH) | (lo_path + CHALLENGE + lo_path) | (lo_path) RULE CHALLENGE -> {0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10}, coin_dive | power_up | lo_path | single_pit | bowling_alley | cannon_line | maze | lemming_trap | platform_jump | pipe_jump #START variable name START = S