vars: # Global variables worldmaps: : "data/maps/tutorial/worldmap.fus" : "data/maps/tutorial_switches/worldmap.fus" : "data/maps/tutorial2/worldmap.fus" : "data/maps/tutorial3/worldmap.fus" : "data/maps/title/worldmap.fus" : "data/maps/title/worldmap_menu.fus" : "data/maps/wastes/worldmap.fus" : "data/maps/demo/worldmap.fus" : "data/maps/triangles/worldmap.fus" : "data/maps/water/worldmap.fus" : "data/maps/wilderness/worldmap.fus" : "data/maps/test/worldmap.fus" : "data/maps/test/worldmap_minimal.fus" : "data/maps/trees/worldmap.fus" : "data/maps/spidertown/worldmap.fus" : "data/maps/sprucetown/worldmap.fus" : "data/maps/death_place/worldmap.fus" : "data/maps/playarea/worldmap.fus" : "data/maps/bridges/worldmap.fus" : "data/maps/touma/worldmap.fus" import "data/palmappers.fus" import "data/prismels.fus" import "data/prismel_shapes.fus" import "data/double.fus" import "data/curvy.fus" import "data/dodecas.fus" import "data/mappers.fus" import "data/geomfonts.fus" import "data/texts.fus" import "data/door.fus" import "data/maps/test/tiles.fus" import "data/maps/test/tiles_debug.fus" import "data/maps/demo/tilesets/water_tiles.fus" import "data/maps/trees/tilesets/bark_tiles.fus" import "data/maps/sprucetown/tilesets/earth_tiles.fus" import "data/effects.fus" import "data/eye.fus" import "data/mini_eye.fus" import "data/food.fus" import "data/coin.fus" import "data/coin_beast.fus" import "data/switch.fus" import "data/hotspot.fus" import "data/roller.fus" import "data/spider.fus" import "data/abilities.fus" import "data/bird.fus" import "data/shark.fus" import "data/flier.fus" import "data/bubblecar.fus" import "data/hexroller.fus" import "data/droplet.fus" import "data/rocket.fus" import "data/octopus.fus" import "data/human.fus" import "data/spikeball.fus" # Like data/tileset1.fus, but with "0" defaulting to different things... # Basically just a cheapo way to quickly change the tiles of a submap. # Maybe there's a better way to do that... e.g. can submap specify # default_vert, default_edge, etc? unit: 3 2 0 -1 verts: "0": "map_vert1" "1": "map_vert1" "@": "map_bgvert" edges: "0": "map_edge1" "1": "map_edge1" "2": "map_edge2" "=": "map_bgedge" faces: "0": "map_face1" "1": "map_face1" "2": "map_face2" "S": "map_savepoint" "M": "map_minimap" "w": frame_offset(1) "map_water" "o": "map_bgface" parts: "_": empty "i": "data/maps/demo/jungle_ball_points.fus" "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; shapes: "empty": prismels: "vert": prismels: : "vert" (0 0 0 0) 0 f 2 "edge": prismels: : "edge" (0 0 0 0) 0 f 2 "sq": prismels: : "sq" (0 0 0 0) 0 f 2 "tri": prismels: : "tri" (0 0 0 0) 0 f 2 "dia": prismels: : "dia" (0 0 0 0) 0 f 2 $SET_STR NS spider_ $UNSET_BOOL EYESPIDER import "data/_spider.fus" $SET_STR NS eyespider_ $SET_BOOL EYESPIDER import "data/_spider.fus" # Loads just enough stuff into a prismelrenderer so that you can # get a geomfont out of it import "data/prismels.fus" import "data/geomfonts.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . shapes: "_ability_door": animation: oscillate 6 shapes: : "doorframe" (0 0 0 0) 0 f : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability1" 0 (0 2) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability2" 0 (2 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability3" 0 (3 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability4" 0 (4 2) "_ability_door_alt": animation: cycle 12 shapes: : "doorframe" (0 0 0 0) 0 f : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability4" 0 (0 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability3" 0 (1 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability2" 0 (2 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability1" 0 (3 2) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability2" 0 (5 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability3" 0 (6 1) : "spider_stand" ( 0 -1 -3 -1) 0 f "spider_ability4" 0 (7 1) : "spider_stand" ( 0 -1 -3 -1) 0 f 0 (8 4) "ability_door": animation: cycle 12 shapes: : "doorframe" (0 0 0 0) 0 f : "spider_stand" ( 0 -1 -3 -1) 0 f "cya" 0 (0 2) : "spider_stand" ( 0 -1 -3 -1) 0 f 0 (2 4) unit: 3 2 0 -1 verts: "0": "map_vert0" "1": "map_vert1" "@": "map_bgvert" "t": "map_vert_tunnel" edges: "0": "map_edge0" "1": "map_edge1" "2": "map_edge2" "=": "map_bgedge" "t": "map_edge_tunnel" faces: "0": "map_face0" "1": "map_face1" "2": "map_face2" "3": "map_face3" "S": "map_savepoint" "M": "map_minimap" "w": frame_offset(1) "map_water" "o": "map_bgface" "t": "map_face_tunnel" "E": frame_offset(1) "map_face_energy_on" "e": "map_face_energy_off" shapes: "_dead_particle": animation: cycle 6 prismels: : "tri" (1 0 0 0) 0 f eval(1 + 8 + 3) (0 1) : "tri" (2 0 0 0) 2 f eval(1 + 8 + 4) (1 1) : "tri" (3 0 0 0) 4 f eval(1 + 8 + 5) (2 1) : "tri" (4 0 0 0) 6 f eval(1 + 8 + 3) (3 1) : "tri" (5 0 0 0) 8 f eval(1 + 8 + 4) (4 1) : "tri" (6 0 0 0) 10 f eval(1 + 8 + 5) (5 1) "_dead_cycle": animation: cycle 6 shapes: : "_dead_particle" (0 0 0 0) 1 f 0+ : "_dead_particle" (0 0 0 0) 3 f 2+ : "_dead_particle" (0 0 0 0) 6 f 3+ : "_dead_particle" (0 0 0 0) 9 f 5+ "_dead_once": animation: once 12 shapes: : "_dead_particle" (0 0 0 0) 1 f 0+ (0 6) : "_dead_particle" (0 0 0 0) 3 f -2+ (2 6) : "_dead_particle" (0 0 0 0) 6 f -3+ (3 6) : "_dead_particle" (0 0 0 0) 9 f -5+ (5 6) "dead_cycle": animation: cycle 6 shapes: : "_dead_cycle" (0 1 3 1) 0 f 0+ "dead_once": animation: once 12 shapes: : "_dead_once" (0 1 3 1) 0 f 0+ "dead_once_reversed": animation: once 12 shapes: : "_dead_once" (0 1 3 1) 0 f 0+r "dead_once_centered": animation: once 12 shapes: : "_dead_once" (0 0 0 0) 0 f 0+ "dead_once_centered_reversed": animation: once 12 shapes: : "_dead_once" (0 0 0 0) 0 f 0+r "dead_once_crouch": animation: once 12 shapes: : "_dead_once" (1 1 2 0) 0 f 0+ "dead_once_crouch_reversed": animation: once 12 shapes: : "_dead_once" (1 1 2 0) 0 f 0+r $SET_STR NS "" $UNSET_BOOL SPIKEY $UNSET_BOOL EYE import "data/_spit.fus" $SET_STR NS "spikey_" $SET_BOOL SPIKEY $UNSET_BOOL EYE import "data/_spit.fus" $SET_STR NS "eye_" $UNSET_BOOL SPIKEY $SET_BOOL EYE import "data/_spit.fus" $SET_STR NS "" import "data/_string.fus" import "data/bubbles.fus" # Expected variables: # NS (str): e.g. "" shapes: ########################################################## # BASIC SHAPES $PREFIX NS "string": prismels: : "tri" ( 0 1 1 0) 1 f eval(1 + 8 + 7) : "tri" ( 0 1 1 0) 3 f eval(1 + 0 + 7) $PREFIX NS "string_fade1": prismels: : "tri" ( 0 1 1 0) 1 f eval(1 + 0 + 7) : "tri" ( 0 1 1 0) 3 f eval(1 + 0 + 8) $PREFIX NS "string_fade2": prismels: : "tri" ( 0 1 1 0) 1 f eval(1 + 0 + 8) #: "tri" ( 0 1 1 0) 3 f eval(1 + 0 + 8) ########################################################## # COMPOSITE SHAPES $PREFIX NS "string_appear": animation: once 4 shapes: : $PREFIX NS "string_fade2" (-3 1 0 -1) 0 f 0 (0 1) : $PREFIX NS "string_fade2" (-2 1 0 -1) 0 f 0 (1 1) : $PREFIX NS "string_fade1" (-1 1 0 -1) 0 f 0 (2 1) : $PREFIX NS "string_fade1" ( 0 1 0 -1) 0 f 0 (3 1) $PREFIX NS "string_stay": shapes: : $PREFIX NS "string" ( 1 1 0 -1) 0 f $PREFIX NS "string_disappear": animation: once 4 shapes: : $PREFIX NS "string_fade1" ( 2 1 0 -1) 0 f 0 (0 1) : $PREFIX NS "string_fade1" ( 3 1 0 -1) 0 f 0 (1 1) : $PREFIX NS "string_fade2" ( 4 1 0 -1) 0 f 0 (2 1) : $PREFIX NS "string_fade2" ( 5 1 0 -1) 0 f 0 (3 1) $SET_STR NS "" $UNSET_BOOL SPIDER import "data/_roller.fus" $SET_STR NS "spider_" $SET_BOOL SPIDER import "data/_roller.fus" shapes: ################ # DEATH ROLLER # ################ "death_roller": map ("l.red") ("roller") "death_roller_grab": map ("l.red") ("roller_grab") "death_roller_grab_flipped": map ("l.red") ("roller_grab_flipped") ############## # BIG ROLLER # ############## "big_roller": map ("double") ("roller") "big_roller_grab": map ("double") ("roller_grab") "big_roller_grab_flipped": map ("double") ("roller_grab_flipped") ############ # ROLLER 2 # ############ "roller2": shapes: : "roller_body" (0 0 0 0) 0 f : "roller_body_hollow" (3 2 0 -1) 2 f : "roller_foot" (0 0 0 0) 0 f "roller2_flipped": shapes: : "roller_body" (0 0 0 0) 0 f : "roller_body_hollow" (0 0 0 0) 2 f : "roller_foot" (0 0 0 0) 0 f ################ # WATER ROLLER # ################ "water_roller_foot": animation: cycle 8 shapes: : "roller_foot" (0 0 0 0) 0 f : "water_edge" (0 0 0 0) 0 f "water_roller_body": animation: cycle 8 shapes: : "water_face" (0 0 0 0) 0 f "water_roller": animation: cycle 8 shapes: : "water_roller_body" (0 0 0 0) 0 f : "water_roller_foot" (0 0 0 0) 0 f "water_roller_grab": animation: cycle 8 shapes: : "water_roller_body" (0 0 0 0) 0 f : "water_roller_body" (3 2 0 -1) 2 f : "water_roller_foot" (0 0 0 0) 0 f "water_roller_grab_flipped": animation: cycle 8 shapes: : "water_roller_body" (0 0 0 0) 0 f : "water_roller_body" (0 0 0 0) 2 f : "water_roller_foot" (0 0 0 0) 0 f shapes: ########## # DOUBLE # ########## "double_sq": prismels: : "sq" (0 0 0 0) 0 f eval: 1 + 1 : "sq" (1 0 0 0) 0 f eval: 1 + 1 : "sq" (0 0 0 1) 0 f eval: 1 + 1 : "sq" (1 0 0 1) 0 f eval: 1 + 1 "double_tri": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 1 : "tri" (1 0 0 0) 0 f eval: 1 + 1 : "tri" (0 0 1 0) 0 f eval: 1 + 1 : "tri" (1 0 1 0) 6 f eval: 1 + 1 "double_dia": prismels: : "dia" (0 0 0 0) 0 f eval: 1 + 1 : "dia" (1 0 0 0) 0 f eval: 1 + 1 : "dia" (0 1 0 0) 0 f eval: 1 + 1 : "dia" (1 1 0 0) 0 f eval: 1 + 1 ########## # TRIPLE # ########## "triple_sq": shapes: : "double_sq" (0 0 0 0) 0 f prismels: : "sq" (2 0 0 0) 0 f eval: 1 + 1 : "sq" (2 0 0 1) 0 f eval: 1 + 1 : "sq" (2 0 0 2) 0 f eval: 1 + 1 : "sq" (1 0 0 2) 0 f eval: 1 + 1 : "sq" (0 0 0 2) 0 f eval: 1 + 1 "triple_tri": shapes: : "double_tri" (0 0 0 0) 0 f prismels: : "tri" (2 0 0 0) 0 f eval: 1 + 1 : "tri" (1 0 1 0) 0 f eval: 1 + 1 : "tri" (0 0 2 0) 0 f eval: 1 + 1 : "tri" (2 0 1 0) 6 f eval: 1 + 1 : "tri" (1 0 2 0) 6 f eval: 1 + 1 "triple_dia": shapes: : "double_dia" (0 0 0 0) 0 f prismels: : "dia" (2 0 0 0) 0 f eval: 1 + 1 : "dia" (2 1 0 0) 0 f eval: 1 + 1 : "dia" (2 2 0 0) 0 f eval: 1 + 1 : "dia" (1 2 0 0) 0 f eval: 1 + 1 : "dia" (0 2 0 0) 0 f eval: 1 + 1 mappers: "double": solid unit: 2 0 0 0 entries: : "vert" -> "vert" : "edge" -> "edge" : "sq" -> "double_sq" : "tri" -> "double_tri" : "dia" -> "double_dia" "triple": solid unit: 3 0 0 0 entries: : "vert" -> "vert" : "edge" -> "edge" : "sq" -> "triple_sq" : "tri" -> "triple_tri" : "dia" -> "triple_dia" "quadruple": solid map ("double") ("double") "octuple": solid map ("double") ("quadruple") # Expected vars: # SPIDER (bool) # NS (str), e.g. "spider_", "" shapes: $PREFIX NS "flier_head": shapes: : "spider_head" (0 0 0 0) 0 f #$IF SPIDER: # : $PREFIX NS "bleg" ( 0 0 -2 0) -2 f 0 # : $PREFIX NS "bleg" ( 2 0 -2 0) -1 f 0 $PREFIX NS "flier": shapes: : $PREFIX NS "flier_head" (0 0 0 0) 0 f $PREFIX NS "flier_fly": animation: cycle 3 shapes: : $PREFIX NS "flier_head" (-2 0 0 0) 0 f 0 (0 1) : $PREFIX NS "flier_head" (-1 0 0 0) 0 f 0 (1 1) : $PREFIX NS "flier_head" ( 0 0 0 0) 0 f 0 (2 1) collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; / \ / \ / \ / \ / \ / \ / \ / \ ;; . + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + . . ;; \ / \ / \ / \ / \ / \ / \ / \ / ;; . + - + . + - + . + - + . + - + . + - + . + - + . + - + . + - + . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; unit: 1 0 0 0 verts: "0": "minimap.vert" "1": "minimap.vert" "2": "minimap.vert" "s": "minimap.vert" "@": "empty" "t": "minimap.vert.tunnel" edges: "0": "minimap.edge" "1": "minimap.edge" "2": "minimap.edge" "s": "minimap.edge" "=": "empty" "t": "minimap.edge.tunnel" faces: "0": "minimap.face" "1": "minimap.face" "2": "minimap.face" "3": "minimap.face" "e": "minimap.face" "o": "empty" "t": "minimap.face.tunnel" "E": "minimap.face" "S": "minimap.save" "M": "minimap.minimap" "w": frame_offset(1) "minimap.water" prismels: # Here's the basic idea: # # # O---O # ---|%%%|--- # O%%%|%%%|%%%O # |%---|%%%|---%| # |%%%%O---O%%%%| # |%%%|%|%|%|%%%| # O%%%%|%|%|%|%%%%O # |---%|%|%|%|%---| # |%%%O---O---O%%%| # |---%|%|%|%|%---| # O%%%%|%|%|%|%%%%O # |%%%|%|%|%|%%%| # |%%%%O---O%%%%| # |%---|%%%|---%| # O%%%|%%%|%%%O # ---|%%%|--- # O---O # # "diam" prismels are a bit odd, they cause edges to overlap, see # the instances of "+" below: # # O---O # |%||--- # |%||%%%O # |%||--+%| # O%O%%|%| # ||%%%|%| # ||%%O---O # |+--%---| # O---O%%%| # ---O # # "vert": # X images: : (0 0 1) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) "edge": # + + + # + + + # +++ + + + +++ # .+++ . . . . . +++. . . . . . # +++ + + + +++ # + + + # + + + images: : ( 1 0 3) : ( 1 -1 3) : ( 1 -3 1) ( 1 -2 1) ( 1 -1 1) : ( 0 -3 1) ( 0 -2 1) ( 0 -1 1) : (-1 -3 1) (-1 -2 1) (-1 -1 1) : (-3 -1 3) : (-3 0 3) : (-3 1 3) : (-1 1 1) (-1 2 1) (-1 3 1) : ( 0 1 1) ( 0 2 1) ( 0 3 1) : ( 1 1 1) ( 1 2 1) ( 1 3 1) : ( 1 1 3) : 0 : 11 : 10 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 "sq": # +---+ # | | # | | # 0---+ # # + + # ++++ ++++ # +++ +++ +++ +++ + + # +++ ++++ ++++ +++ ++++ ++++ # +++ + + +++ +++ + + +++ # . . . . ++++. ++++. . . . . .++++ .++++ # + +++ +++ + + +++ +++ + # ++++ +++ ++++ ++++ +++ ++++ # + +++ +++ +++ +++ + # ++++ ++++ # + + # images: ######### # TODO ######### () () () () () () () () () () () () () () () () () () () () () () () () #: ( 1 -3 3) ( 1 -2 3) ( 1 -1 3) #: ( 2 -5 1) (-1 -4 4) ( 0 -3 3) ( 0 -2 4) ( 0 -1 1) #: ( 2 -5 1) (-1 -4 4) ( 0 -3 3) ( 0 -2 4) ( 0 -1 1) "tri": # + # | # / \ # | | # 0---+ # + + + # + +++ + +++ + # + + + # . . . . . +++ . . . . . . . +++ # + + + # + +++ + +++ + # + + + images: : ( 2 -3 1) ( 2 -2 1) ( 2 -1 1) : ( 1 -2 3) : ( 0 -3 1) ( 0 -2 1) ( 0 -1 1) : (-3 -2 3) : (-2 -3 1) (-2 -2 1) (-2 -1 1) : (-3 0 3) : (-2 1 1) (-2 2 1) (-2 3 1) : (-3 2 3) : ( 0 1 1) ( 0 2 1) ( 0 3 1) : ( 1 2 3) : ( 2 1 1) ( 2 2 1) ( 2 3 1) : ( 1 0 3) : 10 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 : 0 : 11 "dia": # -+---+ # / / # 0---+- images: ######### # TODO ######### () () () () () () () () () () () () () () () () () () () () () () () () # Expected vars: # NS (str), e.g. "spider_" # EYESPIDER (bool) # This file defines the shapes used by higher-level labels, like # "label:head", which are used in data/_spider.fus. label "label:_head": default $PREFIX NS "_head" label "label:eye": default $PREFIX NS "eye" label "label:nose": default $PREFIX NS "nose" label "label:toe": default null label "label:headbump": default null label "label:head_spikes": default null label "label:head_spikes_extended": default null label "label:carrying": default null shapes: # Both legs shown with origin of spider: # # -+ . +- # / | | \ # +- | | -+ # | \ | | / | # / -+ . +- \ # | | | | # +- / \ -+ # | \ | | / | # | -+ . . +- | # | / \ | # 0- -+ # One leg shown with its origin: # # -0 # / | # +- | # | \ | # / -+ # | | # +- / # | \ | # | -+ # | / # +- ################################ # "label:bleg" # "label:fleg" # "label:toe" $PREFIX NS "bleg": $IF EYESPIDER: # Just changing the colours prismels: : "tri" ( 0 -1 0 0) 11 f eval: 1 + 8 + 1 : "sq" ( 0 -1 -1 0) 11 f eval: 1 + 0 + 1 : "tri" ( 0 -1 -1 -1) 1 f eval: 1 + 0 + 1 $IF !EYESPIDER: prismels: : "tri" ( 0 -1 0 0) 11 f eval: 1 + 8 + 5 : "sq" ( 0 -1 -1 0) 11 f eval: 1 + 8 + 3 : "tri" ( 0 -1 -1 -1) 1 f eval: 1 + 8 + 3 labels: : "label:toe" (0 -1 -1 -1) 0 f $PREFIX NS "fleg": shapes: # For historical reasons, "bleg" and "fleg" look exactly the same, # just "fleg" is usually rotated 180 degrees wherever it's used... # However, they're separate in case we ever want to tweak one. : $PREFIX NS "bleg" (0 0 0 0) 0 f $PREFIX NS "toe_sticky": prismels: : "dia" (0 0 0 0) 3 f eval: 1 + 8 + 7 #: "dia" (0 0 0 0) 4 f eval: 1 + 15 #: "dia" (0 0 0 0) 5 f eval: 1 + 15 #: "sq" (0 0 0 0) 9 f eval: 1 + 15 ################################ # "label:_head" $PREFIX NS "_head_sixth": # _ + # + \ # / \ _ + # (+)- + _ | # + prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 1 : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 2 : "sq" (1 0 0 0) 1 f eval: 1 + 8 + 1 $PREFIX NS "_head": shapes: : $PREFIX NS "_head_sixth" (0 0 0 0) 0 f : $PREFIX NS "_head_sixth" (0 0 0 0) 2 f : $PREFIX NS "_head_sixth" (0 0 0 0) 4 f : $PREFIX NS "_head_sixth" (0 0 0 0) 6 f : $PREFIX NS "_head_sixth" (0 0 0 0) 8 f : $PREFIX NS "_head_sixth" (0 0 0 0) 10 f $PREFIX NS "_head_roller": shapes: : "_roller_body_hollow" (0 0 0 0) 0 f ################################ # "label:head_spikes" # "label:head_spikes_extended" $PREFIX NS "_head_spike": prismels: : "tri" (0 1 1 0) 10 f eval: 1 + 8 + 5 $PREFIX NS "_head_spike_long": prismels: : "sq" (0 1 1 0) 10 f eval: 1 + 0 + 5 : "tri" (0 2 1 0) 10 f eval: 1 + 8 + 5 $PREFIX NS "head_spikes": shapes: : $PREFIX NS "_head_spike" (0 0 0 0) 0 f : $PREFIX NS "_head_spike" (0 0 0 0) 2 f : $PREFIX NS "_head_spike" (0 0 0 0) 4 f : $PREFIX NS "_head_spike" (0 0 0 0) 6 f $PREFIX NS "head_spikes_extended": shapes: : $PREFIX NS "_head_spike_long" (0 0 0 0) 0 f : $PREFIX NS "_head_spike" (0 0 0 0) 1 f : $PREFIX NS "_head_spike_long" (0 0 0 0) 2 f : $PREFIX NS "_head_spike" (0 0 0 0) 3 f : $PREFIX NS "_head_spike_long" (0 0 0 0) 4 f : $PREFIX NS "_head_spike" (0 0 0 0) 5 f : $PREFIX NS "_head_spike_long" (0 0 0 0) 6 f ################################ # "label:eye" $PREFIX NS "eye": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 4 $PREFIX NS "_eye_flip": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 4 $PREFIX NS "eye_flip": animation: cycle 48 shapes: : $PREFIX NS "_eye_flip" (0 0 0 0) 2 f 0 ( 0 1) : $PREFIX NS "_eye_flip" (0 0 0 0) 4 f 0 ( 1 1) : $PREFIX NS "_eye_flip" (0 0 0 0) 6 f 0 ( 2 1) : $PREFIX NS "_eye_flip" (0 0 0 0) 8 f 0 ( 3 1) : $PREFIX NS "_eye_flip" (0 0 0 0) 10 f 0 ( 4 1) : $PREFIX NS "_eye_flip" (0 0 0 0) 0 f 0 ( 5 43) ################################ # "label:nose" $PREFIX NS "nose": prismels: : "sq" (0 0 0 0) 0 f eval: 1 + 8 + 1 : "tri" (1 0 0 0) 1 f eval: 1 + 8 + 2 $PREFIX NS "nose_aimer": prismels: : "sq" (0 0 0 0) 0 f eval: 1 + 8 + 1 : "sq" (1 0 0 0) 0 f eval: 1 + 8 + 2 : "tri" (2 0 0 0) 1 f eval: 1 + 8 + 1 ################################ # "label:headbump" # # NOTE: The headbump is an optional bump on the *back* of the head. # So, if you were to animate spider's head turning, you could try to # have the bump disappear behind the head, while the nose passes # in front, or something. $PREFIX NS "headbump_aimer": prismels: : "sq" (-1 -1 0 0) 3 f eval: 1 + 8 + 1 $PREFIX NS "headbump_flier": prismels: : "dia" (-1 0 1 1) 6 f eval: 1 + 8 + 1 : "tri" (-1 -1 0 0) 3 f eval: 1 + 8 + 1 : "dia" ( 0 0 -1 -1) 5 f eval: 1 + 8 + 1 ################################ # "label:head" # "label:crawl_head" # "label:sleep_head" $PREFIX NS "_head_base": # All the basic stuff on a head. labels: : "label:_head" (0 0 0 0) 0 f : "label:nose" (1 1 0 -1) 0 f : "label:headbump" (0 0 0 0) 0 f : "label:head_spikes" (0 0 0 0) 0 f $PREFIX NS "head": $IF EYESPIDER: shapes: : "_eye_look" (0 0 0 0) 11 f $IF !EYESPIDER: shapes: : $PREFIX NS "_head_base" (0 0 0 0) 0 f labels: : "label:eye" (0 0 0 0) 0 f : "label:head_spikes" (0 0 0 0) 0 f labels: : "label:carrying" (1 1 1 0) 0 f $PREFIX NS "crawl_head": $IF EYESPIDER: shapes: : "_eye_look" (0 0 0 0) 11 f $IF !EYESPIDER: shapes: : $PREFIX NS "_head_base" (0 0 0 0) 0 f labels: : "label:eye" (0 0 0 0) 0 f : "label:head_spikes_extended" (0 0 0 0) 0 f labels: : "label:carrying" (1 1 1 0) 0 f $PREFIX NS "sleep_head": $IF EYESPIDER: shapes: : "_eye_closed" (0 0 0 0) 0 f $IF !EYESPIDER: shapes: : $PREFIX NS "_head_base" (0 0 0 0) 0 f labels: # No eye (it's "closed" because we're sleeping) #: "label:eye" (0 0 0 0) 0 f : "label:head_spikes" (0 0 0 0) 0 f labels: : "label:carrying" (1 1 1 0) 0 f shapes: "octopus_sm_sixth": # + # +++ # ++++ # . + # -+ # / | # +- \ # | | # / \ -+ # | | / | # 0---+- | # \ | # -+ prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 1 : "tri" (1 0 0 0) 11 f eval: 1 + 2 : "sq" (1 0 0 0) 1 f eval: 1 + 3 "octopus_sm": shapes: : "octopus_sm_sixth" (0 0 0 0) 0 f : "octopus_sm_sixth" (0 0 0 0) 2 f : "octopus_sm_sixth" (0 0 0 0) 4 f : "octopus_sm_sixth" (0 0 0 0) 6 f : "octopus_sm_sixth" (0 0 0 0) 8 f : "octopus_sm_sixth" (0 0 0 0) 10 f "octopus_sm_anim_sixth": animation: oscillate 6 shapes: : "octopus_sm_sixth" (0 0 0 0) 0 f prismels: : "tri" (1 1 0 0) 2 f eval(1 + 4) (1 1) : "sq" (1 1 0 0) 1 f eval(1 + 4) (2 4) : "tri" (1 2 0 0) 2 f eval(1 + 3) (3 1) : "sq" (1 2 0 0) 1 f eval(1 + 3) (4 2) : "tri" (1 3 0 0) 2 f eval(1 + 2) (5 1) "octopus_sm_anim": animation: cycle 12 shapes: : "octopus_sm_anim_sixth" (0 0 0 0) 0 f 0+ : "octopus_sm_anim_sixth" (0 0 0 0) 2 f 2+ : "octopus_sm_anim_sixth" (0 0 0 0) 4 f 4+ : "octopus_sm_anim_sixth" (0 0 0 0) 6 f 6+ : "octopus_sm_anim_sixth" (0 0 0 0) 8 f 8+ : "octopus_sm_anim_sixth" (0 0 0 0) 10 f 10+ "octopus_anim": map ("curvy") ("octopus_sm_anim") shapes: "_spikeball": prismels: : "tri" ( 0 0 0 0) 0 f eval: 3 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 3 + 0 + 1 : "tri" ( 0 0 0 0) 4 f eval: 3 + 8 + 1 : "tri" ( 0 0 0 0) 6 f eval: 3 + 8 + 1 : "tri" ( 0 0 0 0) 8 f eval: 7 + 8 + 1 : "tri" ( 0 0 0 0) 10 f eval: 3 + 8 + 1 : "dia" ( 0 0 0 0) 0 f eval: 5 + 0 + 1 : "dia" ( 0 0 0 0) 2 f eval: 5 + 0 + 1 : "dia" ( 0 0 0 0) 4 f eval: 5 + 8 + 1 : "dia" ( 0 0 0 0) 6 f eval: 5 + 8 + 1 : "dia" ( 0 0 0 0) 8 f eval: 7 + 8 + 1 : "dia" ( 0 0 0 0) 10 f eval: 5 + 8 + 1 "spikeball": map ("double") ("_spikeball") shapes: ######### # FLIER # ######### "flier_born_sixth": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 3 : "tri" (1 0 0 0) 2 f eval: 1 + 8 + 4 "flier_born": shapes: : "flier_born_sixth" (0 0 0 0) 0 f : "flier_born_sixth" (0 0 0 0) 2 f : "flier_born_sixth" (0 0 0 0) 4 f : "flier_born_sixth" (0 0 0 0) 6 f : "flier_born_sixth" (0 0 0 0) 8 f : "flier_born_sixth" (0 0 0 0) 10 f $SET_STR NS "" $UNSET_BOOL SPIDER import "data/_flier.fus" $SET_STR NS "spider_" $SET_BOOL SPIDER import "data/_flier.fus" shapes: ############### # DEATH FLIER # ############### "death_flier": map ("l.red") ("flier") "death_flier_fly": map ("l.red") ("flier_fly") #"death_flier_born": map ("l.red") ("flier_born") shapes: "mini_eye": animation: cycle 24 shapes: : "_eye_look" ( 0 0 0 0) 0 f 0 ( 0 1) : "_eye_look" ( 0 0 0 0) 1 f 0 ( 1 1) : "_eye_look" ( 0 0 0 0) 2 f 0 ( 2 1) : "_eye_look" ( 0 0 0 0) 3 f 0 ( 3 1) : "_eye_look" ( 0 0 0 0) 4 f 0 ( 4 1) : "_eye_look" ( 0 0 0 0) 5 f 0 ( 5 1) : "_eye_look" ( 0 0 0 0) 6 f 0 ( 6 1) : "_eye_look" ( 0 0 0 0) 7 f 0 ( 7 1) : "_eye_look" ( 0 0 0 0) 8 f 0 ( 8 1) : "_eye_look" ( 0 0 0 0) 9 f 0 ( 9 1) : "_eye_look" ( 0 0 0 0) 10 f 0 (10 1) : "_eye_look" ( 0 0 0 0) 11 f 0 (11 13) "mini_eye_blink": animation: cycle 24 shapes: : "_eye_looking_1" ( 0 0 0 0) 11 f 0 ( 0 1) : "_eye_open" ( 0 0 0 0) 0 f 0 ( 1 1) : "_eye_opening_3" ( 0 0 0 0) 0 f 0 ( 2 1) : "_eye_opening_2" ( 0 0 0 0) 0 f 0 ( 3 1) : "_eye_opening_1" ( 0 0 0 0) 0 f 0 ( 4 1) : "_eye_closed" ( 0 0 0 0) 0 f 0 ( 5 2) : "_eye_opening_1" ( 0 0 0 0) 0 f 0 ( 7 1) : "_eye_opening_1" ( 0 0 0 0) 0 f 0 ( 8 1) : "_eye_opening_1" ( 0 0 0 0) 0 f 0 ( 9 1) : "_eye_open" ( 0 0 0 0) 0 f 0 (10 1) : "_eye_looking_1" ( 0 0 0 0) 11 f 0 (11 1) : "_eye_look" ( 0 0 0 0) 11 f 0 (12 12) "mini_eye_crouch": animation: cycle "mini_eye" shapes: : "mini_eye" (1 1 1 0) 0 f "mini_eye_carried": animation: cycle 48 shapes: : "_eye_look" ( 0 0 0 0) 11 f 0 ( 0 1) : "_eye_looking_1" ( 0 0 0 0) 11 f 0 ( 1 1) : "_eye_open" ( 0 0 0 0) 0 f 0 ( 2 1) : "_eye_looking_1" ( 0 0 0 0) 7 t 0 ( 3 1) : "_eye_look" ( 0 0 0 0) 7 t 0 ( 4 5) : "_eye_looking_1" ( 0 0 0 0) 7 t 0 ( 9 1) : "_eye_open" ( 0 0 0 0) 0 f 0 (10 1) : "_eye_looking_1" ( 0 0 0 0) 11 f 0 (11 1) : "_eye_look" ( 0 0 0 0) 11 f 0 (12 36) palmappers: "tunnel": : 1: 0 2: 2 3: 1 4: 4 5: 5 6: 6 7: 5 8: 0 9: 1 10: 2 11: 3 12: 4 13: 5 14: 6 15: 5 16: 8 "spider_cpu": : # This palmapper is used to mark cpu spiders, so you can tell # yourself apart from them. # # NOTE: we don't change blacks, whites, or reds (because the demo # map's palettes have a pulsating animated red for use with spider's # eye) 1: 2: 4 3: 6 4: 3 5: 6: 2 7: 8: 9: 10: 12 11: 14 12: 11 13: 14: 10 15: 16: "door_cycle": # A palmapper which mimics the animated colours of the "door" rgraph eval(9 + 3): eval(1 + 3) eval(1 + 3): eval(9 + 1) eval(9 + 1): eval(1 + 1) eval(1 + 1): eval(9 + 3) "spider_ability1": # All blue and cyan, for "doors" which give you abilities, like # spikeyspider, rollerspider, etc : eval(1 + 0): eval(1 + 0) eval(1 + 1): eval(9 + 3) eval(1 + 2): eval(9 + 3) eval(1 + 3): eval(9 + 3) eval(1 + 4): eval(9 + 3) eval(1 + 5): eval(9 + 3) eval(1 + 6): eval(9 + 3) eval(1 + 7): eval(9 + 7) eval(9 + 0): eval(9 + 0) eval(9 + 1): eval(9 + 3) eval(9 + 2): eval(9 + 3) eval(9 + 3): eval(9 + 3) eval(9 + 4): eval(9 + 1) # eye colour eval(9 + 5): eval(9 + 3) eval(9 + 6): eval(9 + 3) eval(9 + 7): eval(9 + 7) "spider_ability2": palmap ("door_cycle") ("spider_ability1") "spider_ability3": palmap ("door_cycle") ("spider_ability2") "spider_ability4": palmap ("door_cycle") ("spider_ability3") "cycle0": "cycle1": : 1: 2 2: 3 3: 4 4: 5 5: 6 6: 7 7: 8 8: 9 9: 10 10: 11 11: 12 12: 13 13: 14 14: 15 15: 16 16: 1 "cycle2": palmap ("cycle1") ("cycle1") "cycle3": palmap ("cycle1") ("cycle2") "blk": : 1, 8: eval: 1 + 0 10, 8: eval: 1 + 8 + 0 "blu": : 1, 8: eval: 1 + 1 10, 8: eval: 1 + 8 + 1 "grn": : 1, 8: eval: 1 + 2 10, 8: eval: 1 + 8 + 2 "cya": : 1, 8: eval: 1 + 3 10, 8: eval: 1 + 8 + 3 "red": : 1, 8: eval: 1 + 4 10, 8: eval: 1 + 8 + 4 "prp": : 1, 8: eval: 1 + 5 10, 8: eval: 1 + 8 + 5 "ylw": : 1, 8: eval: 1 + 6 10, 8: eval: 1 + 8 + 6 "wht": : 1, 8: eval: 1 + 7 10, 8: eval: 1 + 8 + 7 "l.blk": : 1, 8: eval: 1 + 8 + 0 10, 8: eval: 1 + 8 + 7 "l.blu": : 1, 8: eval: 1 + 8 + 1 10, 8: eval: 1 + 8 + 7 "l.grn": : 1, 8: eval: 1 + 8 + 2 10, 8: eval: 1 + 8 + 7 "l.cya": : 1, 8: eval: 1 + 8 + 3 10, 8: eval: 1 + 8 + 7 "l.red": : 1, 8: eval: 1 + 8 + 4 10, 8: eval: 1 + 8 + 7 "l.prp": : 1, 8: eval: 1 + 8 + 5 10, 8: eval: 1 + 8 + 7 "l.ylw": : 1, 8: eval: 1 + 8 + 6 10, 8: eval: 1 + 8 + 7 "l.wht": : 1, 8: eval: 1 + 8 + 7 10, 8: eval: 1 + 8 + 7 # Expected vars: # NS (str), e.g. "spider_", "" label "label:carrying": default null label "label:nose": default null shapes: $PREFIX NS "_roller_body_hollow_third": prismels: # + # | # / \ # | | # +---+- # | | \ # | | -+ # | | / | # +---+- \ # | | # \ -+ # | / | # 0 +- | # \ | # -+ : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 1 : "tri" (-1 0 1 1) 0 f eval: 1 + 1 : "tri" ( 0 0 1 0) 1 f eval: 1 + 1 : "sq" ( 1 0 0 0) 1 f eval: 1 + 8 + 1 : "tri" ( 1 0 0 0) 11 f eval: 1 + 1 $PREFIX NS "_roller_body_third": shapes: : $PREFIX NS "_roller_body_hollow_third" (0 0 0 0) 0 f prismels: $IF SPIDER: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 4 $IF !SPIDER: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 3 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 3 $PREFIX NS "_roller_body": shapes: : $PREFIX NS "_roller_body_third" (0 0 0 0) 0 f : $PREFIX NS "_roller_body_third" (0 0 0 0) 4 f : $PREFIX NS "_roller_body_third" (0 0 0 0) 8 f $PREFIX NS "_roller_body_hollow": shapes: : $PREFIX NS "_roller_body_hollow_third" (0 0 0 0) 0 f : $PREFIX NS "_roller_body_hollow_third" (0 0 0 0) 4 f : $PREFIX NS "_roller_body_hollow_third" (0 0 0 0) 8 f $PREFIX NS "roller_body": shapes: : $PREFIX NS "_roller_body" (1 1 1 0) 0 f $PREFIX NS "roller_body_hollow": shapes: : $PREFIX NS "_roller_body_hollow" (1 1 1 0) 0 f $PREFIX NS "roller_foot": prismels: : "sq" (0 0 0 0) 0 f eval: 1 + 8 + 3 : "sq" (0 0 0 0) 3 f eval: 1 + 8 + 3 : "sq" (0 0 0 0) 6 f eval: 1 + 8 + 3 : "sq" (0 0 0 0) 9 f eval: 1 + 8 + 3 shapes: $PREFIX NS "roller": shapes: : $PREFIX NS "roller_body" (0 0 0 0) 0 f : $PREFIX NS "roller_foot" (0 0 0 0) 0 f $IF SPIDER: labels: : "label:carrying" eval((2 2 1 0) + (1 0 0 0)) 1 f # Player's "nose" : "label:nose" (2 2 1 -1) 0 f $PREFIX NS "roller_grab": shapes: : $PREFIX NS "roller_body" (0 0 0 0) 0 f : $PREFIX NS "roller_body_hollow" (3 2 0 -1) 2 f : $PREFIX NS "roller_foot" (0 0 0 0) 0 f $PREFIX NS "roller_grab_flipped": shapes: : $PREFIX NS "roller_body" (0 0 0 0) 0 f : $PREFIX NS "roller_body_hollow" (0 0 0 0) 2 f : $PREFIX NS "roller_foot" (0 0 0 0) 0 f collmap: ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; shapes: $SKIP: "_eye_outline": # Just for copy+pasting and starting a new eye-related # hexpicture. hexpicture: ;; +---+ ;; -- -- ;; + + ;; | | ;; | | ;; + + ;; | | ;; | * | ;; | | ;; + + ;; | | ;; | | ;; + + ;; -- -- ;; +---+ "_eye_border": hexpicture: ;; +---+ ;; --| |-- ;; + .| |. + ;; |--|4 |--| ;; |4 +---+ 4| ;; |--| |--| ;; +---+ .| |. +---+ ;; | | | --|. |-- | | | ;; |.|4| +---+ |4|.| ;; +---+ | | | | +---+ ;; | |--.|.|.|.|.--| | ;; | |. +---*---+ .| | ;; |4 |-- | | | | --|4 | ;; +---+ |.|.|.| +---+ ;; | | | +---+ | | | ;; |.|4|.--| |--.|4|.| ;; +---+ .| |. +---+ ;; |--|. |--| ;; |4 +---+ 4| ;; |--| |--| ;; + .| |. + ;; --|4 |-- ;; +---+ "_eye_closed": hexpicture: ;; +---+ ;; -/ | | \- ;; + |9|9|9| + ;; |9+---+---+9| ;; /-| | |-\ ;; + 1| | |1 + ;; |--|1 |1 |--| ;; |1 +---*---+ 1| ;; |-- | | | | --| ;; + |9|9|9| + ;; | +---+ | ;; |9--| |--9| ;; + 1| |1 + ;; --|1 |-- ;; +---+ "_eye_opening_1": hexpicture: ;; +---+ ;; -/ | | \- ;; + |1|1|1| + ;; |1+---+---+1| ;; /-| | |-\ ;; + 9| | |9 + ;; |--|9 |9 |--| ;; |9 +---*---+ 9| ;; |-- | | | | --| ;; + |1|1|1| + ;; | +---+ | ;; |1--| |--1| ;; + F| |F + ;; --|F |-- ;; +---+ "_eye_opening_2": hexpicture: ;; +---+ ;; -/ | | \- ;; + |9|9|9| + ;; |9+---+---+9| ;; /-| | |-\ ;; + 1| | |1 + ;; |--|1 |1 |--| ;; |1 +---*---+ 1| ;; |-- | | | | --| ;; + |0|0|0| + ;; | +---+ | ;; |F--| |--F| ;; + F| |F + ;; --|F |-- ;; +---+ "_eye_opening_3": hexpicture: ;; +---+ ;; -/ | | \- ;; + |1|1|1| + ;; |1+---+---+1| ;; /-| | |-\ ;; + F| | |F + ;; |--|0 |0 |--| ;; |F +---*---+ F| ;; |-- | | | | --| ;; + |0|0|0| + ;; | +---+ | ;; |F--| |--F| ;; + F| |F + ;; --|F |-- ;; +---+ "_eye_open_outside": # We need to combine 2 hexpictures for eye_open's various shapes, # because they use "dia" faces which confuses the parser into # seeing extra "tri" and "sq" faces... hexpicture: ;; +---+ ;; --7 --|-- ;; +---+ F|F + ;; | --|-- | ;; | + | ;; + | + ;; |-- | || ;; |F +---* || ;; |--| | + | ;; + F| | --|7+ ;; \-| + F|| ;; | + |--|| ;; +7| |F + ;; -\ |-- ;; +---+ "_eye_look_outside": # See comment on "_eye_open_outside" hexpicture: ;; +---+ ;; --7 --|-- ;; +---+ F|F + ;; | --|-- | ;; | + | ;; + | + ;; |-- | || ;; |7 +---* || ;; |--| | + | ;; + 7| | --|7+ ;; \-| + F|| ;; | + |--|| ;; +7| |F + ;; -\ |-- ;; +---+ "_eye_open_center": # See comment on "_eye_open_outside" hexpicture: ;; +---+ + ;; | -- F-- -- | ;; | +---+ | ;; + | | | | + ;; --F|0|0|0|F-/ ;; +---*---+ | ;; || | | |F+ ;; ||0|0|0/- ;; | +---+ ;; +F| | ;; || | ;; ||F | ;; +---+ "_eye_looking_1_center": # See comment on "_eye_open_outside" hexpicture: ;; +---+ + ;; | -- F-- -- | ;; | +---+ | ;; + | | | | + ;; --F|F|F|0|0-/ ;; +---*---+ | ;; || | | |F+ ;; ||F|F|F/- ;; | +---+ ;; +F| | ;; || | ;; ||F | ;; +---+ "_eye_look_center": # See comment on "_eye_open_outside" hexpicture: ;; +---+ + ;; | -- F-- -- | ;; | +---+ | ;; + | | | | + ;; --F|F|F|F|0-/ ;; +---*---+ | ;; || | | |F+ ;; ||F|F|F/- ;; | +---+ ;; +7| | ;; || | ;; ||F | ;; +---+ "_eye_open": shapes: : "_eye_open_outside" (0 0 0 0) 0 f : "_eye_open_center" (0 0 0 0) 0 f "_eye_looking_1": shapes: : "_eye_open_outside" (0 0 0 0) 0 f : "_eye_looking_1_center" (0 0 0 0) 0 f "_eye_look": shapes: : "_eye_look_outside" (0 0 0 0) 0 f : "_eye_look_center" (0 0 0 0) 0 f "eye_closed": shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_closed" (0 0 0 0) 0 f "eye_opening": animation: cycle 3 shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_opening_1" (0 0 0 0) 0 f 0 (0 1) : "_eye_opening_2" (0 0 0 0) 0 f 0 (1 1) : "_eye_opening_3" (0 0 0 0) 0 f 0 (2 1) "eye_closing": animation: cycle "eye_opening" shapes: : "eye_opening" (0 0 0 0) 0 f 0+r "eye_open": shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_open" (0 0 0 0) 0 f "eye_looking": animation: cycle 1 shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_looking_1" (0 0 0 0) 0 f 0 (0 1) "eye_unlooking": animation: cycle "eye_looking" shapes: : "eye_looking" (0 0 0 0) 0 f 0+r "eye_look": shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_look" (0 0 0 0) 0 f "eye_looking_l": animation: cycle 1 shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_looking_1" (0 0 0 0) 4 f 0 (0 1) "eye_unlooking_l": animation: cycle "eye_looking_l" shapes: : "eye_looking_l" (0 0 0 0) 0 f 0+r "eye_look_l": shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_look" (0 0 0 0) 4 f "eye_looking_d": animation: cycle 1 shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_looking_1" (0 0 0 0) 8 f 0 (0 1) "eye_unlooking_d": animation: cycle "eye_looking_d" shapes: : "eye_looking_d" (0 0 0 0) 0 f 0+r "eye_look_d": shapes: : "_eye_border" (0 0 0 0) 0 f : "_eye_look" (0 0 0 0) 8 f shapes: "human_head": hexpicture: ;; +---+ ;; \ 5\ ;; +---+ ;; --| \ 5\ ;; + 5|5 +---+ ;; --|--| | ;; + 5| | ;; --|--|D | ;; + 5|5 +---+ ;; --|--| | ;; + 5| | ;; | --|D | ;; | +---+ ;; * | ;; --D| ;; + "human_torso": hexpicture: ;; + ;; --|-- ;; + 7|7 + ;; |--|--|| ;; |7 + 7|| ;; |--|--| + ;; + 7|7 +F| ;; |--|-- || ;; |E + || ;; |--|| + ;; + E||F--| ;; |--| + 6| ;; |C +E|--| ;; |-- ||6 + ;; + ||--| ;; | | + 4| ;; |C|C--|--| ;; +---* C|4 + ;; --|-- ;; + "human_legs": hexpicture: ;; +---+ ;; | | -- ;; |9| + ;; + || ;; |--9|| ;; |1 + | ;; |--|9+ ;; + 1|| ;; | --|| ;; | + ;; + || ;; |--1|| ;; |1 + | ;; |--|9+ ;; + 1|| ;; |--|| ;; |B + ;; |--| ;; + 3| ;; | --| ;; | + ;; + | | ;; --8|7| ;; *---+ "human_stand": shapes: # LEGS OFFSET TORSO OFFSET HEAD OFFSET : "human_head" eval(( 2 0 0 0) + ( 0 -1 3 4) + (-1 1 1 3)) 0 f : "human_torso" eval(( 2 0 0 0) + ( 0 -1 3 4) + ( 0 0 0 0)) 0 f : "human_legs" eval(( 2 0 0 0) + ( 0 0 0 0) + ( 0 0 0 0)) 0 f shapes: "_coin_beast_body": hexpicture: ;; +---+---+ ;; | | | | | | ;; |F|F|D|D|5| ;; +---+---+---+ ;; | | | | | | | | ;; |D|D|8|8|8|D|5| ;; +---+---*---+---+ ;; | | | | | | | | ;; |5|.|8|8|8|.|5| ;; +---+---+---+ ;; | | | | | | ;; |.|.|.|.|.| ;; +---+---+ "_coin_beast_leg_stand": hexpicture: ;; + ;; | | ;; |8| ;; +---+ ;; -- | | ;; + |8| ;; | | + ;; |5|5-- ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | | ;; |F|F| ;; *---+ "_coin_beast_leg_turn1": hexpicture: ;; + ;; | | ;; |8| ;; +---+ ;; | | -- ;; |8| + ;; + | ;; | --5| ;; | + ;; + | ;; |--D| ;; |F + ;; |--| ;; + F| ;; --| ;; *---+ "_coin_beast_legs_stand": shapes: : "_coin_beast_leg_stand" (0 0 0 0) 0 f : "_coin_beast_leg_stand" (3 2 0 -1) 6 t "_coin_beast_bleg_step1": hexpicture: ;; + ;; | | ;; |5| ;; +---+ ;; | | | ;; |5|5| ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | ;; | | ;; |F | ;; +---* "_coin_beast_bleg_step2": hexpicture: ;; + ;; | | ;; |5| ;; +---+ ;; | | | ;; |5|5| ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | ;; | | ;; |F | ;; +---* "_coin_beast_fleg_step1": hexpicture: ;; + ;; | | ;; |8| ;; +---+ ;; -- | | ;; + |8| ;; | | + ;; |5|5-- ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | ;; | | ;; |F | ;; *---+ "_coin_beast_fleg_step2": hexpicture: ;; + ;; | | ;; |5| ;; +---+ ;; -- | | ;; + |5| ;; | | + ;; |D|D-- ;; +---+ ;; | | ;; | | ;; |F | ;; +---+ ;; | | ;; | | ;; |. | ;; *---+ "_coin_beast_fleg_step3": hexpicture: ;; + ;; | | ;; |5| ;; +---+ ;; -- | | ;; + |5| ;; | | + ;; |F|D-- ;; +---+ ;; | | ;; | | ;; |. | ;; +---+ ;; | | ;; | | ;; |. | ;; *---+ "_coin_beast_fleg_step_end1": hexpicture: ;; + ;; | | ;; |D| ;; +---+ ;; | | | ;; |D|F| ;; +---+ ;; | | ;; | | ;; |. | ;; +---+ ;; | | | ;; |.|.| ;; +---* "_coin_beast_fleg_step_end2": hexpicture: ;; + ;; | | ;; |5| ;; +---+ ;; | | | ;; |5|D| ;; +---+ ;; | | ;; | | ;; |F | ;; +---+ ;; | | | ;; |.|.| ;; +---* "_coin_beast_fleg_step_end3": hexpicture: ;; + ;; | | ;; |8| ;; +---+ ;; | | | ;; |8|5| ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | | ;; |F|F| ;; +---* "_coin_beast_leg_crawling": hexpicture: ;; + ;; --| ;; +---+---+ 8| ;; | | |--| ;; | | |8 + ;; |5 |5 |-- ;; +---+---+ ;; | | | | ;; |D|D|.| ;; +---+ ;; | | | ;; |F|F| ;; *---+ "_coin_beast_legs_crawling": shapes: : "_coin_beast_leg_crawling" (0 0 0 0) 0 f : "_coin_beast_leg_crawling" (3 2 0 -1) 6 t "_coin_beast_leg_crawl": hexpicture: ;; +---+---+ ;; | | | | | ;; |5|5|5|8| ;; +---+---+ ;; | | -- ;; |D| + ;; + | | ;; --D|F| ;; *---+ "_coin_beast_leg_jump": hexpicture: ;; * ;; | | ;; |8| ;; +---+ ;; | | | ;; |8|5| ;; +---+ ;; | | ;; | | ;; |D | ;; +---+ ;; | | | ;; |F|F| ;; +---+ "_coin_beast_legs_jump": shapes: : "_coin_beast_leg_jump" eval((0 1 3 1) + (-1 0 0 0)) 10 f : "_coin_beast_leg_jump" eval((0 1 3 1) + ( 0 0 0 0)) 1 f "_coin_beast_legs_crawl": shapes: : "_coin_beast_leg_crawl" (0 0 0 0) 0 f : "_coin_beast_leg_crawl" (3 2 0 -1) 6 t "_coin_beast_body_and_head": animation: cycle "coin" shapes: : "_coin_beast_body" (0 0 0 0) 0 f : "coin" (0 0 0 0) 0 f "coin_beast_stand": animation: cycle "_coin_beast_body_and_head" shapes: : "_coin_beast_legs_stand" (0 0 0 0) 0 f : "_coin_beast_body_and_head" (0 1 3 1) 0 f "coin_beast_turn": animation: cycle 3 shapes: : "_coin_beast_legs_stand" (3 2 0 -1) 6 t 0 (0 1) : "_coin_beast_body_and_head" eval((0 1 3 1) + (0 0 0 -1)) 6 t 0 (0 1) : "_coin_beast_legs_stand" (0 0 0 0) 0 f 0 (1 2) : "_coin_beast_body_and_head" eval((0 1 3 1) + (0 0 0 -1)) 0 f 0 (1 1) : "_coin_beast_body_and_head" eval((0 1 3 1) + (0 0 0 0)) 0 f 0 (2 1) "_coin_beast_body_and_head_step": animation: cycle "coin" shapes: : "_coin_beast_body" (0 0 0 0) 0 f : "coin" (1 0 0 0) 0 f "coin_beast_step": animation: cycle 6 shapes: : "_coin_beast_bleg_step1" (0 0 0 0) 0 f 0 (0 2) : "_coin_beast_bleg_step2" (0 0 0 0) 0 f 0 (2 4) : "_coin_beast_fleg_step1" eval((0 0 0 0) - (3 2 0 -1)) 0 f 0 (0 1) : "_coin_beast_fleg_step2" eval((1 0 0 0) - (3 2 0 -1)) 0 f 0 (1 1) : "_coin_beast_fleg_step3" eval((2 0 0 0) - (3 2 0 -1)) 0 f 0 (2 1) : "_coin_beast_fleg_step_end1" eval((-2 0 0 0) + (3 2 0 -1)) 0 f 0 (3 1) : "_coin_beast_fleg_step_end2" eval((-1 0 0 0) + (3 2 0 -1)) 0 f 0 (4 1) : "_coin_beast_fleg_step_end3" eval(( 0 0 0 0) + (3 2 0 -1)) 0 f 0 (5 1) : "_coin_beast_body_and_head_step" eval((0 1 3 1) - (3 2 0 -1)) 0 f 0 (0 1) : "_coin_beast_body_and_head_step" eval((1 1 3 1) - (3 2 0 -1)) 0 f 0 (1 1) : "_coin_beast_body_and_head_step" eval((3 1 3 1) - (3 2 0 -1)) 0 f 0 (2 1) : "_coin_beast_body_and_head_step" eval((4 1 3 1) - (3 2 0 -1)) 0 f 0 (3 3) "coin_beast_step_up": animation: cycle 5 shapes: : "_coin_beast_fleg_step1" eval((3 2 0 -1)^4 + ( 0 0 0 0)) eval(0 - 2) f 0 (0 1) : "_coin_beast_fleg_step2" eval((3 2 0 -1)^4 + ( 1 0 -1 0)) eval(0 - 2) f 0 (1 1) : "_coin_beast_fleg_step_end1" eval((3 2 0 -1) + ( 0 0 0 0)) eval(0 - 0) f 0 (2 1) : "_coin_beast_fleg_step_end2" eval((3 2 0 -1) + ( 0 0 0 0)) eval(0 - 0) f 0 (3 1) : "_coin_beast_fleg_step_end3" eval((3 2 0 -1) + ( 0 0 0 0)) eval(0 - 0) f 0 (4 1) : "_coin_beast_leg_stand" eval((0 0 0 0) + ( 0 0 0 0)) eval(6 - 2) t 0 (0 1) : "_coin_beast_leg_turn1" eval((0 0 0 0) + ( 0 0 0 0)) eval(6 - 2) t 0 (1 1) : "_coin_beast_leg_turn1" eval((0 0 0 0) + ( 0 0 0 0)) eval(0 - 0) f 0 (2 1) : "_coin_beast_leg_stand" eval((0 0 0 0) + ( 0 0 0 0)) eval(0 - 0) f 0 (3 2) : "_coin_beast_body_and_head_step" (0 1 3 1) 11 f 0 (0 2) : "_coin_beast_body_and_head" (0 1 3 1) 0 f -4+ (2 3) # "-4+": noting that this frame is (... 3), we start the coin animation 3+1 = 4 frames early "coin_beast_step_down": animation: cycle "coin_beast_step" shapes: : "coin_beast_step" (0 0 0 0) 0 f "coin_beast_crawling": animation: cycle 1 shapes: : "_coin_beast_legs_crawling" (0 0 0 0) 0 f : "_coin_beast_body_and_head" (0 1 3 0) 0 f "coin_beast_uncrawling": animation: cycle "coin_beast_crawling" shapes: : "coin_beast_crawling" (0 0 0 0) 0 f 0+r "coin_beast_crawl": animation: cycle "_coin_beast_body_and_head" shapes: : "_coin_beast_legs_crawl" (0 0 0 0) 0 f : "_coin_beast_body_and_head" (1 1 1 0) 0 f "coin_beast_crawl_step": animation: cycle 3 shapes: : "coin_beast_crawl" (-2 0 0 0) 0 f 0 (0 1) : "coin_beast_crawl" (-1 0 0 0) 0 f 0 (1 1) : "coin_beast_crawl" ( 0 0 0 0) 0 f 0 (2 1) "coin_beast_crawl_step_down": animation: cycle 3 shapes: : "coin_beast_crawl" (-2 0 0 0) 0 f 0 (0 1) : "coin_beast_crawl" (-1 0 0 0) 0 f 0 (1 1) : "coin_beast_crawl" ( 0 0 0 0) 0 f 0 (2 1) "_coin_beast_jump": shapes: : "_coin_beast_legs_jump" (0 0 0 0) 0 f : "_coin_beast_body_and_head_step" (0 1 3 1) 0 f "coin_beast_jump": animation: cycle 4 shapes: : "_coin_beast_jump" (-1 0 0 0) 0 f 0 (0 1) : "_coin_beast_jump" ( 0 0 0 0) 0 f 0 (1 3) $SET_BOOL ALT import "data/_minimap.fus" # Expected vars: # NS (str), e.g. "spider_", "" $SET_STR NS "" shapes: $PREFIX NS "hexroller_body": shapes: : "map_vert0" (0 0 0 0) 0 f : "map_edge1" (0 0 0 0) 0 f : "map_edge1" (0 0 0 0) 2 f : "map_edge0" (0 0 0 0) 4 f : "map_edge0" (0 0 0 0) 6 f : "map_edge0" (0 0 0 0) 8 f : "map_edge0" (0 0 0 0) 10 f : "map_face1" (0 0 0 0) 0 f : "map_face1" (0 0 0 0) 2 f : "map_face0" (0 0 0 0) 4 f : "map_face0" (0 0 0 0) 6 f : "map_face0" (0 0 0 0) 8 f : "map_face0" (0 0 0 0) 10 f $PREFIX NS "hexroller_foot": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 3 : "sq" ( 1 0 0 0) 1 f eval: 1 + 3 : "tri" ( 0 0 0 0) 2 f eval: 1 + 3 : "sq" ( 0 0 1 0) 3 f eval: 1 + 3 : "tri" ( 0 0 0 0) 4 f eval: 1 + 11 : "sq" (-1 0 1 0) 5 f eval: 1 + 11 : "tri" ( 0 0 0 0) 6 f eval: 1 + 11 : "sq" (-1 0 0 0) 7 f eval: 1 + 11 : "tri" ( 0 0 0 0) 8 f eval: 1 + 15 : "sq" ( 0 0 -1 0) 9 f eval: 1 + 15 : "tri" ( 0 0 0 0) 10 f eval: 1 + 11 : "sq" ( 1 0 -1 0) 11 f eval: 1 + 11 $PREFIX NS "hexroller": shapes: : "hexroller_body" ( 0 1 3 1) 0 f : "hexroller_foot" ( 0 0 0 0) 0 f $PREFIX NS "hexroller_R1": shapes: : "hexroller_body" ( 0 1 3 1) 2 f : "hexroller_foot" ( 0 0 0 0) 0 f $PREFIX NS "hexroller_R2": shapes: : "hexroller_body" ( 0 1 3 1) 4 f : "hexroller_foot" ( 0 0 0 0) 0 f $PREFIX NS "hexroller_R3": shapes: : "hexroller_body" ( 0 1 3 1) 6 f : "hexroller_foot" ( 0 0 0 0) 0 f $PREFIX NS "hexroller_R4": shapes: : "hexroller_body" ( 0 1 3 1) 8 f : "hexroller_foot" ( 0 0 0 0) 0 f $PREFIX NS "hexroller_R5": shapes: : "hexroller_body" ( 0 1 3 1) 10 f : "hexroller_foot" ( 0 0 0 0) 0 f #$SET_BOOL HOTSPOT_VISIBLE shapes: "_hotspot_vertex": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 0 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 0 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 0 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 0 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 0 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 0 "_hotspot_edge": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 0 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 0 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 0 #################################################### # WAITING "_hotspot_waiting_sixth": shapes: : "_hotspot_vertex" (3 2 0 -1) 0 f : "_hotspot_edge" (3 2 0 -1) 4 f "_hotspot_waiting": shapes: : "_hotspot_waiting_sixth" (0 0 0 0) 0 f : "_hotspot_waiting_sixth" (0 0 0 0) 2 f : "_hotspot_waiting_sixth" (0 0 0 0) 4 f : "_hotspot_waiting_sixth" (0 0 0 0) 6 f : "_hotspot_waiting_sixth" (0 0 0 0) 8 f : "_hotspot_waiting_sixth" (0 0 0 0) 10 f "hotspot_waiting": $IF HOTSPOT_VISIBLE: shapes: : "_hotspot_waiting" (0 0 0 0) 0 f #################################################### # TOUCHED "_hotspot_touched_sixth": shapes: : "_hotspot_vertex" (3 2 0 -1) 0 f "_hotspot_touched": shapes: : "_hotspot_touched_sixth" (0 0 0 0) 0 f : "_hotspot_touched_sixth" (0 0 0 0) 2 f : "_hotspot_touched_sixth" (0 0 0 0) 4 f : "_hotspot_touched_sixth" (0 0 0 0) 6 f : "_hotspot_touched_sixth" (0 0 0 0) 8 f : "_hotspot_touched_sixth" (0 0 0 0) 10 f "hotspot_touched": $IF HOTSPOT_VISIBLE: shapes: : "_hotspot_touched" (0 0 0 0) 0 f shapes: "rocket_body": hexpicture: ;; ;; ;; ;; ;; +---+---+ ;; | | |-- ;; | | |C +---+ ;; |9 |9 |--| |-- ;; +---+---* C| |C + ;; | | |--|9 |-- ;; | | |4 +---+ ;; |1 |1 |-- ;; +---+---+ ;; ;; ;; ;; "rocket_flame": animation: cycle 6 prismels: : "tri" ( 0 0 0 0) 5 f eval(1 + 8 + 7) (0 1) : "tri" ( 0 -1 0 0) 3 f eval(1 + 8 + 7) (0 1) : "tri" ( 0 0 0 0) 5 f eval(1 + 8 + 6) (1 1) : "tri" ( 0 -1 0 0) 3 f eval(1 + 8 + 6) (1 1) : "tri" ( 0 0 0 0) 5 f eval(1 + 8 + 4) (2 1) : "tri" ( 0 -1 0 0) 3 f eval(1 + 8 + 4) (2 1) : "tri" ( 0 0 0 0) 5 f eval(1 + 0 + 4) (3 1) : "tri" ( 0 -1 0 0) 3 f eval(1 + 0 + 4) (3 1) "rocket_fire": animation: cycle 6 shapes: : "rocket_flame" eval(0) 0 f 0+ : "rocket_flame" eval( F ) 0 f -1+ : "rocket_flame" eval( - B) 0 f -1+ : "rocket_flame" eval( F - B) 0 f -2+ : "rocket_flame" eval( F*2 - B ) 0 f -3+ : "rocket_flame" eval( F - B*2) 0 f -3+ #: "rocket_flame" eval( F*2 ) 0 f -4+ #: "rocket_flame" eval( - B*2) 0 f -4+ : "rocket_flame" eval( F*2 - B*2) 0 f -4+ "rocket": animation: cycle 6 shapes: : "rocket_body" ( 0 0 0 0) 0 f : "rocket_fire" (-2 0 0 0) 0 f "rocket_forward": animation: once 2 shapes: : "rocket_body" (-4 0 0 0) 0 f 0+ (0 1) : "rocket_fire" (-4 0 0 0) 0 f 0+ (0 1) : "rocket_body" (-2 0 0 0) 0 f 0+ (1 1) : "rocket_fire" (-2 0 0 0) 0 f 0+ (1 1) "rocket_turn_up": animation: once 2 shapes: : "rocket_body" eval( E*4) -2 f 0+ (0 1) : "rocket_fire" eval( E*4) -2 f 0+ (0 1) : "rocket_fire" eval( E*4) 0 f 0+ (0 1) : "rocket_body" eval( E*2) -1 f 0+ (1 1) : "rocket_fire" eval( E*2) -1 f 0+ (1 1) "rocket_turn_down": animation: once 2 shapes: : "rocket_body" eval(-C*4) 2 f 0+ (0 1) : "rocket_fire" eval(-C*4) 2 f 0+ (0 1) : "rocket_fire" eval(-C*4) 0 f 0+ (0 1) : "rocket_body" eval(-C*2) 1 f 0+ (1 1) : "rocket_fire" eval(-C*2) 1 f 0+ (1 1) $SET_STR NS "" $UNSET_BOOL SPIDER import "data/_bird.fus" $SET_STR NS "spider_" $SET_BOOL SPIDER import "data/_bird.fus" # Expected variables: # ALT (bool) - Set this to use the "alternate" prismels for the minimap $IF ALT: import "data/prismels_alt.fus" $IF !ALT: import "data/prismels.fus" import "data/prismel_shapes.fus" palmappers: "minimap_target": : eval(1 + 1): eval: 1 + 4 #eval(1 + 2): eval: 1 + 4 #eval(1 + 3): eval: 1 + 4 eval(1 + 4): eval: 1 + 4 #eval(1 + 5): eval: 1 + 4 eval(1 + 6): eval: 1 + 4 eval(1 + 7): eval: 1 + 4 #eval(1 + 8): eval: 1 + 4 eval(9 + 1): eval: 9 + 4 #eval(9 + 2): eval: 9 + 4 #eval(9 + 3): eval: 9 + 4 eval(9 + 4): eval: 9 + 4 #eval(9 + 5): eval: 9 + 4 eval(9 + 6): eval: 9 + 4 eval(9 + 7): eval: 9 + 4 #eval(9 + 8): eval: 9 + 4 shapes: ########## # DOUBLE # ########## "double_edge": prismels: : "edge" (0 0 0 0) 0 f eval: 1 + 1 : "edge" (1 0 0 0) 0 f eval: 1 + 1 : "vert" (1 0 0 0) 0 f eval: 1 + 1 "double_sq": prismels: : "sq" (0 0 0 0) 0 f eval: 1 + 1 : "sq" (1 0 0 0) 0 f eval: 1 + 1 : "sq" (0 0 0 1) 0 f eval: 1 + 1 : "sq" (1 0 0 1) 0 f eval: 1 + 1 : "vert" (1 0 0 1) 0 f eval: 1 + 1 : "edge" (1 0 0 1) 0 f eval: 1 + 1 : "edge" (1 0 0 1) 3 f eval: 1 + 1 : "edge" (1 0 0 1) 6 f eval: 1 + 1 : "edge" (1 0 0 1) 9 f eval: 1 + 1 "double_tri": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 1 : "tri" (1 0 0 0) 0 f eval: 1 + 1 : "tri" (0 0 1 0) 0 f eval: 1 + 1 : "tri" (1 0 1 0) 6 f eval: 1 + 1 : "edge" (1 0 0 0) 2 f eval: 1 + 1 : "edge" (0 0 1 0) 10 f eval: 1 + 1 : "edge" (1 0 1 0) 6 f eval: 1 + 1 "double_dia": prismels: : "dia" (0 0 0 0) 0 f eval: 1 + 1 : "dia" (1 0 0 0) 0 f eval: 1 + 1 : "dia" (0 1 0 0) 0 f eval: 1 + 1 : "dia" (1 1 0 0) 0 f eval: 1 + 1 : "vert" (1 1 0 0) 0 f eval: 1 + 1 : "edge" (1 1 0 0) 0 f eval: 1 + 1 : "edge" (1 1 0 0) 1 f eval: 1 + 1 : "edge" (1 1 0 0) 6 f eval: 1 + 1 : "edge" (1 1 0 0) 7 f eval: 1 + 1 mappers: "double": solid unit: 2 0 0 0 entries: : "vert" -> "vert" : "edge" -> "double_edge" : "sq" -> "double_sq" : "tri" -> "double_tri" : "dia" -> "double_dia" shapes: "minimap.vert": $IF ALT: prismels: : "vert" (0 0 0 0) 0 f eval: 1 + 8 + 7 "minimap.edge": $IF ALT: prismels: : "edge" (0 0 0 0) 0 f eval: 1 + 0 + 7 "minimap.face": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 1 "minimap.vert.tunnel": $IF ALT: prismels: : "vert" (0 0 0 0) 0 f eval: 1 + 0 + 1 "minimap.edge.tunnel": $IF ALT: prismels: : "edge" (0 0 0 0) 0 f eval: 1 + 0 + 1 "minimap.face.tunnel": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 1 "minimap.save": animation: cycle 12 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 8 + 2) (0 6) : "tri" (0 0 0 0) 0 f eval(1 + 0 + 2) (6 6) "minimap.minimap": animation: cycle 12 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 8 + 5) (0 6) : "tri" (0 0 0 0) 0 f eval(1 + 0 + 5) (6 6) "minimap.door": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 3 "minimap.water": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 1 "minimap.marker": animation: cycle 6 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 8 + 7) (0 3) $IF ALT: : "vert" (0 0 0 0) 0 f eval(1 + 8 + 7) (3 3) : "vert" (1 0 0 0) 0 f eval(1 + 8 + 7) (3 3) : "vert" (0 0 1 0) 0 f eval(1 + 8 + 7) (3 3) : "edge" (0 0 0 0) 0 f eval(1 + 8 + 7) (3 3) : "edge" (0 0 0 0) 2 f eval(1 + 8 + 7) (3 3) : "edge" (1 0 0 0) 4 f eval(1 + 8 + 7) (3 3) geomfonts: "geomfont1": font: "data/font.fus" prismel: "sq" (1 0 0 0) (0 0 0 1) shapes: ########## # DODECA # ########## "dodeca_sixth": # + # +++ # ++++ # . + # -+ # / | # +- \ # | | # / \ -+ # | | / | # 0---+- | # \ | # -+ prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 1 : "tri" (1 0 0 0) 11 f eval: 1 + 2 : "sq" (1 0 0 0) 1 f eval: 1 + 3 "dodeca": shapes: : "dodeca_sixth" (0 0 0 0) 0 f : "dodeca_sixth" (0 0 0 0) 2 f : "dodeca_sixth" (0 0 0 0) 4 f : "dodeca_sixth" (0 0 0 0) 6 f : "dodeca_sixth" (0 0 0 0) 8 f : "dodeca_sixth" (0 0 0 0) 10 f ############### # DODECA ANIM # ############### "dodeca_anim_sixth": animation: oscillate 6 shapes: : "dodeca_sixth" (0 0 0 0) 0 f prismels: : "tri" (1 1 0 0) 2 f eval(1 + 4) (1 1) : "sq" (1 1 0 0) 1 f eval(1 + 4) (2 4) : "tri" (1 2 0 0) 2 f eval(1 + 3) (3 1) : "sq" (1 2 0 0) 1 f eval(1 + 3) (4 2) : "tri" (1 3 0 0) 2 f eval(1 + 2) (5 1) "dodeca_anim": animation: cycle 12 shapes: : "dodeca_anim_sixth" (0 0 0 0) 0 f 0+ : "dodeca_anim_sixth" (0 0 0 0) 2 f 2+ : "dodeca_anim_sixth" (0 0 0 0) 4 f 4+ : "dodeca_anim_sixth" (0 0 0 0) 6 f 6+ : "dodeca_anim_sixth" (0 0 0 0) 8 f 8+ : "dodeca_anim_sixth" (0 0 0 0) 10 f 10+ ############ # DODECA B # ############ "dodeca_B_twelfth": animation: oscillate 6 # + # | # / \ # | | # -+---+ # / / # 0---+- prismels: : "dia" (0 0 0 0) 0 f eval(1 + 1) (0 1) : "tri" (0 1 0 0) 0 f eval(1 + 1) (0 1) : "dia" (0 0 0 0) 0 f eval(1 + 1) (1 1) : "tri" (0 1 0 0) 0 f eval(1 + 2) (1 1) : "dia" (0 0 0 0) 0 f eval(1 + 2) (2 1) : "tri" (0 1 0 0) 0 f eval(1 + 3) (2 1) : "dia" (0 0 0 0) 0 f eval(1 + 3) (3 1) : "tri" (0 1 0 0) 0 f eval(1 + 4) (3 1) : "dia" (0 0 0 0) 0 f eval(1 + 4) (4 1) : "tri" (0 1 0 0) 0 f eval(1 + 5) (4 1) : "dia" (0 0 0 0) 0 f eval(1 + 5) (5 1) : "tri" (0 1 0 0) 0 f eval(1 + 5) (5 1) "dodeca_B": animation: cycle 12 shapes: : "dodeca_B_twelfth" (0 0 0 0) 0 f 0+ : "dodeca_B_twelfth" (0 0 0 0) 1 f 1+ : "dodeca_B_twelfth" (0 0 0 0) 2 f 2+ : "dodeca_B_twelfth" (0 0 0 0) 3 f 3+ : "dodeca_B_twelfth" (0 0 0 0) 4 f 4+ : "dodeca_B_twelfth" (0 0 0 0) 5 f 5+ : "dodeca_B_twelfth" (0 0 0 0) 6 f 6+ : "dodeca_B_twelfth" (0 0 0 0) 7 f 7+ : "dodeca_B_twelfth" (0 0 0 0) 8 f 8+ : "dodeca_B_twelfth" (0 0 0 0) 9 f 9+ : "dodeca_B_twelfth" (0 0 0 0) 10 f 10+ : "dodeca_B_twelfth" (0 0 0 0) 11 f 11+ shapes: "_droplet_sixth": animation: oscillate 6 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 0 + 1) (1 2) : "tri" (0 0 0 0) 0 f eval(1 + 0 + 3) (3 2) : "tri" (0 0 0 0) 0 f eval(1 + 8 + 1) (5 1) #: "tri" (0 0 0 0) 0 f eval(1 + 8 + 3) (4 1) #: "tri" (0 0 0 0) 0 f eval(1 + 8 + 7) (5 1) "_droplet": animation: cycle 12 shapes: : "_droplet_sixth" (0 0 0 0) 0 f 0+ : "_droplet_sixth" (0 0 0 0) 2 f 1+ : "_droplet_sixth" (0 0 0 0) 4 f 2+ : "_droplet_sixth" (0 0 0 0) 6 f 3+ : "_droplet_sixth" (0 0 0 0) 8 f 4+ : "_droplet_sixth" (0 0 0 0) 10 f 5+ "droplet": animation: cycle 24 shapes: : "_droplet" ( 1 1 1 0) 0 f 0 ( 0 2) : "_droplet" ( 1 1 1 0) 0 f 1 ( 2 2) : "_droplet" ( 1 1 1 0) 0 f 2 ( 4 2) : "_droplet" ( 1 1 1 0) 0 f 3 ( 6 2) : "_droplet" ( 1 1 1 0) 0 f 4 ( 8 2) : "_droplet" ( 1 1 1 0) 0 f 5 (10 2) : "_droplet" ( 1 1 1 0) 0 f 6 (12 2) : "_droplet" ( 1 1 1 0) 0 f 7 (14 2) : "_droplet" ( 1 1 1 0) 0 f 8 (16 2) : "_droplet" ( 1 1 1 0) 0 f 9 (18 2) : "_droplet" ( 1 1 1 0) 0 f 10 (20 2) : "_droplet" ( 1 1 1 0) 0 f 11 (22 2) shapes: "_food": prismels: : "sq" (-1 0 0 0) 0 f eval: 2 + 0 + 1 : "sq" ( 0 0 0 0) 0 f eval: 2 + 8 + 1 : "sq" (-1 0 0 -1) 0 f eval: 2 + 8 + 1 : "sq" ( 0 0 0 -1) 0 f eval: 7 + 8 + 1 "food": animation: cycle 24 shapes: : "_food" (0 0 0 0) 0 f 0 ( 0 1) : "_food" (0 0 0 0) 1 f 0 ( 1 1) : "_food" (0 0 0 0) 2 f 0 ( 2 1) : "_food" (0 0 0 0) 3 f 0 ( 3 1) : "_food" (0 0 0 0) 4 f 0 ( 4 1) : "_food" (0 0 0 0) 5 f 0 ( 5 1) : "_food" (0 0 0 0) 6 f 0 ( 6 1) : "_food" (0 0 0 0) 7 f 0 ( 7 1) : "_food" (0 0 0 0) 8 f 0 ( 8 1) : "_food" (0 0 0 0) 9 f 0 ( 9 1) : "_food" (0 0 0 0) 10 f 0 (10 1) : "_food" (0 0 0 0) 11 f 0 (11 1) : "_food" (0 0 0 0) 0 f 0 (12 12) "food_crouch": animation: cycle "food" shapes: : "food" (1 1 1 0) 0 f "food_carried": shapes: : "_food" (0 0 0 0) 0 f # Expected vars: # * PREFIX (str) e.g. "switch_", "switch_oneway_" shapes: $PREFIX PREFIX "_top_off": prismels: : "tri" ( 0 0 0 0) 0 f eval: 6 + 1 : "tri" ( 0 0 0 0) 2 f eval: 6 + 1 : "tri" ( 0 0 0 0) 4 f eval: 14 + 1 : "tri" ( 0 0 0 0) 6 f eval: 14 + 1 : "tri" ( 0 0 0 0) 8 f eval: 15 + 1 : "tri" ( 0 0 0 0) 10 f eval: 14 + 1 : "sq" ( 1 0 0 0) 1 f eval: 7 + 1 : "sq" (-1 0 1 0) 5 f eval: 8 + 1 : "sq" ( 0 0 -1 0) 9 f eval: 7 + 1 $PREFIX PREFIX "top_off": animation: cycle 12 shapes: : $PREFIX PREFIX "_top_off" (0 0 0 0) 0 f 0 ( 0 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 1 f 0 ( 1 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 2 f 0 ( 2 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 3 f 0 ( 3 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 4 f 0 ( 4 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 5 f 0 ( 5 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 6 f 0 ( 6 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 7 f 0 ( 7 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 8 f 0 ( 8 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 9 f 0 ( 9 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 10 f 0 (10 1) : $PREFIX PREFIX "_top_off" (0 0 0 0) 11 f 0 (11 1) $PREFIX PREFIX "top_on": prismels: : "tri" ( 0 0 0 0) 0 f eval: 8 + 1 : "tri" ( 0 0 0 0) 2 f eval: 7 + 1 : "tri" ( 0 0 0 0) 4 f eval: 15 + 1 : "tri" ( 0 0 0 0) 6 f eval: 15 + 1 : "tri" ( 0 0 0 0) 8 f eval: 7 + 1 : "tri" ( 0 0 0 0) 10 f eval: 7 + 1 : "sq" ( 1 0 0 0) 1 f eval: 8 + 1 : "sq" (-1 0 1 0) 5 f eval: 7 + 1 : "sq" ( 0 0 -1 0) 9 f eval: 8 + 1 $PREFIX PREFIX "off": animation: cycle 12 prismels: : "sq" ( 1 1 0 0) 0 f eval: 7 + 1 : "sq" ( 1 1 0 1) 0 f eval: 8 + 1 : "sq" ( 1 1 0 2) 0 f eval: 7 + 1 shapes: : $PREFIX PREFIX "top_off" (1 1 1 3) 0 f $PREFIX PREFIX "on": animation: cycle 12 prismels: : "sq" ( 1 1 0 0) 0 f eval: 8 + 1 shapes: : $PREFIX PREFIX "top_on" (1 1 1 1) 0 f shapes: "l.red_sq": shapes: : "sq" (0 0 0 0) 0 f "l.red" "l.red_tri": shapes: : "tri" (0 0 0 0) 0 f "l.red" "l.red_dia": shapes: : "dia" (0 0 0 0) 0 f "l.red" "l.blu_sq": shapes: : "sq" (0 0 0 0) 0 f "l.blu" "l.blu_tri": shapes: : "tri" (0 0 0 0) 0 f "l.blu" "l.blu_dia": shapes: : "dia" (0 0 0 0) 0 f "l.blu" "red_curvy_sq": shapes: : "curvy_sq" (0 0 0 0) 0 f "red" "red_curvy_tri": shapes: : "curvy_tri" (0 0 0 0) 0 f "red" "red_curvy_dia": shapes: : "curvy_dia" (0 0 0 0) 0 f "red" "red_double_sq": shapes: : "double_sq" (0 0 0 0) 0 f "red" "red_double_tri": shapes: : "double_tri" (0 0 0 0) 0 f "red" "red_double_dia": shapes: : "double_dia" (0 0 0 0) 0 f "red" "l.blu_double_sq": shapes: : "double_sq" (0 0 0 0) 0 f "l.blu" "l.blu_double_tri": shapes: : "double_tri" (0 0 0 0) 0 f "l.blu" "l.blu_double_dia": shapes: : "double_dia" (0 0 0 0) 0 f "l.blu" mappers: "single": # This is a hack which allows test_app->camera_mapper to be set to "single" # to achieve a zoomout effect... solid unit: 1 0 0 0 entries: : "vert" -> "vert" : "edge" -> "edge" : "sq" -> "sq" : "tri" -> "tri" : "dia" -> "dia" "l.red": unit: 1 0 0 0 entries: : "sq" -> "l.red_sq" : "tri" -> "l.red_tri" : "dia" -> "l.red_dia" "l.blu": unit: 1 0 0 0 entries: : "sq" -> "l.blu_sq" : "tri" -> "l.blu_tri" : "dia" -> "l.blu_dia" "red_curvy": unit: 2 4 0 -2 entries: : "sq" -> "red_curvy_sq" : "tri" -> "red_curvy_tri" : "dia" -> "red_curvy_dia" "red_double": unit: 2 0 0 0 entries: : "sq" -> "red_double_sq" : "tri" -> "red_double_tri" : "dia" -> "red_double_dia" "l.blu_double": unit: 2 0 0 0 entries: : "sq" -> "l.blu_double_sq" : "tri" -> "l.blu_double_tri" : "dia" -> "l.blu_double_dia" "double_curvy": map ("double") ("curvy") "curvy_double": map ("curvy") ("double") "curvy_curvy": map ("curvy") ("curvy") "double_curvy_curvy": map ("double") ("curvy_curvy") "curvy_double_curvy": map ("curvy") ("double_curvy") "double_double_curvy_curvy": map ("double") ("double_curvy_curvy") "double_curvy_double_curvy": map ("double") ("curvy_double_curvy") shapes: "double_dodeca_anim": map ("double") ("dodeca_anim") "curvy_dodeca_anim": map ("curvy") ("dodeca_anim") "double_dodeca_B": map ("double") ("dodeca_B") "curvy_dodeca_B": map ("curvy") ("dodeca_B") "double_double_dodeca_anim": map ("double") ("double_dodeca_anim") "double_curvy_dodeca_anim": map ("double") ("curvy_dodeca_anim") "curvy_double_dodeca_anim": map ("curvy") ("double_dodeca_anim") "curvy_curvy_dodeca_anim": map ("curvy") ("curvy_dodeca_anim") "double_double_dodeca_B": map ("double") ("double_dodeca_B") "double_curvy_dodeca_B": map ("double_curvy") ("dodeca_B") "curvy_double_dodeca_B": map ("curvy_double") ("double_dodeca_B") "curvy_curvy_dodeca_B": map ("curvy_curvy") ("dodeca_B") "double_curvy_curvy_dodeca_anim": map ("double_curvy_curvy") ("dodeca_anim") "curvy_double_curvy_dodeca_anim": map ("curvy_double_curvy") ("dodeca_anim") "double_curvy_curvy_dodeca_B": map ("double_curvy_curvy") ("dodeca_B") "curvy_double_curvy_dodeca_B": map ("curvy_double_curvy") ("dodeca_B") "double_double_curvy_curvy_dodeca_B": map ("double_double_curvy_curvy") ("dodeca_B") "double_curvy_double_curvy_dodeca_B": map ("double_curvy_double_curvy") ("dodeca_B") "red_curvy_dodeca_anim": map ("red_curvy") ("dodeca_anim") "l.blu_double_curvy_dodeca_anim": animation: cycle 12 shapes: : "double_curvy_dodeca_anim" (0 0 0 0) 0 f "l.blu" "palmap_grid": shapes: : "curvy_sq" eval((2 4 0 -2) * 0 + (-2 0 4 2) * 0) 0 f "cycle0" : "curvy_sq" eval((2 4 0 -2) * 0 + (-2 0 4 2) * 1) 0 f "cycle1" : "curvy_sq" eval((2 4 0 -2) * 0 + (-2 0 4 2) * 2) 0 f "cycle2" : "curvy_sq" eval((2 4 0 -2) * 1 + (-2 0 4 2) * 0) 0 f "cycle1" : "curvy_sq" eval((2 4 0 -2) * 1 + (-2 0 4 2) * 1) 0 f "cycle2" : "curvy_sq" eval((2 4 0 -2) * 1 + (-2 0 4 2) * 2) 0 f "cycle0" : "curvy_sq" eval((2 4 0 -2) * 2 + (-2 0 4 2) * 0) 0 f "cycle2" : "curvy_sq" eval((2 4 0 -2) * 2 + (-2 0 4 2) * 1) 0 f "cycle0" : "curvy_sq" eval((2 4 0 -2) * 2 + (-2 0 4 2) * 2) 0 f "cycle1" shapes: ############ # CURVY SQ # ############ "curvy_sq_eighth": # +- # | \ # | -+- # | / | \ # +- | -+ # | \ | / | # / -+- \ # | | | # 0- / \ -+ # \ | | / # -+---+- prismels: : "sq" (0 0 0 0) 11 f eval: 1 + 8 + 1 : "tri" (0 1 0 -1) 0 f eval: 1 + 8 + 2 : "sq" (0 1 1 -1) 10 f eval: 1 + 8 + 3 : "tri" (0 1 1 0) 5 f eval: 1 + 2 : "tri" (0 1 1 0) 7 f eval: 1 + 3 : "tri" (0 1 1 0) 9 f eval: 1 + 3 "curvy_sq_quarter": shapes: : "curvy_sq_eighth" (0 0 0 0) 0 f : "curvy_sq_eighth" (0 2 2 0) 6 f "curvy_sq": shapes: : "curvy_sq_quarter" ( 0 0 0 0) 0 f : "curvy_sq_quarter" ( 2 4 0 -2) 3 f : "curvy_sq_quarter" ( 0 4 4 0) 6 f : "curvy_sq_quarter" (-2 0 4 2) 9 f ############# # CURVY TRI # ############# "curvy_tri_third": # +- # | \ # | -+ # | / | # +- \ # | | # / \ -+ # | | / | # -+---+- | # / | | \ | # 0- | | -+ # \ | | / # -+---+- prismels: : "tri" ( 0 0 0 0) 11 f eval: 1 + 8 + 1 : "sq" ( 1 1 0 0) 1 f eval: 1 + 2 : "tri" ( 1 1 0 0) 4 f eval: 1 + 3 : "sq" ( 1 1 0 0) 6 f eval: 1 + 8 + 2 : "tri" ( 1 1 0 0) 9 f eval: 1 + 8 + 3 : "tri" ( 1 1 0 0) 11 f eval: 1 + 8 + 3 : "tri" ( 0 1 1 0) 1 f eval: 1 + 8 + 3 "curvy_tri": shapes: : "curvy_tri_third" ( 0 0 0 0) 0 f : "curvy_tri_third" ( 2 4 0 -2) 4 f : "curvy_tri_third" ( 0 2 2 2) 8 f prismels: : "tri" ( 0 2 1 0) 10 f eval: 1 + 4 ############# # CURVY DIA # ############# "curvy_dia_half": # -+---X # / | \ # +- | -+ # | \ | / | # / -+- / \ # | | | | # +- / -+---+ # | \ | / | | # / -+- / \ / \ # | | | | | # -+- / -+---+---+- # / | \ | / \ \ # 0---+- | -+- -X---+ # \ \ | / # -+---+- prismels: : "dia" ( 0 0 0 0) 11 f eval: 1 + 8 + 1 : "tri" ( 1 1 0 -1) 1 f eval: 1 + 8 + 2 : "tri" ( 1 1 0 -1) 3 f eval: 1 + 8 + 3 : "sq" ( 1 1 0 0) 11 f eval: 1 + 8 + 2 : "sq" ( 1 1 1 0) 11 f eval: 1 + 8 + 3 : "tri" ( 1 2 2 -1) 1 f eval: 1 + 8 + 2 : "tri" ( 1 2 2 -1) 3 f eval: 1 + 8 + 2 : "dia" ( 1 2 0 -1) 1 f eval: 1 + 2 : "dia" ( 1 2 1 -1) 1 f eval: 1 + 3 : "dia" ( 2 3 0 -1) 11 f eval: 1 + 8 + 1 : "tri" ( 2 3 0 -1) 0 f eval: 1 + 2 : "tri" ( 2 3 0 -1) 2 f eval: 1 + 3 : "tri" ( 2 3 0 -1) 4 f eval: 1 + 4 : "tri" ( 2 3 1 -1) 4 f eval: 1 + 5 "curvy_dia": shapes: : "curvy_dia_half" ( 0 0 0 0) 0 f : "curvy_dia_half" ( 4 6 2 -2) 6 f mappers: "curvy": unit: 2 4 0 -2 entries: : "vert" -> "vert" : "edge" -> "edge" : "sq" -> "curvy_sq" : "tri" -> "curvy_tri" : "dia" -> "curvy_dia" "solid_curvy": solid unit: 2 4 0 -2 entries: : "vert" -> "vert" : "edge" -> "edge" : "sq" -> "curvy_sq" : "tri" -> "curvy_tri" : "dia" -> "curvy_dia" unit: 3 2 0 -1 verts: "0": "map_vert0_bg" edges: "0": "map_edge0_bg" faces: "0": "map_face0_bg" "E": frame_offset(1) "map_face_energy_on" "e": "map_face_energy_off" $SET_STR PREFIX "switch_" $UNSET_BOOL ONEWAY import "data/_switch.fus" $SET_STR PREFIX "switch_oneway_" $SET_BOOL ONEWAY import "data/_switch.fus" shapes: "_coin": prismels: : "tri" ( 0 0 0 0) 0 f eval: 5 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 5 + 0 + 1 : "tri" ( 0 0 0 0) 4 f eval: 5 + 8 + 1 : "tri" ( 0 0 0 0) 6 f eval: 5 + 8 + 1 : "tri" ( 0 0 0 0) 8 f eval: 7 + 8 + 1 : "tri" ( 0 0 0 0) 10 f eval: 5 + 8 + 1 "coin": animation: cycle 12 shapes: : "_coin" (0 0 0 0) 0 f 0 ( 0 1) : "_coin" (0 0 0 0) 1 f 0 ( 1 1) : "_coin" (0 0 0 0) 2 f 0 ( 2 1) : "_coin" (0 0 0 0) 3 f 0 ( 3 1) : "_coin" (0 0 0 0) 4 f 0 ( 4 1) : "_coin" (0 0 0 0) 5 f 0 ( 5 1) : "_coin" (0 0 0 0) 6 f 0 ( 6 1) : "_coin" (0 0 0 0) 7 f 0 ( 7 1) : "_coin" (0 0 0 0) 8 f 0 ( 8 1) : "_coin" (0 0 0 0) 9 f 0 ( 9 1) : "_coin" (0 0 0 0) 10 f 0 (10 1) : "_coin" (0 0 0 0) 11 f 0 (11 1) "coin_crouch": animation: cycle 12 shapes: : "coin" (1 1 1 0) 0 f unit: 3 2 0 -1 # Tileset for debugging collmaps and hitboxes. verts: "0": "map_vert_debug" #"1": "map_vert1" #"@": "map_bgvert" edges: "0": "map_edge_debug" #"1": "map_edge1" #"2": "map_edge2" #"=": "map_bgedge" faces: "0": "map_face_debug" #"1": "map_face1" #"2": "map_face2" #"S": "map_savepoint" #"M": "map_minimap" #"w": frame_offset(1) "map_water" #"o": "map_bgface" #"E": frame_offset(1) "map_face_energy_on" #"e": "map_face_energy_off" char_w: 8 char_h: 8 chars: " ": " " " " " " " " " " " " " " " " "A": " " " 7FF7 " " 7F F7 " " F F " " FFFFFF " " F F " " F F " " F F " "B": " " " FFFF7 " " F F7 " " F F " " FFFFF " " F F " " F F " " FFFFF7 " "C": " " " 7FFF7 " " 7F F " " F " " F " " F " " F " " 7FFFFF " "D": " " " FFFF7 " " F F7 " " F F " " F F " " F F " " F F " " FFFFF7 " "E": " " " FFFFFF " " F " " F " " FFFFFF " " F " " F " " FFFFFF " "F": " " " FFFFFF " " F " " F " " FFFFF " " F " " F " " F " "G": " " " 7FFF7 " " 7F F " " F " " F " " F FFF " " F F " " 7FFFFF " "H": " " " F F " " F F " " F F " " FFFFFF " " F F " " F F " " F F " "I": " " " FFF " " F " " F " " F " " F " " F " " FFF " "J": " " " FFF " " F " " F " " F " " F " " F F " " 7FFF7 " "K": " " " F F " " F F7 " " F F7 " " FFF7 " " F F7 " " F F7 " " F F " "L": " " " F " " F " " F " " F " " F " " F " " FFFFFF " "M": " " " F F " " F7 7F " " FF77FF " " F FF F " " F F " " F F " " F F " "N": " " " F7 F " " FF7 F " " F F7 F " " F F7F " " F FF " " F F " " F F " "O": " " " 7FF7 " " 7F F7 " " F F " " F F " " F F " " F F " " 7FFFF7 " "P": " " " FFFF7 " " F F7 " " F F " " FFFFF7 " " F " " F " " F " "Q": " " " 7FF7 " " 7F F7 " " F F " " F 7 F " " F F7F " " F FF " " FFFFF " "R": " " " FFFF7 " " F F7 " " F F " " FFFFF7 " " F F7 " " F F7 " " F F " "S": " " " 7FFF7 " " 7F F " " F " " 7FFFF " " F " " F F " " 7FFFF7 " "T": " " " FFFFFF " " F " " F " " F " " F " " F " " F " "U": " " " F F " " F F " " F F " " F F " " F F " " F F " " 7FFFF7 " "V": " " " F F " " F F " " F F " " F7 7F " " F F " " F77F " " FF " "W": " " " F F " " F F " " F F " " F 77 F " " F7FF7F " " FF FF " " F F " "X": " " " F7 7F " " F F " " F77F " " FF " " 7FF7 " " 7F F7 " " F F " "Y": " " " F F " " F F " " F7 7F " " F7F " " F " " F " " F " "Z": " " " FFFFFF " " 7F " " 7F " " 7F " " 7F " " F " " FFFFFF " "a": " " " " " FFFF7 " " F " " 7FFFFF " " F F " " F F " " 7FFFFF " "b": " " " F " " F " " FFFFF7 " " F F " " F F " " F F " " FFFFF7 " "c": " " " " " " " 7FFFFF " " F " " F " " F " " 7FFFFF " "d": " " " F " " F " " 7FFFFF " " F F " " F F " " F F " " 7FFFFF " "e": " " " " " " " 7FFFF7 " " F F " " FFFFFF " " F " " 7FFFFF " "f": " " " 7FFF " " F " " FFFF " " F " " F " " F " " F " "g": " " " 7FFFF " " F F " " 7FFF7 " " F " " 7FFFFF " " F F " " 7FFFFF " "h": " " " F " " F " " FFFFF7 " " F F " " F F " " F F " " F F " "i": " " " " " F " " " " F " " F " " F " " F " "j": " " " " " F " " " " F " " F " " F " " FF7 " "k": " " " F " " F " " F F " " F F7 " " FFF7 " " F F7 " " F F " "l": " " " 7F " " F " " F " " F " " F " " F " " F7 " "m": " " " " " " " 7F77F7 " " F FF F " " F F " " F F " " F F " "n": " " " " " " " FFFFF7 " " F F " " F F " " F F " " F F " "o": " " " " " " " 7FFFF7 " " F F " " F F " " F F " " 7FFFF7 " "p": " " " " " " " FFFFF7 " " F F " " FFFFF7 " " F " " F " "q": " " " 7FFF7 " " F F " " F F " " 7FFFF " " F " " F " " F7 " "r": " " " " " " " 7FFFF7 " " F F " " F " " F " " F " "s": " " " " " " " 7FFFFF " " F " " 7FFFF7 " " F " " FFFFF7 " "t": " " " F " " F " " FFF " " F " " F " " F " " F7 " "u": " " " " " " " F F " " F F " " F F " " F F " " 7FFFFF " "v": " " " " " " " F F " " F7 7F " " F F " " F77F " " FF " "w": " " " " " " " F F " " F F " " F F " " F FF F " " 7F77F7 " "x": " " " " " " " F F " " 7F F7 " " 7FF7 " " 7F F7 " " F F " "y": " " " " " " " F F " " F F " " 7FFFFF " " F " " FFFFF7 " "z": " " " " " " " FFFFF7 " " F7 " " F7 " " F7 " " FFFFFF " "0": " " " 7FF7 " " 7F F7 " " F 7FF " " F 7F F " " F7F F " " FF F " " 7FFFF7 " "1": " 7 " " 7F " " FF " " F " " F " " F " " F " " FFF " "2": " " " 7FFF7 " " F F " " 7F " " 7F " " 7F " " 7F " " FFFFF " "3": " " " 7FFF7 " " F F " " F " " FF7 " " F " " F F " " 7FFF7 " "4": " 7 " " 7F " " 7FF " " 7F F " " 7F F " " FFFFFF " " F " " F " "5": " " " FFFFF " " F " " FFFF7 " " F7 " " F " " F F " " 7FFFF7 " "6": " " " 7FFF " " 7F " " F " " FFFFF7 " " F F " " F F " " 7FFFF7 " "7": " " " FFFFF " " F " " 7F " " 7F " " F " " F " " F " "8": " " " 7FFF7 " " F F " " F F " " 7FFF7 " " F F " " F F " " 7FFF7 " "9": " " " 7FFF7 " " F F " " F F " " 7FFFF " " F " " F " " FFF7 " "_": " " " " " " " " " " " " " " " FFFFFF " ".": " " " " " " " " " " " " " FF " " FF " ",": " " " " " " " " " " " F " " FF " " F7 " ":": " " " FF " " FF " " " " " " " " FF " " FF " ";": " " " FF " " FF " " " " " " F " " FF " " F7 " "(": " " " 7F " " 7F " " F " " F " " F " " 7F " " 7F " ")": " " " F7 " " F7 " " F " " F " " F " " F7 " " F7 " "[": " " " FFF " " F " " F " " F " " F " " F " " FFF " "]": " " " FFF " " F " " F " " F " " F " " F " " FFF " "{": " " " 7FF " " F " " F " " FF7 " " F " " F " " 7FF " "}": " " " FF7 " " F " " F " " 7FF " " F " " F " " FF7 " "+": " " " " " F " " F " " FFFFF " " F " " F " " " "-": " " " " " " " " " FFFFF " " " " " " " "*": " " " 7 7 " " F7F " " F " " FFFFF " " 7F7 " " F F " " " "/": " " " 7 " " 7F " " 7F " " 7F " " 7F " " F " " " "%": " " " 7 " " FF 7F " " FF7F " " 7F " " 7F FF " " F FF " " " "\\": " " " 7 " " F7 " " F7 " " F7 " " F7 " " F " " " "|": " " " F " " F " " F " " F " " F " " F " " F " "'": " " " F " " F " " " " " " " " " " " "\"": " " " F F " " F F " " " " " " " " " " " "!": " " " F " " F " " F " " F " " " " F " " " "?": " " " 7FFF7 " " F F " " F F " " F7 " " F7 " " " " F " "@": " " " 7FF7 " " 7F F7 " " F 7F F " " F F FF " " F 7FF7 " " F " " 7FFFF " "#": " " " F F " " FFFFFF " " F F " " F F " " FFFFFF " " F F " " " "$": " " " F " " 7FFFF " " F F " " 7FFF7 " " F F " " FFFF7 " " F " "^": " 7 " " 7F7 " " 7F F7 " " F F " " " " " " " " " "&": " " " 7FF7 " " F7 F " " F7 " " 7FF7 7 " " F F7F " " F 7F7 " " 7FFF7F " "`": " 7 " " F7 " " F " " " " " " " " " " " "~": " " " " " " " 7FF7 F " " F 7FF7 " " " " " " " "<": " 7 " " 7F " " 7F " " 7F " " F7 " " F7 " " F7 " " F " ">": " 7 " " F7 " " F7 " " F7 " " 7F " " 7F " " 7F " " F " "=": " " " " " FFFFF " " " " " " FFFFF " " " " " colors: : 0 0 0 : 0 0 127 : 0 127 0 : 0 127 127 : 127 0 0 : 127 0 127 : 127 127 0 : 127 127 127 : 60 60 60 : 60 60 255 : 60 255 60 : 60 255 255 : animate: : (255 60 60) 30 : (255 120 60) 30 : 255 60 255 : 255 255 60 : 255 255 255 : 0 0 0 : 0 0 60 : 0 60 0 : 0 60 60 : 60 0 0 : 60 0 60 : 60 60 0 : 60 60 60 255: 30 50 80 $UNSET_BOOL ALT import "data/_minimap.fus" # Expected vars: # NS (str), e.g. "spider_" # EYESPIDER (bool) import "data/_spider_parts.fus" label "label:head": default $PREFIX NS "head" label "label:crawl_head": default $PREFIX NS "crawl_head" label "label:sleep_head": default $PREFIX NS "sleep_head" label "label:fleg": default $PREFIX NS "fleg" label "label:bleg": default $PREFIX NS "bleg" shapes: $PREFIX NS "stand": labels: : "label:head" ( 0 1 3 1) 0 f : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "look_up": # "stand" -> "looking_up" animation: cycle 1 labels: : "label:head" ( 0 1 3 1) 1 f : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "unlook_up": # "looking_up" -> "stand" animation: cycle $PREFIX NS "look_up" shapes: : $PREFIX NS "look_up" (0 0 0 0) 0 f 0+r $PREFIX NS "looking_up": labels: : "label:head" ( 0 1 3 1) 2 f : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "step": animation: cycle 3 labels: : "label:head" (-1 0 3 1) 0 f (0 1) : "label:head" ( 0 0 3 1) 0 f (1 1) : "label:head" ( 0 1 3 1) 0 f (2 1) : "label:bleg" (-1 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "turn": animation: cycle $PREFIX NS "step" $IF EYESPIDER: shapes: : "_eye_looking_1" ( 0 1 3 1) 7 t 0 ( 0 1) : "_eye_open" ( 0 1 3 1) 0 f 0 ( 1 1) : "_eye_looking_1" ( 0 1 3 1) 11 f 0 ( 2 1) labels: : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $IF !EYESPIDER: shapes: : $PREFIX NS "step" (0 0 0 0) 0 f $PREFIX NS "spit": animation: cycle 10 labels: # Player stand: #: "label:head" ( 0 1 3 1) 0 f (6 1) #: "label:bleg" ( 0 1 1 1) 0 f (6 1) #: "label:fleg" ( 2 1 1 1) 6 t (6 1) # Head : "label:head" (-2 1 3 1) 0 f (0 1) : "label:head" (-2 0 3 1) 0 f (1 4) : "label:head" (-2 1 3 1) 0 f (5 1) : "label:head" (-1 1 3 1) 0 f (6 1) : "label:head" ( 0 1 3 1) 0 f (7 3) # Back leg : "label:bleg" (-1 1 1 1) 0 f (0 1) : "label:bleg" (-2 1 1 1) 1 f (1 5) : "label:bleg" (-1 1 1 1) 0 f (6 1) : "label:bleg" ( 0 1 1 1) 0 f (7 3) # Front leg : "label:fleg" ( 1 1 1 1) 7 t (0 1) : "label:fleg" ( 0 1 1 1) 7 t (1 1) : "label:fleg" ( 0 1 1 1) 6 t (2 7) : "label:fleg" ( 1 1 1 1) 6 t (9 1) $PREFIX NS "looking_up_spit": animation: cycle 10 labels: # Player stand: #: "label:head" ( 0 1 3 1) 0 f (6 1) #: "label:bleg" ( 0 1 1 1) 0 f (6 1) #: "label:fleg" ( 2 1 1 1) 6 t (6 1) # Head : "label:head" (-2 1 3 1) 2 f (0 1) : "label:head" (-2 0 3 1) 2 f (1 4) : "label:head" (-2 1 3 1) 2 f (5 1) : "label:head" (-1 1 3 1) 2 f (6 1) : "label:head" ( 0 1 3 1) 2 f (7 3) # Back leg : "label:bleg" (-1 1 1 1) 0 f (0 1) : "label:bleg" (-2 1 1 1) 1 f (1 5) : "label:bleg" (-1 1 1 1) 0 f (6 1) : "label:bleg" ( 0 1 1 1) 0 f (7 3) # Front leg : "label:fleg" ( 1 1 1 1) 7 t (0 1) : "label:fleg" ( 0 1 1 1) 7 t (1 1) : "label:fleg" ( 0 1 1 1) 6 t (2 7) : "label:fleg" ( 1 1 1 1) 6 t (9 1) $PREFIX NS "crawl_spit": animation: cycle 10 labels: # Player crawl: #: "label:crawl_head" ( 0 1 2 0) 0 f #: "label:bleg" (-1 1 1 1) 0 f #: "label:fleg" ( 2 1 1 1) 6 t # Head : "label:crawl_head" (-2 1 2 0) 0 f (0 1) : "label:crawl_head" (-2 0 2 0) 0 f (1 4) : "label:crawl_head" (-2 1 2 0) 0 f (5 1) : "label:crawl_head" (-1 1 2 0) 0 f (6 1) : "label:crawl_head" ( 0 1 2 0) 0 f (7 3) # Back leg : "label:bleg" (-2 1 1 1) 0 f (0 1) : "label:bleg" (-3 1 1 1) 1 f (1 5) : "label:bleg" (-2 1 1 1) 0 f (6 1) : "label:bleg" (-1 1 1 1) 0 f (7 3) # Front leg : "label:fleg" ( 1 1 1 1) 7 t (0 1) : "label:fleg" ( 0 1 1 1) 7 t (1 1) : "label:fleg" ( 0 1 1 1) 6 t (2 7) : "label:fleg" ( 1 1 1 1) 6 t (9 1) $PREFIX NS "crawl_looking_up_spit": animation: cycle 10 labels: # spider_crawl_looking_up: #: "label:crawl_head" ( 3 1 1 1) 2 f #: "label:bleg" ( 1 1 1 1) 0 f #: "label:fleg" ( 4 2 0 0) 5 t # Head : "label:crawl_head" ( 1 1 1 1) 2 f (0 1) : "label:crawl_head" ( 1 0 1 1) 2 f (1 4) : "label:crawl_head" ( 1 1 1 1) 2 f (5 1) : "label:crawl_head" ( 2 1 1 1) 2 f (6 1) : "label:crawl_head" ( 3 1 1 1) 2 f (7 3) # Back leg : "label:bleg" ( 1 1 1 1) 0 f (0 1) : "label:bleg" (-1 2 1 1) 1 f (1 5) : "label:bleg" ( 0 2 1 1) 0 f (6 1) : "label:bleg" ( 1 1 1 1) 0 f (7 3) # Front leg : "label:fleg" ( 2 2 1 0) 7 t (0 1) : "label:fleg" ( 1 2 1 0) 7 t (1 1) : "label:fleg" ( 1 2 1 0) 6 t (2 7) : "label:fleg" ( 2 2 1 0) 6 t (9 1) $PREFIX NS "_swim_spit_leg": animation: cycle 10 labels: # Used for back *and* front leg : "label:fleg" ( 0 2 1 0) 7 t (0 1) : "label:fleg" ( 0 1 1 0) 8 t (1 1) : "label:fleg" ( 0 0 1 0) 8 t (2 1) : "label:fleg" ( 0 0 1 0) 7 t (3 1) : "label:fleg" ( 0 0 1 0) 6 t (4 1) : "label:fleg" ( 0 0 1 0) 5 t (5 1) : "label:fleg" ( 1 0 1 0) 4 t (6 1) : "label:fleg" ( 1 1 1 0) 4 t (7 1) : "label:fleg" ( 1 2 1 0) 4 t (8 1) : "label:fleg" ( 1 3 1 0) 5 t (9 1) $PREFIX NS "swim_spit": animation: cycle 10 labels: # Head : "label:head" (-2 1 3 0) 1 f (0 1) : "label:head" (-2 0 3 0) 1 f (1 1) : "label:head" (-2 -1 3 0) 1 f (2 2) : "label:head" (-1 -1 3 0) 1 f (4 1) : "label:head" ( 0 -1 3 0) 0 f (5 1) : "label:head" ( 0 0 3 0) 0 f (6 1) : "label:head" ( 0 1 3 0) 0 f (7 1) : "label:head" ( 0 1 4 0) 0 f (8 1) : "label:head" ( 0 2 3 1) 0 f (9 1) shapes: # Back leg : $PREFIX NS "_swim_spit_leg" (-1 -1 0 1) 0 f # Front leg : $PREFIX NS "_swim_spit_leg" ( 0 0 0 0) 0 f $PREFIX NS "_jump": labels: : "label:head" ( 0 1 3 1) 0 f : "label:bleg" ( 0 1 1 1) 10 f : "label:fleg" ( 2 1 1 1) 7 t $PREFIX NS "jump": animation: cycle 2 shapes: : $PREFIX NS "_jump" (-2 0 0 0) 0 f 0 (0 1) : $PREFIX NS "_jump" ( 0 0 0 0) 0 f 0 (1 1) $PREFIX NS "swim_jump": animation: cycle 5 shapes: : $PREFIX NS "_jump" (-2 0 0 0) 0 f 0 (0 1) : $PREFIX NS "_jump" (-1 0 0 0) 0 f 0 (1 2) : $PREFIX NS "_jump" ( 0 0 0 0) 0 f 0 (3 2) $PREFIX NS "crawl": labels: : "label:crawl_head" ( 0 1 2 0) 0 f : "label:bleg" (-1 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "crawl_flip": animation: cycle 3 labels: : "label:crawl_head" (-1 1 3 -4) 2 f (0 1) : "label:crawl_head" (-1 1 3 -3) 2 f (1 1) : "label:crawl_head" (-1 1 3 -2) 1 f (2 1) : "label:bleg" ( 1 0 1 -1) 10 f (0 1) : "label:bleg" ( 0 1 1 0) 11 f (1 1) : "label:bleg" (-1 1 1 1) 0 f (2 1) : "label:fleg" ( 2 0 1 -1) 8 t (0 1) : "label:fleg" ( 1 1 1 0) 7 t (1 1) : "label:fleg" ( 2 1 1 1) 6 t (2 1) $PREFIX NS "crawl_look_up": # "crawl" -> "crawl_looking_up" animation: cycle 1 labels: : "label:crawl_head" ( 1 1 2 0) 1 f (0 1) : "label:bleg" ( 0 1 1 1) 11 f (0 1) : "label:fleg" ( 3 2 0 2) 5 t (0 1) $PREFIX NS "crawl_unlook_up": # "crawl_looking_up" -> "crawl" animation: cycle $PREFIX NS "crawl_look_up" shapes: : $PREFIX NS "crawl_look_up" (0 0 0 0) 0 f 0+r $PREFIX NS "crawl_looking_up": labels: : "label:crawl_head" ( 3 1 1 1) 2 f : "label:bleg" ( 1 1 1 1) 0 f : "label:fleg" ( 5 1 1 1) 4 t $PREFIX NS "crawling": # "stand" -> "crawl" animation: cycle 2 labels: : "label:crawl_head" ( 0 1 3 1) 0 f (0 1) : "label:crawl_head" (-1 2 3 0) 0 f (1 1) : "label:bleg" ( 0 1 1 1) 0 f (0 1) : "label:bleg" ( 0 1 1 1) 11 f (1 1) : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "uncrawling": # "crawl" -> "stand" animation: cycle $PREFIX NS "crawling" shapes: : $PREFIX NS "crawling" (0 0 0 0) 0 f 0+r $PREFIX NS "crawling_looking_up": # "looking_up" -> "crawl_looking_up" animation: cycle 2 labels: : "label:crawl_head" ( 0 2 3 0) 2 f (0 1) : "label:crawl_head" ( 2 2 1 1) 2 f (1 1) : "label:bleg" ( 0 1 1 1) 0 f (0 1) : "label:bleg" ( 1 1 1 1) 11 f (1 1) : "label:fleg" ( 3 2 0 2) 5 t (0 1) : "label:fleg" ( 5 1 1 1) 4 t (1 1) $PREFIX NS "uncrawling_looking_up": # "crawl_looking_up" -> "looking_up" animation: cycle $PREFIX NS "crawling_looking_up" shapes: : $PREFIX NS "crawling_looking_up" (0 0 0 0) 0 f 0+r $PREFIX NS "crawl_step": animation: cycle 3 labels: : "label:crawl_head" (-1 0 2 1) 1 f (0 1) : "label:crawl_head" ( 0 0 2 1) 1 f (1 1) : "label:crawl_head" ( 0 1 2 0) 1 f (2 1) : "label:bleg" (-1 1 1 1) 0 f : "label:fleg" ( 2 1 1 2) 7 t (0 1) : "label:fleg" ( 3 1 1 2) 6 t (1 1) : "label:fleg" ( 3 1 1 1) 6 t (2 1) $PREFIX NS "crawl_turn": animation: cycle $PREFIX NS "crawl_step" $IF EYESPIDER: shapes: : "_eye_looking_1" ( 0 1 2 0) 7 t 0 ( 0 1) : "_eye_open" ( 0 1 2 0) 0 f 0 ( 1 1) : "_eye_looking_1" ( 0 1 2 0) 11 f 0 ( 2 1) labels: : "label:bleg" (-1 1 1 1) 0 f : "label:fleg" ( 2 1 1 2) 7 t (0 1) : "label:fleg" ( 3 1 1 2) 6 t (1 1) : "label:fleg" ( 3 1 1 1) 6 t (2 1) $IF !EYESPIDER: shapes: : $PREFIX NS "crawl_step" (0 0 0 0) 0 f $PREFIX NS "crawl_shielding": animation: cycle 5 labels: : "label:crawl_head" ( 2 1 2 0) 0 f (0 1) : "label:bleg" ( 1 1 1 1) 0 f (0 1) : "label:fleg" ( 4 1 1 1) 6 t (0 1) : "label:crawl_head" (-1 1 2 0) 0 f (1 1) : "label:bleg" (-2 1 1 1) 0 f (1 1) : "label:fleg" ( 1 1 1 1) 6 t (1 1) : "label:crawl_head" ( 1 1 2 0) 0 f (2 1) : "label:bleg" ( 0 1 1 1) 0 f (2 1) : "label:fleg" ( 3 1 1 1) 6 t (2 1) : "label:crawl_head" ( 0 1 2 0) 0 f (3 2) : "label:bleg" (-1 1 1 1) 0 f (3 2) : "label:fleg" ( 2 1 1 1) 6 t (3 2) $PREFIX NS "sleep": labels: : "label:sleep_head" ( 0 1 2 0) 0 f : "label:bleg" (-1 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "swim": animation: cycle 12 labels: : "label:head" ( 0 1 3 2) 0 f ( 0 2) : "label:bleg" ( 0 1 1 2) 1 f ( 0 2) : "label:fleg" ( 2 1 1 2) 5 t ( 0 2) : "label:head" ( 0 1 3 3) 0 f ( 2 2) : "label:bleg" ( 0 1 1 3) 1 f ( 2 2) : "label:fleg" ( 2 1 1 3) 5 t ( 2 2) : "label:head" ( 0 1 3 3) 0 f ( 4 2) : "label:bleg" ( 0 1 1 3) 0 f ( 4 2) : "label:fleg" ( 2 1 1 3) 6 t ( 4 2) : "label:head" ( 0 1 3 2) 0 f ( 6 2) : "label:bleg" ( 0 1 1 2) 0 f ( 6 2) : "label:fleg" ( 2 1 1 2) 6 t ( 6 2) : "label:head" ( 0 1 3 1) 0 f ( 8 2) : "label:bleg" ( 0 1 1 1) -1 f ( 8 2) : "label:fleg" ( 2 1 1 1) 7 t ( 8 2) : "label:head" ( 0 1 3 0) 0 f (10 2) : "label:bleg" ( 0 1 1 0) -2 f (10 2) : "label:fleg" ( 2 1 1 0) 8 t (10 2) $PREFIX NS "run_stand": labels: : "label:head" ( 1 1 3 1) 0 f : "label:bleg" ( 2 2 1 1) 0 f : "label:fleg" ( 3 1 1 1) 5 t $PREFIX NS "run_step": animation: cycle 2 labels: : "label:head" ( 0 0 3 1) 0 f (0 1) : "label:head" ( 1 0 3 1) 0 f (1 1) : "label:bleg" (-1 1 1 1) 10 f (0 1) : "label:fleg" ( 1 1 1 1) 7 t (0 1) : "label:bleg" ( 1 1 1 1) 11 f (1 1) : "label:fleg" ( 2 1 1 1) 6 t (1 1) shapes: #: $PREFIX NS "run_stand" (0 0 0 0) 0 f 0 (2 1) $PREFIX NS "run_jump": animation: cycle $PREFIX NS "jump" shapes: : $PREFIX NS "jump" (0 0 0 0) 0 f $IF EYESPIDER: # eyespider-specific rgraphs $PREFIX NS "eye_closing": animation: cycle 6 shapes: : "_eye_looking_1" ( 0 1 3 1) 11 f 0 ( 0 1) : "_eye_open" ( 0 1 3 1) 0 f 0 ( 1 1) : "_eye_opening_3" ( 0 1 3 1) 0 f 0 ( 2 1) : "_eye_opening_2" ( 0 1 3 1) 0 f 0 ( 3 1) : "_eye_opening_1" ( 0 1 3 1) 0 f 0 ( 4 1) : "_eye_closed" ( 0 1 3 1) 0 f 0 ( 5 1) labels: : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t $PREFIX NS "eye_unclosing": animation: cycle $PREFIX NS "eye_closing" shapes: : $PREFIX NS "eye_closing" (0 0 0 0) 0 f 0+r $PREFIX NS "eye_closed": shapes: : "_eye_closed" ( 0 1 3 1) 0 f labels: : "label:bleg" ( 0 1 1 1) 0 f : "label:fleg" ( 2 1 1 1) 6 t shapes: "_shark_head": hexpicture: ;; ;; +---+ ;; -- | | -- ;; +---+ + |8| + ;; --| |-- -- | + | | ;; + 2| |B + |7--|--7|8| ;; | --|1 |-- | + F|9 +---+ ;; | +---+ |7--|--|-- ;; + | | | | + 1|. + ;; |--7|5|5|5|7--|--|--| ;; |7 +---*---+ 7|. + .| ;; |-- | | | | --|--|--| ;; + |5|5|5| + 9|. + ;; | +---+ | --|--|-- ;; |5--| |--7| + E|. +---+ ;; + C| |C + | --|-- | | ;; --|C |-- --7| + |8| ;; +---+ + | | + ;; --7|8|7-- ;; +---+ ;; "shark_head": shapes: : "_shark_head" ( 0 0 0 0) 0 f "shark": shapes: : "shark_head" ( 0 0 0 0) 0 f "double_shark": map ("double") ("shark") shapes: # + - + # / \ # + - + . + - + # / \ / \ # + - + . + - + . + - + # / \ / \ / \ # + . + - + . + - + . + # \ / \ / # + - + . . . . + - + # / \ / \ # + . + . (.) . + . + # \ / \ / # + - + . . . . + - + # / \ / \ # + . + - + . + - + . + # \ / \ / \ / # + - + . + - + . + - + # \ / \ / # + - + . + - + # \ / # + - + # Moving towards the upper-right! # UNIT VECTORS: # # Y # + # \ # + - + X # # Where: # X = ( 3 2 0 -1) # Y = (-3 -1 3 2) "bubblecar_hex0_sixth": shapes: : "map_edge0" ( 0 0 0 0) 0 f : "map_vert0" ( 3 2 0 -1) 0 f : "map_edge0" ( 3 2 0 -1) 4 f "bubblecar_hex1_sixth": shapes: : "map_edge0" ( 0 0 0 0) 0 f : "map_face0" ( 0 0 0 0) 0 f #: "map_vert0" ( 3 2 0 -1) 0 f #: "map_edge0" ( 3 2 0 -1) 4 f "bubblecar_hex2_sixth": shapes: : "map_edge1" ( 0 0 0 0) 0 f : "map_face1" ( 0 0 0 0) 0 f : "map_vert1" ( 3 2 0 -1) 0 f : "map_edge1" ( 3 2 0 -1) 4 f "bubblecar_hex0": shapes: : "map_vert0" ( 0 0 0 0) 0 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 0 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 2 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 4 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 6 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 8 f : "bubblecar_hex0_sixth" ( 0 0 0 0) 10 f "bubblecar_hex1": shapes: : "map_vert0" ( 0 0 0 0) 0 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 0 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 2 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 4 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 6 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 8 f : "bubblecar_hex1_sixth" ( 0 0 0 0) 10 f "bubblecar_hex2": shapes: : "map_vert1" ( 0 0 0 0) 0 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 0 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 2 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 4 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 6 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 8 f : "bubblecar_hex2_sixth" ( 0 0 0 0) 10 f "bubblecar_sixth0": shapes: : "bubblecar_hex0" eval: ( 3 2 0 -1) * -2 + (-3 -1 3 2) * -4 0 f "bubblecar_sixth0b": shapes: : "bubblecar_hex0" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -3 0 f "bubblecar_sixth1": shapes: : "bubblecar_hex0" eval: ( 3 2 0 -1) * -2 + (-3 -1 3 2) * -4 0 f "bubblecar_sixth1b": shapes: : "bubblecar_hex1" eval: ( 3 2 0 -1) * -2 + (-3 -1 3 2) * -4 0 f : "bubblecar_hex0" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -3 0 f "bubblecar_sixth2": shapes: : "bubblecar_hex2" eval: ( 3 2 0 -1) * -2 + (-3 -1 3 2) * -4 0 f : "bubblecar_hex1" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -3 0 f "bubblecar_sixth2b": shapes: : "bubblecar_hex2" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -3 0 f "bubblecar_r0": shapes: : "bubblecar_sixth2" (0 0 0 0) 0 f : "bubblecar_sixth1" (0 0 0 0) 2 f : "bubblecar_sixth2" (0 0 0 0) 4 f : "bubblecar_sixth1" (0 0 0 0) 6 f : "bubblecar_sixth2" (0 0 0 0) 8 f : "bubblecar_sixth1" (0 0 0 0) 10 f : "spider_stand" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -2 0 f "bubblecar_r1": shapes: : "bubblecar_sixth2b" (0 0 0 0) 0 f : "bubblecar_sixth1b" (0 0 0 0) 2 f : "bubblecar_sixth2b" (0 0 0 0) 4 f : "bubblecar_sixth1b" (0 0 0 0) 6 f : "bubblecar_sixth2b" (0 0 0 0) 8 f : "bubblecar_sixth1b" (0 0 0 0) 10 f : "spider_stand" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -2 0 f "bubblecar_r2": shapes: : "bubblecar_sixth1" (0 0 0 0) 0 f : "bubblecar_sixth2" (0 0 0 0) 2 f : "bubblecar_sixth1" (0 0 0 0) 4 f : "bubblecar_sixth2" (0 0 0 0) 6 f : "bubblecar_sixth1" (0 0 0 0) 8 f : "bubblecar_sixth2" (0 0 0 0) 10 f : "spider_stand" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -2 0 f "bubblecar_r3": shapes: : "bubblecar_sixth1b" (0 0 0 0) 0 f : "bubblecar_sixth2b" (0 0 0 0) 2 f : "bubblecar_sixth1b" (0 0 0 0) 4 f : "bubblecar_sixth2b" (0 0 0 0) 6 f : "bubblecar_sixth1b" (0 0 0 0) 8 f : "bubblecar_sixth2b" (0 0 0 0) 10 f : "spider_stand" eval: ( 3 2 0 -1) * 0 + (-3 -1 3 2) * -2 0 f # Expected variables: # NS (str): e.g. "spikey_", "" label "label:carrying": default null shapes: $PREFIX NS "_spit": labels: : "label:carrying" (0 0 0 0) 0 f prismels: $IF EYE: : "sq" ( 0 2 0 -1) 0 f eval(1 + 7 + 8) : "sq" (-1 2 0 -1) 0 f eval(1 + 7 + 0) : "sq" (-2 2 0 -1) 0 f eval(1 + 1 + 0) $IF !EYE: : "tri" (0 0 0 0) 0 f eval(1 + 0 + 7) : "tri" (0 0 0 0) 2 f eval(1 + 0 + 7) : "tri" (0 0 0 0) 4 f eval(1 + 8 + 7) : "tri" (0 0 0 0) 6 f eval(1 + 8 + 7) : "tri" (0 0 0 0) 8 f eval(1 + 0 + 7) : "tri" (0 0 0 0) 10 f eval(1 + 8 + 7) $IF SPIKEY: : "tri" ( 1 0 0 0) 2 f eval(1 + 0 + 7) : "tri" ( 0 0 1 0) 4 f eval(1 + 0 + 7) : "tri" (-1 0 1 0) 6 f eval(1 + 0 + 7) : "tri" (-1 0 0 0) 8 f eval(1 + 0 + 7) : "tri" ( 0 0 -1 0) 10 f eval(1 + 0 + 7) : "tri" ( 1 0 -1 0) 0 f eval(1 + 0 + 7) $PREFIX NS "spit_fly": animation: once 2 shapes: # NOTE: The center of a hexagon is at (0 1 3 1) : $PREFIX NS "_spit" (-2 1 3 1) 0 f 0 (0 1) : $PREFIX NS "_spit" ( 0 1 3 1) 0 f 0 (1 1) $PREFIX NS "spit_crouch_fly": animation: once 2 shapes: # NOTE: The center of a face is at (1 1 1 0). # But if you want that to line up with spider's nose, # you need to elevate it to (1 1 2 0). # But then crouching spit and crouching coins don't # line up!.. # So we should probably fix spider's nose when crouching. : $PREFIX NS "_spit" (-1 1 1 0) 0 f 0 (0 1) : $PREFIX NS "_spit" ( 1 1 1 0) 0 f 0 (1 1) prismels: "vert": # ++ # +X images: : (-1 -1 2) (-1 0 2) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) (0) "edge": # an edge (invisible line) images: () () () () () () () () () () () () () () () () () () () () () () () () "sq": # +---+ # | | # | | # 0---+ # + + # ++ +++ +++ ++ + + # ++ + + ++ +++ + + +++ # . . . . + . +++. ++. +. X X+ X++ .+ # + ++ +++ +++ ++ + # + + images: : ( 0 -2 2) ( 0 -1 2) : ( 0 -3 1) (-1 -2 3) ( 0 -1 1) : (-1 -3 1) (-2 -2 3) (-1 -1 1) : (-2 -2 2) (-2 -1 2) : (-2 -2 1) (-3 -1 3) (-2 0 1) : (-2 -1 1) (-3 0 3) (-2 1 1) : (-2 0 2) (-2 1 2) : (-1 0 1) (-2 1 3) (-1 2 1) : ( 0 0 1) (-1 1 3) ( 0 2 1) : ( 0 0 2) ( 0 1 2) : ( 1 -1 1) ( 0 0 3) ( 1 1 1) : ( 1 -2 1) ( 0 -1 3) ( 1 0 1) : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 : 0 : 11 : 10 "tri": # + # | # / \ # | | # 0---+ # # + ++ + # ++ + + ++ + + # . . . . . + . ++. +. . X X+ .+ # + ++ + images: : ( 0 -1 2) : ( 0 -2 1) ( 0 -1 1) : (-1 -2 2) : (-1 -2 1) (-1 -1 1) : (-2 -1 2) : (-2 -1 1) (-2 0 1) : (-2 0 2) : (-1 0 1) (-1 1 1) : (-1 1 2) : ( 0 0 1) ( 0 1 1) : ( 0 0 2) : ( 1 -1 1) ( 1 0 1) : 10 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 : 0 : 11 "dia": # -+---+ # / / # 0---+- # + + + + # + + + + # ++ + + ++ # . . . . . . ++ . +. . . X .++ # + + + + # + + + + images: : ( 1 -1 2) : ( 0 -1 1) ( 1 -2 1) ( 2 -3 1) : ( 0 -2 1) ( 0 -3 1) : (-1 -2 1) (-1 -3 1) : (-1 -1 1) (-2 -2 1) (-3 -3 1) : (-3 -1 2) : (-3 0 2) : (-1 0 1) (-2 1 1) (-3 2 1) : (-1 1 1) (-1 2 1) : ( 0 1 1) ( 0 2 1) : ( 0 0 1) ( 1 1 1) ( 2 2 1) : ( 1 0 2) : 11 : 10 : 9 : 8 : 7 : 6 : 5 : 4 : 3 : 2 : 1 : 0 shapes: "_bubbles_1": prismels: : "sq" (0 0 0 0) 1 f eval(1 + 8 + 7) "_bubbles_2": prismels: : "sq" (0 0 0 0) 1 f eval(1 + 8 + 3) "_bubbles_3": prismels: : "sq" (0 0 0 0) 1 f eval(1 + 8 + 1) "_bubbles_4": prismels: : "sq" (0 0 0 0) 1 f eval(1 + 0 + 1) "bubbles": animation: once 12 shapes: : "_bubbles_1" ( 0 1 1 2) 0 f 0 ( 0 1) : "_bubbles_1" ( 0 1 1 2) 2 f 0 ( 1 1) : "_bubbles_2" ( 0 1 1 2) 4 f 0 ( 2 1) : "_bubbles_3" ( 0 1 1 2) 6 f 0 ( 3 1) : "_bubbles_3" ( 0 1 1 2) 8 f 0 ( 4 1) : "_bubbles_3" ( 0 1 1 2) 10 f 0 ( 5 1) : "_bubbles_3" ( 0 1 1 2) 0 f 0 ( 6 1) : "_bubbles_3" ( 0 1 1 2) 2 f 0 ( 7 1) : "_bubbles_3" ( 0 1 1 2) 4 f 0 ( 8 1) : "_bubbles_4" ( 0 1 1 2) 6 f 0 ( 9 1) : "_bubbles_4" ( 0 1 1 2) 8 f 0 (10 1) : "_bubbles_4" ( 0 1 1 2) 10 f 0 (11 1) # Expected variables: # NS (str): e.g. "spider_", "" shapes: ######## # BIRD # ######## $PREFIX NS "_bird_eye_sixth": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 7 : "sq" (1 0 0 0) 1 f eval: 1 + 8 + 6 $PREFIX NS "_bird_eye": shapes: : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 0 f : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 2 f : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 4 f : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 6 f : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 8 f : $PREFIX NS "_bird_eye_sixth" (0 0 0 0) 10 f $PREFIX NS "_bird_eye_turn_half": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" (0 0 1 0) 1 f eval: 1 + 8 + 7 : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 7 : "sq" (1 0 0 0) 1 f eval: 1 + 8 + 6 : "sq" (1 0 -1 0) 11 f eval: 1 + 8 + 6 : "tri" (1 0 -1 0) 9 f eval: 1 + 8 + 7 $PREFIX NS "_bird_eye_turn": shapes: : $PREFIX NS "_bird_eye_turn_half" (0 0 0 0) 0 f : $PREFIX NS "_bird_eye_turn_half" (1 0 0 0) 6 f $PREFIX NS "_bird_head_sixth": hexpicture: ;; + ;; | | ;; |2| ;; +---+ ;; -- | | | ;; + |2|A| ;; | | +---+ ;; |A|9--| | ;; *---+ 9| | ;; --|1 | ;; +---+ $SKIP: prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 2 : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 1 : "sq" (1 0 0 0) 1 f eval: 1 + 8 + 1 : "tri" (0 1 1 0) 0 f eval: 1 + 0 + 2 : "tri" (1 1 0 0) 2 f eval: 1 + 0 + 2 : "tri" (1 1 0 0) 0 f eval: 1 + 8 + 2 : "sq" (1 1 0 -1) 0 f eval: 1 + 0 + 1 $PREFIX NS "_bird_head_fringe_sixth": hexpicture: ;; + ;; -- | ;; + | ;; | + ;; |A-- | ;; + | ;; | + ;; |A--| ;; + 9| ;; --|--| ;; *---+---+ .|9 + ;; --|--| ;; + 9| ;; --| ;; + $SKIP: prismels: : "tri" (2 2 0 -1) 3 f eval: 1 + 8 + 1 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 1 : "tri" (2 2 0 -1) 7 f eval: 1 + 8 + 1 : "sq" (1 1 1 0) 10 f eval: 1 + 8 + 2 : "sq" (1 1 1 0) 1 f eval: 1 + 8 + 2 $PREFIX NS "_bird_beak": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 4 : "tri" (1 0 -1 0) 0 f eval: 1 + 8 + 4 : "sq" (0 0 1 0) 3 f eval: 1 + 8 + 2 : "tri" (0 0 1 0) 1 f eval: 1 + 0 + 2 : "sq" (0 0 1 0) 10 f eval: 1 + 0 + 4 : "sq" (2 0 -1 0) 1 f eval: 1 + 0 + 4 : "tri" (2 0 -1 0) 11 f eval: 1 + 0 + 4 $PREFIX NS "_bird_head": shapes: : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 0 f : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 2 f : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 4 f : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 6 f : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 8 f : $PREFIX NS "_bird_head_sixth" (0 0 0 0) 10 f : $PREFIX NS "_bird_head_fringe_sixth" (0 0 0 0) 2 f : $PREFIX NS "_bird_head_fringe_sixth" (0 0 0 0) 4 f : $PREFIX NS "_bird_head_fringe_sixth" (0 0 0 0) 6 f $PREFIX NS "_bird_leg_calf_beefy": prismels: : "tri" (0 0 0 0) 3 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 5 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 7 f eval: 1 + 0 + 6 : "sq" (0 0 0 0) 0 f eval: 1 + 0 + 7 : "sq" (0 0 0 -1) 0 f eval: 1 + 0 + 7 : "sq" (1 0 0 0) 0 f eval: 1 + 0 + 7 : "sq" (1 0 0 -1) 0 f eval: 1 + 0 + 7 : "sq" (2 0 0 0) 0 f eval: 1 + 0 + 7 : "sq" (2 0 0 -1) 0 f eval: 1 + 0 + 7 : "tri" (3 1 0 0) 1 f eval: 1 + 0 + 6 : "tri" (3 1 0 0) 3 f eval: 1 + 0 + 6 : "tri" (3 1 0 0) 5 f eval: 1 + 0 + 6 : "tri" (3 1 0 0) 7 f eval: 1 + 0 + 6 : "tri" (3 1 0 0) 9 f eval: 1 + 0 + 6 : "tri" (3 1 0 0) 11 f eval: 1 + 0 + 6 : "tri" (3 1 0 -1) 5 f eval: 1 + 0 + 6 : "tri" (3 1 0 -1) 7 f eval: 1 + 0 + 6 : "tri" (3 1 0 -1) 9 f eval: 1 + 0 + 6 : "tri" (3 1 0 -1) 11 f eval: 1 + 0 + 6 $PREFIX NS "_bird_leg_thigh_beefy": prismels: : "tri" (0 0 0 0) 11 f eval: 1 + 0 + 6 : "sq" (0 1 0 -1) 0 f eval: 1 + 0 + 7 : "sq" (1 1 0 -1) 0 f eval: 1 + 0 + 7 : "sq" (2 1 0 -1) 0 f eval: 1 + 0 + 7 : "tri" (3 2 0 -1) 5 f eval: 1 + 0 + 6 $PREFIX NS "_bird_leg_calf": prismels: # ball (foot): : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 5 #: "tri" (0 0 0 0) 2 f eval: 1 + 8 + 5 #: "tri" (0 0 0 0) 4 f eval: 1 + 8 + 5 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 5 # stick (calf): : "tri" (1 0 0 0) 11 f eval: 1 + 0 + 5 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 5 : "tri" (2 2 0 -1) 5 f eval: 1 + 0 + 5 $PREFIX NS "_bird_leg_thigh": prismels: # ball (knee): : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 7 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 7 # stick (thigh): : "tri" (1 0 0 0) 11 f eval: 1 + 0 + 7 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 7 : "tri" (2 2 0 -1) 5 f eval: 1 + 0 + 7 $PREFIX NS "bird_head": shapes: $IF SPIDER: : "spider_crawl" (-3 2 1 0) 2 f : $PREFIX NS "_bird_head" eval((0 1 3 1) + (1 0 -2 0)) 0 f : $PREFIX NS "_bird_eye" eval((0 1 3 1) + (1 0 -2 0) + (0 0 0 0)) 0 f : $PREFIX NS "_bird_beak" eval((0 1 3 1) + (1 0 -2 0) + (2 1 -1 -1)) 0 f $PREFIX NS "bird_leg_calf": shapes: : $PREFIX NS "_bird_leg_calf" (0 0 0 0) 0 f $PREFIX NS "bird_leg_thigh": shapes: : $PREFIX NS "_bird_leg_thigh" (0 0 0 0) 0 f $PREFIX NS "bird_legs_stand": shapes: # back leg : $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 4 f : $PREFIX NS "bird_leg_thigh" (-3 -1 3 2) 2 f # front leg : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 4 f : $PREFIX NS "bird_leg_thigh" ( 0 1 3 1) 4 f $PREFIX NS "bird_stand": shapes: : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_head" (-3 0 6 3) 0 f $PREFIX NS "bird_legs_step": animation: cycle 4 shapes: # back leg #: $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 4 f #: $PREFIX NS "bird_leg_thigh" (-3 -1 3 2) 2 f : $PREFIX NS "bird_leg_calf" ( 1 0 0 0) 4 f 0 (0 1) : $PREFIX NS "bird_leg_thigh" (-3 -1 3 2) 2 f 0 (0 1) : $PREFIX NS "bird_leg_calf" ( 2 0 0 0) 4 f 0 (1 1) : $PREFIX NS "bird_leg_thigh" (-2 -1 3 2) 2 f 0 (1 1) : $PREFIX NS "bird_leg_calf" ( 4 0 0 0) 4 f 0 (2 1) : $PREFIX NS "bird_leg_thigh" (-1 -1 3 2) 2 f 0 (2 1) : $PREFIX NS "bird_leg_calf" ( 6 0 0 0) 4 f 0 (3 1) : $PREFIX NS "bird_leg_thigh" ( 0 -1 3 2) 2 f 0 (3 1) # front leg : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 4 f : $PREFIX NS "bird_leg_thigh" ( 0 1 3 1) 4 f $PREFIX NS "bird_head_turn": animation: cycle 3 shapes: ###### # frame 2 is original bird_head, for debugging purposes $IF SPIDER: : "spider_crawl" (-3 2 1 0) 2 f 0 (2 1) : $PREFIX NS "_bird_head" eval((0 1 3 1) + (1 0 -2 0)) 0 f 0 (2 1) : $PREFIX NS "_bird_eye" eval((0 1 3 1) + (1 0 -2 0) + (0 0 0 0)) 0 f 0 (2 1) : $PREFIX NS "_bird_beak" eval((0 1 3 1) + (1 0 -2 0) + (2 1 -1 -1)) 0 f 0 (2 1) ###### $IF SPIDER: : "spider_crawl" (-2 2 1 0) 2 f 0 (0 1) # eye coming from other side of head : $PREFIX NS "_bird_eye_turn" eval((0 1 3 1) + (1 0 -2 0) + ( 2 0 0 0)) 0 f 0 (1 1) : $PREFIX NS "_bird_head" eval((0 1 3 1) + (1 0 -2 0)) 0 f 0 (0 1) : $PREFIX NS "_bird_head" eval((0 1 3 1) + (1 0 -2 0)) 0 f 0 (1 1) : $PREFIX NS "_bird_eye_turn" eval((0 1 3 1) + (1 0 -2 0) + (-2 0 0 0)) 0 f 0 (0 1) : $PREFIX NS "_bird_eye_turn" eval((0 1 3 1) + (1 0 -2 0) + (-3 0 0 0)) 0 f 0 (1 1) : $PREFIX NS "_bird_beak" eval((0 1 3 1) + (1 0 -2 0) + (1 1 -1 -1)) 11 f 0 (0 1) : $PREFIX NS "_bird_beak" eval((0 1 3 1) + (1 0 -2 0) + (0 1 -1 -1)) 11 f 0 (1 1) $PREFIX NS "bird_turn_arrive": animation: cycle 2 shapes: : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 1 (0 1) : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0 (1 1) $PREFIX NS "bird_turn": animation: cycle 4 shapes: # back/front calves #: $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 4 f #: $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 4 f : $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 3 f 0 (0 1) : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 3 f 0 (0 1) : $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 2 f 0 (1 1) : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 2 f 0 (1 1) # back/front thighs #: $PREFIX NS "bird_leg_thigh" (-3 -1 3 2) 2 f #: $PREFIX NS "bird_leg_thigh" ( 0 1 3 1) 4 f : $PREFIX NS "bird_leg_thigh" (-1 -1 3 2) 2 f 0 (0 1) : $PREFIX NS "bird_leg_thigh" ( 2 1 3 1) 4 f 0 (0 1) : $PREFIX NS "bird_leg_thigh" ( 1 -1 3 2) 2 f 0 (1 1) : $PREFIX NS "bird_leg_thigh" ( 4 1 3 1) 4 f 0 (1 1) # head : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0+ (0 2) ############ # frames 3, 4 are turn_arrive for debugging purposes : $PREFIX NS "bird_turn_arrive" (3 2 0 -1) 6 t 2+ (2 2) $PREFIX NS "bird_step": animation: cycle 4 shapes: : $PREFIX NS "bird_legs_step" (0 0 0 0) 0 f 1+ : $PREFIX NS "bird_head" (-3 0 6 3) 0 f 0 (0 1) : $PREFIX NS "bird_head" (-2 0 6 3) 0 f 0 (1 1) : $PREFIX NS "bird_head" (-1 0 6 3) 0 f 0 (2 1) : $PREFIX NS "bird_head" ( 0 0 6 3) 0 f 0 (3 1) $PREFIX NS "bird_step_rev": animation: cycle 4 shapes: : $PREFIX NS "bird_step" (0 0 0 0) 0 f 2 (0 1) : $PREFIX NS "bird_step" (0 0 0 0) 0 f 1 (1 1) : $PREFIX NS "bird_step" (0 0 0 0) 0 f 0 (2 1) : $PREFIX NS "bird_step" (0 0 0 0) 0 f 0 (3 1) $PREFIX NS "bird_step_arrive": animation: cycle 3 shapes: # frame 2 is bird_stand, for debugging purposes : $PREFIX NS "bird_stand" (-3 0 0 0) 0 f 0 (0 1) : $PREFIX NS "bird_stand" (-1 0 0 0) 0 f 0 (1 1) : $PREFIX NS "bird_stand" ( 0 0 0 0) 0 f 0 (2 1) $PREFIX NS "bird_step_up_arrive": animation: cycle 3 shapes: # frame 2 is bird_stand, for debugging purposes : $PREFIX NS "bird_stand" (0 0 -3 0) 0 f 0 (0 1) : $PREFIX NS "bird_stand" (0 0 -1 0) 0 f 0 (1 1) : $PREFIX NS "bird_stand" (0 0 0 0) 0 f 0 (2 1) $PREFIX NS "bird_step_down_arrive": animation: cycle 3 shapes: # frame 2 is bird_stand, for debugging purposes : $PREFIX NS "bird_stand" (-3 0 3 0) 0 f 0 (0 1) : $PREFIX NS "bird_stand" (-1 0 1 0) 0 f 0 (1 1) : $PREFIX NS "bird_stand" ( 0 0 0 0) 0 f 0 (2 1) $PREFIX NS "_bird_step_rot_up_arrive": animation: cycle 2 shapes: # Basically just a version of $PREFIX NS "bird_stand" where: # - The legs move forward a bit on frame 1 # - The head is slightly adjusted back : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f 0 (0 1) : $PREFIX NS "bird_legs_stand" (2 0 0 0) 0 f 0 (1 1) : $PREFIX NS "bird_head" (-2 -1 6 3) 0 f $PREFIX NS "bird_step_rot_up_arrive": animation: cycle 4 shapes: # frame 2 is equivalent to bird_stand, for debugging purposes # frame 3 is equivalent to bird_step's frame 1, for debugging purposes : $PREFIX NS "_bird_step_rot_up_arrive" (-4 -3 2 3) 11 f 0 (0 1) : $PREFIX NS "_bird_step_rot_up_arrive" (-4 -3 2 3) 11 f 1 (1 1) : $PREFIX NS "bird_stand" ( 0 0 0 0) 0 f 0 (2 1) : $PREFIX NS "bird_step" eval((3 2 0 -1) * -3 + (0 1 3 1) * 2) 10 f 1 (3 1) $PREFIX NS "bird_step_rot_down_arrive": animation: cycle 4 shapes: # frame 2 is equivalent to bird_stand, for debugging purposes # frame 3 is equivalent to bird_step's frame 1, for debugging purposes : $PREFIX NS "bird_stand" eval((0 -1 -3 -1) + (-1 0 2 0)) 1 f 0 (0 1) : $PREFIX NS "bird_stand" eval((0 -1 -3 -1) + ( 0 0 3 0)) 1 f 0 (1 1) : $PREFIX NS "bird_stand" (0 0 0 0) 0 f 0 (2 1) : $PREFIX NS "bird_step" (0 -1 -3 -1) 2 f 1 (3 1) $PREFIX NS "bird_crawl_arrive": animation: cycle 2 shapes: : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_head" (-2 0 4 2) 0 f 0+ (0 1) : $PREFIX NS "bird_head" (-1 0 2 1) 0 f 0+ (1 1) $PREFIX NS "bird_crawl_stand": # Inverse of "bird_crawl_arrive" animation: cycle 2 shapes: : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_head" (-1 0 2 1) 0 f 0+ (0 1) : $PREFIX NS "bird_head" (-2 0 4 2) 0 f 0+ (1 1) $PREFIX NS "bird_crawl": shapes: : $PREFIX NS "bird_head" ( 0 0 0 0) 0 f $PREFIX NS "bird_crawl_turn": animation: cycle 2 shapes: : $PREFIX NS "bird_head_turn" ( 0 0 0 0) 0 f 0+ (0 2) $PREFIX NS "bird_crawl_turn_arrive": animation: cycle 2 shapes: : $PREFIX NS "bird_head_turn" ( 0 0 0 0) 0 f 1 (0 1) : $PREFIX NS "bird_head_turn" ( 0 0 0 0) 0 f 0 (1 1) ############### # BIRD WINGED # ############### $PREFIX NS "bird_wing": map("double"): hexpicture: ;; ;; +---+---+---+---+---+ ;; | | | | | | ;; | | | | | | ;; |B |C |D |E |F | ;; +---+---+---+---+---+ ;; | | | | | | | | | | | | ;; |0|1|2|3|4|5|6|7|8|9|A| ;; *---+---+---+---+---+---+ ;; $PREFIX NS "bird_stand_wings": shapes: : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_head" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t $PREFIX NS "bird_turn_arrive_wings": animation: cycle 2 shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t : $PREFIX NS "bird_legs_stand" (0 0 0 0) 0 f : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 1 (0 1) : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0 (1 1) $PREFIX NS "bird_turn_wings": animation: cycle 4 shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t # back/front calves #: $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 4 f #: $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 4 f : $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 3 f 0 (0 1) : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 3 f 0 (0 1) : $PREFIX NS "bird_leg_calf" ( 0 0 0 0) 2 f 0 (1 1) : $PREFIX NS "bird_leg_calf" ( 3 2 0 -1) 2 f 0 (1 1) # back/front thighs #: $PREFIX NS "bird_leg_thigh" (-3 -1 3 2) 2 f #: $PREFIX NS "bird_leg_thigh" ( 0 1 3 1) 4 f : $PREFIX NS "bird_leg_thigh" (-1 -1 3 2) 2 f 0 (0 1) : $PREFIX NS "bird_leg_thigh" ( 2 1 3 1) 4 f 0 (0 1) : $PREFIX NS "bird_leg_thigh" ( 1 -1 3 2) 2 f 0 (1 1) : $PREFIX NS "bird_leg_thigh" ( 4 1 3 1) 4 f 0 (1 1) # head : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0+ (0 2) ############ # frames 3, 4 are turn_arrive for debugging purposes : $PREFIX NS "bird_turn_arrive" (3 2 0 -1) 6 t 2+ (2 2) $PREFIX NS "_bird_fly": shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_head" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t $PREFIX NS "bird_fly": animation: cycle 3 shapes: : $PREFIX NS "_bird_fly" (-3 0 0 0) 0 f 0 (0 1) : $PREFIX NS "_bird_fly" (-2 0 0 0) 0 f 0 (1 1) : $PREFIX NS "_bird_fly" (-1 0 0 0) 0 f 0 (2 1) $PREFIX NS "bird_flying": shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_head" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t $PREFIX NS "bird_turn_arrive_flying": animation: cycle 2 shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 1 (0 1) : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0 (1 1) $PREFIX NS "bird_turn_flying": animation: cycle 4 shapes: : $PREFIX NS "bird_wing" (-3 0 6 3) 0 f : $PREFIX NS "bird_wing" (-3 0 6 3) 6 t # head : $PREFIX NS "bird_head_turn" (-3 0 6 3) 0 f 0+ (0 2) ############ # frames 3, 4 are turn_arrive for debugging purposes : $PREFIX NS "bird_turn_arrive" (3 2 0 -1) 6 t 2+ (2 2) shapes: "_txt_title": text: "geomfont1" "Crawl\n Space" (3 1) "txt_title": shapes: : "_txt_title" (0 0 0 0) 0 f "txt_title_rotate": animation: cycle 24 shapes: : "_txt_title" (0 0 0 0) 0 f 0 ( 0 2) : "_txt_title" (0 0 0 0) 1 f 0 ( 2 2) : "_txt_title" (0 0 0 0) 2 f 0 ( 4 2) : "_txt_title" (0 0 0 0) 3 f 0 ( 6 2) : "_txt_title" (0 0 0 0) 4 f 0 ( 8 2) : "_txt_title" (0 0 0 0) 5 f 0 (10 2) : "_txt_title" (0 0 0 0) 6 f 0 (12 2) : "_txt_title" (0 0 0 0) 7 f 0 (14 2) : "_txt_title" (0 0 0 0) 8 f 0 (16 2) : "_txt_title" (0 0 0 0) 9 f 0 (18 2) : "_txt_title" (0 0 0 0) 10 f 0 (20 2) : "_txt_title" (0 0 0 0) 11 f 0 (22 2) "txt_tutorial1": text: "geomfont1" "Tu" "txt_tutorial2": text: "geomfont1" "to" "txt_tutorial3": text: "geomfont1" "rial" shapes: "door_tri": animation: oscillate 6 prismels: : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 3) (0 2) : "tri" ( 0 0 0 0) 0 f eval(1 + 0 + 3) (2 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 1) (3 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 0 + 1) (4 2) "door_sq": animation: oscillate 6 prismels: : "sq" ( 0 0 0 0) 0 f eval(1 + 8 + 3) (0 2) : "sq" ( 0 0 0 0) 0 f eval(1 + 0 + 3) (2 1) : "sq" ( 0 0 0 0) 0 f eval(1 + 8 + 1) (3 1) : "sq" ( 0 0 0 0) 0 f eval(1 + 0 + 1) (4 2) "doorframe_sixth": prismels: : "tri" ( 1 1 1 0) 10 f eval(1 + 8 + 4) : "tri" ( 1 1 1 0) 0 f eval(1 + 8 + 4) : "tri" ( 1 1 1 0) 2 f eval(1 + 8 + 4) #: "sq" ( 2 1 0 0) 11 f eval(1 + 0 + 4) #: "sq" ( 0 1 2 0) 0 f eval(1 + 0 + 4) #: "tri" ( 0 1 2 0) 3 f eval(1 + 0 + 4) "doorframe": # The frame around the door shapes: : "doorframe_sixth" (0 0 0 0) 0 f : "doorframe_sixth" (0 0 0 0) 2 f : "doorframe_sixth" (0 0 0 0) 4 f : "doorframe_sixth" (0 0 0 0) 6 f : "doorframe_sixth" (0 0 0 0) 8 f : "doorframe_sixth" (0 0 0 0) 10 f "doorstuff_sixth": animation: cycle 12 shapes: : "door_tri" ( 0 0 0 0) 0 f 0+ : "door_tri" ( 0 0 0 0) 2 f 0+ : "door_tri" ( 0 0 0 0) 4 f 0+ : "door_tri" ( 0 0 0 0) 6 f 0+ : "door_tri" ( 0 0 0 0) 8 f 0+ : "door_tri" ( 0 0 0 0) 10 f 0+ : "door_sq" ( 1 0 0 0) 1 f 1+ : "door_tri" ( 0 0 1 0) 1 f 1+ : "door_tri" ( 1 1 0 0) 0 f 2+ : "door_tri" ( 1 1 0 0) 2 f 2+ : "door_tri" ( 0 1 1 0) 0 f 2+ : "door_sq" ( 0 1 1 0) 2 f 2+ #: "door_tri" ( 1 1 1 0) 10 f 3+ #: "door_tri" ( 1 1 1 0) 0 f 3+ #: "door_tri" ( 1 1 1 0) 2 f 3+ ##: "door_sq" ( 2 1 0 0) 11 f 3+ ##: "door_sq" ( 0 1 2 0) 0 f 3+ ##: "door_tri" ( 0 1 2 0) 3 f 3+ "doorstuff": # The glowing stuff in the middle of the door animation: cycle "doorstuff_sixth" shapes: : "doorstuff_sixth" (0 0 0 0) 0 f : "doorstuff_sixth" (0 0 0 0) 2 f : "doorstuff_sixth" (0 0 0 0) 4 f : "doorstuff_sixth" (0 0 0 0) 6 f : "doorstuff_sixth" (0 0 0 0) 8 f : "doorstuff_sixth" (0 0 0 0) 10 f "door": animation: cycle "doorstuff" shapes: : "doorframe" (0 0 0 0) 0 f : "doorstuff" (0 0 0 0) 0 f "minimap_door": palmap ("cycle3") ("door") anim: "anim/hotspot3.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/spider.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/food.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: vars: "crouch": T nodata anim: "anim/spider.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is nodataanim: "anim/minimap_door.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/water_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is nodataanim: "anim/mini_eye.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: vars: "crouch": T nodata anim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is nodataanim: "anim/octopus.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/spikeball.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/mini_eye.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is nodataanim: "anim/water_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is r: nodataanim: "anim/eye.fus" state: "closed" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is r: nodataanim: "anim/human.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/hotspot.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/bird.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: is l: r: is nodataanim: "anim/food.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/switch.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/coin.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/ability_door.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/death_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is nodataanim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is r: nodataanim: "anim/hexroller_inert.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/death_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is r: nodataanim: "anim/hexroller.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: is l: r: is nodata anim: "anim/switch_oneway.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodataanim: "anim/coin.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: vars: "crouch": T nodata anim: "anim/door.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata collmap: ;; ;; . . . . . . . . . ;; ;; . . . . + . . . . ;; / ;; . . . . + . . . . . ;; / ;; . . . + . . + - + . . ;; / /* */ ;; . . . + - + + - + - + . . . ;; /* */ /* */ ;; . + - + + + - + + - + . . . ;; \*/ /* */ ;; . . . + + - + - + + . . . ;; /* * * * * */ ;; . . . + - + + - + . . . ;; / /* */ ;; . . . + + - + . . . . ;; / ;; . . + . . . . . . ;; / ;; . . + . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . ;; S ;; . . (+)- + - + . . ;; / / ;; . . + - + - + - + . ;; / / ;; . . . + - + . ;; ;; . . . . . . parts: "t": "data/maps/trees/trunk2_bark.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;;(?) . . . . . . . . . . . . . . . [t] ;; parts: "t": "data/maps/trees/trunk.fus" "T": "data/maps/trees/trunkL.fus" "r": "data/maps/trees/trunk2.fus" "R": "data/maps/trees/trunk2L.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . + - + . ;; /* * *\ ;; . . . . . . . . . . . . . . . . . . . . . . . + + . + . ;; /*\ /* * * */ ;; . . . . . . . . . . ? . . . . . . . . . . . . + . + - . [R] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (.) . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . . ? . . . . . . . . . . [R] [T] ;; \* * * * * * */ ;; . . . . . . . . . . . . . . . . . + - + - + + . . . . . . . ;; /* */ ;; . . . . . . . . . . . . . . . . . . + + . . . . . . . ;; \*/ ;; . . . ? . . . . . . . . . . . . . . . + . . . . . . . . [r] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . . . . . . . . . . . . . [r] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; ? . . . . . . . . . . . . . . . . . . . . . . . . . . [r] parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . + - + . . . . . . ;; /* * *\ ;; . . . . . . . . . . . . . . . . . . + . + . . . . . . . ;; \* * */ ;; . . . . . . . . . . . . . . . . . . + - + . . . . . . . . . ;; ;; + - + . . . . . . . + . . . . . . . . . . . . . . . + - . . - + - + ;; \*/ /*\ / / ;; + + . . . . . . . + - + . . . . . . . . . . . . . . . . . . + ;; /*\ / ;; + - + . . . . . . . . . + - + . . . . . . . . . . . . . . . . . ;; \*/ \*/ / ;; + + . . . . . . . . . + . . . . . . . . . . + - + - + . . . - + ;; /*\ \*/ \*/ ;; + - + . . . . . . . . . . . . . . . . . . . . + + . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + . . . . ;; /*\ ;; . . . . . . . . + . . . . . . . . . . . . . + - + . . . ;; /*\ ;; . . . . . . . + - + . . . + - + . . . . . . . . . . . . ;; \*/ \ ;; . . . . . . . . . . . . . + . . . . . . . . . . + . . ;; \ ;; . . . . . . . . . . . . . . . . . . . . . . . . + . ;; / ;; . . . . . . . . . . . . . . . . . . . . . . . . + . . ;; / ;; . . . . . . . . . . + . . . + . . . . . . . . . . . ;; /*\ /*\ ;; . . . . + - + . . . . + - + . . + - + - + . . . . . . . . . . ;; \*/ \*/ ;; . . . . + . . . . . . . . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + . . . . . . . . ;; S /*\ ;; . . . . . . . (+)- + . . . . . . . . + - + . . . . . . . . ;; \*/ ;; . . . . . . . + . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . + . . . . . + . . . ;; /* * * * * * * * * * * */ ;; . . . . . + . . . . . + . . . . ;; /* * * * * * * * * * * */ ;; . . . . + . . . . . + . . . . ;; /* * * * * * * * * * * */ ;; . . . . (+) . . . . . + . . . . . ;; spawn: (-1 0) 0 n parts: "D": recording "data/recs/door.fus" vars: "map": "data/maps/spidertown/worldmap.fus" "location": "trees_exit" "s": location "start" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + - + - + . . . . . . . . . . . . . . . . . ;; / / ;; . + - + . . . . . . . + - + - + - + . . . . . . . . . . . . . . . . . ;; / / /* */ ;; + - + - + . . . . . + - + + . . . . . . . . . . . . . . . . . . . ;; / / /* * * */ ;; . + - + - + . . . + - + . + . . . . . . . . . . . . . . . . . . . ;; / / /* * * * * */ ;; . + - + - + . . + - + - + - + - + - + . . . . . . . . . + - + + + - + . . . ;; / / / / / / / / / ;; . . + - + . . . . . + - + - + . . . . . . + - + . + + - + - + + . . . ;; /* */ / / ;; . . . . . . . . . . . . . . . . . + + . + - + - + + - + . . . ;; /* */ / / ;; . . . . . . . . . . . . . + - + - + . + + . . . + - + . . . . ;; S /* * * */ /* */ ;; + - + . ! - + . . + - + . . + - + . + . + - + . . . . . . . . . [s] ;; / / /* */ / / /* * * * * */ ;; + - + + -(+) + . . + - + . . + - + - + - + . . . . . . . . . . . . . ;; /* * * */ ;; . + - + - + . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + - + - + . . . . . . + - + + - + . . . + - + ;; /* * * */ / / / / / / ;; . . . . . . . . . . . . + - + - + . + - + + - + . + - + + - + . . . + + ;; / / / / / / ;; . . . . . . . . . . . . + - + - + - + - + - + - + - + - + + - + . . . + - + + - + ;; /* * * * * * * */ / / / / / / / / / ;; . . . . . . . . . . . + - + - + - + - + + - + - + - + + - + . . . + - + + ;; / / / ;; . . . . . . . . . . . . . . . . . + - + . . . . . . . . + ;; / ;; . ? . + . . . . . . . . . . . . . . . . . . . . . + - + [D] ;; / / / ;; . + - + - + . . . . . . . . . . . . . . . . . . . . . + - + . ;; /* * * */ ;; + - + - + name: "trees" unit: 3 2 0 -1 spawn: "data/maps/trees/start.fus" palette: "data/maps/trees/pals/trees.fus" tileset: "data/maps/trees/tilesets/trees.fus" submaps: "start": pos: (0 0) camera: (12 0) mapper: ("triple") submaps: #: # bg # file: "data/maps/trees/start_bg_bark.fus" # tileset: "data/maps/trees/tilesets/bark.fus" : bg file: "data/maps/trees/start_bg.fus" tileset: "data/maps/trees/tilesets/trees_dark.fus" : file: "data/maps/trees/start.fus" : pos: (32 10) camera: (0 0) mapper: ("triple") submaps: : bg file: "data/maps/trees/start2_bg.fus" tileset: "data/maps/trees/tilesets/trees_dark.fus" "start2": file: "data/maps/trees/start2.fus" "start3": file: "data/maps/trees/start3.fus" pos: (5 5) camera: (6 6) "start4": file: "data/maps/trees/start4.fus" pos: eval: (5 5) + (12 5) camera: (9 6) "start5": file: "data/maps/trees/start5.fus" pos: eval: (5 5) + (11 14) camera: (6 6) tileset: "data/maps/sprucetown/tilesets/earth.fus" "start6": file: "data/maps/trees/start6.fus" pos: eval: (5 5) + (11 14) + (10 16) camera: (11 6) tileset: "data/maps/sprucetown/tilesets/earth.fus" submaps: : file: "data/maps/trees/start6-0.fus" pos: eval: (31 19) camera: (0 0) : bg file: "data/maps/trees/start7_bg.fus" pos: eval: (5 5) + (12 5) + (22 3) tileset: "data/maps/trees/tilesets/trees_dark.fus" "start7": file: "data/maps/trees/start7.fus" pos: eval: (5 5) + (12 5) + (22 3) camera: (6 6) submaps: : file: "data/maps/trees/start7_2.fus" pos: (10 14) : file: "data/maps/trees/start7_water.fus" pos: (13 5) tileset: "data/maps/sprucetown/tilesets/earth.fus" : pos: eval: (5 5) + (12 5) + (22 3) + (23 8) submaps: "bubbles": file: "data/maps/trees/bubbles.fus" pos: (0 0) camera: (10 0) "bubbles2": file: "data/maps/trees/bubbles2.fus" pos: eval: (25 7) camera: (10 0) "bubbles3": file: "data/maps/trees/bubbles3.fus" pos: eval: (25 7) + (19 0) camera: (8 0) "bubbles3-0": file: "data/maps/trees/bubbles3-0.fus" pos: eval: (25 7) + (19 0) + (25 12) camera: (10 -10) "bubbles3-1": file: "data/maps/trees/bubbles3-1.fus" pos: eval: (25 7) + (19 0) + (4 -9) camera: (0 0) spawn: (10 10) 0 n collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; / ;; . . . . . . . . . . . . . + . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; /*\ ;; . . . . . . . . . . . . . + + . + - + . . . . . . . . . ;; \*/ \*/ ;; . . . . . . . . . . . + . + - + . + - + . . . . . . . . ;; /*\ \* *\ /* */ ;; + - + . . . . . . . . . . + + - + + - + + + - + . . . . . . . . ;; /*\* \* * * *\ /* */ ;; + - . . . . . . . . . . . + . + - + - + + . . . . . . . . . ;; \*/* /* * * * * * * * * */ ;; - . + - . . . . . . . . . . . + . . . + - + . . . . . . . . . . ;; * *\ \*/*\*/* /* * * * * * * */ ;; . + - + - + . . . . . . . . + - + - + - + - + . . . . . . . . . . . ;; */ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + + . . . . . . . . . . . . . . . . ;; \ / ;; . . . + - + . . + + - . - + + . + + . . . . . . . . . . . . ;; /*\* \ / / \ \ / \ / ;; . . + . . . + - . - + + - . - + + - . - + . . . . . . . . . . . ;; / \ \ / / \ \ / / \ ;; . . . . . . . + + - . - + + - . - + + . . . . . . . . . . . . ;; / \ / \ ;; . + . . . . . . + + . + + . . . . . . . . . . . . . ;; /* ;; . + - . . . . . (.) . . . . . . . . . . . . . . . . . . . ;; \* ;; . + . . . . . . . . . . . . . . . . . . . . . . . . ;; spawn: (0 2) 0 n collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; *\*/* ;; . . . . . . . . . + - + . . . . . + - + - + - . . . . ;; * * * * * /* */ /*\* ;; + - + . . . . . + - + - + . . . . . . . + - . . . . ;; */* * *\* / / /*\* ;; . - + - + + . . . . + + . . + - + - + - + . + - + . . . . . ;; * */*\*/* / / /* * * * * */ ;; + + . . . . + + + - + - + + - + - + . . . . . . . . ;; */* *\* / / /* * * * * */ ;; . . . . . . + + + - + - + - + . . . . . . . . . . . ;; / / ;; . . . . . . + + . . (+)- + . . . . . . . . . . . ;; / / /* */ ;; . . . . . . + - + . . + + . . . . . . . . . . . . ;; S /* */ ;; . . . . . . + - + - + + + . . . . . . . . . . . . ;; /* * * */ /* */ ;; . . . . . . + - + - + + + . . . . . . . . . . . . . ;; /* */ ;; . . . . . . . + - + . . . . . . . . . . . . . parts: "t": "data/maps/trees/trunk2.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;;(?) . . . . . . . . . . . . . . . [t] ;; parts: "t": "data/maps/trees/trunk_bark.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;;(?) . . . . . . . . . . . . . . . [t] ;; collmap: ;; ;; . . . + . . . + . . . . . ;; \* * * * * * * *\ ;; . . . . + . . . + . . . . . ;; \* * * * * * * *\ ;; . . . . + . . . + . . . . ;; \* * * * * * * *\ ;; . . . . . (+) . . . + . . . . ;; parts: "t": "data/maps/trees/trunkr.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . (?) . . . . . . . . . [t] ;; collmap: ;; ;; */ ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . + . . ;; / ;; . . (+) . . ;; collmap: ;; ;; . . . . . + . . . + . . . ;; /* * * * * * * */ ;; . . . . . + . . . + . . . . ;; /* * * * * * * */ ;; . . . . + . . . + . . . . ;; /* * * * * * * */ ;; . . . . (+) . . . + . . . . . ;; spawn: (1 4) 0 n collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . + - + . . . ;; /* */ ;; . . . . . . . . . . . . . . . + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + - + . . + - + . . ;; /* */ /* */ ;; . . . . . . . . . . . + - + . + - + + . . ;; / /* * * */ ;; . . . . . . . . . . + - + . + - + - + . . . ;; /* */ ;; . . . . . + - + . . . + - + . . . . . . . . . . . . . ;; *\*/ ;; . . . . - + . . . . . . . . . . . . . . . . . . . ;; *\*/ ;; . . . . - + - + - + . . + - + - + + - + . . . . . . . . . . . ;; */*\* /* * * */ /* */ ;; . . . . . . . . + - + - + + - + . . . . . . + - . . . . ;; *\*/ ;; . . . . . . . . . . . + - + . . . . . . - + . . . . . ;; /* */ *\*/ ;; . . . . . . . . . . + + . . . . . . - + . . . . . ;; /* */ */*\ / ;; . . . . . . . . . . (+)- + . . . . . . . - + - + - + . . . ;; */*\*/*\* ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . . + - + - + - + - + - + - + . . . ;; /*\*/*\*/*\*/*\*/*\*/*\* ;; . . . . . + - + - + - + - + - + - + . . . . ;; /*\*/*\*/*\*/*\*/*\*/*\* ;; . . . . + - + - + - + - + - + - + . . . . ;; /*\*/*\*/*\*/*\*/*\*/*\* ;; . . . . (+)- + - + - + - + - + - + . . . . . ;; parts: "t": "data/maps/trees/trunk.fus" "T": "data/maps/trees/trunkL.fus" "r": "data/maps/trees/trunk2.fus" "R": "data/maps/trees/trunk2L.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; /*\ ;; . . . . . . . . . . . . . . . . . . . . . + - + - + - + . . ;; \*/*\*/*\*/ ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . . . [T] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (.) . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . + . . . . . . . . . . . . . . . . . . [T] ;; /* * * * * * * */ ;; . . . . + - + - + . + . . . . . . . . . . . . . . . . . . ;; \* * */ ;; . . . . . . . + - + . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . + - + - + . + - + - + . . . . . + - + - + - + . . . . . . . . . . ;; / \ / /* * * / \ ;; . . . + . . + - + . + - + - + . . . + + - + - + + . + - + . . . . . . + - + ;; \ \* * * * * * */ /* * * * *\ \ / \ / \ ;; . . . . + . . . . + - + - + + - + - + - + + . . + + - + . + - + - + . . . + . + ;; \ /* *\ /* \ \ ;; . . . . + - + . + + . . + - + - + . + . . . + - + . . . . + . . . ;; \ /* * * * * * *\ /* * / \ ;; . . . . . . + . + . . . . . + - + . . . . + . . . . . + . . ;; * * * * * \ / ;; . . . . . . . . . . . . . . . . . . . . + . . . . + . . ;; \ S / ;; . . . . . . . . . . . . . . . . . . . . . + - + - + . + . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + . . . + ;; / / ;; . . . . . . . . . . . . . . . . . . . . . + . . . + ;; / / ;; . . . . . . . . . . . . . . . . . . . . . + . + . + . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . + - + - + . + . + - + - + ;; \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . + ;; ;; . . . . . . . . . . . (.) . . . . . . . . . + . + + . . ;; \ * */ ;; . . . . . . . . . . . . . . . . . . . . . + - + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . + - + . . . . ;; / ;; . . . . . . . . . . . . . . . . . . . . + . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . + . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . + - + . . . . . . . . ;; \ \ ;; . . . . . . . . . . . . . . . . . + - + - + . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . . + + . . . . . . . . . . . parts: "t": "data/maps/trees/trunkr2.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . (?) . . . . . . . . . [t] ;; spawn: (1 1) 0 n collmap: ;; ;; . . . . . . . . . . . . . . . + - + ;; / / ;; . . . . . . . . . . . . . . + + - + ;; / / ;; . . . . . . . . . . . . . . + - + - + ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + - + . . . . ;; / / ;; . . . . . . . . . . . + - + . . . . ;; S ;; . . . . . . . + - + - + . . + - + . . . . + - + ;; / / / / / / ;; . . . . . . + . + . . + - + . . . . + + ;; / / / / ;; . . . . . . + - + - + . . . . . . + - + + + + - + ;; / / / / / / ;; . . . . . . . . . . + - + - + . + + + + + - + ;; / / / / / / ;; . . . . . + - + - + . . + . + . + + + + ;; / / / / / / / / ;; . . . . (+)- + - + . . + - + - + . + - + + + ;; / / ;; . . . . . . . . . . . . . . . + + . ;; / / ;; . . . . . . . . . . . . . . + - + . ;; collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . (+) . + - + - + . . . . . . . . . . . . . . . . . . . . ;; \ \ \ ;; . . . . . . . + - + . + - + . . . . . . . . . . . . . . . . . . . . ;; \ \ \ ;; . . . . . . . + - + - + . + . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + - + - + . . . . . . . . . . . . . . . . . ;; \ \ ;; . . . . . . . . . . . . . + - + . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . + . . . . . + . . . . . ;; \* * * * * * * * * * * *\ ;; . . . . + . . . . . + . . . . . ;; \* * * * * * * * * * * *\ ;; . . . . + . . . . . + . . . . ;; \* * * * * * * * * * * *\ ;; . . . . . (+) . . . . . + . . . . ;; parts: "t": "data/maps/trees/trunk.fus" collmap: ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . ? . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;;(?) . . . . . . . . . . . . . . . [t] ;; parts: "t": "data/maps/trees/trunk_bark.fus" "T": "data/maps/trees/trunkL_bark.fus" "r": "data/maps/trees/trunk2_bark.fus" "R": "data/maps/trees/trunk2L_bark.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; *\*/* ;; . . . . . . . . . . . . . . . . . . . . . . . . . - + - . . ;; *\ /*\*/*\* ;; . . . . . . . . . . ? . . . . . . . . . . . . . . . . [R] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (.) . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . ? . . . . . . . . . . . ? . . . . . . . . . . [R] [T] ;; */*\*/*\*/*\* ;; . . . . . . . . . . . . . . . . . . . . - . . . . . . . . ;; *\* ;; . . . . . . . . . . . . . . . . . . . - . . . . . . . . ;; * ;; . . . ? . . . . . . . . . . . . . . . . . . . . . . . . [r] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . ? . . . . . . . . . . . . . . . . . . . . . . . . . [r] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; ? . . . . . . . . . . . . . . . . . . . . . . . . . . [r] collmap: ;; ;; . . . . . + - + - + - + - + . . . ;; /*\*/*\*/*\*/*\* ;; . . . . . + - + - + - + - + . . . . ;; /*\*/*\*/*\*/*\* ;; . . . . + - + - + - + - + . . . . ;; /*\*/*\*/*\*/*\* ;; . . . . (+)- + - + - + - + . . . . . ;; collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . - + . . . . . . . . . . . . . . . . . . ;; * *\ ;; . . . . . . . . . + . . . . . . . . . . . . . . . . . ;; \ \ *\ * */ ;; . . . . . . + - + - + - + . . . . . . . . . . . . . . . . . . ;; / ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . - + . . . . . . . . . . . . . . . . . . . . . . ;; / ;; . . . . + . . . . . . . . . . . . . . . . . . . . . . ;; / ;; . . (.)- + - + . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . . . . . . . . . + - + - + . . . . . . . . . . . . ;; /w w w w w\ ;; . . . . . . . . . . . + . . + . . . . . . . . . . . ;; w\w w w w w w\ ;; . . . . . . . . . . . . + . . + . . . . . . . . . . . ;; w w w w w w w/ ;; . . . . . . . . . . . . . . + . . . . . . . . . . . ;; w w w w w w w/ ;; . . . . . . . . . . . . . + - + . . . . . . . . . . . . ;; w w w w/ ;; . . . . . . . . . . . . + . + - + - + - + . . . . . . . . ;; w w w\ /w w w w w w w\ ;; . . . . . . . . . . . . . + - + . . . + . . . . . . . . ;; w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . . . . . . . + - + . . . . . . . ;; w w w w w w w w w w w w w w/ ;; . . . . . . . . . . . . . (+)- + - + . + . . . . . . . . . ;; w w w w w w/ \w w w w\ ;; . . . . . . . . . . . . + . . + . + - + - + . . . . . . ;; w w w w w w w\ /w w w w w w w w w\ ;; . . . . . . . . . . . . . + . + . . . . + . . . . . . ;; w w w w w w w w/ /w w w w w w w w w w w\ ;; . . . . . . . . . . . . + - + - + . . . . . + . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w/ ;; . . . . . . . . + . . . . . . . . . + - + - + . . . . . ;; w/w w w w w w w w w w w w w w w w w w w w/ ;; . . . . . . . . + . . . . . . . + . + . . . . . . . . ;; \w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . + . . . + - + - + . . . + . . . . . . . ;; \w w w w w w w/ \w w w w w w w/ ;; . . . . . . . . . + - + - + - + . . + . . + . . . . . . . . ;; \w w w w w/ ;; . . . . . . . . . . . . . . . + - + - + . . . . . . . . parts: "r": recording "data/maps/trees/recs/big_roller_r.fus" "R": recording "data/maps/trees/recs/big_roller_rd.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . + . + . + . + . . . . . . . . . ;; / / \ \ \ ;; . . . . . . . . . . . . . . + . + + . + . + . . . . . . . . . ;; / / \ \ \ ;; . . . . . . . . . . . + - + - + . + . + . + . + + + . . . . . . . ;; / \ \ \ ;; . . . . . . . . . . . + . . . . . . . . + + + . + . . . . . . . ;; / \ \ \ ;; . . . . . . . . ! - + - + . . . . . . . . . + . + . + - + - + . . . . . [R] ;; ;; . . . . . . . . . + . . . . . . . . . . . . . . . + . . . . . . ;; S ;; . . (+)- + . . . + - + - + - + - + . . . . . . . . . + - + - + . + . . . . . . ;; / \ \ \ \ \ ;; . . + . + . . . . . . . + . . . . . . . . + + . + + + . . . . . . ;; \ / \ \ \ \ ;; . . + - + . . . . . + - + . + . . . . . . . + - + + . + . + . . . . . . ;; \ \ / \ \ \ ;; . . . . . . . . . . . + . + . . . . . . + + + + . . . . . . . . . ;; \ / \ / \ ;; . . . . . . . . . . . . . + - + - + - + - + . + . + . + . . . . . . . ;; \ \ ;; . . . . . . . . . . . . . . . . . . + - + . . + + + . . . . . . ;; / \ \ \ ;; . . . . . . . . . . . + + . . . + + . + + . + . + . . . . . ;; \ / ;; . . . . . . . . . . . + . . . . . . + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + . + . . . . . . . . . ;; ;; . . . . . . . . . . + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + + . . . . . . . . . . . . . . . . parts: "t": "data/maps/trees/trunk.fus" "T": "data/maps/trees/trunkL.fus" "r": "data/maps/trees/trunk2.fus" "R": "data/maps/trees/trunk2L.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; /*\ ;; . . . . . . . . . . . . . . . . . . . . . + - + - + - + . . ;; \*/*\*/*\*/ ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . ? . . . . . . . . . . [t] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . . . [T] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . (.) . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . + . . . . . . . . . . . . . . . . . . [T] ;; /* * * * * * * */ ;; . . . . + - + - + . + . . . . . . . . . . . . . . . . . . ;; \* * */ ;; . . . . . . . + - + . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + - + . . . . . . . . ;; w w w / \ ;; . . . . . . . . . . . . . . . . + . + . . . . . . . ;; S w w w w w \ / ;; . . . . (+)- + . . . . . . . . . . . + - + . . . . . . . . ;; / \ w w w w w ;; . . . + . + . . . . . . . . . . . . . . . . . . . . ;; \ / ;; . . . . + - + . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . + - + . . . . . . . . . . . . . . . ;; / \ ;; . . . . . . . . . + . + . . . . . . . . . . . . . . . ;; \ / w w w w w ;; . . . . . . . . . + - + . . . . . . . . . . . . . . . ;; w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . spawn: (4 -8) 0 n parts: "r": recording "data/maps/wilderness/recs/roller000.fus" "A": recording "data/recs/ability_door.fus" vars: "location": "bubbles_transform_a" "set_yourbool": "is_rollerspider" "B": recording "data/recs/ability_door.fus" vars: "location": "bubbles_transform_b" "set_yourbool": "is_spikeyspider" "a": location "bubbles_transform_a" "b": location "bubbles_transform_b" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w ;; . . . . . . (.) . . . . . . . . . . . . . . . . . . . + . . . . ;; w w w w w w w w w w w w / \w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . + - + + . + - + + . . . . ;; w w w w w w w w w w w w w w w w w / \ / \ \ /w w w w w w w w ;; . . . . . . . . . . . . . . . + - + - + - + - + + - + - + + . + + . . . . ;; w w w w w w w w w w w w w\ \ \ / w\ /w w w w w w ;; . . . . . . . . . . . . . . . + - + - + - + - + - + - + - + + . . + . . . . . ;; * * * w w w w w w w w w w w\ \ w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . + - + + . . . . . . . . ;; * * * w w w w w w w w w w w w\ / ;; . . . . . . . . . . . . . . + . . . . . . . + . . . . . . . . . ;; * * * / w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . + . . . . . . . . . . . + . . . . . ;; * * * \ w w w w w w w w w w w w w \ ;; . . . . . . . . . . . . . . + . . . . . . . . . . . + - + - ! - + . . [a~^3] ;; \ \ ;; . . . . . . . . . . . . . . + - + . . . . . . . . . . . . . + . ? [A] ;; * * *\ \ ;; . . . . . . . . . . . . . . . . + - + . . . . . . . . + - + - + - + + - + - + ;; * * * \ \ \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . + . + . . + - + ;; / \ / \ ;; . . . . . . . . . . . . . . . . . . + . + - + . . . . . + . . + - + + . + ;; \ / \ \ / / / / ;; . . . . . . . . . . . . . . . . . . + - + . + - ! . + - + - + - + . + - + + + + [r^3] ;; \ / / \ / \ / / ;; . . . . . . . . . . . . . . . . - + + + . . . . + + . + - + - + . . + - + + ;; / \ / \ \ / / \ / ;; . . . . . . . . . . . . . . . . + . + . . . . + . + . . + - ! ? . + [b~^3][B] ;; *\ / \ / ;; . . . . . . . . . . . . . . . . . + . . . ! - + . + - + . . . . + - + - + [r] ;; * *\ / \ / ;; . . . . . . . . . . . . . . . . . ! - + - + - + . + - + . . . . . . . [r] ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; anim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: is was nodataanim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: is was l: r: is was nodataanim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is was r: nodataunit: 3 2 0 -1 verts: "0": "bark_vert_r0" edges: "0": "bark_edge_r0" "bark_edge_r1" "bark_edge_r2" faces: "0": "bark_face_r0" "bark_face_r1" "S": "map_savepoint" "M": "map_minimap" shapes: ############## # BARK FLAKE # ############## "bark_flake_center_c1": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 10 f eval: 1 + 0 + 6 "bark_flake_center_c2": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 5 : "tri" (0 0 0 0) 10 f eval: 1 + 0 + 5 "bark_flake_center_c3": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 0 + 4 "bark_flake_perimeter_c1": prismels: : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 2 : "tri" ( 0 0 1 0) 1 f eval: 1 + 8 + 6 : "sq" ( 1 0 0 0) 1 f eval: 1 + 8 + 2 : "tri" ( 1 0 0 0) 11 f eval: 1 + 8 + 6 : "sq" ( 1 0 -1 0) 11 f eval: 1 + 8 + 2 "bark_flake_perimeter_c2": prismels: : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 3 : "tri" ( 0 0 1 0) 1 f eval: 1 + 8 + 5 : "sq" ( 1 0 0 0) 1 f eval: 1 + 8 + 3 : "tri" ( 1 0 0 0) 11 f eval: 1 + 8 + 5 : "sq" ( 1 0 -1 0) 11 f eval: 1 + 8 + 3 "bark_flake_perimeter_c3": prismels: : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 1 : "tri" ( 0 0 1 0) 1 f eval: 1 + 8 + 4 : "sq" ( 1 0 0 0) 1 f eval: 1 + 8 + 1 : "tri" ( 1 0 0 0) 11 f eval: 1 + 8 + 4 : "sq" ( 1 0 -1 0) 11 f eval: 1 + 8 + 1 ########################## # BARK_SIMPLE VERT, FACE # ########################## "bark_simple_vert_r0": shapes: : "bark_flake_center_c1" ( 0 0 0 0) 0 f : "bark_flake_perimeter_c1" ( 0 0 0 0) 0 f "bark_simple_face_r0": shapes: : "bark_flake_center_c1" ( 1 1 1 0) 0 f : "bark_flake_perimeter_c1" ( 1 1 1 0) 0 f "bark_simple_face_r1": shapes: : "bark_flake_center_c1" (-1 0 2 1) 0 f : "bark_flake_perimeter_c1" (-1 0 2 1) 0 f ######################### # BARK VERT, EDGE, FACE # ######################### "bark_vert_r0": shapes: : "bark_flake_center_c1" ( 0 0 0 0) 0 f "bark_edge_r0": shapes: : "bark_flake_perimeter_c1" ( 0 0 0 0) 0 f "bark_edge_r1": shapes: : "bark_flake_perimeter_c2" ( 1 1 1 0) 0 f "bark_edge_r2": shapes: : "bark_flake_perimeter_c3" (-1 0 2 1) 0 f "bark_face_r0": shapes: : "bark_flake_center_c2" ( 1 1 1 0) 0 f "bark_face_r1": shapes: : "bark_flake_center_c3" (-1 0 2 1) 0 f unit: 3 2 0 -1 verts: "0": "bark_simple_vert_r0" edges: "0": "empty" faces: "0": "bark_simple_face_r0" "bark_simple_face_r1" "S": "map_savepoint" "M": "map_minimap" unit: 3 2 0 -1 verts: "0": "map_vert0" "1": "map_vert1" edges: "0": "map_edge0" "1": "map_edge1" "2": "map_edge2" faces: "0": "map_face0" "1": "map_face1" "2": "map_face2" "S": "map_savepoint" "M": "map_minimap" "w": frame_offset(1) "map_water" unit: 3 2 0 -1 verts: "0": "map_vert0_dark" edges: "0": "map_edge0_dark" faces: "0": "map_face0_dark" colors: : animate: (( 15 30 0) 100) (( 0 0 0) 100) : animate: (( 30 40 50) 100) (( 0 0 127) 100) : animate: (( 40 70 30) 100) (( 0 127 0) 100) : animate: (( 30 60 60) 100) (( 0 127 127) 100) : animate: : ( 60 50 15) 50 : ( 40 40 0) 50 : (127 0 0) 100 : animate: (( 50 40 20) 100) ((127 0 127) 100) : animate: (( 50 80 30) 100) ((127 127 0) 100) : animate: (( 70 80 70) 100) ((127 127 127) 100) : animate: (( 30 60 0) 100) (( 60 60 60) 100) : animate: (( 60 80 100) 100) (( 60 60 255) 100) : animate: (( 80 140 120) 100) (( 60 255 60) 100) : animate: (( 60 120 100) 100) (( 60 255 255) 100) : animate: : (120 100 30) 50 : ( 80 80 0) 50 : (255 120 60) 50 : (255 60 60) 50 : animate: (( 100 80 40) 100) ((255 60 255) 100) : animate: (( 100 160 60) 100) ((255 255 60) 100) : animate: (( 140 160 140) 100) ((255 255 255) 100) 255: animate: (( 15 25 5) 100) (( 0 0 0) 100) parts: "s": recording "data/recs/spider_r.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; / \ ;; . . . . . . . . . . . . . . . . . + - + . + - + . . . . ;; \ / ;; . . . . . + . . + + . . . . . . . . + . . . . . . . . ;; ;; . . . . + . . . . . . . + - + - + . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . + - + . - . + . + . . . . . + - + . . ;; / \ / / \ \ / ;; . . . . . . . . . . + . + - + - + . + ! . . . . . + . . [s^5] ;; / \ ;; . . . . . . . . . . . . . . . . + - + - + . . . . . . . . ;; ;; . . + . . . . . . . . . . . . . . . . . . . + . . . ;; / \ ;; . . . + + . . . . + . . . . . . + - + - + - + . + - + + . . . ;; / \ / \ \ / \ / ;; . . . + - + - + . . + (!)- + . + - + - + . . + - + . . + - + . . . [s] ;; / \ / / \ \ ;; . . + - + - + - + - ! . + . + . . + . + - + . . . . . . . . . . [s^3] ;; / / / / / \ \ ;; + - + + . . . . + . + . . . + - + . + . . . . . . + - + . ;; \ / / / / \ / \ \ ;; . + + . + - + . + - + + . . . . . + - + . . . . . . . + - + . ;; / / / \ / ;; + + . + . . . . + . + - + . . . . . . . + - + - + . . . . ;; \ / / \ \ \ / / \ \ ;; . + . + + . + . . . . + - + . . . . . . + - + + - + . . . . ;; / \ \ \ / / \ / \ ;; + + . + - + - + . . . . . + + . . . . . . . . + + . . . ;; \ \ \ / \ / ;; . + + . . . . + . + - + + - + . . . . . . . . + - + . . . . ;; \ \ / \ \ \ / / / / ;; . + - + - + - + - + - + - + . + - + - + . . . . . . . . + - + . . . . ;; \ / ;; . . . + - + - + - + . . . . . . . . . . . . . . . . . . . . ;; \ / ;; . . . . + . . . . . . . . . . . . . . . . . . . . . parts: "T": shape "txt_title" "x": shape "txt_tutorial1" "y": shape "txt_tutorial2" "z": shape "txt_tutorial3" "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "D": recording "data/recs/door.fus" vars: "map": "data/maps/tutorial/worldmap.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . ? . . . . . . . . . . . . . . . [T] ;; ;; . ? . . . . . . . . . . . . . . . . . . . . + - + - + - + - + - + . [D] ;; / \ ;; + - + - + - + . . . . . . . . . . . . . . . . . . + . . . . . + . ;; / \ / / ;; + . . . + . . . . . . . . . . . . . . . . . + - + - + - + - + - + - + . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . [D] ;; \ \ ;; . + . . . + - + - + - + - + . . + - + -(+)- + - + . . . + - + - + - + - + - + - + . . . ;; \ \ \ / / \ ;; . + . . . . . . . + . . + - + - + - + . . . + . . . . . . + . . ;; \ \ / / ;; . . + - + - + - + - + + - + - + - + . . . . . . . . + - + - + + - + - + - + - + . . . ;; \ / \ / ;; . . . . . . + . . . . . . . . . . . . . . + . . . . . . . ;; ;; . . . . . . . . . . . + . . . . . . + . . . . . . . . . . . ;; / \ / \ ;; . . . . . . . + - + - + - + + - + - + - + - + - + - + + - + - + . . . . . . . . ;; \ / ;; . . . . . . . . + . . . . . . . . . . . + . . . . . . . . . ;; \ / ;; . . . . . . . . + - + - + - + - + - + - + - + - + - + - + - + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; ;; ;; + ;; / \ ;; + -(+)- + - + ;; / \ / \ / \ / \ ;; + - + - + - + - + + - + ;; / \ / \ / \ / / \ / \ ;; + - + - + . + + - + - + ;; \ / \ / \ / \ / \ / ;; + - + - + . + - + - + ;; ;; . . . ;; ;; . . . ;; ;; . . + - + - + . ;; / \ / \ / \ ;; . + - + - + - + . + - + - + - + - + - + . . ;; / \ / \ / \ / \ \ / \ / \ / \ / \ / ;; . + - + - + - + - + . + - + - + - + - + . ;; \ / \ / ;; . + - + . . ;; ;; . . . ;; ;; + - + - + . + - + . ;; / \ / \ / \ / \ ;; + - + - + + . + - + - + ;; \ / \ / / \ / \ / \ / \ ;; + - + + - + - + - + - + - + ;; \ / \ / \ / \ / \ / ;; + - + - + - + - + ;; \ / ;; + ;; name: "title" unit: 3 2 0 -1 spawn: "data/maps/title/title.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : pos: (0 0) camera: (2 2) mapper: ("triple") submaps: : bg file: "data/maps/title/title_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/title/title.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + - + - + - + . ;; / \ ;; + - + - + - + . . . . . . . . . . . . . . . . . . + . . . . . + . ;; / \ / / ;; + . . . + . . . . . . . . . . . . . . . . . + - + - + - + - + - + - + . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . ;; \ \ ;; . + . . . + - + - + - + - + . . + - + -(+)- + - + . . . + - + - + - + - + - + - + . . . ;; \ \ \ / / \ ;; . + . . . . . . . + . . + - + - + - + . . . + . . . . . . + . . ;; \ \ / / ;; . . + - + - + - + - + + - + - + - + . . . . . . . . + - + - + + - + - + - + - + . . . ;; \ / \ / ;; . . . . . . + . . . . . . . . . . . . . . + . . . . . . . ;; ;; . . . . . . . . . . . + . . . . . . + . . . . . . . . . . . ;; / \ / \ ;; . . . . . . . + - + - + - + + - + - + - + - + - + - + + - + - + . . . . . . . . ;; \ / ;; . . . . . . . . + . . . . . . . . . . . + . . . . . . . . . ;; \ / ;; . . . . . . . . + - + - + - + - + - + - + - + - + - + - + - + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + - + - + - + . ;; / \ ;; + - + - + - + . . . . . . . . . . . . . . . . . . + . . . . . + . ;; / \ / / ;; + . . . + . . . . . . . . . . . . . . . . . + - + - + - + - + - + - + . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ \ ;; . + . . . + . . . . . . . . . . . . . . . . . . . . . . . . ;; \ \ ;; . + . . . + - + - + - + - + . + + - + -(+)- + - + . . . + - + - + - + - + - + - + . . . ;; \ \*/*\*/*\*/*\ / / \ ;; . + . . . . . . . + - + . + - + - + - + . . . + . . . . . . + . . ;; \ \* * / / ;; . . + - + - + - + - + + - + - + - + . . . . . . . . + - + - + + - + - + - + - + . . . ;; \ /*\*/*\*/*\ * \*/*\*/ \ / ;; . . . . . . + - . - + - . . . . . - + . . . . + - . + . . . . . . . ;; \*/*\*/*\ */* /*\*/ ;; . . . . . . . . . - + - . . . . + - . . . + . - + . . . . . . . . . ;; /*\*/*\*/*\*/ \ *\* / \ /*\*/*\ ;; . . . . . . . + - + - + - + + - + - + - + - + - + - + + - + - + . . . . . . . . ;; \ / ;; . . . . . . . . + . . . . . . . . . . . + . . . . . . . . . ;; \ / ;; . . . . . . . . + - + - + - + - + - + - + - + - + - + - + - + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . name: "title_menu" unit: 3 2 0 -1 spawn: "data/maps/title/playground.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" mapper: ("triple") song: "title" submaps: : pos: (0 0) camera: (2 0) mapper: ("triple") submaps: : file: "data/maps/title/playground.fus" spawn: (0 0) 1 n collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; + - + - + - + - + - + . . . . . . . . . . . . . . . . . . . . ;; / \ / / / \ ;; (+)- + - + - + + . + . . . . . . . . . . . . . . . . . . . . ;; \ / / / ;; + - + - + - + - + - + . . . . . . . . . . . . . . . . . . . . ;; / / ;; . + - + . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . name: "death_place" unit: 3 2 0 -1 spawn: "data/maps/death_place/end.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : file: "data/maps/death_place/end.fus" pos: (0 0) camera: (0 0) mapper: ("triple") # An area to play around with, test features out, etc. parts: "a": location "aispider_gap" "b": location "aispider_duck" "c": location "aispider_jump" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + . . . . + - + . . . . . . . . . ;; / \ / \ ;; + - + - + - + . . + - + . + . + - + . . + . + . . . . . . . . ;; / \ \ / \ / ;; + + . . . . . . + - + . . . . . . + - + . . . . . . . . . ;; \ / \ ;; + . . . . . . . . . . . . . . . . + . . . . . . . . ;; \ \ ;; . + . . . . . . . + - + . . . . . . . + . . . . . . . . ;; \ / \ / ;; . (+)- + - + - + - + - + - + - + . + . . . . + - + - + . . . . . . . . ;; / ;; . . . . . . . . . . . + . . . + . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . + . + - + + . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . + - + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . ! - + + - + . . . . . . . . . . . . . . . . . . . . [a] ;; / / ;; . . + - + + . . + - + . . . . . . + - + - + . . + . . . . . . ;; / / \ / \ ;; . + - + - + . . . + . . . . . . + . . . . . + . . . . . ;; ;; . . . . . ! - + - + - + - + - + . . . . ! - + - + . + - + . . . . . . [b] [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . name: "playarea" unit: 3 2 0 -1 spawn: "data/maps/playarea/start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : file: "data/maps/playarea/start.fus" pos: (0 0) camera: (10 0) mapper: ("quadruple") : pos: (30 0) camera: (8 -5) mapper: ("triple") submaps: : bg file: "data/maps/playarea/start2_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/playarea/start2.fus" parts: "b": actor "actor/aibig_roller.fus" "R": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_rollerspider" "P": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_spikeyspider" "A": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_aimerspider" "F": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_flipspider" "S": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_stickyspider" #$SET_BOOL SHOW_SPIDERS $IF SHOW_SPIDERS: "r": recording "data/recs/spider.fus" "spider_cpu" vars: "is_rollerspider": T "p": recording "data/recs/spider.fus" "spider_cpu" vars: "is_spikeyspider": T "a": recording "data/recs/spider.fus" "spider_cpu" vars: "is_aimerspider": T "f": recording "data/recs/spider.fus" "spider_cpu" vars: "is_flipspider": T "s": recording "data/recs/spider.fus" "spider_cpu" vars: "is_stickyspider": T $IF !SHOW_SPIDERS: "r": shape "empty" "p": shape "empty" "a": shape "empty" "f": shape "empty" "s": shape "empty" collmap: ;; ;; . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . . . + - + - + . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . . . + - + + . . . + . . . . . ;; / \ \ \ ;; . . . . . . . . . . . . . . + . + + . + . + . . . . ;; / \ / \ / ;; . . . . . . . . . . . . . . . . + - + - + + - + - + . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . + - + . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; ;; + . (+)- + . . . . . . . . . . . . + - + - + . + . . . . . ;; / \ / \ \ \ / \ ;; + - + + - + + . . . . . . . . . . . . + . + + + . . ? . . [R] ;; \ \ \ / / \ ;; . . + + + . . . . . . . . . . . . + - + + . + + - + - + . ;; \ \ \ / / / ;; . . . + + + + - + . . . . . . . . + - + . . + - + + . + . . ;; / / / \ / \ \ / ;; . . . + + + . + . . . . . . . + . + . . . . ! - + . . [r] ;; \ / \ / \ / ;; . . . . + ? ! - + . . . . . . . . + - + . . . . . . . . . [F][f] ;; \ ;; . . . + + - + - + . . . + - + . . . . . + - + . . . . . . . ;; / \ \ \ / \ / \ ;; . ! . + - + + . + . . + . + . . . . + . + - + . . . . . . [b] ;; / \ / \ \ \ / \ \ ;; + + - + . . + . + - + - + ! - + . . . . . + - + . + - + . . . . [a] ;; / / \ \ \ \ ;; ! - + - + . . . + - + . . + ? + - + . . . . . ! - + . + . . . . [b^1][A] [s] ;; \ \ / \ \ / ;; . . . . . + . + - + - + - + - + . + . . . . . ? + - + . . . . [S] ;; / \ \ / ;; . . . . . + - + . . . . + - + - + . . . . . . . . + . . . . ;; / ;; . . . . + ? . . . . . . . + . . . . . . . . + . . . [P] ;; / \ ;; . . . . + + - + . . . . . . . + + . . . . . . + . . . . ;; \ \ ;; . . . . + . + . . . . . . . . + . . . . + - + . . . . ;; \ / / \ ;; . . . . . ! - + . . . . . . . . . + + + + + . + . . . . [p] ;; \ / ;; . . . . . . . . . . . . . . . . . . . . + - + . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . . . + - + - + . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . . . + - + + . . . + . . . . . ;; / \ \ \ ;; . . . . . . . . . . . . . . + . + + . + . + . . . . ;; / \ / \ / ;; . . . . . . . . . . . . . . . . + - + - + + - + - + . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . + - + . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; ;; + . (+)- + . . . . . . . . . . . . + - + - + . + . . . . . ;; / \ / \ \ \ / \ ;; + - + + - + + . . . . . . . . . . . . + . + + + . . . . . ;; */*\ \ \ / / \ ;; . . + - + + . . . . . . . . . . . . + - + + . + + - + - + . ;; */*\ \ \ / / / ;; . . . + - + + + - + . . . . . . . . + - + . . + - + + . + . . ;; */ / / \ / \ \ / ;; . . . + + + . + . . . . . . . + . + . . . . + - + . . ;; \ / \ / \ / ;; . . . . + . + - + . . . . . . . . + - + . . . . . . . . . ;; *\ ;; . . . + - + - + - + . . . + - + . . . . . + - + . . . . . . . ;; / \*/*\ \ / \ / \ ;; . + . + - + + . + . . + . + . . . . + . + - + . . . . . . ;; / \*/*\*/ \ \ \ / \ \ ;; + + - + . . + . + - + - + + - + . . . . . + - + . + - + . . . . ;; / / \ \ \ \ ;; + - + - + . . . + - + . . + . + - + . . . . . + - + . + . . . . ;; *\*/*\ \ / \ \ / ;; . . . . . + - + - + - + - + - + - + . + . . . . . . + - + . . . . ;; / \*/*\* \ / ;; . . . . . + - + . . . . + - + - + . . . . . . . . + . . . . ;; / ;; . . . . + . . . . . . . . + . . . . . . . . + . . . ;; / \ ;; . . . . + + - + . . . . . . . + + . . . . . . + . . . . ;; \ \ ;; . . . . + . + . . . . . . . . + . . . . + - + . . . . ;; \ / / \ ;; . . . . . + - + . . . . . . . . . + + + + + . + . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . + - + . . . . spawn: (6 9) 0 n collmap: ;; . . . . . . . . . . + . . . . ;; * * * /* * * * * ;; . . . . . . . . . . + . . . . ;; * / * * * * ;; . . . . . . . . . + . . . . . ;; \ / * * * ;; . . . . . . + . . . . . . . . ;; \ \ / ;; . - + - + - . . . . + . . . . . . + . ;; \* * * * \ / ;; . + . . . . . + - + - + - . . . + . ;; \* * * * * * * /* ;; . . . . . . . . . . . . + . . ;; * * /* * ;; . . . . . . . . . . . . + . . ;; /* * * ;; . . . . . . . . . . . + . . . ;; \ / * * * ;; . . . . + . . . . . . . . . . ;; *\ ;; . . . . + . . - + - + - + - + - . . . . ;; * *\ \* * * * * * ;; . . . . . + . . + . . . . . . ;; \ \* * * * * ;; . . . . . + . . - + - + - . . . . . ;; \ ;; . . . . . . . . . . . . . . . ;; \ ;; . . . . . - + -(+)- + - + - + - + . + . . ;; * * * */ \ \ ;; . . . . . . . . . + . + . + . ;; * \ / \ \ ;; . . . . . . . . . + - + + . + . ;; \ ;; . . . . . . . . . . . . + . . ;; ;; . . . . . . . . . . . . . . . ;; $SET_STR SAVEPOINT_C: lines: at(22 30) ;; If you ever ;; get stuck, ;; ;; ;; press "1" ;; to return ;; to where ;; you last ;; saved. ;; ;; (Try it now!) $SET_STR SAVEPOINT_C2: lines: at(22 30) ;; ;; Remember!.. ;; ;; ;; press "1" ;; to return ;; to where ;; you last ;; saved. text: if mapvar("made_it_underneath") then null else if mapvar("reached_cage") then $GET_STR SAVEPOINT_C2 else $GET_STR SAVEPOINT_C parts: "l": location "cage" collmap: ;; ;; + - + ;; / \ ;; + + ;; / \ ;; + + ;; \ / ;; + + ;; \ / ;; (!)- + [l] ;; $SET_STR TOO_FAR: lines: at(18 19) ;;Too far! text: if mapvar("start_eye_a_open") then if mapvar("made_it_underneath") then $GET_STR TOO_FAR else null else null parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . ;; \ * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; \ * * * * * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . ? . . . . . . . [b] ;; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . + - + . . . . . . . . . ;; * * * / \ ;; . . . . . . . . . . . . + . + - + - + - + . . . . . ;; * * * / \ ;; . . . . + - + -(+)- + - + - + - + - + - + ? . . . . + - + - + - + - + . [a] ;; * * * */ / ;; . . . + . . . . . . . + - + - + - + - + . + - + ? + . . [c^3] ;; * * * \ / \ / \ / ;; . . . . + - + - + . . + - + - + . . . . + + . + - + . . . ;; \ / / \ ;; . . . . . . + - + - + . . . . . . + . + . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . + - + . . . . . . ;; parts: "h": recording "data/recs/hotspot.fus" vars: "key": "reached_skypipes" collmap: ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ? . . . . . . [h] ;; ;; . . . . . . . . . . . . + - + . . . . . . . ;; /* * *\ ;; . . . . . . . . . . . . . + . . . . . . . ;; * * */ ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . + - + . . . . ;; /* * *\ ;; . . . . . . . + - + . . . . . . + . + . . . ;; /* * *\ \* * */ ;; . . . . . . . . + . . . . . . . . . . ;; * * */ ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . (+)- + . . . . . . . . ;; /* * *\ ;; . . . . . . . . . + . + . . . . . . . . ;; \* * */ ;; . . . . . . . . . . . . . . . . . . . . name: "tutorial" unit: 3 2 0 -1 spawn: "data/maps/tutorial/entrance.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" song: "symphony" vars: "touched_spikeball": F "reached_cage": F "start5_minimap": F "reached_skypipes": F "made_it_underneath": F "going_upwards": F nosave "start_eye_a_open": 0 nosave "start_eye_b_open": 0 nosave "start_eye_c_open": 0 nosave "start2_eye_a_open": 0 nosave "start2_eye_b_open": 0 nosave "start2_eye_c_open": 0 nosave "start3_eye_a_open": 0 nosave "start3_eye_b_open": 0 nosave "start3_eye_c_open": 0 nosave "loop_eye_a_open": 0 nosave "start4_eye_a_open": 0 nosave "start4_eye_b_open": 0 nosave "start4_eye_c_open": 0 nosave "skypipes_eye_a_open": 0 nosave "skypipes4_eye_a_open": 0 submaps: : pos: (0 0) mapper: ("triple") submaps: "entrance": file: "data/maps/tutorial/entrance.fus" pos: eval: (-4 9) camera: (5 3) mapper: ("quadruple") "start": file: "data/maps/tutorial/start.fus" pos: eval: (0 0) camera: (8 0) mapper: ("quadruple") song_vars: "x": 1 "start2": file: "data/maps/tutorial/start2.fus" pos: eval: (19 0) camera: (9 0) song_vars: "x": 2 "start3": pos: eval: (19 0) + (19 -1) camera: (9 0) submaps: : file: "data/maps/tutorial/start3.fus" song_vars: "x": 3 : file: "data/maps/tutorial/start3_cage.fus" pos: (14 -12) song_vars: "x": 3 "loop": file: "data/maps/tutorial/loop.fus" pos: eval: (19 0) + (19 -1) + (19 -6) camera: (9 4) mapper: ("quadruple") "start4": file: "data/maps/tutorial/start4.fus" pos: eval: (19 0) + (19 -1) + (19 -6) + (19 -3) camera: (9 -2) submaps: : file: "data/maps/tutorial/start4b.fus" pos: (30 10) camera: (-2 6) : file: "data/maps/tutorial/start4c.fus" pos: eval: (30 10) + (-8 15) camera: (-10 0) "start5": file: "data/maps/tutorial/start5.fus" pos: eval: (19 0) + (19 -1) + (19 -6) + (19 -3) + (19 -5) camera: (3 0) : pos: (0 0) mapper: ("triple") submaps: "skypipes": target: && mapvar("start5_minimap") ! mapvar("reached_skypipes") pos: eval: (19 0) + (19 -1) + (24 17) camera: (8 0) submaps: : bg file: "data/maps/tutorial/skypipes_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial/skypipes.fus" : file: "data/maps/tutorial/skyblocker.fus" pos: eval: (25 2) + (-2 -1) : file: "data/maps/tutorial/skyblocker2.fus" pos: eval: (25 2) + (8 0) : file: "data/maps/tutorial/skyblocker2.fus" pos: eval: (25 2) + (8 0) + (12 0) "skypipes2": file: "data/maps/tutorial/skypipes2.fus" pos: eval: (19 0) + (19 -1) + (24 17) + (28 12) camera: (9 4) actors: : "data/maps/tutorial/recs/eyespider0.fus" "skypipes3": file: "data/maps/tutorial/skypipes3.fus" target: mapvar("reached_skypipes") pos: eval: (19 0) + (19 -1) + (24 17) + (28 12) + (27 10) camera: (9 0) actors: : "data/maps/tutorial/recs/eyespider1.fus" "skypipes4": file: "data/maps/tutorial/skypipes4.fus" target: mapvar("reached_skypipes") pos: eval: (19 0) + (19 -1) + (24 17) + (28 12) + (27 10) + (25 3) camera: (10 0) parts: "M": recording "data/recs/minimap_door.fus" vars: "set_mapvar.name": "start5_minimap" "set_mapvar.value": T collmap: ;; ;; . . . . . + - + + - + . . . . . . . . . . . ;; /* * *\ /* * *\ ;; . . . . . . . . . + . . . . . . . . . . . ;; * * * * * * * * *\ ;; . . . . . . . . . + . . . . . . . . . . ;; * * * * * * * * */ ;; . . . . . . . . . . . . . + - . . - + . . . . ;; /* * * * * * *\ ;; . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . ;; * * * *\ ;; . . + - + - + - + - + - + - + . . . . . . . . + . . ;; \ * * */ ;; . . . . . . . . . + . . . . . . . . . . . ;; \ ;; . . . . . . . . . + . . . . . . . . . . ;; \ * * *\ ;; . + - + - + - + - + - + - + . . . . . . . . . . + . . ;; \ * * */ ;; . . . . . . . + . . . . . . . . . . . . ;; \ ;; . + - + - + - + - + - + . + . . . . . . . . . . . . ;; \ \ ;; . . . ? . . + . + . . . . . . . . . . . [M] ;; / / \ ;; (+)- + - + - + - + - + - + . + . . . + . . . . . . . . ;; / \ ;; . . . . . . . + . . . . + . . . . . . . ;; / \ ;; . + - + - + - + - + - + - + . . . . . + . . . . . . . ;; / ;; . . . . . . . . . . . . + . . . . . . . ;; / ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . + - + - + - + . . . . . . . . . . . . . . . ;; \ ;; . . . . . + - + - + . . . . . . . . . . . . . ;; \ / * * * ;; . . . . . . . + . . + . . . . . . . . . ;; \ / * * * * * */ ;; . . . . . . . . + - + - + . . . . . + - + . . . ;; * * */ ;; . . . . . . . . . . . . . . . - + . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . ;; \* * */ * * * ;; . . . . . + - + . . . . . . . . . . . . . ;; \* * */ ;; . . . . . . . . + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start2_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start2_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start2_eye_c_open" collmap: ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . + - + . ;; * * * * * * * * * * / \ ;; . . . . . . . . . . . . ? . - + - + - + - + . + . [c] ;; * * * * * * * * * * * * * \ / ;; . . . . . . . . . . . . . . . . . + - + . ;; * * * * * * * * * * * * * * o= ;; . . . . . . . . . . . . . . . . . . @ . . ;; * * * * * * = ;; . . . . . . . . . . . . . . . . . @ . . ;; = ;; . . . . . . . . . . . . . . . . . @ . . . ;; = ;; . . . . . . . . . . . + - + - + . . @ . . . ;; / \ = ;; + -(+)- + - + - + - + . . . . . + ? . + . @ . . . . [b] ;; \ \ / \ = ;; . + - + - + ? + . . . . + . . . + - + . . . . [a] ;; \ \ / / ;; . . . . + - + - + . . . + - + - + - + - + - + . . . . . ;; \ / ;; . . . . . . + - + - + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . ;; $SET_STR SAVEPOINT_A: lines: at(28 32) ;;Touch ;; this ;; shiny ;; thing ;; to save. $SET_STR SAVEPOINT_C: lines: at(41 28) ;;I sure hope ;; you saved!.. $SET_STR SAVEPOINT_B: lines: at(22 34) ;;You will ;; reappear there ;; if you... ;; ;; ;; run into ;; trouble. $SET_STR ONWARD: lines: ;;Onward and upward! text: if ! mapvar("made_it_underneath") then if mapvar("start3_eye_b_open") then $GET_STR SAVEPOINT_A else if mapvar("start3_eye_c_open") then $GET_STR SAVEPOINT_C else null else null parts: "h": recording "data/recs/hotspot.fus" vars: "key": "going_upwards" "a": recording "data/recs/eye.fus" vars: "opened_key": "start3_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start3_eye_b_open" "c": recording "data/recs/eye.fus" vars: "antikey": "touched_spikeball" "opened_key": "start3_eye_c_open" "s": recording "data/recs/spikeball.fus" vars: "key": "touched_spikeball" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ! - + - + . . . . + - + . . . . . . . [h] ;; / \ / \ ;; . . . . . + . . + . . + - + . + . . . . . . . ;; * * * * * * *\ /* * * * * / / * * ;; . . . . . + - + - + + - + - + . ? + . . . . . . . . [c^3] ;; * * * * * * * */ / * * * * * * ;; . . . . . . . . + . . . . + . . . . . . . . . ;; * * * * * * * *\ /* * * * * * * * * * * ;; . . . . . . . . + - + . . + . . . . . . . . . . ;; * * * * * * * *\ /* * * * * * * * * * ;; . . . . . . . . . . + . + . . . . . . . . . . ;; * * * \ / * * * * ;; . . . . . . . . . . + - + . . . . . . . . . . ;; * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . + - + - + . . . . . . . . . . . . . . . ;; / \ * * * * * ;; (+)- + - + - + . ? + . . . . . . . . . . . . . . [a] ;; \ / * * * * * * ;; . + . + - + - + . . . . . . . . . . . . . . ;; \ / * * * * * ;; . . + + . . . . . . . . . . . . . . . . . ;; \ / * * ;; . . + . . . . . . . . . . . . . . . . . ;; \ ;; . . . + . . . . . . . . . . . . . . . . . ;; \ ;; . . . + . . . . . . . . + - + . . . . ? ? [s][s] ;; / / \ ;; . . . + . . . . . . . . + . + - + - + . + - + - + ;; / \ \ / ;; . . + - + - + - + . . . . . . + . . ? + - + . . [c] ;; / \ \ / ;; . . + . . ? + . . . . . . + . . + . . . . [b] ;; \ / \ / ;; . . + - + - + - + . . . . . . . + - + - + . . . . ;; \ \ ;; . . . + - + - + . . . . . . . . . . + . . . . ;; / S / ;; . . . . + . . + - + . . + - + . . + . . . . ;; \ / \ / \ / ;; . . . . . + - + - + . + - + - + . + - + - + . . . . . ;; \ / ;; . . . . . . . + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "skypipes_eye_a_open" "h": recording "data/recs/hotspot.fus" vars: "key": "reached_skypipes" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + - + - + - + . . + - + - + - + - + - + . . . . . . . ;; / \ ;; . . . . . . . . . + . . . . . . . . . . . . + . . . . . . ;; \ / ;; . . . . . . . . . . + . . + - + . . + - + . . + - + . . . . . . . ;; \ / \ / ;; . . . . . . . . . . + . + . . . . . + . + . . . . . . . . ;; \ \ / / ;; . . . . . . . . . . . + . + . . . . + . + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + - + . . . . + - + - + - + . . . . . . . . . ;; / \ ;; . . . . . . + - + - + - + . . . . . . . . . . + . . . . . . . . ;; / \ \ ;; . . . . . . + . . . + - + . + . . . + - + - + . + . . . . . . . . ;; \ \ \ \ ;; . . . . . . + . + . . . . + . . . . . + . + . . . . . . . ;; M \ \ / / \ ;; . . + - + - + - + - + - + . + - + - + - + - + . . . . . + . . + . . . . . . . ;; / \ \ / ;; . + . . . . . . . + . . . . . . . . . + . + . . . . . . . ;; \ / / \ ;; . . + . (+)- + - + - + - + - + . . . . . . . . . + . . + . . . . . . . ;; \ \ \ / ;; . . + . + . . . . . . . . . . . . . . + . + . . . . . . . ;; / / / \ ;; . . + . + . . . . . . . . . . . . . + - + . . + - + . . . . . . ;; / / \ ;; . . ? + - + . . . . . . . . . . . . . . . . . . + . . . . . [h] ;; /* * *\ / ;; . . . + ? + - + . . . . . . . . + - + - + - + - + - + - + - + - + . . . . . . [a] ;; /* * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; $SET_STR WHERE: lines: at(35 34) ;;Where haven't ;; you been yet?.. $SET_STR NEW: lines: at(19 31) ;;Ah ha, ;; ;; this ;; is new!.. text: if && mapvar("start4_eye_c_open") ! mapvar("made_it_underneath") then $GET_STR WHERE else if && mapvar("start4_eye_b_open") mapvar("made_it_underneath") then $GET_STR NEW else null parts: "e": recording "data/recs/eye.fus" "a": recording "data/recs/eye.fus" vars: "opened_key": "start4_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start4_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start4_eye_c_open" "h": recording "data/recs/hotspot.fus" vars: "key": "made_it_underneath" collmap: ;; ;; . . . . . + - + - + . . . . . . . . . . . . ;; /* * * * *\ ;; . . + - + . . . . + + - + . . . . . . . . . . ;; /* * *\ * * * * * /* * *\ ;; . . . . . . . . . . + + - + . + - + . . . . . ;; * * * * * * /* * *\ * * *\ ;; . - + . . . . . . . . . . . + . . + - + . . . . + - + ;; * * *\ * * */ * * * * * *\ /* * *\ ;; ? . . . . . . . . . . . . . . . . . . . . + . + [a] ;; * * * * * * \* * */ ;; . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + - + . . . . . . . . . . . ;; /* * *\ ;; . . . . . . . . + . + . . . . . . . . . . ;; /* * * */ ;; + -(+)- + - + . . + - + - + . + . . . . . . . . . . . ;; \ \ \ * * * * \ ;; . . + + . . + - + . . + - + - + . . . . . . . . ;; \ \ * * *\* * * \ ;; . . . + + . . . + . . . . + . . . . . . . . ;; / \ * * * */* * / ;; . . . . + . + - + - + - + . . . + - + . . . . . . . . ;; * * * \ * * * * / ;; . . . . . + - + - + - + ? + - + . + . . . . . . . . . . [b^3] ;; \* * * \* * */ \ \ S ;; + - . . . . . . . + - + . + . + - + - + - + . . + - + - + . ;; S / \ / \ ;; . . . . . . . . . + . . . . . + . + . . + . ;; * * * \ /* * * * *\ / ;; . . . . . . . . . + - + - + - + - + - ! . . + - + - + . [c] ;; \* * * * * * * * * * * * ;; + - . . . . . . . . . + - + . . . . . . . . . ;; * * * / \ * * * * * * * ;; . . . . . . . . . + . + . . . . . . . . ;; \* * * / / ;; . + - . . . . . . . + . + . . + . . + . . ! [h] ;; /* * * \ / ;; . . . . . . . . . + - + . . . . . . . . . . . . . ;; \* * * ;; . + - . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * */ * * * ;; . . . . . . . . . . . . . . . . . . - + . . . . . . . ;; \* * */ ;; . . . . . . . . . . . . . . . . . . . . . . . + - + collmap: ;; . . ;; * * * ;; . . . . . ;; * * *\* * */* * * ;; . . (+)- + . . ;; * * */* * *\* * * ;; . . . . . ;; * * * ;; . . $SET_STR WATCH: lines: at(28 20) ;;Watch. text: if mapvar("eyespider0_speak") then $GET_STR WATCH else null collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + . + - + . . . . . . . . ;; / \ ;; . . . . . . . . . + . . . . + . . . . . . . ;; *\*/* / ;; . . . . . . . . . . . . - + - . + . . . . . . . . ;; */*\* ;; . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + . . . + - + . . . . . . . . . ;; / / ;; . . . + - + - + . + . . . + + - + . . . + - + . . . ;; / / \ / / \ ;; . . . + . + . . . . . . + - + . . . + - + + . . . ;; \ / / / *\*/* ;; . . + + - + . . . + + + . . + - + - + - + + - + . . - + - . ;; / \ \ / */*\* ;; . . + + - + . . . . . . + . . + - + - + . . . . . . ;; \ / *\*/* ;; . . + - + . . . . . . . + . . . . . . . . . - + - . ;; */*\* ;; . . . . . . . . . . . . + - + . . . . . . . . . ;; / \ \ ;; . . . . . . . . . . . + + + . . . . . . . . ;; *\*/* \ \ \ *\*/* ;; . . . . - + - . . . . + - + - + + + + . . - + - . . . . . ;; */*\* / \ \ \ \ \ */*\* ;; . . . . . . . . + + - + - + + + + . . . . . . . ;; / / /* */ \ \ \ ;; . . . . . . . . + + - + + . + + - + . . . . . . . ;; \ /* * *\*/ \ / / ;; . (+)- + . . . + - + + - + - + . . + - + . . . . . . . ;; / \ / \ \ ;; . + . + . . + + - + . . . . . . . . . . . . . . ;; \ / \ / / ;; . + - + . . . + - + . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; *\*/* ;; . . . . . - + - . . . . . . . . . . . . . . . . . ;; */*\* ;; . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + - + - + - + . . + - + - + - + - + - + . . . . . . . ;; /*\*/*\* \ \ ;; . . . . . . . . . + - . - . . . . . . . . . + . + . . . . . . ;; \*/*\* \ / ;; . . . . . . . . . . + - . . + - + . . + - + . . + - + . . . . . . . ;; \* / \ / ;; . . . . . . . . . . + . + . . . . . + . + . . . . . . . . ;; \ \ / / ;; . . . . . + - + . . . . + . + . . . . + . + . . . . . . . . . ;; / \ ;; . . . . + . + . . . . . . . . . . . . . . + - + - + . . . . . ;; \ \ / \ ;; . . . . . + . + . . + - + - + . . . . + - + - + - + + . . + . . . . . ;; \ \ / */*\*/* \ / / ;; . . . . . + + - + - + - + . - . - . . . . . . . . + . . + . . . . . ;; \ / \ */*\* \ / ;; . . . . . . + . . . + - + - . + . . . + - + - + . + . + . . . . . . ;; \ *\* \ \ \ / ;; . . . . . . + . + . . - . . + . . . . . + . + + . . . . . . ;; \ \ *\*/* / / \ / ;; + - + - + - + - + - + - + - + . + - + - + - + - + . . . . . + . . + . . . . . . . ;; / / \ \ / ;; + . + . . . . . . . + . . . . . . . . . + . + . . . . . . . ;; \ \ / \ / / \ ;; + - + - + . (+)- + - + - + - + - + + . . . . . . . . + . + + . . . . . . . ;; \ \ \ \ \ / / ;; . . + . + . . . + . + . . . . . . . . + + + . . . . . . . ;; / / \ / / \ *\ ;; . . + . + - + . . . + - + . . . . . . . + - + . + - + - + . . . . . . ;; / / \ *\* \ ;; . . . + - + + . . . . . . . . . . . . . . . - + . + . . . . . ;; / \ \ *\* \ / ;; . . . + . + - + . . . . . . . . + - + - + - + - + - + - + - + - + . . . . . . ;; / ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; spawn: (1 0) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "loop_eye_a_open" "w": recording "data/recs/door.fus" vars: "oneway": T "location": "cage" "h": recording "data/recs/hotspot.fus" vars: "key": "reached_cage" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * ;; . . . . . . . . . . ? . . . . . . . . . . [a^3] ;; * * * * * */ ;; . . . . . . . . . . . . . . . . + . . . ;; * * * * * * * *\ ;; . . . . . . . . . . . . . . . . . . . . . ;; * * * * * S * * * ;; . . . . . . . . + - + - + - + . . . . . . . . ;; / \ * * *\ ;; . . . . . . . . + . ? . + . . . . . . . + [w] ;; / \ * * */ ;; . . . . . . . + . . . . + . . . . . . . ;; * * * \ / ;; . . . . . . . . + . . . + . . . . . . . . ;; * * * \ / * * *\ ;; . . . . . . . . . . . + . . . . . . + - + ;; * * * / * * * * * *\ ;; . . . . . . . . . . . . . . . . . . . . + - . ;; * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * ;; . . . . ? ? . . . . . . . . . . . . . . [w] [h] ;; * * * ;; . . (.) . - + - + . . . . . . . . . . . . . . . ;; \ \ ;; . . . . + + . . . . . . . . . . . . . . ;; \ / / ;; . . . . . + . . + . . . . . . . . . . . . ;; \ / \ ;; . . . . . + - + - + . . . . + . + - + . + - + . ;; \ / \ / ;; . . . . . . . . . . . . . + - + . + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . collmap: ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . (+)- + . ;; /* * *\ ;; . . . . . . . . . . . . . . . + . + . ;; \* * * ;; . . . . . . . . + - + . . . . . . + - . . ;; /* * *\ ;; . . . . . . . . . + - + . . . + - + . . . ;; * * * * * *\ /* * *\ ;; . . . . . . . . . . . . . . . . . . . ;; * * * * * * ;; . . . . . . . . . . . . . . . . . . . parts: "a": recording "data/recs/eye.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; *\*/* ;; . . . . . . . . . . . . . . . . . . + - + . . . . - + - . . ;; / */*\* ;; . . . . . . . . . . . . . . . . . . + . . . . . . . . ;; \ *\*/* ;; . . . . . . . . . . . . . . . . . . + . . . . . . - + - . ;; \ */*\* ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . . + + - + . . . . ;; \ \ / ;; . . . . . . . . . . . . . . . . . . . . + + . . . . . ;; * * * * * \ ;; . . . . . . . . . . . . . . . . . . . . . + . . . . . ;; * * * * * * * \ ;; . . . (+)- + - + + - + - + - . ? . - + - + . . . . . . . + . . . . . [a] ;; / \ * * * * * * * \ \ ;; . . . + . . + . . . . . . . + . . . . . . . + . . . . ;; \ \ * * * * * \ / ;; . . . + . . + . . . . . . . + - + - + - + . . + - + . . . . . ;; \ S \ ;; . . . . + - + - + + - + - + - + - + - + - + - + - + - + . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . + . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . + + . . . . . . . . . . . ;; * * * * * * * * * * * * * * * ;; . . . . . . . + . . . . . . . + . . . + + . . . . + . ;; * * * * * * * * * * * * * * ;; . . . . . . + + . . . . . . . . . . . + . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; . . ;; * * * ;; . . . . ;; * * *\* * * ;; . . (+)- . ;; * * */* * * ;; . . . . ;; * * * ;; . . parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "skypipes4_eye_a_open" "D": recording "data/recs/door.fus" vars: "map": "data/maps/tutorial_switches/worldmap.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + - + . + - + ;; / \ / \ ;; . . . . . . . . . . . . . . . . . . . . . + - + - + - + . + ;; \ / ;; . . . . . . . . . . . . . . . . . . . . . . . . ? + - + [D] ;; / \ ;; . . . . . . . . . . . . . . + - + . . . . + - + - + - + - + . + ;; / \ / \ / \ / ;; . . . . . . . . . . . . . . + . + - + . . + . + - + . + - + ;; \ / \ \ / \ / ;; . . . . . . . . . . . + - + . + - + . + . . + - + . + - + ;; / \ \ / ;; . . . . . . . . . . . + - + - + . . + - + . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . (+)- + - + - + - + - + + - + - + . . . . . + - + . . . . . . . . ;; \ / \ / \ / / \ ;; . . + - + ? + - + . + - + . . . . . + . + . . . . . . . [a] ;; \ / \ / ;; . . . . + - + . . . . . . . . . . + - + . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . + . . . . . . . . . . . . . . . . . . . . ;; * * * anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 119 35) rot: 0 turn: no keys: x: is was y: u: d: l: r: nodata anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 100 31) rot: 0 turn: yes keys: x: is was y: u: d: l: r: data: " w9 -x w13 +r w56 -r w11 +l w1 -l w10 +x w45" collmap "detect": ;; . . . . . . . . ;; * * ;; (.) . . . . . . . state "init": if() then: play: "data/maps/tutorial/recs/eyespider1_a.fus" goto: "start" state "start": if: coll: bodies("touch") any yes collmap("detect") then: play: "data/maps/tutorial/recs/eyespider1_b.fus" goto: "start2" state "start2": if: coll: bodies("touch") any yes collmap("detect") then: play: "data/maps/tutorial/recs/eyespider1_c.fus" goto: "done" state "done": anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 119 35) rot: 0 turn: no keys: x: is was y: u: d: l: r: data: " w19 -x w18 +r w2 +d w30 -r w13 +l w12 -l w5 -d w14 +r w14 -r w4 +d w11 +l w19 -d w21 -l w9 +d w4 +l w17 -l -d w8 +r w10 -r w11 +r w21 -r w14 +l w2 -l w7 +x w41" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 145 41) rot: 0 turn: yes keys: x: is was y: u: d: l: r: data: " w16 -x w15 +r w35 -r w4 +l w3 -l w23 +r w13 -r w17 +u w4 -u w28 +l w2 -l w14 +l w18 -l w23 +l w11 -l w26 +l w23 -l w12 +r w1 -r w24 +u w2 -u w20 +l w68 -l w45 +x w52" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 100 31) rot: 0 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 98 38) rot: 0 turn: yes keys: x: is was y: u: d: l: r: data: " w9 -x w13 +r w73 -r w3 +l w5 -l w17 +x w37" collmap "detect": ;; . . . . ;; *\*/*\*/*\*/* ;; . - + - + - + - . ;; *\*/*\*/*\*/*\*/* ;; . - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\* ;; . - + -(+)- + - + - . ;; */*\*/*\*/*\*/*\* ;; . - + - + - + - . ;; */*\*/*\*/*\* ;; . . . . collmap "detect_partial": ;; . . . . ;; *\*/*\*/*\*/* ;; . - + - + - + - . ;; *\*/*\*/*\*/*\*/* ;; . - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\* ;; . - + -(+)- + - + - . state "init": if() then: play: "data/maps/tutorial/recs/eyespider0_a.fus" goto: "start" state "start": if: coll: bodies("touch") any yes collmap("detect") then: play: "data/maps/tutorial/recs/eyespider0_b.fus" goto: "start2" state "start2": if: coll: bodies("touch") any yes collmap("detect_partial") then: play: "data/maps/tutorial/recs/eyespider0_c.fus" goto: "done" state "done": collmap: ;; . . ;; ;; + - + - + . + - + - + ;; / / / \ ;; + + + + ;; / \ \ \ ;; + + - + + - + + - + ;; \ / \ / ;; . + - + + . ;; ;; + . + - + ;; / \ / \ ;; + + - + . . (+)- + . + + ;; / / / \ \ \ ;; . . + + + + + + . . ;; \ \ \ / / / ;; + + + - + + - + + ;; \ / \ / ;; + - + . + ;; ;; . + . + - + . ;; / \ / \ ;; + - + + - + + - + + ;; \ \ \ / ;; + + + + ;; \ / / / ;; + - + - + . + - + - + ;; ;; . . collmap: ;; + - + ;; / \ / \ ;; + -(+)- + ;; \ / \ / ;; + - + collmap: ;; *\*/* ;; + - + - + -(+) ;; ;; . . . collmap: ;; . . (+) . . . . . . . . . ;; \ ;; . . + . . . . . . . . . ;; ;; . . . + . . . . . . . . ;; \ ;; . . . + . . . . . . . . ;; / ;; . . . + . . . . . . . . ;; ;; . . + . . . . . . . . . ;; / ;; . . + . . . . . . . . . ;; \ ;; . . + . . . . . . . . . ;; ;; . . . + - + . . . . . . . ;; \ ;; . . . . + . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . + . . . . . . ;; / ;; . . . . . + - + . . . . . ;; / ;; . . . . + . . . . . . . ;; ;; . . . . . . . + . . . . ;; \ ;; . . . + . . . + . . . . ;; / ;; . . . + . . + - + - + . . . ;; / \ ;; . . + . . . . . + . . . ;; parts: "l": location "puzzle" collmap: ;; ;; . . . (.) ;; ;; . . . ;; ;; + - + - ! - + . [l] ;; */*\* ;; . . . parts: "r": actor "actor/airoller.fus" "s": recording "data/recs/switch.fus" vars: "key": "map3x_blocker" "D": recording "data/recs/door.fus" vars: "map": "data/maps/test/worldmap_minimal.fus" "e": location "test_exit" collmap: ;; %*/* [111] ;; %+ - + %+ - + [111][121] ;; %\ [2] ;; . %+ [1] ;; ;; % + . [1] ;; %*/ [11] ;; %+ + - + - + . + - + - + . [1] ;; / / \ / \ ;; . + + + + + . ;; / \ / \ / ;; . + + ! + - + - + + . [s^1] ;; \ / /*\ ;; . . + - + + - + %+ + + . [1] ;; \*/*\ %\ [1] ;; + + - + %+ + - ! - + . [1] [e~^3] ;; / \ /*\*/ %/*\ / \ [111] ;; + + ! - + + + - + %+ - + + + + % + [r][121] [1] ;; *\ / / \ /*\*/ %\*/*\ \ \ \ % \ [11211] [2] ;; - + - + + + + - + . %+ - + + + ? + % + [121] [D] [1] ;; */*\* \ \ %\*/ / / / % / [111] [2] ;; + + - + - + -(+)- + %+ + + - + - + % + [1] [1] ;; *\*/* \ / \*/*\*/*\ / \*/ ;; - + - + + - + + - + - + - + + . ;; */ \*/ ;; + . + + . ;; \ / ;; + - + . . . + - + - + - + + - + - + . ;; \ \ \*/*\ ;; + + + - + - + %+ - + [121] ;; \ / /*\*/*\*/ ;; + - + - + . + - + - + ;; ;; . . ;; ;; + . ;; / ;; + + ;; *\ / ;; - + - + ;; *\*/* shapes: "map_vert_debug": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 2 "map_edge_debug": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 2 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 2 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 2 "map_face_debug_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 2 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 2 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 2 "map_face_debug": shapes: : "map_face_debug_third" (1 1 1 0) 0 f : "map_face_debug_third" (1 1 1 0) 4 f : "map_face_debug_third" (1 1 1 0) 8 f collmap: ;; . . ;; ;; . . ;; ;; + - + - + . + - + - + ;; / / / \ ;; + + - + + + ;; / / \ \ \ ;; + + + - + + - + + - + + + - + ;; \ / \ / / \ \ ;; . + - + + . + - + + ;; \ ;; + + . + - + . + - + - + + ;; / \ S / / \ \ \ / \ ;; + + - + . + -(+)- + . + - + + + - + + - + + ;; / / / \ \ \ / \ \ / \ \ / ;; . . . + + + + + + - + + - + + + ;; \ \ \ \ / /* \ / \ ;; + + + - + + - + + + - + - + - + ;; \ / \*/ \ ;; + - + . + + ;; ;; . + . + - + . ;; / \ / \ ;; + - + + - + + - + + + ;; \ *\*/*\ \ \ / ;; + - + - + + + - + ;; \ */*\*/ / / ;; + - + - + . + - + - + ;; ;; . . ;; name: "test" unit: 3 2 0 -1 spawn: (0 0) palette: "data/maps/demo/pals/tunnels.fus" tileset: "data/tileset1.fus" vars: "map3_blocker": F "map3x_blocker": F "map3x_blocker2": F submaps: : file: "data/maps/test/map3.fus" pos: (0 0) camera: (0 4) mapper: ("triple") submaps: : file: "data/maps/test/map3_blocker.fus" visible: ! mapvar("map3_blocker") : file: "data/maps/test/map2.fus" pos: (1 10) : file: "data/maps/test/map2x.fus" pos: (15 12) camera: (1 8) mapper: ("double") submaps: : file: "data/maps/test/map3x.fus" pos: (1 10) : file: "data/maps/test/map3x_blocker.fus" visible: ! mapvar("map3x_blocker2") pos: eval: (1 10) + (-2 4) : file: "data/maps/test/secret_path.fus" visible: mapvar("map3x_blocker") pos: (14 -4) camera: (0 0) : file: "data/maps/test/secret_path2.fus" visible: mapvar("map3x_blocker") pos: eval: (14 -4) + (-8 -17) camera: (0 0) submaps: : file: "data/maps/test/secret_path2_dots.fus" visible: if all(mapvar("map3x_blocker") not mapvar("map3x_blocker2")) then T else F : pos: (-1 -10) camera: (4 0) mapper: ("triple") recs: : "data/maps/test/recs/rec010.fus" : "data/maps/test/recs/rec011.fus" : "data/maps/test/recs/rec012.fus" : "data/maps/test/recs/rec013.fus" : "data/maps/test/recs/rec014.fus" : "data/maps/test/recs/rec015.fus" : "data/maps/test/recs/rec016.fus" : "data/maps/test/recs/worldmap_bird_000.fus" : "data/maps/test/recs/worldmap_bird_001.fus" submaps: : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 0 + (-1 3) * 0 : file: "data/maps/test/map1grid.fus" pos: eval: (8 2) * 0 + (-1 3) * -2 : file: "data/maps/test/map1x.fus" pos: eval: (8 2) * 0 + (-1 3) * -4 camera: (-1 -1) mapper: ("quadruple") : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 1 + (-1 3) * 0 : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 1 + (-1 3) * -1 default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; + - + ;; \*/*\ ;; . + -(+) parts: "c": "data/maps/test/bighex_corner.fus" "s": recording "data/recs/switch.fus" vars: "key": "map3_end_blocker" "E": recording "data/recs/door.fus" vars: "map": "data/maps/test/worldmap.fus" "location": "test_exit" "D": recording "data/recs/ability_door.fus" vars: "location": "puzzle" "set_yourbool": "is_aimerspider" collmap: ;; . . ;; ;; + - + - + . . - . ;; / \ /* * *\ ;; + + . . ? . [c] ;; / / \* * */ ;; + + - + . . - . . ;; \ / /*\ ;; + - + + - + + . ;; \*/*\ \ ;; . + - + + + - + - + ;; /*\*/ /*\ / \ ;; . . . + + - + + - + + + + ;; \ /*\*/ \*/*\ \ \ \ ;; . ? . ? + - + . + - + + + + [c^2] [E] ;; \*/ / / / ;; + - + . + - + - + -(+)- + + + + - + + ;; / \*/* \*/*\*/*\ / \ / ;; ! + - + . . + - + - + - + + [s^5] ;; \ / \*/ ;; + + + . . ;; \ \ ;; + + - + . . . + - + - + - + + - + . . ;; \ \ ;; + + . ? . [c^4] ;; \ / ;; + - + - + . . . ;; ;; . . . . ;; ;; . . . ;; ;; . + . ;; */ ;; . . . + ? + [D] ;; *\ /* ;; + - + ;; * shapes: ########## # VERTEX # ########## "map_vert0": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 4 "map_vert1": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 8 + 1 : "tri" (0 0 0 0) 2 f eval: 1 + 8 + 2 : "tri" (0 0 0 0) 4 f eval: 1 + 8 + 3 : "tri" (0 0 0 0) 6 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 5 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 6 "map_vert0_dark": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 0 + 4 "map_vert_tunnel": palmap ("tunnel") ("map_vert0") "map_vert0_bg": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 16 + 5 : "tri" (0 0 0 0) 2 f eval: 1 + 16 + 5 : "tri" (0 0 0 0) 4 f eval: 1 + 16 + 5 : "tri" (0 0 0 0) 6 f eval: 1 + 16 + 5 : "tri" (0 0 0 0) 8 f eval: 1 + 16 + 5 : "tri" (0 0 0 0) 10 f eval: 1 + 16 + 5 "map_bgvert": prismels: : "vert" (0 0 0 0) 0 f eval: 1 + 15 ######## # EDGE # ######## "map_edge0": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 6 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 1 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 6 "map_edge1": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 4 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 6 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 4 "map_edge2": prismels: : "dia" (1 0 0 0) 0 f eval: 1 + 8 + 3 : "dia" (1 0 0 0) 11 f eval: 1 + 8 + 3 : "tri" (2 0 0 0) 11 f eval: 1 + 8 + 1 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 3 "map_edge0_dark": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 0 + 6 : "sq" (1 1 0 -1) 0 f eval: 1 + 0 + 1 : "tri" (2 2 0 -1) 5 f eval: 1 + 0 + 6 "map_edge_tunnel": palmap ("tunnel") ("map_edge0") "map_edge0_bg": prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 16 + 3 : "sq" (1 1 0 -1) 0 f eval: 1 + 16 + 1 : "tri" (2 2 0 -1) 5 f eval: 1 + 16 + 3 "map_bgedge": prismels: : "sq" (0 1 0 -1) 0 f eval: 1 + 7 #: "sq" (1 1 0 -1) 0 f eval: 1 + 8 : "sq" (2 1 0 -1) 0 f eval: 1 + 7 ######## # FACE # ######## "map_face0_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 1 "map_face0": shapes: : "map_face0_third" (1 1 1 0) 0 f : "map_face0_third" (1 1 1 0) 4 f : "map_face0_third" (1 1 1 0) 8 f "map_face1_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 4 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 4 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 4 "map_face1": shapes: : "map_face1_third" (1 1 1 0) 0 f : "map_face1_third" (1 1 1 0) 4 f : "map_face1_third" (1 1 1 0) 8 f "map_face2_third": animation: oscillate 6 prismels: : "sq" (-1 0 1 0) 0 f eval(1 + 0 + 5) (2 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 0 + 5) (3 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 0 + 5) (3 1) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 5) (3 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 5) (4 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 5) (4 1) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 7) (4 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 7) (5 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 7) (5 1) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 7) (5 1) "map_face2": animation: oscillate 6 shapes: : "map_face2_third" (1 1 1 0) 0 f 0+ : "map_face2_third" (1 1 1 0) 4 f 0+ : "map_face2_third" (1 1 1 0) 8 f 0+ "map_face3_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 3 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 3 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 3 "map_face3": shapes: : "map_face3_third" (1 1 1 0) 0 f : "map_face3_third" (1 1 1 0) 4 f : "map_face3_third" (1 1 1 0) 8 f "map_face0_bg_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 16 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 16 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 1 "map_face0_bg": shapes: : "map_face0_bg_third" (1 1 1 0) 0 f : "map_face0_bg_third" (1 1 1 0) 4 f : "map_face0_bg_third" (1 1 1 0) 8 f "map_face0_dark_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 2 "map_face0_dark": shapes: : "map_face0_dark_third" (1 1 1 0) 0 f : "map_face0_dark_third" (1 1 1 0) 4 f : "map_face0_dark_third" (1 1 1 0) 8 f "map_face_tunnel": palmap ("tunnel") ("map_face0") "map_face_energy_off_third": prismels: : "tri" ( 0 0 0 0) 2 f eval(1 + 0 + 1) : "sq" (-1 0 1 0) 0 f eval(1 + 0 + 1) : "tri" (-1 0 1 1) 0 f eval(1 + 8 + 1) "map_face_energy_off": shapes: : "map_face_energy_off_third" (1 1 1 0) 0 f #: "map_face_energy_off_third" (1 1 1 0) 4 f #: "map_face_energy_off_third" (1 1 1 0) 8 f "map_face_energy_on_third_a": animation: cycle 12 prismels: : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 6) (0 4) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 6) (1 4) : "tri" (-1 0 1 1) 0 f eval(1 + 8 + 6) (2 4) "map_face_energy_on_third_b": animation: cycle 12 prismels: : "tri" ( 0 0 0 0) 2 f eval(1 + 0 + 6) (0 4) : "sq" (-1 0 1 0) 0 f eval(1 + 0 + 6) (1 4) : "tri" (-1 0 1 1) 0 f eval(1 + 0 + 6) (2 4) "map_face_energy_on": animation: cycle 12 shapes: : "map_face_energy_off_third" (1 1 1 0) 0 f 0+ : "map_face_energy_on_third_a" (1 1 1 0) 4 f 2+ : "map_face_energy_on_third_b" (1 1 1 0) 8 f 4+ "map_savepoint_third": animation: oscillate 6 prismels: : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 7) (0 2) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 7) (0 2) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 7) (0 2) : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 2) (2 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 2) (2 1) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 2) (2 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 0 + 2) (3 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 0 + 2) (3 1) : "sq" (-1 0 1 0) 0 f eval(1 + 0 + 2) (3 1) "map_savepoint": animation: cycle 12 shapes: : "map_savepoint_third" (1 1 1 0) 0 f 0+ : "map_savepoint_third" (1 1 1 0) 4 f 4+ : "map_savepoint_third" (1 1 1 0) 8 f 8+ "map_minimap_third": animation: oscillate 6 prismels: : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 7) (0 2) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 7) (0 2) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 7) (0 2) : "tri" ( 0 0 0 0) 0 f eval(1 + 8 + 5) (2 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 8 + 5) (2 1) : "sq" (-1 0 1 0) 0 f eval(1 + 8 + 5) (2 1) : "tri" ( 0 0 0 0) 0 f eval(1 + 0 + 5) (3 1) : "tri" ( 0 0 0 0) 2 f eval(1 + 0 + 5) (3 1) : "sq" (-1 0 1 0) 0 f eval(1 + 0 + 5) (3 1) "map_minimap": animation: cycle 12 shapes: : "map_minimap_third" (1 1 1 0) 0 f 0+ : "map_minimap_third" (1 1 1 0) 4 f 4+ : "map_minimap_third" (1 1 1 0) 8 f 8+ "map_door": animation: cycle "door" shapes: : "door" (0 1 3 1) 0 f "_map_water_sixth": animation: oscillate 6 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 0 + 1) (1 2) : "tri" (0 0 0 0) 0 f eval(1 + 0 + 3) (3 2) : "tri" (0 0 0 0) 0 f eval(1 + 8 + 1) (5 1) #: "tri" (0 0 0 0) 0 f eval(1 + 8 + 3) (4 1) #: "tri" (0 0 0 0) 0 f eval(1 + 8 + 7) (5 1) "_map_water": animation: cycle 12 shapes: : "_map_water_sixth" (0 0 0 0) 0 f 0+ : "_map_water_sixth" (0 0 0 0) 2 f 1+ : "_map_water_sixth" (0 0 0 0) 4 f 2+ : "_map_water_sixth" (0 0 0 0) 6 f 3+ : "_map_water_sixth" (0 0 0 0) 8 f 4+ : "_map_water_sixth" (0 0 0 0) 10 f 5+ "map_water": animation: cycle 24 shapes: : "_map_water" ( 1 1 1 0) 0 f 0 ( 0 2) : "_map_water" ( 1 1 1 0) 0 f 1 ( 2 2) : "_map_water" ( 1 1 1 0) 0 f 2 ( 4 2) : "_map_water" ( 1 1 1 0) 0 f 3 ( 6 2) : "_map_water" ( 1 1 1 0) 0 f 4 ( 8 2) : "_map_water" ( 1 1 1 0) 0 f 5 (10 2) : "_map_water" ( 1 1 1 0) 0 f 6 (12 2) : "_map_water" ( 1 1 1 0) 0 f 7 (14 2) : "_map_water" ( 1 1 1 0) 0 f 8 (16 2) : "_map_water" ( 1 1 1 0) 0 f 9 (18 2) : "_map_water" ( 1 1 1 0) 0 f 10 (20 2) : "_map_water" ( 1 1 1 0) 0 f 11 (22 2) "map_bgface_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 : "tri" (-1 0 1 0) 0 f eval: 1 + 8 "map_bgface": shapes: : "map_bgface_third" (1 1 1 0) 0 f : "map_bgface_third" (1 1 1 0) 4 f : "map_bgface_third" (1 1 1 0) 8 f mappers: "test_map": solid unit: 3 2 0 -1 entries: : "vert" -> "map_vert0" : "edge" -> "map_edge0" : "sq" -> "empty" : "tri" -> "map_face0" : "dia" -> "empty" collmap: ;; + - + - + - + - + - + - + - + - + - + ;; \ / \ ;; + + - + + + ;; \ / \ \ / ;; + + + . + - + ;; \ \ / ;; + + - + . + - + ;; \ / \ ;; + . (+)- + + + ;; \ / \ \ / ;; + + - + + . + + - + ;; \ / \ \ / ;; + + + - + . ;; \ / ;; + - + . + - + ;; / \ ;; + - + . + + ;; / \ \ / ;; + + + - + ;; \ / ;; + + ;; \ / ;; + parts: "s": recording "data/recs/switch.fus" visible: mapvar("map3x_blocker") vars: "key": "map3x_blocker2" collmap: ;; . . . . . (.) . + - + . . . ;; / \ ;; . . . . . . + . + . . . ;; / / ;; . . . . . + - + + - + . . . ;; / ;; . . . . . . + . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . + - + . . . ;; / \ ;; . . . . . + . + . + . . ;; / \ ;; . . . . + + . . . . . . ;; / / ;; . . . . + + . . . . + . . ;; \ \ \ ;; . . . . + + . . . . + . . ;; \ / / ;; . . . . . ! . . . . + . . [s^2] ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . + - + . . ;; / ;; . . . . . . . + - + . . . ;; ;; . . . . . . . . . . . . ;; name: "test_minimal" unit: 3 2 0 -1 spawn: (0 0) palette: "data/maps/demo/pals/water.fus" tileset: "data/tileset1.fus" vars: "map3_end_blocker": F submaps: : file: "data/maps/test/map3_end.fus" pos: (0 0) camera: (0 4) mapper: ("triple") recs: : "data/maps/test/recs/worldmap_minimal_bird_000.fus" : "data/maps/test/recs/worldmap_minimal_bird_001.fus" : file: "data/maps/test/map3_end_puzzle.fus" text: "Hold the right Shift key to aim upwards!\n" pos: (-7 -7) camera: (0 0) mapper: ("triple") : file: "data/maps/test/map3_end_blocker.fus" visible: ! mapvar("map3_end_blocker") pos: (-7 -7) camera: (0 0) mapper: ("triple") parts: "c": "data/maps/test/bighex_corner.fus" "r": actor "actor/airoller.fus" "s": recording "data/recs/switch.fus" vars: "key": "map3_blocker" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "test_exit" collmap: ;; . . ;; ;; + - + - + . . - . ;; / \ /* * *\ ;; + + . . ? . [c] ;; / / \* * */ ;; + + - + . . - . . ;; \ / /*\ ;; + - + + - + + . ;; \*/*\ \ ;; . + - + + ! - + - + [r] ;; \*/ /*\ / \ ;; . . . + . ! + - + + + + [s^2] ;; \ / \*/*\ \ \ \ ;; . ? . ? + - + . + - + + + + [c^2][D] ;; \*/ / / / ;; . + - + - + -(+)- + + + + - + + ;; *\*/* \*/*\*/*\ / \ / ;; - + - + . . + - + - + - + + ;; */ \*/ ;; + + . . ;; \ ;; + - + . . . + - + - + - + + - + . . ;; \ \ ;; + + . ? . [c^4] ;; \ / ;; + - + - + . . . ;; ;; . . collmap: ;; . . . . . (.) . + + . . . ;; ;; . . . . + . + . + . . . ;; ;; . . . . . + + + + . . . ;; ;; . . . . + + + . . + . . ;; ;; . . . . . . . . . . + . ;; ;; . . . . . . . + + . . . ;; ;; . . . . . + . + . + . . ;; ;; . . + . + + . . . . . . ;; ;; . . + . + + + . . . + . . ;; ;; . . . . + + . . . . + . + ;; ;; . . . . . + . . . . + . + ;; ;; . . . . . . . . . . . . ;; ;; . . . . + . . . . . . . ;; ;; . . . . + . . + + . . . ;; ;; . . . . . + . . . . . . ;; ;; . . . . . + . . + + . . ;; ;; . . . . . . . + + . . . ;; ;; . . . . . . . . . . . . ;; collmap: ;; + - + + - + ;; / \ / ;; + - + + - + + + ;; / \ / / ;; + + + . + - + ;; \ / \ / ;; + + . + - + ;; \ \ ;; . (+)- + + - + + ;; /*\*/*\ \ / ;; + - + + - + - + + - + ;; / \ \*/* */ ;; + + - + + - + . + - + ;; \ \ / \*/*\ ;; + - + . + - + + - + - + ;; S / \*/ \ \ *\*/ ;; + - + . + + + + - + - + ;; / /*\ \ / ;; + + + - + + - + ;; \ / ;; + - + collmap: ;; + - + ;; / \ ;; + - + + + ;; / \ \ / ;; + + . + - + ;; \ / ;; + - + . + - + ;; / \ ;; . (+)- + + + ;; / \ \ / ;; + - + + . + + - + ;; / \ \ / ;; + + + - + . ;; \ / ;; + - + . + - + ;; / \ ;; + - + . + + ;; / \ \ / ;; + + + - + ;; \ / ;; + - + collmap: ;; ;; * /* ;; -(+)- + . + - + ;; * * * * */*\ ;; + ;; ;; + - + ;; * default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; + - + - + ;; / \ ;; + ( ) + ;; \ \ ;; + - + + - + ;; \ / ;; + anim: "anim/bird.fus" state: "stand" pos: ( 7 1) rot: 4 turn: no keys: x: u: d: l: r: data: " w17+l w1-l w47+l w2-l w37+r w3-r w41+r w2-r w19" anim: "anim/bird.fus" state: "stand" pos: ( 2 7) rot: 0 turn: no keys: x: u: d: l: r: data: " w46+r w11-r w44+l w2-l w30+l w11-l w38+r w2-r w5" anim: "anim/spider.fus" state: "crawl" pos: ( 3 -26) rot: 4 turn: yes keys: x: u: d: is was l: r: data: " w85+r w6-r w174+l w6-l w30" anim: "anim/bird.fus" state: "crawl" pos: ( 9 -5) rot: 1 turn: no keys: x: u: d: is was l: r: data: " w72-d w15+l w2-l w6+r w2-r w15+l w2-l w12+d w15+l w49-l w70-d w11+r w1-r w51+l w3-l w28+d w15+r w34-r w29" anim: "anim/spider.fus" state: "crawl" pos: ( 4 -14) rot: 3 turn: no keys: x: u: d: is was l: r: data: " w44" anim: "anim/spider.fus" state: "crawl" pos: ( -3 -19) rot: 3 turn: no keys: x: u: d: is was l: r: data: " w25" anim: "anim/spider.fus" state: "crawl" pos: ( 2 -12) rot: 3 turn: yes keys: x: u: d: is was l: r: data: " w24" anim: "anim/spider.fus" state: "crawl" pos: ( -4 -14) rot: 0 turn: no keys: x: u: d: is was l: r: data: " w25" anim: "anim/spider.fus" state: "crawl" pos: ( 1 -20) rot: 4 turn: yes keys: x: u: d: is was l: r: data: " w99+r w5-r w159+l w6-l w21" anim: "anim/spider.fus" state: "crawl" pos: ( -3 -21) rot: 4 turn: yes keys: x: u: d: is was l: r: data: " w43+r w3-r w46+l w2-l w81+r w1-r w9+l w3-l w38" anim: "anim/bird.fus" state: "crawl" pos: ( 8 -25) rot: 0 turn: yes keys: x: u: d: is was l: r: data: " w147-d w16+r w16-r w16+r w7-r w24+l w2-l w73+r w3-r w111+l w9-l w43+l w15-l w4+d w13" parts: "e": recording "data/recs/eye.fus" vars: "auto_open": T "key": "eyespider_vines_ran_away_4" "accepted_mini_eye_key": "eyespider_vines_ran_away_4" collmap: ;; ;; ? . . . . . . . . . . . . . . . . [e] ;; ;; . . . . + - + . . + - + - + - + - . . . . ;; \ / ;; . . . . . . + - + + . . . . . . . . ;; \ ;; . . . . . . . + - + -(+)- + - . . . . . ;; ;; . . . . . . . . . . . . . . . . . ;; parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "g": "data/maps/demo/tiles/hex_vec4/dodeca_sign_solid.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D] [g] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . spawn: (-1 1) 0 n parts: "a": recording "data/recs/hotspot.fus" vars: "counter": "vines2_fluff_a" "max_cooldown": 15 "b": recording "data/recs/hotspot.fus" vars: "counter": "vines2_fluff_b" "max_cooldown": 15 "c": recording "data/recs/hotspot.fus" vars: "counter": "vines2_fluff_c" "max_cooldown": 15 collmap: ;; %. - + [11] ;; %\ [1] ;; %+ - + [111] ;; %/ / [11] ;; . . . . . . %+ + ? . . . . . . . . . . . . . . %+ . . . [11] [b] [1] ;; %\ / %/ \ [11] [11] ;; . . . . . . %+ + - + . . . . . . . . . . . . . %+ - + . . [1] [111] ;; %/ / \ %\ / [1] [11] ;; . . . . . . %+ + . + - + - + . . . . . . . . . . . %+ . . . [1] [1] ;; %/ / \ %\ [1] [1] ;; . . . . . %+ + - + - + - + . + - + - + - + . . . . . . . . %+ . . [1] [1] ;; %/ \ \ \ \ %/ [1] [1] ;; . . . . . %+ + + - + + - + - + . + . + . . . . . . . %+ . . . [1] [1] ;; %/ / \ \ %/ \ [1] [11] ;; . . . . %+ + - + . + - + ? + - + . . . . . . . . . %+ - + - + . [1] [a] [11111] ;; %/ / \ %\ / [1] [11] ;; . . . . %+ + . + - + - + - + ? . . . . . . . . . . . . %+ . . [1] [a] [1] ;; %\ \ \ %\ [1] [1] ;; . . . . %+ . . + - + ? + - + . . . . . . . . . . %+ . %+ . [1] [c] [1] [1] ;; %\ %\ [1] [1] ;; . . . . . %+ + . . . . ? . . . + . . . . . . . %+ - + + . [1] [c] [111] ;; %\ \ / %\ \ \ [1] [11] ;; . . . . . %+ + - + . . . . . . + + . . . . . . . %+ -(+) + [1] [111] ;; %\ \ \ / / %/ / [1] [11] ;; . . . . . . %+ + + - + - + ? + + - + - + . . . . . . . %+ - + + - + [1] [c] [111] ;; %\ \ / / / / \ [1] ;; . . . . . . %+ + - + + - + - + - + . . + - + . . . . . . . + - + + [1] ;; %\ / / \ \ / [1] ;; . . . . . . . %+ . + . + . + - + - + . . . . . . . . . + - + [1] ;; / / / ;; . . . . . . . . + - + - + - + - + . . . . . + - + . . . . . . ;; \ / ;; . . . . . . . . . . . . + . . . + - + - + . . + . . . . . ;; \ / \ / * * ;; . . . . . . . . . . . . + - + - + - + . . + - + - + . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * parts: "D": recording "data/recs/ability_door.fus" vars: "location": "tunnels3" "set_yourbool": "is_rollerspider" "l": location "tunnels3" collmap: ;; ;; . . . . . . . . . . . . + + . . . . . . . . . . ;; ;; . . . . . . + + + + . + . + . . . . . . . . . . ;; ;; . . . . . . . . . . + + . + . . . . . . . . . . ;; ;; . . . . . . + . . . . . . . . . . . . . . . . . ;; ;; . . + . . . . . + . . %+ . + . . . . . . . . . . [1] ;; /*\ ;; + . . + . . . + . %(+)-%+ %+ . . + . . . . . . . . . [1][1][1] ;; \* * */* ;; . . . . . + . + . . %+ -%+ . . . + . . . . . . . . [1][1] ;; * ;; . . . . . . + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + + . . + . . . . . . . . ;; ;; . . . . . . . . . + . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . ? . . . . . . . . . . . . . [D] ;; ;; . . . . . . . . + %+ -%! -%+ + . . . . . . . . . . . [1][1][l][1] ;; \* */ ;; . . . . . . . . . + %+ %+ + . . . . . . . . . . . [1][1] ;; ;; . . . . . . . . . . + . . . . . . . . . . . . . collmap: "(+)" parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "f": recording "data/recs/food.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D s^1 s^4] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [s^1 s^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [s s^4] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "B": shape "curvy_curvy_dodeca_anim" collmap: ;; (?) [B]collmap: ;; ;; */ ;; + ;; /* /*\ / ;; + . + - + ;; \* * * * * *\ ;; + + - + + ;; /* * *\ /* */ ;; + - + - + + - + ;; /* * *\ \*/ ;; + - + - + - + + - + ;; / /* * *\ \* * */ ;; + - + - + + - + - + + - + + - + + . ;; / / \ \* * * * */* * ;; + - + - + - + + + - + - + + + - + - + - . ;; / \ \ \*/ */*\* * ;; + + - + + + + . ;; / / / \ \ ;; + + - + - + - + + + . + ;; \ / M / / ;; + - + . + - + + - + - + + ;; / \ / \ ;; . (+)- + - + - + + - + - + - + ;; / / \ /* ;; + - + + + - + - + - + ;; / \ / * * * ;; + + - + - + - + ;; \ \ / ;; + + - + ;; / ;; + ;; / ;; + ;; */ ;; . ;; ;; parts: "r": actor "actor/airoller.fus" "s": recording "data/recs/switch.fus" vars: "key": "map3x_blocker" "D": recording "data/recs/door.fus" vars: "map": "data/maps/test/worldmap.fus" "e": location "test_exit" collmap: ;; %*/* [111] ;; %+ - + %+ - + [111][121] ;; %\ [2] ;; . %+ [1] ;; ;; % + . [1] ;; %*/ [11] ;; %+ + - + - + . + - + - + . [1] ;; / / \ / \ ;; . + + + + + . ;; / \ / \ / ;; . + + ! + - + - + + . [s^1] ;; \ / /*\ ;; . . + - + + - + %+ + + . [1] ;; \*/*\ %\ [1] ;; + + - + %+ ! - + - + . [1] [e] ;; / \ /*\*/ %/*\ / \ [111] ;; + + ! - + + + - + %+ - + + + + % + [r][121] [1] ;; *\ / / \ /*\*/ %\*/*\ \ \ \ % \ [11211] [2] ;; - + - + + + + - + . %+ - + + + ? + % + [121] [D] [1] ;; */*\* \ \ %\*/ / / / % / [111] [2] ;; + + - + - + -(+)- + %+ + + - + - + % + [1] [1] ;; *\*/* \ / \*/*\*/*\ / \*/ ;; - + - + + - + + - + - + - + + . ;; */ \*/ ;; + . + + . ;; \ / ;; + - + . . . + - + - + - + + - + - + . ;; \ \ \*/*\ ;; + + + - + - + %+ - + [121] ;; \ / /*\*/*\*/ ;; + - + - + . + - + - + ;; ;; . . ;; ;; + . ;; / ;; + + ;; *\ / ;; - + - + ;; *\*/* parts: "F": "data/maps/demo/tiles/hex_vec4/fisheye_B.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [] [] [] ;; ;; . . . . . . . ? . ? . . . ? . . . ? . ? . . . . . . [] [] [] [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? ? . ? . . . . . ? . ? ? . . . . . . [] [] [] [] [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . ? . ? . . . . (?) . . . . ? . ? . . . . . [] [] [F] [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? ? . ? . . . . . ? . ? ? . . . . . . [] [] [] [] [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . ? . . . ? . . . ? . ? . . . . . . [] [] [] [] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; + - + . . . ;; / ;; + . . . . ;; \ ;; (+) . . . . name: "demo" unit: 3 2 0 -1 spawn: "data/maps/demo/start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" actors: : "actor/eyespider_tunnels.fus" empty # no palmapper... this is needed so we can specify target... TODO: fix this madness target: mapvar("start2_minimap") : "actor/eyespider_dodecas.fus" empty # no palmapper... this is needed so we can specify target... TODO: fix this madness target: mapvar("start2_minimap") : "actor/eyespider_vines.fus" empty # no palmapper... this is needed so we can specify target... TODO: fix this madness target: mapvar("start2_minimap") vars: "start2_minimap": F "eyespider_tunnels_ran_away_1": F $SET_STR START3_SPIDERS: lines: at(13 3) ;;S... spiders... ;; Please, take me back... submaps: "start": file: "data/maps/demo/start.fus" pos: (0 0) camera: (6 4) mapper: ("quadruple") palette: "data/maps/demo/pals/start.fus" "start2": file: "data/maps/demo/start2.fus" pos: (7 11) camera: (5 4) mapper: ("quadruple") palette: "data/maps/demo/pals/start.fus" submaps: "start3": file: "data/maps/demo/start3.fus" text: if all: mapvar("eyespider_vines_ran_away_2") > mapvar("eyespider_vines_mini_eye_respawn") 0 then $GET_STR START3_SPIDERS else null pos: (2 15) camera: (5 -5) mapper: ("triple") submaps: "start4": file: "data/maps/demo/start4.fus" pos: (19 6) camera: (5 5) mapper: ("quadruple") : import "data/maps/demo/submap_vines.fus" "pebbles": file: "data/maps/demo/pebbles.fus" pos: (15 -2) camera: (3 1) mapper: ("solid_curvy") submaps: : file: "data/maps/demo/pebbles3.fus" pos: (1 -9) camera: (0 -4) mapper: ("triple") submaps: : import "data/maps/demo/submap_dodecas.fus" "pebbles": file: "data/maps/demo/pebbles2.fus" pos: (22 9) camera: (4 0) mapper: ("solid_curvy") submaps: "tunnels": file: "data/maps/demo/tunnels.fus" pos: (13 1) #camera: follow camera: (6 -5) mapper: ("triple") palette: "data/maps/demo/pals/tunnels.fus" "tunnels3": file: "data/maps/demo/tunnels3.fus" pos: eval: (13 1) + (30 -5) camera: (0 0) mapper: ("triple") palette: "data/maps/demo/pals/tunnels.fus" "tunnels2": file: "data/maps/demo/tunnels2.fus" pos: eval: (13 1) + (18 8) camera: (0 5) mapper: ("triple") : import "data/maps/demo/submap_spidertown.fus" parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas3.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "g": "data/maps/demo/tiles/hex_vec4/dodeca_sign_solid.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [s^4 s^5] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [g^2] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [s^3 s^1] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [s^1 s] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . (.) . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . + - + . . ;; S / \ ;; . . . . . . . . . . . . . . . + - + . + - + - + - + - + . + - + ;; \ / ;; . . . . . . . . . . . . . . . . . + + . . . . . . . . ;; \ ;; . . . . . . . . . . . + - + . + . . + - + - + - + - . . . . . ;; / \ / ;; . . . . . . . . . . . + . + - + . . . . . . + . . . . . ;; / ;; . . . . . . . . . . . . . . . . . + - + + - + . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . + . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . + - + . . . . . . + . . + - + . . . . ;; / \ ;; . . . . . . . . . . . . . . . . . + . . . . + . . . . ;; */* ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; * * * ;; + ;; * * * ;; + . + ;; ;; + + + ;; * */ * * * \ ;; + . . + + . . . . + + + . + + ;; * *\ * * */ \* /*\ ;; . . + + - + + . + + + - + ;; / /* \* *\ \* * ;; . + + + + + ;; *\ /* \* /* */ / \* ;; . + - + + - + - + + + . + + + ;; */ /* * * * \* *\ /* */ /* * ;; . + + + + - + + ;; * * * * * * * *\ / * * * * * * * \* * \* * * ;; - - + - + - + - + + - + + . + - + . + ;; * * * * * * *\* */*\* * * * * * */* * \* * /*\* * ;; + + - + - + + + + . ;; */ \* *\ / \* *\ ;; + + . . + + ;; */ /* \* ;; + + . . . + ;; \* /*\ ;; . . + + ;; /* \* ;; + - + . (+)- + + . . - + + ;; /* */ /*\* * * /* */*\ * \ ;; + + - + . + - + . . . + - + . + - + ;; \* * */ ;; + - + ;; ;; spawn: (1 -1) 0 n parts: "F": "data/maps/demo/tiles/hex_vec4/fisheye.fus" "t": "data/maps/demo/tunnels/basic.fus" "e": "data/maps/demo/tunnels/basic_elbow.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; %/*\ [0 x|1 x|1] ;; . . . . . . . . . . . . + .%- + . . . . . . . . . . . [ x|1 x|1] ;; ;; . . . . . . . . . + . + . . . . + . + . . . . . . . . ;; ;; . . . . . . . + . + . . + . + . . + . + . . . . . . ;; ;; . . . . . . . . ? . ? + . . . . + . . . . . . . . . . [t^3|1] [t^3|1] ;; ;; . . . . . . . + + . . ? . + . . . . + + . . . . . . [e^2|1] ;; ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; ;; . . . . . . + . + . . . ? (?) . . . . + . + . . . . . [t^2|1] [F] ;; ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; ;; . . . . . . . + + . . . . ? . . . . + + . . . . . . [t^2|1] ;; ;; . . . . . . . . . . . + . . . . + . . . . . . . . . . ;; %*\ [x|1 x|1] ;; . . . . . . . + . + . . + ?%- + . . + . + . . . . . . [e^1|1] [x|1 x|1] ;; ;; . . . . . . . . . + . + . . . . + . + . . . . . . . . ;; S ;; . . . . . . . . . . . . ? . + . . . . . . . . . . . [t^1|1] ;; %/*\ [x|1 x|1] ;; . . . . . . . . . . + . + . . %+ - . + . . . . . . . . . [x|1 x|1] ;; ;; . . . . . . . . . . . ? . + . . . . . . . . . . . . [t^1|1] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . pos: (-4 2) mapper: ("triple") palette: "data/maps/demo/pals/vines.fus" tileset: "data/maps/demo/tilesets/water.fus" actors: : "actor/hermit/actor.fus" "spider_cpu" vars: "eyespider_vines_ran_away_1": F "eyespider_vines_ran_away_2": F "eyespider_vines_ran_away_3": F "eyespider_vines_ran_away_4": F nosave "eyespider_vines_looking": F nosave "eyespider_vines_mini_eye_respawn": 0 # Hotspots for showing "fluff" (flavour text) nosave "vines2_fluff_a": 0 nosave "vines2_fluff_b": 0 nosave "vines2_fluff_c": 0 nosave "vines3_fluff_a": 0 nosave "vines3_fluff_b": 0 nosave "vines3_fluff_c": 0 "jungle_cage": F "vines3_door": F "spider_passed_vines": F "spider_passed_vines2": F nosave "spider_leaving_vines": 0 nosave "spider_leaving_vines_for_real": 0 nosave "spider_left_vines": F $SET_STR VINES_HIDING: lines: at(25 3) ;;Shhhh! I'm hiding! $SET_STR VINES_TAKE_ME: lines: at(14 24) ;; Wait! ;; ;; ;; Are you ;; heading west? ;; ;; ;; ...take me ;; with you! $SET_STR VINES_THANKS: lines: at(14 24) ;;You're not so bad ;; ;; ;; ;; ...for a spider ;; ;; ;; ;; ;; If you're ;; heading west, ;; I'll come too ;; ;; <- $SET_STR VINES_NOT_OUT_THERE: lines: at(16 26) ;;NO WAIT ;; ;; ;; THERE ARE ;; SPIDERS ;; OUT THERE $SET_STR VINES_AAA: lines: at(16 26) ;;AAAAAAAAAAAAAAAAAAAA $SET_STR VINES_COME_BACK: lines: at(35 15) ;;Come baaack! ;; ;; Take me ;; with you! $SET_STR VINES2_FLUFF_A: lines: at(25 22) ;; Looks tricky! ;; ;; ;; How're you going ;; to get down there? $SET_STR VINES2_FLUFF_B: lines: at(15 7) ;;I'm generally scared ;; of spiders, ;; but you don't seem ;; too bad. $SET_STR VINES2_FLUFF_C: lines: at(20 23) ;; I reckon ;;we're nearly ;; through! $SET_STR VINES3_FLUFF_A: lines: at(10 44) ;;Looks like someone built a house up there. $SET_STR VINES3_FLUFF_B: lines: at(1 1) ;;But ;; who ;;lives ;; in ;;there?.. $SET_STR VINES3_FLUFF_C: lines: at(20 14) ;; Let's ;; just ;; sneak ;;through $SET_STR VINES4_FLUFF_A: lines: at(5 4) ;;PHEW ;; ;; ;; OUTTA THERE !! ;; ;; ;;...say, can you spit me into ;; that receptacle? $SET_STR VINES4_FLUFF_B: lines: at(6 7) ;;Thanks for everything! submaps: "vines": file: "data/maps/demo/vines.fus" text: if all: mapvar("eyespider_vines_ran_away_1") mapvar("eyespider_vines_looking") then $GET_STR VINES_HIDING else if all: mapvar("eyespider_vines_ran_away_2") not mapvar("eyespider_vines_ran_away_4") then if > mapvar("eyespider_vines_mini_eye_respawn") 0 then if && ! mapvar("spider_left_vines") > mapvar("spider_leaving_vines_for_real") 0 then $GET_STR VINES_AAA else if && ! mapvar("spider_left_vines") > mapvar("spider_leaving_vines") 0 then $GET_STR VINES_NOT_OUT_THERE else $GET_STR VINES_THANKS else $GET_STR VINES_TAKE_ME else null camera: (-7 5) "vines2": file: "data/maps/demo/vines2.fus" text: if all: mapvar("eyespider_vines_ran_away_3") not mapvar("eyespider_vines_ran_away_4") == mapvar("eyespider_vines_mini_eye_respawn") 0 then $GET_STR VINES_COME_BACK else null text: if > mapvar("eyespider_vines_mini_eye_respawn") 0 then if > mapvar("vines2_fluff_a") 0 then $GET_STR VINES2_FLUFF_A else if > mapvar("vines2_fluff_b") 0 then $GET_STR VINES2_FLUFF_B else if > mapvar("vines2_fluff_c") 0 then $GET_STR VINES2_FLUFF_C else null else null pos: (-26 -5) camera: (-7 3) mapper: ("quadruple") submaps: "vines2": file: "data/maps/demo/vines3.fus" text: if > mapvar("eyespider_vines_mini_eye_respawn") 0 then if > mapvar("vines3_fluff_a") 0 then $GET_STR VINES3_FLUFF_A else if > mapvar("vines3_fluff_b") 0 then $GET_STR VINES3_FLUFF_B else if > mapvar("vines3_fluff_c") 0 then $GET_STR VINES3_FLUFF_C else null else null pos: (-21 -6) camera: (-6 7) mapper: ("quadruple") palette: "data/maps/demo/pals/water.fus" submaps: : file: "data/maps/demo/vines3_blocker.fus" visible: ! mapvar("vines3_door") pos: (-8 13) "vines2": file: "data/maps/demo/vines4.fus" text: if mapvar("eyespider_vines_ran_away_4") then $GET_STR VINES4_FLUFF_B else if > mapvar("eyespider_vines_mini_eye_respawn") 0 then $GET_STR VINES4_FLUFF_A else null pos: (-40 4) camera: (0 0) "vines2": pos: (-40 4) camera: (-10 -10) tileset: "data/tileset1.fus" submaps: : bg file: "data/maps/demo/jungle_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/demo/jungle.fus" "jungle": pos: eval: (-40 4) + (-6 -18) camera: (0 -8) mapper: ("triple") palette: "data/maps/demo/pals/vines.fus" tileset: "data/tileset1.fus" recs: : "data/maps/demo/recs/jungle2_bird000.fus" : "data/maps/demo/recs/jungle3_bird000.fus" "spider_cpu" : "data/maps/demo/recs/jungle5_bird000.fus" submaps: : bg file: "data/maps/demo/jungle2_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/demo/jungle2.fus" "jungle": file: "data/maps/demo/jungle3.fus" pos: eval: (-40 4) + (-6 -18) + (15 -8) camera: (6 0) mapper: ("triple") palette: "data/maps/demo/pals/vines.fus" tileset: "data/maps/demo/tilesets/water.fus" "jungle": file: "data/maps/demo/jungle4.fus" pos: eval: (-40 4) + (-6 -18) + (10 -16) camera: (0 0) mapper: ("triple") palette: "data/maps/demo/pals/vines.fus" tileset: "data/maps/demo/tilesets/water.fus" "jungle5": target: T pos: eval: (-40 4) + (-6 -18) + (15 -8) + (24 7) camera: follow mapper: ("solid_curvy") palette: "data/maps/demo/pals/vines.fus" tileset: "data/maps/demo/tilesets/water.fus" submaps: : bg file: "data/maps/demo/jungle5_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/demo/jungle5.fus" : file: "data/maps/demo/jungle_cage.fus" visible: ! mapvar("jungle_cage") pos: (15 2) collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . (.) . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + - + . . . . + - + . . ;; * *\ / \ ;; . . . . . . . . . . . . . . . . + . + - + - + - + - + . + - + ;; \* * */ ;; . . . . . . . . . . . . . + + . . + + . . . . . . . . ;; \ ;; . . . . . . . . . . . + - + + + . . + - + - + - + - . . . . . ;; \ / * * * * * *\ ;; . . . . . . . . . . . . + + - + . . . . - + - + - + . . . . . ;; * */ ;; . . . . . . . . . . . . + + . . . + - + + - + . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . + . . . . . . . ;; /* / ;; . . . . . . . . . + - + . . . . . . . + . + . . . . . . ;; \*/* / \ * * * ;; . . . . . . . . . + - + . . . . . . + . + - + - + . . . . ;; / / \* ;; . . . . . . . . . . . . . . . . . + . . + . + - + . . . ;; / \ ;; . . . . . . . . . . . . . . . . . . . . . + + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . + + . ;; ;; + (.) + ;; ;; . + + . ;; ;; . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . (+)- + . . . . . . + - + . . . . . . . . . . . . ;; / \ / / ;; . . . . + . + . . . . . + + . . . . . . . . . . . . . ;; \ / \ / ;; . . . . + - + . . . . . . + . . . . . . . . . . . . . ;; mapper: ("double") recs: : "data/maps/demo/recs/dodecas_hexroller_000.fus" : "data/maps/demo/recs/dodecas_hexroller_001.fus" "spider_cpu" vars: "eyespider_dodecas_ran_away_1": F nosave "big_switch": T submaps: : bg file: "data/maps/demo/dodecas_bg.fus" pos: (-55 -60) : bg file: "data/maps/demo/dodecas_bg2.fus" pos: (20 -65) "dodecas_0_0": file: "data/maps/demo/dodecas_0_0.fus" pos: (1 -6) camera: (0 -4) "dodecas_0_-1": file: "data/maps/demo/dodecas_0_-1.fus" pos: (-27 -15) camera: (0 -4) tileset: "data/maps/sprucetown/tilesets/earth.fus" "dodecas_1_0": file: "data/maps/demo/dodecas_1_0.fus" pos: (0 -28) camera: (0 -4) "dodecas_1_-1": file: "data/maps/demo/dodecas_1_-1.fus" pos: (-22 -30) camera: (0 -4) "dodecas_2_0": file: "data/maps/demo/dodecas_2_0.fus" pos: (0 -48) camera: (0 -4) "dodecas_2_-1": file: "data/maps/demo/dodecas_2_-1.fus" pos: (-22 -50) camera: (0 -4) "fisheye": target: T pos: (20 -50) submaps: : pos: (0 -28) camera: (0 0) recs: : "data/maps/demo/recs/big_000.fus" submaps: : bg file: "data/maps/demo/big_bg.fus" tileset: "data/tileset1_bg.fus" : bg file: "data/maps/demo/big_e.fus" visible: mapvar("big_switch") pos: (8 3) : bg file: "data/maps/demo/big_E.fus" visible: ! mapvar("big_switch") pos: (8 3) : file: "data/maps/demo/big.fus" : file: "data/maps/demo/big_spikes.fus" visible: ! mapvar("big_switch") pos: (8 3) : file: "data/maps/demo/fisheye.fus" pos: (0 0) camera: (0 0) : file: "data/maps/demo/fisheye2.fus" pos: (-12 -16) camera: (0 0) : file: "data/maps/demo/fisheye3.fus" pos: (-32 -26) camera: (0 0) : file: "data/maps/demo/fisheye4.fus" pos: (-48 -28) camera: (0 0) spawn: (8 2) 0 n parts: "A": recording "data/recs/hotspot.fus" vars: "counter": "spider_leaving_vines_for_real" "max_cooldown": 15 "B": recording "data/recs/hotspot.fus" vars: "need_key": "eyespider_vines_mini_eye_respawn" "key": "spider_left_vines" "M": recording "data/recs/minimap_door.fus" vars: "set_mapbool": "start2_minimap" default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; ;; . . ? . . ? . . ? . . ? . . ? [A][A][A][A][A] ;; ;; ;; ;; ;; S ;; + - + - + - + - + - + - + - + ;; / \ \ ;; . . ? . . ? . . ? ? + ? + - + - + - + - + + [A][A][A][B] [M] ;; / \ / ;; @ = @ = @ = + - + - + - + - + + + + - + ;; / / \ \ ;; + + - + - + + + ;; %* \ / [0] ;; %(+)- . . . . . . + - + + + [00] ;; ;; . . . ;; ;; . . . . ;; ;; . . . ;; %* */ [000] ;; % + . . . [ 0] ;; %* *\ [000] ;; % + . . . . . . . . . [ 0] collmap: ;; ;; . + - + . ;; /* * *\ ;; + (.) + ;; \* * */ ;; . + - + . ;; ;; . . . default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; ;; ;; . + . ;; ;; + + ;; ;; . + . + ;; ;; . . . . + . + + ;; * * * * ;; . . . + + . . + - + . ;; * / ;; . . . . . + + + . . ;; * ;; . . . + . ;; * ;; (+) spawn: (2 -2) 0 n parts: "F": "data/maps/demo/tiles/hex_vec4/fisheye_B.fus" "T": "data/maps/demo/tiles/hex_vec4/fisheye_big2tri.fus" "A": recording "data/recs/eye.fus" "d": recording "data/recs/door.fus" vars: "map": "data/maps/tutorial3/worldmap.fus" "l": location "fisheye_location_a" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [] ;; %\*/*\*/ [x|1 x|1 x|1 x|1 x|1 x|1 x|1] ;; . . . . . . . . . ? . ? . %+ - + . ? . ? . . . . . . . . [] [] [x|1 x|1 x|1] [] [] ;; %\*/ [x|1 x|1 x|1] ;; . . . . . . . ? . ? . . . %+ . . . ? . ? . . . . . . [] [] [x|1] [] [] ;; %\ %/* [0|1] [x|1 x|1] ;; . . . . . . . . . ? %+ . . . . . . %+ - . . . . . . . . . [A] [0|1] [x|1 x|1] ;; %/*\ %/*\*/* [0|1 x|1 x|1] [x|1 x|1 x|1 x|1 x|1 x|1] ;; . . . . . . . ? ?%- + - + . . . . . %+ - + - ? ? . . . . . . [] [][0|1 0|1 x|1 x|1] [x|1 x|1 x|1 x|1] [] [] ;; ;; . . . . . . ? . . . . . . . . . . . . . . . . . . . . [d] ;; ;; . . . . ? . ? . ? . . . . (?) . . . . ? . ? . . . . . [] [] [] [F] [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . ? ? . ? . . . . . ? . ? ? . . . . . .[T][] [l] [] [] [] [] ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [A^3] ;; ;; . . . . . . . ? . ? . . . ? . . . ? . ? . . . . . . [] [] [] [] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "E": recording "data/recs/mini_eye_crouch.fus" target: T vars: "key": "eyespider_vines_ran_away_3" "antikey": "eyespider_vines_ran_away_4" "appear": T "respawn_counter": "eyespider_vines_mini_eye_respawn" "h": recording "data/recs/hotspot.fus" vars: "key": "spider_passed_vines" "H": recording "data/recs/hotspot.fus" vars: "counter": "spider_leaving_vines" "max_cooldown": 15 "A": recording "data/recs/hotspot.fus" vars: "counter": "spider_leaving_vines_for_real" "max_cooldown": 15 default_vert: "s" default_edge: "s" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . + . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . . . + . . . . ;; / ;; + . . . . . . . . . . . . . . . . + . . + + . + . . ;; \ S \ / / / ;; . + - + - + . + - + - + - + - + . . + + - + . . . + . + + . + . . . ;; / \ /* */ \* * * * * *\ * * */ /* * *\ / \ / \ ;; + + - + + + - + + . . + - + - + + + - + . . + . . + . . + . . ;; \ / \ / \* * * * */ \ \*/ \ \ / ;; . + . + . . . + - + - + . . + + . . . . + . . + . + . . . ;; / / / \ * * * * * * * * * * / ;; + . . . . . . . + . . + . + . . . . . . . . + . . . ;; / \ \ \ / * * * * * * * * * * ;; + + . . . . . . . + . . + + . . . . . . . + . . . . . ;; \ / / \ \ \ ;; + . . . . . . . + . . . + + . . . . . . . + . . . . ;; / \ / \ / ;; + + ? . . . . . . . . . + . + . . . . . . + . . . . . [h] ;; \ / \ ;; + . . . . . . . . . . . . . . . . . . . . + . . . . ;; / ;; + . . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ ;; + . . . . . . . . . . . . . . . . ? . . . . ? . . ? [H] [H][A] ;; / ;; + . . . . . . . . . . . . . . . ? %+ - + ? . ? %+ - + . . . [H] [222][H][H][222] ;; %/ \ / \ %/ \ / [2222] [222] ;; + . . . . . . . . . . . . . . . %+ - + - + . . %+ - + . . . [22222] [222] ;; / \ %\ / \ / [2222] ;; + + . . . . . . . . . . . . . . ? %+ - + ? . . . . . . . [H] [222][H] ;; \ \ ;; + - + . . . . . . . . . . . . . . . ? . . ? . . ? . ? [H] [H] [H][A] ;; ;; . . . . . . . . . . . . . . . . . . . ? %+ - + . %(+)- + = @ = @ = @ [H] [222] [222] ;; %/ \ / %\ / [222] [22] ;; . ! - + . . . . . . . . . . . . . . . . %+ - + . . %+ . . [E] [222] [2] ;; / \ ;; . + . + . . . . . . . . . . . . . . . . . . . . . . . ;; \ / ;; . + - + . . . . . . . . . . . . . . . . . . . . . . . parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "C": shape "red_curvy_dodeca_anim" collmap: ;; (?) [C];; . . . . . . . ;; * * ;; ;; * * ;; . . . . . . . ;; * * * ;; ;; * * * ;; . . . . . . . ;; * * ;; ;; * * * * * ;; . (.) . . . ;; * * * ;; ;; * ;; . . . . ;; ;; ;; ;; . . . collmap: ;; ;; . . . . . . . . + . + + . . . . . . . . . . . . . . . ;; \ \ \ ;; . . . . . . . . + . + - + - + . . . . . . . . . . . . . ;; \ ;; . . . . . . . + - + + . . . . . . . . . . . . . . . . . ;; / \ S ;; . . . . . . + . + -(+)- + + + . . . . . . . . . . . . . ;; \ / ;; . . . . . . . + - + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "D": recording "data/recs/coin_crouch.fus" "D": "data/maps/demo/vert.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * ;; . . . . - + - + . . + - + . . + - + . . . . . . . . . . . . ;; */ \ /* \ /*\* \ ;; . . . . ? ? + . + + + . + ? + . . . . . . . . . . . . [D][C] [C] ;; *\ \* */ / * ;; . . . . + . . . + + . . . + . + . . . . . . . . . . ;; \ ;; . . . . . + . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + - + . . + - + . . . . . . . . . . ;; /*\*/*\ */*\ ;; . . . . . . . . . . + . - + . . + - + . . . . . . . . . . ;; \ */ * */ ;; . . . . . . . . . . + - + . . + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * S ;; . . . . -(+)- + . . + - + . . + - + . + . . . . . . . . . . ;; */ \ / \ \ * ;; . . . . + . + . + . + . + - ? + . . . . . . . . . . . . [C] ;; \ / \ / \ *\ / ;; . . . . + - + . . + - + . . + - + . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . + + . . + . + + . . . . . . . . . . . ;; /* \ / \ * * * ;; . . . . . . + ? + . + - + + . . + . . . . . . . . . . . [C] ;; \*/* */*\ \* / ;; . . . . + . + - + - + . + - + . . . . . . . . . . . . . . ;; * ;; . . + + - . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "_": empty "i": "data/maps/demo/jungle_ball_points.fus" "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? (.) . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [o] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [o] [_] [_] [o] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [o] [_] [o] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [o] [_] [o] [_] [o] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [o] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [o] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; spawn: (0 -1) 3 y parts: "h": recording "data/recs/hotspot.fus" vars: "key": "spider_passed_vines2" "a": recording "data/recs/hotspot.fus" vars: "counter": "vines3_fluff_a" "max_cooldown": 15 "b": recording "data/recs/hotspot.fus" vars: "counter": "vines3_fluff_b" "max_cooldown": 15 "c": recording "data/recs/hotspot.fus" vars: "counter": "vines3_fluff_c" "max_cooldown": 15 "D": recording "data/recs/door.fus" vars: "map": "data/maps/water/worldmap.fus" "location": "hermit_exit" "E": location "hermit_entrance" collmap: ;; ;; + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - . . . . . ;; ;; ? + - + - + - + - + - + - + - + - + - + - + - + - . . . . . . . . . [b] ;; ;; . ? + - + - . + - + - + + - + - + - + - + - + - . + - + - . . . . . . [b] ;; / \ ;; . ? + - + - + ? + + - + + - + - + - + - + - + - + - + - . . . . . [b] [D] ;; / / \ ;; + - . + + . %+ - + + + + + - + - + - + - + - + - + - . . . . . . [1111] ;; / \ / / ;;+ - + + - + . ! -%+ + . %+ + + - + - + - + - + - + - + - . . . . . [E] [11] [1] ;; \ \ ;; + - + - + . . %+ . . . + + - + - + - + - + - + - . . . . . . . [1] ;; \ \ ;; + - . + - + %+ . . . %+ + ? + - + - + - + - + - . . . . . . [1] [1] [c] ;; \ \ ;; + - + - + - . + . + . + - + - + ? + - + - + - + - . . . . . . . [c] ;; \ / ;; + - + - . . + - + - + - + - + - + - + - + - + - + - + - + - . . . . . . ;; ;; + - + - + - . . + - + - + - + - + - + - + - + - + - . . . . . . . . . ;; ;; + - + - . . + - + - + - + - + - + - + - + - + - + - + - . . . . . . . ;; ;; + - + - + - + - + - . + - + - + - + - + - + - + - + - + - + - . . . . . . ;; ;; + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - . . . . . . ;; ;; + - + - + - + - + - + - + - + - . ? + - + - + - . . + - . . . . . . . [a] ;; / ;; + - + - + - + - . + - + - + - + - + - . + - + - + - + - + - + - + . . . . ;; / / %\ [1] ;; . + - + - + - . + + - + - + - + - + - + - + - + - + - + - + - + - + %+ ? %+ - + . [1][h][111] ;; \ %/ \ %/ \ [11] [11] ;; + - + - + - + - . + - + - + + - + - + - + - + - + - + - + - + - + - . %+ -(+) + . + [111 1 1] ;; \ %\ S %/ [1] [1] ;; . . + - + - + - + - + - . + - + - + - + - + - + - + - + - + - + - . . . %+ - + - + . [11111] ;; / ;; . . ;; ;; . . . ;; ;; . . . ;; * * * * ;; . . ;; * * * * parts: "_": empty "i": "data/maps/demo/jungle_ball_points.fus" "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . + . . . . . . . . . . . . . . . . . . . . . ;; / ;; . . . . + . . . . . . . . . . . . . . . . . . . . . . ;; \ ;; . . . ? (+)- + ? + - + ? . . ? . . ? . . ? . . ? . . . . [_] [_] [_] [i] [_] [_] [_] ;; \ /*\*/*\ ;; . . ? . . ? + - + - ? - + . ? . . ? . . ? . . ? . . ? . . . [_] [_] [_] [O] [_] [o] [_] [_] ;; \*/ ;; . . . ? . . ? . + ? . . ? . . ? . . ? . . ? . . . . [_] [_] [O] [_] [O] [_] [_] ;; \ ;; . . ? . . ? . . ? + - + ? + - + ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; \ / \ ;; . . . ? . . ? . . ? + - + ? + - + ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [_] ;; \ ;; . . ? . . ? . . ? . . ? + . ? + . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; / / ;; . . . ? . . ? + - + ? + - + ? . + ? . . ? . . ? . . ? . [_] [_] [_] [_] [_] [_] [_] [i] ;; / \ ;; . . ? . . ? . . ? . + ? . . ? + - + ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [_] [_] ;; \ ;; . . . ? . . ? . . ? + - + ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [o] ;; \ ;; . . ? . . ? . . ? . . ? + . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [o] [_] ;; / ;; . . . ? . . ? . . ? . + ? . + ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [O] ;; \ ;; . . ? . . ? . . ? . . ? . . ? + - + ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [O] [_] ;; \ ;; . . . ? . . ? . . ? . . ? . . ? + . ? . . ? . . . . [_] [_] [_] [_] [_] [O] [_] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "D": recording "data/recs/door.fus" vars: "map": "data/maps/wilderness/worldmap.fus" "E": location "wilderness_exit" default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . + + . . . . . . . + + . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + . . . . + + . . . . . . . ;; ;; . . . . . . . . . . . . + . . . . . . + . . . + + . + ;; \* * ;; . . . . . . . . . . . . . . . . . + . + . . . . . . + ;; \ \* * ;; . . . . . . . . . . . . . . . . . . + . + . . . . . . ;; \ \* ;; . . . . . . . . . . . . . . . . . . + . + . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . ;; ;; . . . . . . . . . + . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . + . . . . . . . . . . . + - + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . + - + . . . . ;; / \ ;; . . . . . . . . . . . . . . . . . . . . . + + . + + . . . + - + ;; \ \ / /* / *\ ;; . . . . . . . . . . . . . . . . . . . . . + + - + + . . . . + . - + ;; \ /* * *\* ;; . . . . . . . . . . . . . . . . . . + . . . + . + . . . + + - . + ;; \ / \ ;; . . . . . . . . . . . . . . . . . + . . . . . . . . . + . ? + [D] ;; / ;; . . . . . . . . . . . . . . . . . . + . . + . + . . . - + - + . + - + ;; / / */ \ / ;; . . . . . . . . . . . . . . . . . . . . (+) . + . . . . + - ! [E~^3] ;; / \ ;; + + + . + - + - + - + - + - + . ;; \ \ ;; + . + + ;; \ / ;; + - + - + - + - + - + + ;; / \ ;; + + + ;; / / ;; + . + - + - + - + - + - + default_face: "1" collmap: ;; . . . . ;; ;; ;; \ / ;; . (+) + . ;; ;; ;; ;; . - + + - + . ;; / /* * *\ ;; + . + ;; \* * */ ;; . + - + + - . ;; / / ;; ;; ;; . . . . parts: "c": "data/maps/test/bighex_corner.fus" "r": actor "actor/airoller.fus" "s": recording "data/recs/switch.fus" vars: "key": "map3_blocker" "l": location "spidertown_exit" "D": recording "data/recs/door.fus" vars: "map": "data/maps/spidertown/worldmap.fus" "location": "start" collmap: ;; . . ;; ;; + - + - + . . - . ;; / \ /* * *\ ;; + + . . ? . [c] ;; / / \* * */ ;; + + - + . . - . . ;; \ / /*\ ;; + - + + - + + . ;; \*/*\ \ ;; . + - + + ! - + - + [r] ;; \*/ /*\ / \ ;; . . . + . ! + - + + + + [s^2] ;; \ / \*/*\ \ \ \ ;; . ? . ? + - + . + - + + + + [c^2] [D] ;; \*/ / / / ;; . + - + - + -(!)- + + + + - + + [l] ;; *\*/* \*/*\*/*\ / \ / ;; - + - + . . + - + - + - + + ;; */ \*/ ;; + + . . ;; \ ;; + - + . . . + - + - + - + + - + . . ;; \ \ ;; + + . ? . [c^4] ;; \ / ;; + - + - + . . . ;; ;; . . spawn: (1 -1) 0 n parts: "F": "data/maps/demo/tiles/hex_vec4/fisheye.fus" "t": "data/maps/demo/tunnels/basic.fus" "e": "data/maps/demo/tunnels/basic_elbow.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . + . . %+ - . + . . . . . . . . . [x|1 x|1] ;; %\*/ [x|1 x|1] ;; . . . . . + - + - + . . . . + . + . . . . . . . . . . . ;; \ \ ;; . . . . . . . + - + ? . + . . . . + . + . . . . . . . . [t^3|1] ;; ;; . . . . . . . + . + ? . + . + . + - + . + . . . . . . [e^2|1] ;; / ;; . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; ;; . . . . . . . + + . . ? . + . . . . + + . . . . . . [t^2|1] ;; ;; . . . . . . . . . . + + . . . + . + . . . . . . . . . ;; ;; . . . . . . + . + . . ? . (?) . . . . + . + . . . . . [e^1|1] [F] ;; ;; . . . . . . . . . . + . . . . + . + . . . . . . . . . ;; ;; . . . . . . . + + . ? . . + . . . . + + . . . . . . [t^1|1] ;; ;; . . . . + - ? . ? . ? . + . . . . + . . . . . . . . . . [t|1] [t|1] [e|1] ;; %/*\ [x|1 x|1] ;; . . . . . . . + . + . . %+ - . + . . + . + . . . . . . [x|1 x|1] ;; ;; . . . . . . . . . %+ - + - + . . . . %+ - + - + - + - + - + . . . . . [x|1 x|1 x|1 x|1 x|1] [x|1 x|1 x|1 x|1] ;; %\* * * *\ %/* * * */ [x|1 x|1 x|1 x|1 x|1 x|1] [x|1 x|1 x|1 x|1 x|1] ;; . . . . . . . . . + - + - + + %+ - + + - + - + . . . . . . . . [0|1 x|1 x|1] ;; %\*/ [0|1 x|1 x|1] ;; . . . . . . . . . . + . + . %+ + . + . . . . . . . . . [0|1] ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "_": empty "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" "s": recording "data/recs/switch_oneway.fus" vars: "key": "jungle_cage" collmap: ;; ;; . . . . . . . . . . . . . . . . . + . . . . . . . . ;; * * * * * */*\* ;; . . . . . . . . . . . . . - . . . . . . . . . . . . ;; ;; . . . . . . . . . %+ - + . . . . . . . . . . . . . . . [111] ;; %/* * *\ * * [11111] ;; . . . . . . . . %+ - + - + . . . . . . . + - + + - + . . . [11111] ;; %\ \ * * [1] ;; . . . . . . . . . . . %+ . . . . . . . . + . . . . . [1] ;; / * ;; . . . + . . . . . . .%- + - + - + - + . . + - + - + . . + . . [11111111] ;; / %\ * * * [1] ;; . . . + . . . . . . . . . . . %+ . . . . + - + . . . - + [1] ;; \ %\ /* * *\ * \ [1] ;; . . . (+)- + ? + - + ? . . . . . . %+ - + - + . + . + - + + . . [_] [_] [11111] ;; \ \ \* * */* * *\ ;; . ? . . ? + - + - + + . ? . . ? . . %+ . . + + - + . + . . + [_] [_] [_] [_] [1] ;; \ / %/ \* * */ / [1] ;; . . ? . . ? . + ? . . ? . . ? %+ . . . . . + - + . + [_] [_] [_] [_] [_] [1] ;; \ /* * *\ ;; . ? . . ? . . ? + - + ? + - + ? . . ? . . ? + + . + . . [_] [_] [_] [_] [_] [_] [_] ;; \ / \ *\* * */* ;; . . ? . . ? . . ? + - + ? + - + ? . . ? . . . + - + . . [_] [_] [_] [_] [_] [_] ;; \ * ;; . ? . . ? . . ? . . ? + . ? + . ? . . ? . . ? + + . [_] [_] [_] [_] [_] [_] [_] [_] ;; S / / * * ;; . . ? . . ? + - + ? + - + ? . + ? . . ? . . ? . ! . + [_] [_] [_] [_] [_] [_] [_][s^5] ;; / \ /* * ;; . ? . . ? . . ? . + ? . . ? + - + ? . . ? . . ? - + + [_] [_] [_] [_] [_] [_] [_] [_] ;; \ * ;; . . ? . . ? . . ? + - + ? . . ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [o] [_] ;; \ ;; . ? . . ? . . ? . . ? + . ? . . ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [o] [_] ;; / ;; . . ? . . ? . . ? . + ? . + ? . . ? . . ? . . . . [_] [_] [_] [_] [_] [_] [O] ;; \ ;; . ? . . ? . . ? . . ? . . ? + - + ? . . ? . . ? . . . [_] [_] [_] [_] [_] [_] [O] [_] ;; \ ;; . . ? . . ? . . ? . . ? . . ? + . ? . . ? . . . . [_] [_] [_] [_] [_] [O] [_] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "_": empty "i": "data/maps/demo/jungle_ball_points.fus" "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" collmap: ;; ;; * ;; . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . + - + . . . ;; * * * / ;; . . . . . . . . . . . . . . . . . . . + + . . . . ;; / \ ;; . ? . . ? . . ? . . ? . . ? . . ? . + ? + . . . [_] [o] [_] [_] [_] [_] [i] ;; \ ;; ? . . ? . . ? . . ? . . ? . . ? . . ? + - + ? . . . . [_] [o] [O] [_] [_] [_] [i] [O] ;; ;; . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . [_] [_] [_] [O] [_] [_] [_] [O] ;; ;; ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . [_] [_] [_] [o] [O] [_] [_] [_] [O] ;; ;; . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . [_] [_] [_] [O] [_] [_] [_] [_] ;; ;; ? . . ? (.) . ? . . ? . . ? . . ? . . ? . . ? . . ? . [_] [_] [_] [O] [_] [_] [_] [_] [_] ;; ;; . ? . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . [_] [O] [O] [_] [_] [_] [_] [O] ;; ;; ? . . ? . . ? . . ? . . ? . . ? + - + ? . . ? . . ? . [_] [O] [_] [o] [_] [i] [_] [_] [O] ;; / \ ;; . ? . . ? . . ? . . ? . . ? + - + ? + . ? . . ? . . [_] [o] [o] [_] [_] [i] [_] [_] ;; / ;; ? . . ? . . ? . . ? . . ? . + ? + - + ? . . ? . . . [_] [_] [_] [_] [_] [i] [_] [_] ;; \ / \ ;; . ? . . ? . . ? . . ? . . ? + - + ? + . ? . . . . [_] [_] [_] [_] [i] [i] [_] ;; / ;; ? . . ? . . ? . . ? . . ? . . ? . + ? + - + ? . . . [_] [_] [_] [_] [i] [_] [_] [_] ;; \ / ;; . ? . . ? . . ? . . ? . . ? . . ? + - + ? . . . . [_] [_] [_] [_] [_] [_] [i] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; spawn: (1 -1) 0 n parts: "F": "data/maps/demo/tiles/hex_vec4/fisheye.fus" "t": "data/maps/demo/tunnels/basic.fus" "e": "data/maps/demo/tunnels/basic_elbow.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; ;; . . . . . . . . . . . . + . + . . . . . . . . . . . ;; ;; . . . . . . . . . + . + . . . . + . + . . . . . . . . ;; ;; . . . . . . . + . + . . %+ - + - + - + - + - + . + . . . . . . [0|1 x|1 x|1 x|1 0|1] ;; %\*/*\*/ [0|1 x|1 x|1 x|1 x|1 x|1 0|1] ;; . . . . . . . . . . . + . %+ - + . + . . . . . . . . . . [0|1 0|1 0|1] ;; ;; . . . . . . . + + . . . . + . . . . + + . . . . . . ;; ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; %/*\ [x|1 x|1 0|1] ;; . . . . . . + . + . . . . (?) . . . . %+ - + + . . . . . [F] [x|1 x|1 0|1] ;; %\*/ [x|1 x|1 0|1] ;; . . . . . . . . . . + . + . . + . + . . . . . . . . . ;; ;; . . . . . . . + + . . . . + . . . . + + . . . . . . ;; ;; . . . . . . . . . . . + . . . . + . . . . . . . . . . ;; ;; . . . . . . . + . + . . + . + . . + . + . . . . . . ;; ;; . . . . . . . . . + . + . . . . + . + . . . . . . . . ;; ;; . . . . . . . . . . . . + . + %+ . . . . . . . . . . [0|1] ;; %/*\ [x|1 x|1 0|1] ;; . . . . . . . . . . + . + %+ - + %+ - + + . . . . . . . . . [0|1 0|1 0|1] [x|1 x|1 0|1] ;; %\*/ [x|1 x|1 x|1] ;; . . . . . . . . . . . . . %+ . . . . . . . . . . . . [x|1] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . + . . . . ;; / \ ;; + - + ;; /*\*/*\ ;; . . . . . . . . + - + - + . . . . ;; /* * *\*/*\ ;; + . + - + ;; /*\* * */*\*/*\ ;; . . . . . . . + - + - + - + - + . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . + . . . . + . ;; /*\ /*\ ;; + - + + + ;; /* * *\ /* * *\ ;; . . . . . + - + - + - + - + . . . + - + - + . ;; \*/*\*/ ;; + - + . ;; \*/ ;; . . . + - + - + - + - + . + . . . . . ;; \* * */ /*\ ;; + - + + - + ;; \*/ /*\*/*\ ;; . . . . . + . + - + - + . . . . . ;; /*\ / ;; + - + + ;; /* * *\ / ;; . . . . + - + - + . + + - + - + . . . ;; \*/*\*/*\ ;; + - + - + ;; \* *\*/*\ ;; . . . . . + - + - + . . + - + - + . . . ;; \*/*\*/*\ \*/* * *\ ;; (+)- + + + . + ;; \*/* * *\ \* * */*\ ;; . . . . . + - + - + . . + - + - + . . ;; ;; + + ;; \ / ;; . . . + - + . . + + . . . . . . ;; \*/ / /*\ ;; + + + - + ;; / /*\*/*\ ;; . . . . . + + - + - + . . . . . ;; \ \*/*\*/ ;; + + - + ;; \ \*/ ;; . . . . . . + - + - + . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; default_face: "e" import "data/maps/demo/_big_e.fus" parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "f": recording "data/recs/food.fus" "F": recording "data/recs/food_crouch.fus" "r": actor "actor/airoller.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + + . . . ? . . . . . . . . [] ;; / \ ;; . . . . . . . . . . . . + ? + . . . . . . . . . . . [f] ;; ;; . . . . . . . . . . . . . . ? ? . . . . . . . . . . . [f][f] ;; ;; . . . . . . . . . . . + . (?) . + . + + . . . ? . . . [D] [] ;; / \ / \ ;; . . . . . . . . . . . + . . . . + + . + . . . . . . . ;; ;; . . . . . . . . + + . + - + . ! - + . . . . . . . . . . [r] ;; / \ ;; . . . . . . . . + ? + . . . . . + . ? ? + . . . . . . [f] [][f] ;; / / ;; . . . . . . . . . . . . . . . + . . ? + . . . . . . [f] ;; / ;; . . . . . . . + . ? . + . . . . ! - + ? + . . . . . . . [][r][f] ;; / \ ;; . . . . . . + . . . . + . . . . . . . . . . . . . . ;; ;; . . . . . . . ! - + . + - + . . . . . . ? . . . . . . . . [r] [F] ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "_": empty "o": "data/maps/demo/jungle_ball_hollow.fus" "O": "data/maps/demo/jungle_ball.fus" "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "r": actor "actor/airoller.fus" "w": actor "actor/aiwater_roller_sneaky.fus" "D": recording "data/recs/door.fus" vars: "map": "data/maps/water/worldmap.fus" "location": "water_entrance" "E": location "water_exit" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + . . . (.) . . . . . . . . . . . . . . . . ;; / \ ;; . . . . . + . + . . + - + . . . . . . . . . . . . ? . . . [O] ;; \ / ;; . . . . . + - + . + - + . + - + . + - + . + - + . + - + ? . . . . [O] ;; / / \ / \ / \ / \ / \ ;; . . . . + - + . . + . + - + . + - + . + - + . + - + . + - + ? . . . [O] ;; / \ \ / \ / \ ;; . . + - ! . + - + . + + . + - + . + - + . + - + . + . + + - + . . [E^3] ;; / \ / \ / \ / \ / \ \ / \ ;; . . + . + + . + - + . ! - + . + - + . . . . + . . . + . + . . [C] ;; \ / \ \ \ / \ / ;; . . + ! ? + ! - + + - + . + - + . . . . . . . ! - + . + - + . . [C][C] [r][r] ;; / \ / / \ / S / \ ;; . + - + . ! + + . + - + . + . + - + . . . . + - + . + - + . . . . [C] ;; \ \ / \ \ \ \ / \ / \ / \ ;; . + + + . + + . . ! . + + ? + . . . + . + - + ? + - + . . [C][O][O] ;; / / \ / / / \ / \ / \ / \ ;; . + - + . + - + + . + - + + - + . + - + . . . . + - + ? + - + . + . . [O] ;; \ \ \ / / \ / \ / \ / ;; . . + . . + + - + + - + ? + . . ! - + . + - + ? + - + . . + . . [O][w][O] ;; / / / \ / / \ / \ / \ \ ;; . . + ? + + . + - + ? + - + . + - ! ! + - + ? + - + . . . . + . [D][O][C][C][O] ;; \ / \ / \ / / /*\ \ / \ \ ;; . . + - + . + - + ? + - + . + - + ? + + ? + - + . . . . + + . . [O] [c][c] ;; / \ / / \ /* * *\ / \ \ ;; . . . . . + ? + - + . + - + . + + . + + . + - + . + + . . . . [O] ;; \ / / \ / /* * * * *\ \ / \ \ ;; . . . . . + - + . + - + . + - + + - + - + - + + - + . + + . . . . . ;; ;; . . . . . . . . . . . . . + - + . + - + . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . . + - + . . . . . . . . . . . ;; parts: "R": actor "actor/aibig_roller.fus" ^5 "s": recording "data/recs/switch.fus" vars: "key": "big_switch" "D": recording "data/recs/door.fus" vars: "map": "data/maps/triangles/worldmap.fus" "l": location "triangles_exit" collmap: ;; ;; . . . . . . . . + . . . . ;; / \ ;; + - + ;; ;; . . . . . . . . + - + + . . . . ;; /* * *\ \ ;; + . + + ;; / \* * */ ;; . . . . . . . + + - + . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . . ;; ;; ;; ;; . . . . . . + . . . . + . ;; /*\ ;; + - + + + ;; /* * *\ /* * *\ ;; . . . . . + - + + - + - + = @ = @ = @ = @ = @ = @ = @ = + - + - ! . [s^3] ;; \*/ / ;; + + . ;; / ;; . . . + - + + - + - + . . . . . . . ;; \* * */ ;; + - + + - + ;; / \ ;; . . . . . . . + + . . . . . ;; / ;; + - + + ;; /* * *\ / ;; . . . . + - + - + . + + . + . . . ;; \ \ ;; + - + + ;; \ ;; . . . . . + + . . + + - + . . . ;; \ /*\ /* * *\ ;; (+)- + + + . + ;; \* * */ \* * */ ;; . . . . . + - + + . . + - + + . . ;; ;; + ? + [D] ;; \ / ;; . . . + - ! . . + ! . . . . . . [l^3] [R] ;; / /*\ ;; + + - + ;; / \ ;; . . . . . + + + . . . . . ;; \ \ / ;; + + - + ;; \ ;; . . . . . . + - + - + . . . . . . ;; ;; ;; ;; . . . . . . . . . . . . . ;; ;; parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . + - . . . . . . . . . ;; / ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? ? . . . . . . . [] [] ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . ? ? . . . . . . . [] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [s^2 s^4] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [s] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (+) . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . + + . . . . . . . . . . . . . . . . ;; \ / ;; . . . . + + + + + - + - + + . + + . + + . + + . . . . . ;; / / \ ;; . . . + + + - + + . + + . + + . + + . + + . + + . . . . ;; \ / ;; . + + . + + + + + . + + . + + - + + + . + . + + + . . ;; * */ \ / ;; . + . + + . + + . + + . + + - + . + - + + . . . + . + . . ;; \* * */ \* ;; . + + . + + + + + . + + . . + - + . + . + + . + + . . ;; / \ ;; . + . + + + . + + . + . + + - + . + . + + . + + . + - + . ;; * * */ \ \* * */ / \ ;; . + + . + + - + . + . + + . + + - + . + . + + . + + . + - + ;; \* * * / * */ \ \* * */ \ ;; . + . + + + . + + + + + + + - + + + - + + + . + + . + - + . + ;; * * * \* * */ \* * */ \* * */ ;; . + . . + + + + + . + + - + + + - + + + . + + . . + . + - + ;; * */ \* ;; . + . + + . + + . + + - + + + + + + . + + . . . . + . . ;; / \* ;; . + + . + + . + + . + + . + + . + + . . . . + + . . ;; ;; . . . . + . + + . + + . + + . + + . + + . + + . . . . ;; ;; . . . . + + . + + . + + + + + + + + . + + . . . . . ;; ;; . . . . . . . . . . . . + + . + + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + + . . . . . . . . . . . ;; parts: "r": actor "actor/airoller.fus" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; / \ / \ / \ / \ %/ / [11] ;; . . + - + . + - + + + + + . . . . . . %+ . + . . . . . . [11] ;; \ /* * * * * * * * * * *\ / \ / \ / \ / \ %/ / [11] ;; . . . . + - + - + - + - + - + - + - + + + + + . %+ . + . . . . . . . [11] ;; \* * * * * * * *\ / \%/ [1] ;; . . . (+)- + . . . . . . + . . . + %+ . + - + - + . + - + . . [1] ;; / */*\ \* * * * * * * * * *\ /* * * * *\ /* * *\ ;; . . + - + + ! - + - + - + - + - + - + + . . - . - . + - + . + + - + + + . . [r] ;; /* * * / /* * * */* * * * *\* * * * * * * * * * * * */ \* *\ ;; . . . + . + . . + - + . + . . + + . . . . . . + - + ! - + [r] ;; /*\* * */ / \ /* * * * *\* * * * */* * * * * * * * * * * * * * * * * * *\ ;; . . . + . + . ! - + - + - + - + + - + . - . - . . + - + - + . . . . . + [r] ;; \* *\* *\ \* * * * * * */ \* * * * * * * * * *\ / /* * * * * * * * * * * */ ;; . . . + . + . . + . . + . + . . . . + + + . . . + - + ;; /*\* *\* *\ \* * * * * *\ \* * * * * * * * * *\ /* */ \* * * * * * */ ;; . . . + . . + - + . + . . ! - + + - + . . . + + + . . + + . [r] ;; \* *\* *\* * * *\ \* * * * * * * *\ \* * * * * * * * */ / \* * * * */ *\ ;; . . . + . . - . - + . + - + . + - + - + + + - + . + - + - + . + . - + ;; \* *\* * * * * *\ \* * */ \ \*/ \* * * * * * * * * * */ *\*/ ;; . . . . + . . . + - + . + - + . + + + - + + . . . . + + - + . ;; /*\* *\* * * * * * * *\ / / \ /* * * * * * * * * */ / ;; . . . + . . - . - . - . - + - + . + - + + + . + . . . . + + . . ;; \* *\* * * * * * * * */ \ / / /*\ \* * * * * * * * */ / ;; . . . . + . . . . + . + - + + - + + + . + + - + . + + . . . ;; \* *\* * * * * * */ */ /* * *\ \*/ /* */*\*/*\* * */ *\ ;; . . . . + . . . + . . + + . + + . + + - + - + + + - + . . ;; /* * *\* * * * */ \ \* * */ / /* * *\*/*\*/* */ / ;; . . . . + . . - . - + . . . + + - + + + - + . + - + + + . . . . ;; \* * * * * * */ \ / \* * * *\*/*\* *\ ;; . . . . + - + . + . . . . + - + - + . . + . + - + + . . . . ;; \* * */ S \* * * *\*/*\* *\ ;; . . . . . . + - + . . . . . . . . . . + - + + - + + . . . . ;; \*/ \* * * * */ ;; . . . . . . + . . . . . . . . . . . . + - + - + . . . . collmap: ;; ;; . + - + . ;; / \ ;; + (.) + ;; \ / ;; . + - + . ;; ;; . . . default_face: "E" import "data/maps/demo/_big_e.fus" parts: "D": "data/maps/demo/tiles/hex_vec4/dodecas2.fus" "s": "data/maps/demo/tiles/hex_vec4/dodeca_sign.fus" "g": "data/maps/demo/tiles/hex_vec4/dodeca_sign_solid.fus" "s": actor "actor/aispider.fus" "spider_cpu" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [s^1] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [D] [g] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; . . ;; \ ;; . . . ;; / ;; . . (.) . pos: (40 60) camera: (0 0) recs: : "data/maps/demo/recs/test_003.fus" "spider_cpu" : "data/maps/demo/recs/test_flier_000.fus" actors: : (42 75) 0 y "actor/aispider.fus" "spider_cpu" : (55 67) 0 y "actor/aispider.fus" "spider_cpu" : (51 78) 2 n "actor/aispider.fus" "spider_cpu" : (47 52) 0 n "actor/aispider.fus" "spider_cpu" vars: "map3_blocker": F "map3x_blocker": F submaps: "spidertown": file: "data/maps/demo/map3.fus" target: T pos: (0 0) camera: (0 4) mapper: ("triple") submaps: : file: "data/maps/test/map3_blocker.fus" visible: ! mapvar("map3_blocker") : file: "data/maps/test/map2.fus" pos: (1 10) "spidertown": file: "data/maps/test/map2x.fus" pos: (15 12) camera: (1 8) mapper: ("double") submaps: : file: "data/maps/demo/map3x.fus" pos: (1 10) : file: "data/maps/test/map3x_blocker.fus" visible: ! mapvar("map3x_blocker") pos: eval: (1 10) + (-2 4) "spidertown_outskirts": pos: (-1 -10) camera: (4 0) mapper: ("triple") submaps: : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 0 + (-1 3) * 0 : file: "data/maps/test/map1grid.fus" pos: eval: (8 2) * 0 + (-1 3) * -2 : file: "data/maps/test/map1x.fus" pos: eval: (8 2) * 0 + (-1 3) * -4 camera: (-1 -1) mapper: ("quadruple") submaps: : file: "data/maps/test/map1x_exit.fus" pos: (2 -8) camera: (8 0) mapper: ("solid_curvy") : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 1 + (-1 3) * 0 : file: "data/maps/test/map1.fus" pos: eval: (8 2) * 1 + (-1 3) * -1 anim: "anim/hexroller.fus" state: "init" pos: (8 -54) rot: 3 turn: no keys: u: d: is l: r: is nodata anim: "anim/spider.fus" state: "stand" pos: ( 55 72) rot: 0 turn: no keys: u: d: l: r: data: " w7+l w82-l w10+r w11-r w2+u w2-u w11+r w124-r w2+l w66-l w2+d w14+r w26-r w3-d w13+r w9-r w36+l w8-l w5+d w5+r w42-r w1-d w3+l w4-l w12+u w4-u w11+u w6-u w15+l w7-l w18+r w7-r w3+l w3-l w2+u w3-u w11+l w6-l w6+r w2-r w2+u w1-u w29+r w18-r w14+d w4+l w12-d w2-l w16+l w14-l w31+r w11-r w16+r w26-r w1+u w3-u w13+r w45-r w4+l w7-l w17+d w5+r w22-d w7-r w18+d w4+r w36-d w5-r w9+r w7-r w15+r w6-r w27+r w13-r w15+l w4-l w4+r w2-r" anim: "anim/spider.fus" state: "crawl" pos: ( 47 -71) rot: 1 turn: no keys: u: d: is was l: r: data: " w133+l w3-l w22+r w13-r w55+l w1-l w67+r w3-r w93+r w4-d w9-r w8+u w6-u w7+d w6+r w5-r w14+l w3-l w130+r w8-d w4-r w5+l w10-l w15+r w8-r w3+d w3+l w14-l w62+r w7-r w3+l w3-l w83+l w7-d w10-l w8+r w51-r w3+d w4+l w22-l w13-d w5+l w8-l w8+l w8-l w14+d w4+l w5-l w16+r w7-r w127+l w1-l w121-d w10+r w37+d w13-r w10-d w9+l w53-l w11+l w3-l w5+u w3-u w10+d w2+l w6-l w19+l w4-l w42+l w4-l w1+r w2-r w43" anim: "anim/eyespider.fus" state: "stand" pos: ( 3 41) rot: 1 turn: yes keys: x: y: u: d: l: r: data: "+x w6" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 27 28) rot: 2 turn: yes keys: x: is was y: u: d: l: r: vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F data: " w10 -x w17 +l w71 +d w36 -d w1 -l w7 +r w21 -r w19 +r w7 -r w7 +l w13 -l w12 +d w7 +r w4 -r w3 -d w11 +r w6 -r w14 +r w13 -r w4 +l w2 -l w11 +u w4 -u w15 +l w22 -l w17 +l w8 -l w7 +r w3 -r w6 +r w2 -r w17 +x w14" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 3 41) rot: 1 turn: yes keys: x: is was y: u: d: l: r: data: "-x w6" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 20 27) rot: 2 turn: yes keys: x: is was y: u: d: l: r: vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F data: " w3 -x w18 +d w7 +l w29 -l -d w29 +r w24 -r w17 +r w7 -r w14 +l w3 -l w20 +r w2 -r w12 +u w3 -u w25 +u w4 -u w7 +d w9 +r w23 -d w20 -r w3 +d w12 +l w14 -l w2 -d w19 +x w9" anim: "anim/hexroller.fus" state: "init" pos: (12 -46) rot: 1 turn: no keys: u: d: is l: r: is nodata anim: "anim/bird.fus" state: "stand" pos: ( -21 1) rot: 1 turn: yes keys: u: d: l: r: data: " w2+l w53-l w1+r w58+l w1-r w59-l w1+r w59-r w1+l w2-l w3" anim: "anim/flier.fus" state: "fly" pos: ( 70 90) rot: 2 turn: no keys: u: is was d: l: r: data: " w13+l w3-l w14+r w6-r w10+l w5-l w30+l w5-l w5+r w4-r w13+l w7-l w10+r w5-r w32+l w4-l w2+r w3-r w5+l w2-l w2+r w2-r w2+r w7-r w20+l w6-l w9+r w7-r w25+l w1-l w7+r w5-r w11+l w5-l w4+r w5-r w41+r w6-r w10+l w7-l w6+r w6-r w31+r w5-r w4+r w8-r w9+r w3-r w4+r w1-r w21+r w6-r w3+l w6-l w7+l w2-l w9+r w8-r w13+r w7-r w12+l w7-l w11+r w7-r w9+l w6-l w14+r w4-r w12+r w3-r w3+l w6-l w16+l w6-l w1+r w4-r w4+l w6-l w1+r w5-r w3+l w5-l w8+r w5-r w21-u" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 18 28) rot: 0 turn: yes keys: x: is was y: u: d: l: r: vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F data: " w13 -x w15 +r w8 -r w3 +l w9 -l w13 +u w3 -u w31 +l w3 -l w10 +l w3 -l w2 +r w2 +u w4 -u -r w6 +r w4 -r w12 +d w11 +l w9 -l w7 -d w10 +l w3 -l w8 +r w6 -r w7 +l w1 -l w12 +l w3 -l w2 +r w1 +u w2 -r w1 -u w7 +r w5 -r w1 +l w1 +u w6 -u w29 -l w2 +r w4 -r w7 +r w33 -r w10 +u w3 -u w7 +d w14 +r w23 -r w11 -d w5 +l w3 -l w15 +r w3 -r w12 +d w10 +r w2 -r w12 -d w16 +x w16" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 3 41) rot: 1 turn: yes keys: x: is was y: u: d: l: r: vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F data: " w3 -x w9 +l w33 -l w4 +d w3 +r w7 -d -r w5 +r w38 -r w9 +l w5 -l w3 +r w1 -r w5" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 49 19) rot: 5 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 20 -1) rot: 3 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 27 28) rot: 2 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/spider.fus" state: "stand" pos: ( 56 82) rot: 0 turn: no keys: u: d: l: r: data: " w5+d w4+r w38-d w44-r w3+l w7-l w26+r w40-r w13+l w10-l w2+d w4+r w18-d w18-r w2+d w3+l w14-d w44-l w3+r w83-r w1+d w1+l w32" anim: "anim/bird.fus" state: "crawl" pos: ( -47 2) rot: 5 turn: yes keys: u: d: is was l: r: data: " w85-d w17+l w69-l w10+r w3-r w6+d w66-d w17+r w16-r w18+l w80-l w49+r w2-r w13+l w3-l w70+r w13-r w53+l w44-l w8+d w91-d w4+r w169-r w1+d w22+l w4" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 3 41) rot: 1 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 20 27) rot: 2 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/spider.fus" state: "stand" pos: ( 68 70) rot: 0 turn: no keys: u: d: l: r: data: " w116+r w4-r w6+l w1-l w27+u w4-u w9+l w5-l w11+l w4-l w2+r w2-r w108+d w13+r w11-r w9-d w5+r w6-r w9+d w4+l w29-l w1-d w1+r w22-r w34+r w5-r w3+l w2-l w72+l w17+d w21-l w5+r w2-r w16-d w6+r w4-r w105+l w16-l w8+r w8-r w17+l w3-l w23+l w4-l w3+r w2+u w1-r w1-u w12+d w3+r w29-d w1-r" anim: "anim/bird.fus" state: "stand" pos: ( -72 9) rot: 0 turn: no keys: u: d: l: r: data: " w105+l w2-l w117+r w2-r w46+d w57-d w99+r w75-r w12+l w2-l w103+d w19+r w1-r w43+l w3-l w35-d w61+r w86-r w90+l w13-l w87+r w2-r w71+r w4-r w6+r w37-r w18+l w4-l w61+l w122-l w38+r w4-r w49+r w2-r w43+l w67-l w10+r w3-r w30+l w19-l w3+r w2-r w15+r w4-r w28" anim: "anim/eyespider.fus" state: "eye_closed" pos: ( 18 28) rot: 0 turn: yes keys: x: is was y: u: d: l: r: nodata anim: "anim/spider.fus" state: "stand" pos: ( 56 82) rot: 0 turn: no keys: u: d: l: r: data: " w5+r w8-r w5+d w4+l w34-d w6-l w3+u w3-u w11+l w6-l w10+u w3-u w27+l w7-l w6+r w2-r w26+l w44-l w45+r w12-r w11+d w3+l w13-d w17-l w24+l w39-l w6+r w15-r w4+u w3-u w14+r w10-r w14+d w6+l w29-d w4-l w12+d w7+r w40-d w2-r w3+l w4-l w4+u w2-u w18+l w7-l w3+r w2+u w1-r w2-u w14+r w9-r w33+r w4-r w16+d w6+r w14-r w10-d w5+r w11-r w5+d w6+l w13-d w45-l w9+r w39+d w28" unit: 3 2 0 -1 verts: "0": "water_vert" "s": when_faces_solid: none: "water_vert" some: "map_vert1" all: "map_vert1" "1": "map_vert1" "2": "map_vert0" "@": "map_bgvert" edges: "0": "water_edge" "s": when_faces_solid: neither: "water_edge" bottom: "map_edge1" top: "map_edge1" both: "map_edge1" "1": "map_edge1" "2": "map_edge0" "=": "map_bgedge" faces: "0": "water_face" "1": "map_face1" "2": "map_face0" "S": "map_savepoint" "M": "map_minimap" "w": frame_offset(1) "map_water" shapes: ########## # VERTEX # ########## "water_vert": animation: cycle 12 prismels: : "tri" (0 0 0 0) 0 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 2 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 4 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 6 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 8 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 10 f eval(1 + 0 + 1) : "tri" (0 0 0 0) 0 f eval(1 + 8 + 1) (0 4) : "tri" (0 0 0 0) 2 f eval(1 + 8 + 1) (2 4) ######## # EDGE # ######## "water_edge": animation: cycle 8 prismels: : "tri" (1 0 0 0) 11 f eval(1 + 8 + 3) (0 8) : "sq" (1 1 0 -1) 0 f eval(1 + 0 + 3) (0 2) : "tri" (1 1 0 -1) 1 f eval(1 + 0 + 3) (2 2) : "tri" (1 2 0 -1) 3 f eval(1 + 0 + 3) (2 2) : "sq" (1 1 0 -1) 0 f eval(1 + 0 + 3) (4 2) : "tri" (1 1 0 -1) 1 f eval(1 + 0 + 3) (6 2) : "tri" (1 2 0 -2) 3 f eval(1 + 0 + 3) (6 2) : "tri" (2 1 0 -1) 1 f eval(1 + 8 + 3) (0 2) : "tri" (2 2 0 -2) 3 f eval(1 + 8 + 3) (0 2) : "sq" (1 2 0 -1) 0 f eval(1 + 8 + 3) (2 2) : "tri" (2 1 0 -1) 1 f eval(1 + 8 + 3) (4 2) : "tri" (2 2 0 -1) 3 f eval(1 + 8 + 3) (4 2) : "sq" (1 2 0 -2) 0 f eval(1 + 8 + 3) (6 2) : "tri" (2 2 0 -2) 1 f eval(1 + 0 + 3) (0 2) : "tri" (2 2 0 -1) 1 f eval(1 + 0 + 3) (2 2) : "tri" (2 2 0 -1) 1 f eval(1 + 0 + 3) (4 2) : "tri" (2 2 0 -2) 1 f eval(1 + 0 + 3) (6 2) ######## # FACE # ######## "water_face_third_a": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 1 "water_face_third_b": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 1 "water_face_third_c": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 1 "water_face": shapes: : "water_face_third_a" (1 1 1 0) 0 f : "water_face_third_b" (1 1 1 0) 4 f : "water_face_third_c" (1 1 1 0) 8 f colors: : 0 0 0 : 0 0 127 : 0 127 0 : 0 127 127 : 127 0 0 : 127 0 127 : 127 127 0 : 127 127 127 : 60 60 60 : 60 60 255 : 60 255 60 : 60 255 255 : animate: : (255 60 60) 30 : (255 120 60) 30 : 255 60 255 : 255 255 60 : 255 255 255 : 0 0 0 : 0 0 60 : 0 60 0 : 0 60 60 : 60 0 0 : 60 0 60 : 60 60 0 : 60 60 60 255: 30 50 80 colors: : animate: +eval(5 * 0) : ( 0 0 0) 20 : ( 0 0 127) 20 : animate: +eval(5 * 1) : ( 0 0 60) 20 : ( 0 0 127) 20 : animate: +eval(5 * 2) : ( 0 127 0) 20 : ( 0 0 127) 20 : animate: +eval(5 * 3) : ( 0 127 60) 20 : ( 0 0 127) 20 : animate: +eval(5 * 4) : ( 60 0 0) 20 : ( 0 0 127) 20 : animate: +eval(5 * 5) : ( 60 0 60) 20 : ( 0 0 127) 20 : animate: +eval(5 * 6) : ( 60 127 0) 20 : ( 0 0 127) 20 : animate: +eval(5 * 7) : ( 60 127 60) 20 : ( 0 0 127) 20 : animate: +eval(5 * 0) : ( 0 0 0) 20 : ( 0 60 127) 20 : animate: +eval(5 * 1) : ( 0 0 60) 20 : ( 0 60 127) 20 : animate: +eval(5 * 2) : ( 0 127 0) 20 : ( 0 60 127) 20 : animate: +eval(5 * 3) : ( 0 127 60) 20 : ( 0 60 127) 20 : animate: +eval(5 * 4) : ( 60 0 0) 20 : ( 0 60 127) 20 : animate: +eval(5 * 5) : ( 60 0 60) 20 : ( 0 60 127) 20 : animate: +eval(5 * 6) : ( 60 127 0) 20 : ( 0 60 127) 20 : animate: +eval(5 * 7) : ( 60 127 60) 20 : ( 0 60 127) 20 255: animate: : (0 30 30) 100 : (0 0 30) 300 : (0 0 0) 100 colors: : 0 0 0 : 0 0 60 : 0 127 0 : 0 127 60 : 60 0 0 : 60 0 60 : 60 127 0 : 60 127 60 : 30 60 30 : 30 60 127 : 30 255 30 : 30 255 127 : animate: : (127 60 30) 30 : (127 120 30) 30 : 127 60 127 : 127 255 30 : 127 255 127 255: 0 0 30 $SET_INT TIME 30 $SET_INT BGTIME 50 $SET_INT D1 0 $SET_INT D2 60 $SET_INT L1 127 $SET_INT L2 255 $SET_INT BGrl 30 $SET_INT BGgl 50 $SET_INT BGbl 80 $SET_INT BGrd 20 $SET_INT BGgd 40 $SET_INT BGbd 50 colors: : animate: : ($GET_INT D1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT D1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT D1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT D1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT L1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT L1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT L1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT L1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT D2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT D2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT D2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : ($GET_INT D1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT D2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT D2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT D2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : ($GET_INT D1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT L2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT D2) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT L2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT L2 $GET_INT D2 $GET_INT L2) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : ($GET_INT L1 $GET_INT D1 $GET_INT L1) $GET_INT TIME : animate: : ($GET_INT L2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT D2) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT D1) $GET_INT TIME : animate: : ($GET_INT L2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT L2 $GET_INT L2 $GET_INT L2) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT L1) $GET_INT TIME : ($GET_INT L1 $GET_INT L1 $GET_INT L1) $GET_INT TIME 255: animate: : ($GET_INT BGrl $GET_INT BGgl $GET_INT BGbl) $GET_INT TIME : ($GET_INT BGrl $GET_INT BGgl $GET_INT BGbl) $GET_INT TIME : ($GET_INT BGrl $GET_INT BGgl $GET_INT BGbl) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGgd $GET_INT BGbd) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGgd $GET_INT BGbd) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGgd $GET_INT BGbd) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGbd $GET_INT BGgd) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGbd $GET_INT BGgd) $GET_INT TIME : ($GET_INT BGrd $GET_INT BGbd $GET_INT BGgd) $GET_INT TIME colors: : animate: +eval(8 * 0) : ( 0 0 0) 80 : ( 0 0 0) 80 : animate: +eval(8 * 1) : ( 0 0 32) 80 : ( 0 0 64) 80 : animate: +eval(8 * 2) : ( 0 32 0) 80 : ( 0 64 0) 80 : animate: +eval(8 * 3) : ( 0 32 32) 80 : ( 0 64 64) 80 : animate: +eval(8 * 4) : ( 32 0 0) 80 : ( 64 0 0) 80 : animate: +eval(8 * 5) : ( 32 0 32) 80 : ( 64 0 64) 80 : animate: +eval(8 * 6) : ( 32 32 0) 80 : ( 64 64 0) 80 : animate: +eval(8 * 7) : ( 32 32 32) 80 : ( 64 64 64) 80 : animate: +eval(8 * 0) : ( 0 0 0) 80 : ( 0 0 0) 80 : animate: +eval(8 * 1) : ( 0 0 75) 80 : ( 0 0 150) 80 : animate: +eval(8 * 2) : ( 0 75 0) 80 : ( 0 150 0) 80 : animate: +eval(8 * 3) : ( 0 75 75) 80 : ( 0 150 150) 80 : animate: +eval(8 * 4) : ( 75 0 0) 80 : (150 0 0) 80 : animate: +eval(8 * 5) : ( 75 0 75) 80 : (150 0 150) 80 : animate: +eval(8 * 6) : ( 75 75 0) 80 : (150 150 0) 80 : animate: +eval(8 * 7) : ( 75 75 75) 80 : (150 150 150) 80 255: 0 0 0 parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "q": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" collmap: ;; . ;; ;; . . . ;; ;; . . . . ;; ;; (+) . ? . . [E^5 T^5 E] ;; ;; . . collmap: ;; + - + ;; /* */ ;; (+)- + default_face: "2" collmap: ;; + - + - + ;; \* * */ ;; + + ;; /* * *\ ;; (+)- + - +collmap: ;; (+)- + - +collmap: ;; + - + - + ;; / / ;; (+)- + - +parts: "t": "data/maps/demo/tiles/hex_vec4/dodeca_third_hollow_filled.fus" collmap: ;; . . . . . ;; ;; . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (?) . . . . [t t^1 t^2 t^3 t^4 t^5] ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r_filled.fus" "q": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" collmap: ;; . ;; ;; . . . ;; ;; . . . . ;; ;; (+) . ? . . [E^5 T^5 E] ;; ;; . . parts: "t": "data/maps/demo/tiles/hex_vec4/fisheye_bigtri.fus" "b": "data/maps/demo/tiles/hex_vec4/fisheye_bigtri_b.fus" "T": "data/maps/demo/tiles/hex_vec4/fisheye_big2tri.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [b] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [T^1] [T] [] ;; ;; . . . . . . . ? . ? . . ? . ? . . ? . ? . . . . . . [] [] [] [] [b^5] [] ;; ;; . . . . . . . . . . . ? . . . . ? . . . . . . . . . . [] [] ;; ;; . . . . . . . ? ? . . . . ? . . . . ? ? . . . . . . [] [b^1] [t^1] [] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [t^2] [t] [] ;; ;; . . . . . . ? . ? . . . . (.) . . . . ? . ? . . . . . [] [T^2] [T^5] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [t^3] [t^5] [] ;; ;; . . . . . . . ? ? . . . . ? . . . . ? ? . . . . . . [] [] [t^4] [b^4] [] ;; ;; . . . . . . . . . . . ? . . . . ? . . . . . . . . . . [] [] ;; ;; . . . . . . . ? . ? . . ? . ? . . ? . ? . . . . . . [] [b^2] [] [] [] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [T^3] [T^4] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [b^3] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "t": "data/maps/demo/tiles/hex_vec4/dodeca_third_hollow.fus" collmap: ;; . . . . . ;; ;; . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (?) . . . . [t t^1 t^2 t^3 t^4 t^5] ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . default_face: "0" collmap: ;; + ;; /*\ ;; + + ;; /* * *\ ;; (+)- + - +parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "q": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" collmap: ;; . ;; ;; . . . ;; ;; . . . . ;; ;; (?) . ? . . [t] [E^5 T^5 E Q] ;; ;; . . collmap: ;; + ;; / ;; + - + ;; / / ;; + - + ;; / ;; (+)collmap: ;; + ;; / \ ;; + + ;; / \ ;; (+)- + - + parts: "T": "data/maps/demo/tiles/hex_vec4/dodeca_third_r.fus" collmap: ;; . . . . . ;; ;; . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (?) . . . . [T T^1 T^2 T^3 T^4 T^5] ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . collmap: ;; + ;; \ ;; + - + ;; / ;; (+)default_face: "1" collmap: ;; + - + - + ;; \* * * *\ ;; + . + ;; \* * * *\ ;; (+)- + - +parts: "t": "data/maps/demo/tiles/hex_vec4/fisheye_B_bigtri.fus" "b": "data/maps/demo/tiles/hex_vec4/fisheye_bigtri.fus" "T": "data/maps/demo/tiles/hex_vec4/fisheye_big2tri.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [b] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [T^1] [T] [] ;; ;; . . . . . . . ? . ? . . ? . ? . . ? . ? . . . . . . [] [] [] [] [b^5] [] ;; ;; . . . . . . . . . . . ? . . . . ? . . . . . . . . . . [] [] ;; ;; . . . . . . . ? ? . . . . ? . . . . ? ? . . . . . . [] [b^1] [t^1] [] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [t^2] [t] [] ;; ;; . . . . . . ? . ? . . . . (.) . . . . ? . ? . . . . . [] [T^2] [T^5] [] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [t^3] [t^5] [] ;; ;; . . . . . . . ? ? . . . . ? . . . . ? ? . . . . . . [] [] [t^4] [b^4] [] ;; ;; . . . . . . . . . . . ? . . . . ? . . . . . . . . . . [] [] ;; ;; . . . . . . . ? . ? . . ? . ? . . ? . ? . . . . . . [] [b^2] [] [] [] [] ;; ;; . . . . . . . . . ? . ? . . . . ? . ? . . . . . . . . [] [T^3] [T^4] [] ;; ;; . . . . . . . . . . . . ? . ? . . . . . . . . . . . [] [b^3] ;; ;; . . . . . . . . . . ? . ? . . ? . ? . . . . . . . . . [] [] [] [] ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . default_face: "0" collmap: ;; + ;; /*\ ;; + + ;; /* * *\ ;; . + - + - + ;; ;; (.) . parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "d": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" "c": "data/maps/demo/tiles/hex_vec4/dodeca.fus" "C": "data/maps/demo/tiles/hex_vec4/dodeca_r.fus" "k": "data/maps/demo/tiles/hex_vec4/dodeca_hollow_filled.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [k] [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; + - + - + ;; \ / ;; + + ;; / \ ;; (+)- + - +default_face: "2" collmap: ;; + ;; /*\ ;; + - + + ;; \* * * *\ ;; + + - + ;; \*/ ;; (+)parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "q": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" collmap: ;; . ;; ;; . . . ;; ;; . . . . ;; ;; . ? . . [t q^1 E^2] ;; ;; (?) . [E T] parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "d": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" "c": "data/maps/demo/tiles/hex_vec4/dodeca.fus" "C": "data/maps/demo/tiles/hex_vec4/dodeca_r.fus" "k": "data/maps/demo/tiles/hex_vec4/dodeca_hollow.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [k] [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "e": "data/maps/demo/tiles/hex_vec4/edge.fus" "E": "data/maps/demo/tiles/hex_vec4/edge_r.fus" "d": "data/maps/demo/tiles/hex_vec4/sq.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r.fus" "t": "data/maps/demo/tiles/hex_vec4/tri.fus" "T": "data/maps/demo/tiles/hex_vec4/tri_r.fus" "d": "data/maps/demo/tiles/hex_vec4/dia.fus" "D": "data/maps/demo/tiles/hex_vec4/dia_r.fus" "c": "data/maps/demo/tiles/hex_vec4/dodeca.fus" "C": "data/maps/demo/tiles/hex_vec4/dodeca_r.fus" "k": "data/maps/demo/tiles/hex_vec4/dodeca_hollow.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . (?) . . . . . . . . ? . . . [k] [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ? . . . . . . . . . . . . [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . . . . . . . . . . . . . . . [k] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . default_face: "2" collmap: ;; . . . . . ;; ;; . . . . + - + ;; /* */ ;; . . . . + - + . ;; ;; . . . . . . + - + ;; /* */ ;; . . . . (.) . + - + . ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . parts: "t": "data/maps/demo/tiles/hex_vec4/dodeca_third.fus" collmap: ;; . . . . . ;; ;; . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (?) . . . . [t t^1 t^2 t^3 t^4 t^5] ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . collmap: ;; + - + ;; / / ;; (+)- +collmap: ;; + ;; / \ ;; + - + + ;; \ \ ;; + + - + ;; \ / ;; (+)collmap: ;; + ;; / \ ;; + + ;; / \ ;; (+)- + - +parts: "q": "data/maps/demo/tiles/hex_vec4/sq_face2.fus" "Q": "data/maps/demo/tiles/hex_vec4/sq_r_face2.fus" collmap: ;; . . . . . ;; ;; . . . . . . ;; ;; . . ? . . . . [q] ;; ;; . . . . . . . . ;; ;; . . . . (.) . ? . . [Q] ;; ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . ;; ;; . . . . . collmap: ;; + - + - + - + - + - + - + ;; ttttttttttttttttttttttttt ;; t t t t t t t t t t t t t ;; ttttttttttttttttttttttttt ;; (+)- + - + - + - + - + - + collmap: ;; + - + - + ;; xxxxxxxxx ;; x x x x x ;; xxxxxxxxx ;; (+)- + - +collmap: ;; + ;; xxxx ;; x x x + ;; xxxxx/ ;; (+)- +collmap: ;; + ;; / ;; + ;; / ;; (+) parts: "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "wilderness_exit" collmap: # Size of the "house" in the middle: 8 x 8 ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . + . . . . . + . . . . . . . . . . . ;; / / ;; . . . . . . . . + . . . . . + + . . . . . . . . . . ;; / / ;; . . . . . . . . + . . . . . + . + . . . . . . . . . . ;; / ;; . . . . . . . . . . + - + - + + . . + . . . . . . . . . ;; / \*/*\ ;; . . . . . . . . . . + . + - + - + - + . + . . . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . + . . . . . . . . ;; \ ;; . . . . . . . . . + (+)- + . . . . + - + . . . . . . . . . ;; / \*/ / \ ;; . . . . . . . . + . + . . . . + . + . . . . . . . . ;; / / \ / ;; . . . . . . . . + . + . . . . . + - + . . . . . . . . . ;; / \ S / ;; . . . . . . . + . . + - + . . + - + . . . . . . . . . . ;; / \*/ \*/ ;; . . . . . . . + . . . + - + ? . + . . . . . . . . . . . [D] ;; \ / ;; . . . . . . . . . . + . + - + - + . . . . . . . . . . . ;; / ;; . . . . . . . . . . + . . . . . . . . . . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . . . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . (.) . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . name: "wilderness" unit: 3 2 0 -1 spawn: "data/maps/wilderness/start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : pos: (0 0) camera: (0 0) mapper: ("triple") submaps: ### START ### : # START file: "data/maps/wilderness/start.fus" submaps: : file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(-10, -6)) eval(rand(-10, 10))) : file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(10, 12)) eval(rand(-10, 10))) : # BALL BELOW START file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-10, 10)) eval(rand(-10, -6))) camera: (0 0) : # BALL ABOVE START file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-10, 10)) eval(rand(6, 10))) camera: (0 0) : # BALL LEFT OF START #1 file: "data/maps/wilderness/ball_lg.fus" pos: (eval(rand(-14, -10)) eval(rand(-10, 10))) camera: (0 0) : # BALL LEFT OF START #2 file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(-14, -10)) eval(rand(-10, 10))) camera: (0 0) ### RIGHT OF START ### : # TOP-RIGHT file: "data/maps/wilderness/start2.fus" pos: (eval(rand(8, 12)) eval(rand(12, 16))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(-4, 4)) eval(rand(-4, 4))) : # RIGHT file: "data/maps/wilderness/start5.fus" pos: (eval(rand(8, 12)) eval(rand(-2, 2))) camera: (0 0) submaps: : # UP file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-4, 4)) eval(rand(-10, -14))) : # RIGHT file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(10, 14)) eval(rand(-4, 4))) : # BOTTOM-RIGHT file: "data/maps/wilderness/start2.fus" pos: (eval(rand(8, 12)) eval(rand(-12, -16))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_lg.fus" pos: (eval(rand(-4, 4)) eval(rand(-4, 4))) : # FAR RIGHT file: "data/maps/wilderness/watercorridor.fus" pos: (eval(rand(20, 24)) eval(rand(-4, 4))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_lg.fus" pos: (14 14) camera: (0 0) : file: "data/maps/wilderness/ball_md.fus" pos: (16 10) camera: (0 0) ### LEFT OF START ### : # TOP file: "data/maps/wilderness/start3.fus" pos: (eval(rand(-4, 4)) eval(rand(16, 24))) camera: (0 0) : # TOP-LEFT file: "data/maps/wilderness/start2.fus" pos: (eval(rand(-8, -12)) eval(rand(14, 16))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(-4, 4)) eval(rand(-4, 4))) : file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-4, 4)) eval(rand(-4, 4))) : # LEFT file: "data/maps/wilderness/start4.fus" pos: (eval(rand(-16, -20)) eval(rand(-2, 2))) camera: (0 0) submaps: : # BOTTOM-LEFT file: "data/maps/wilderness/start3.fus" pos: (eval(rand(-30, -25)) eval(rand(-24, -28))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-4, 4)) eval(rand(-4, 4))) : file: "data/maps/wilderness/ball_lg.fus" pos: (eval(rand(8, 12)) eval(rand(10, 14))) : # BOTTOM file: "data/maps/wilderness/watercorridor.fus" pos: (eval(rand(-12, -10)) eval(rand(-20, -24))) camera: (0 0) submaps: : file: "data/maps/wilderness/ball_sm.fus" pos: (eval(rand(-10, 10)) eval(rand(-10, 10))) : file: "data/maps/wilderness/ball_md.fus" pos: (eval(rand(-10, 10)) eval(rand(-10, 10))) parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "d": recording "data/recs/coin.fus" "D": recording "data/recs/coin_crouch.fus" "d": "data/maps/demo/vert.fus" "D": "data/maps/demo/vert.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ? . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . . [M] ;; ;; . . . . . . . . . . . . . + - + . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . + . + . . . . . ? . . . . . [C] ;; / ;; . . . . . . . . . . + - + - + + . . . . . . . . . . . . ;; / / \ ;; . . . . . . . . . . + . . + - + . . . . ? ? . . . . . . [L][C] ;; / ;; . . . . . . . . . + . . . . + - + - + - + . . . . . . . . ;; \ ;; . . . . . . . . . . (+) ? ? ? ? . + - + . . . . . . . . . [c][c][c][c] ;; \ \ ;; . . . . . . . . . + + . ? ? . ? ? + . . . . . . . . [c][c] [D][C] ;; \ / ;; . . . . . . . . . . + . . ? . . ? - + . . . . . . . . . [c] [D] ;; \ / ;; . . . . . . . . . . + - + + + + - + . . . . . . . . . . ;; \*/* *\*/ ;; . . . . . . . . . . . + - + ? ? + . . . . . . . . . . . [c][c] ;; \ *\*/*\*/ ;; . . . . . . . . . . . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ? . ? . . . . . [L] [C] ;; ;; . . . . . . . . . . . . . . . . . . ? . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . ? . . . . . . . . . [l] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; + ;; / ;; + ;; / ;; + ;; / ;; (+) parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . [c] ;; ;; . . . . . . . ? ? . . . . . ? ? . . . . . . . . . . . [c][l][C][c] ;; ;; . . . . . . . . . . + - + - + ? . . . . . . . . . . . . [L] ;; / \ ;; . . . . . . . . . . + ? ? + - + - + . . . . . . . . . . . [c][c] ;; / ;; . . . . . . . . ? + . . . . . . . . . . . . . . . . [c] ;; \ ;; . . . . . . . . . . (?)- + . . . . + - + . . . . . . . . . [r] ;; \*/ / \ ;; . . . . . . . . . + + . . ? . + . + . . . . . . . . [c] ;; \ \ / ;; . . . . . . . . . . + . ? . ? ? + - + . . . . . . . . . [c] [c][c] ;; \ / ;; . . . . . ? . . . . + - + + + + - + . . . . . . . . . . [c] ;; \*/* *\*/ ;; . . . . . . ? . . . . + - + . . + . . . . . . . . . . . [M] ;; \ *\*/*\*/ ;; . . . . . . . . . . . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . ? ? ? . . . . . . . . . . [c][C][C][C] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; + ;; / ;; + ;; / ;; + ;; / ;; + ;; / ;; (+) parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + - + . . . . . . . . . . . . . ;; /w w w\ ;; . . . . . . ? . . . . + . + . . . . ? . . . . . . . . [l][L] ;; /w w w w w ;; . . . . . . . ? . . + ? . . . ? - + . . . . . . . . . [C][c] [r] ;; /w w w w w w /w w w\ ;; . . . . . . . . . . + . ? . . + . + . . . . . . . . . [c] ;; /w w w w w w w w w w w\w w w w ;; . . . . . . ? . . + . . . ? . + ? + . . . . . . . . [M] [c] [C] ;; \w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . (+) . + . ? . . . + . . ? . . . . . [c] [m] ;; \w w w w\w w w w w w w w w w w w\ ;; . . . . . . . . . . + . + . . ? + . + . . . . . . . [c] ;; \w w w/w w w w \w w w/ ;; . . . . . . . . . . . + - + . . . ? + - + . . . . . . . . [c] ;; w w w w w w ;; . . . . . . . . . . . + . . + . . . . . . . . . . . ;; \w w w w w w\ ;; . . . . . . . . ? . . . + . ? + . . + - + . . . . . . . [c][c] ;; \w w w w w/ / / ;; . . . . . . . . . ? . . + - + - + . . + - + ? . . . . . . [C] [c] ;; ;; . . . . . . . . ? . . . . . . . . . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ? . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; + ;; / ;; + ;; / ;; + ;; / ;; + ;; / ;; + ;; / ;; (+) parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . [c] ;; ;; . . . . . . . ? ? . . . . . ? ? . . . . . . . . . . . [c][l][C][c] ;; ;; . . . . . . . . . . + - + - + ? . . . . . . . . . . . . [L] ;; /w w w w w\ ;; . . . . . . . . . . + ? ? + - + - + . . . . . . . . . . . [c][c] ;; /w w w w w w w w w w w ;; . . . . . . . . ? + . . . . . . . . . . . . . . . . [c] ;; \w w w w w w w w w w w w ;; . . . . . . . . . . (?)- + . . . . + - + . . . . . . . . . [r] ;; w\*/w w w w w w w w w w w w *\ ;; . . . . . . . . . + + . . ? . + . - + . . . . . . . . [c] ;; \w w w w w w w w w w w w w/*\*/ ;; . . . . . . . . . . + . ? . ? ? + - + . . . . . . . . . [c] [c][c] ;; \w w w w w w w w w w w/ ;; . . . . . ? . . . . + - + + + + - + . . . . . . . . . . [c] ;; \*/* w w w w w *\*/ ;; . . . . . . ? . . . . + - + . . + . . . . . . . . . . . [M] ;; \w *\*/*\*/ ;; . . . . . . . . . . . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . ? ? ? . . . . . . . . . . [c][C][C][C] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . [l] ;; w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . [M] ;; w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . + . . ? . . . . . . . . . . . . [M] ;; w w w w w w w w w w w w w w w w ;; . . . . . . . . . ? . + . . . . . . . . . . . . . . [l] ;; w w w w w w w w w w w w w w w w ;; . . . . . . . ? . . (.) . + . . ? . . . . . . . . . . . [m] [m] ;; w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . ? . . . . . . . . . . [l] ;; w w w w w w w w w w w w ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . [l] ;; w w w w w w w w w w w w w ;; . . . . . . . . ? . . . . . . . . . . . . . . . . . . [L] ;; w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w ;; . . . . . . . . . . . . ? . . . . . . . . . . . . . . [m] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . [l] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ? . . . . . . . . . . . . . . [m] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + . . ? . . . . . . . . . . . . [M] ;; ;; . . . . . . . . . ? . + . . . . . . . . . . . . . . [L] ;; ;; . . . . . . . ? . . (.) . + . . ? . . . . . . . . . . . [m] [m] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . ? . . . . . . ? . . . . . . . . . . . [l] [L] ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . [l] ;; ;; . . . . . . . . ? . . . . . . . . . . . . . . . . . . [L] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ? . . . . . . . . . . . . . . [m] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; ? - + + + - + [r] ;; /*\*/*\ /*\*/*\ ;; . + -(+)- + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + ;; \*/*\*/*\*/*\*/ ;; + - + - + - + ;; \*/*\*/ ;; + - + ;; parts: "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; ? - + [r] ;; /*\*/*\ ;; . + -(+)- + ;; \*/*\*/ ;; + - + ;; parts: "r": recording "data/maps/wilderness/recs/roller000.fus" "r": "data/maps/demo/vert.fus" collmap: ;; ;; ? - + - + [r] ;; /*\*/*\*/*\ ;; . + -(+)- + - + ;; \*/*\*/*\*/ ;; + - + - + ;; \*/*\*/ ;; + - + ;; reacts: yes anim: "anim/death_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: is was r: nodata default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; . . ;; */*\*/* ;; . - + - . ;; */*\* ;; (.) . default_face: "e" import "data/maps/tutorial_switches/_switches3_energy_a.fus" collmap: ;; (+) + ;; \ \ ;; + + ;; / / ;; + + ;; \* \ ;; + + ;; / */ ;; + + ;; \*/ ;; + collmap: ;; * ;; (+) + ;; / */ ;; + + ;; \ *\ ;; + + ;; / */ ;; + + ;; \ \ ;; + + ;; \ / ;; + spawn: (4 0) 3 n parts: "s": recording "data/recs/switch.fus" vars: "key": "switches3_a" "t": recording "data/recs/switch.fus" vars: "key": "switches3_b" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ * * * *\* * ;; . . . . . . . . . . . . . + . . . - . . . . . . . . . . ;; \*/* * */*\* * ;; . . . . . . . . . . . . . + - + - + - . - . . . . . . . . . ;; \* * */* * * ;; . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; \* *\* * *\* * * ;; . . . . . . . . . . . . . . . . + - . . . . . . . . . ;; \* * * * */* * ;; . . . . . . . . . . . . . . . . . + . - . . . . . . . . ;; / \*/* * *\* \* * */ ;; . . . . . . . . . . . . . . . . + (+)- + - + - + - + - + = @ = @ = @ ;; / / ;; . . . . . . . . . . . . . . . . + . + . . . . . . . . ;; / / ;; . . . . . . . . . . . . . . . ! . + . . . . . . . . [s^1] ;; / / ;; . . . . . . . . . . . . . . . + . + . . . . . . . . . ;; / / / ;; . . . . + . . . . . . . . . + . + . . . . . . . . . ;; \* *\* * / \ / ;; . . . . . + - ! - + - + . . . . . . + - + . . . . . . . . . . [t^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + - + . . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . + . + . . . . . . . . . . . ;; / / ;; . . . . . . . . . . . . + . + . . . . . . . . . . . . ;; / / ;; . . . . . . . . . . . + . + . . . . . . . . . . . . ;; / / / ;; . . . . . . . . . . . + . + . . . . + . . . . . . . . ;; / / \* * *\* * ;; . . . . . . . . . . + . + . . . . . + . . . . . . . ;; / / \ * * */* */ ;; . . . . . . . . . . + . + . . . . . . + - + - + - + . . . . ;; / / ;; . . . . . . . . . + . + . . . . . . . . . ? . . . . [D] ;; \ / ;; . . . . . . . . . . + - + . . . . . . . . . . . . . . . ;; name: "tutorial_switches" unit: 3 2 0 -1 spawn: "data/maps/tutorial_switches/switches.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" vars: "switches_a": F "switches_b": F "switches_c": F "switches2_a": F "switches2_b": F "switches3_a": F "switches3_b": F submaps: "switches": file: "data/maps/tutorial_switches/switches.fus" pos: (-100 0) camera: (12 5) mapper: ("triple") recs: : "data/maps/tutorial_switches/recs/switches2_eyespider000.fus" : "data/maps/tutorial_switches/recs/switches3_eyespider000.fus" submaps: : file: "data/maps/tutorial_switches/switches_blocker.fus" visible: ! mapvar("switches_a") pos: (6 6) : file: "data/maps/tutorial_switches/switches_blocker_thick_r.fus" visible: mapvar("switches_a") pos: (12 6) : file: "data/maps/tutorial_switches/switches_blocker_thick_l.fus" visible: mapvar("switches_b") pos: (17 7) : file: "data/maps/tutorial_switches/switches_blocker_short.fus" visible: mapvar("switches_b") pos: (8 9) rot: 3 : file: "data/maps/tutorial_switches/switches_blocker.fus" visible: ! mapvar("switches_c") pos: (18 14) rot: 3 "switches2": file: "data/maps/tutorial_switches/switches2.fus" pos: (-110 7) camera: (-8 -5) mapper: ("triple") submaps: : file: "data/maps/tutorial_switches/switches2_blocker_a.fus" visible: ! mapvar("switches2_a") pos: (-8 -9) rot: 1 : file: "data/maps/tutorial_switches/switches2_blocker_b.fus" visible: ! mapvar("switches2_b") pos: (-5 -6) rot: 1 : file: "data/maps/tutorial_switches/switches2_blocker_a.fus" visible: mapvar("switches2_a") pos: (-18 -9) : file: "data/maps/tutorial_switches/switches2_blocker_b.fus" visible: mapvar("switches2_b") pos: (-16 -1) rot: 5 "switches3": file: "data/maps/tutorial_switches/switches3.fus" pos: (-143 -2) camera: (-4 -4) mapper: ("triple") submaps: : bg file: "data/maps/tutorial_switches/switches3_energy_a_on.fus" visible: ! mapvar("switches3_a") : bg file: "data/maps/tutorial_switches/switches3_energy_a_off.fus" visible: mapvar("switches3_a") : file: "data/maps/tutorial_switches/switches3_blocker_a.fus" visible: ! mapvar("switches3_a") : file: "data/maps/tutorial_switches/switches3_blocker_b.fus" visible: if mapvar("switches3_a") # We don't have boolean expressions, so we build a XOR out # of if...then...else things.., then if mapvar("switches3_b") then F else T else if mapvar("switches3_b") then T else F collmap: ;; (+) + ;; \ / ;; + ;; / \ ;; + + ;; \*/ ;; + default_vert: "0" default_edge: "0" default_face: "0" collmap: ;; . . ;; *\*/* ;; . - + - . ;; */*\*/* ;; (.) . default_face: "E" import "data/maps/tutorial_switches/_switches3_energy_a.fus" $SET_STR INSTRUCTIONS: lines: at(8 42) ;;Press space to spit! text: $GET_STR INSTRUCTIONS parts: "s": recording "data/recs/switch.fus" vars: "key": "switches_a" "t": recording "data/recs/switch.fus" vars: "key": "switches_b" "u": recording "data/recs/switch.fus" vars: "key": "switches_c" collmap: ;; ;; . . . . . . . . . . . . + - + . . . . + . . . + . . . . . ;; / \ /*\ / \ ;; . . . . . + - + - + . ! - + - + . + . . + - + - + . . + + - + - + . . [u] ;; \ / */ \ / \ /* / ;; . . . . . . . . + - + - + . . . + - + - + . . + - + - + - + . + . . . ;; \*/* \ ;; . . . . . . . . . . . . . . . . . . . . . . + - + + . . ;; \ \ ;; . . . . . . . + - + - + - + - + . . . . . . . . . . . . + + . . ;; / \* *\* * \ \*/ ;; . . . + - + + - + . + - . . + - + - + . + - + - + - + . . . . . ! . . [t^2] ;; / \ / \* * \ / * *\*/ \ ;; @ = @ = + - + . + . . . + . - . . . + - + + . - + + . + - + . . . . . ;; \* * / \* */ / /* */ \ ;; . . . . . + . . . + . + . . . + + - + - + . + . + . . . . ;; / \ /* * / \ / \*/ / ;; . . . + - + - + + - + - + - + - + - + + + - + - + . . . . . + - + . . . . . ;; / \ / ;; . + - + . . . . . . . . . + . . . . . . . . . . . . . . ;; / ;; . + . . . . . . . . . . . . . . . . . . . . . . . . . . ;; / ;; + . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; \S \ ;; . + . . . . . . . . . . . . . . . . . . + - + - + . . . . . + ;; / / */*\ \ \ ;; + . . . . . . . . . . . . . . . + - + - + - + + + + . . . . + ;; \ /* * \* * \ */ \ / / ;; . + -(+)- + - + - + . + - ! - + - + . . + - + - + - + - . + - + + - + + . . + - + . . [s] ;; \ / \ */ \* / \ / \* * * * \* * / \ / /* *\ ;; . + . + + . . + + + . . . + . + + - + . + . . . . + . - + . ;; \ / \ / \ */ \ / \* *\*/ ;; . . . . + . . . + . . . . . + + + . . . . . . . + + - + . ;; \ / \ / ;; . . . . . . . . . . . . . . + . . . . . . . . . + - + - + ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . default_vert: "1" default_edge: "1" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . (.) . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; / ;; . . . . . . . . . . . . . . . + . . . . . . . . . . ;; / ;; . . . . . . . . . . . . . . . + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + . . . . . . . . . . . . . . . ;; / ;; . . . . . . . . . . + . . . . . . . . . . . . . . . ;; / ;; . . . . . . . . . . + . . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; (+) + ;; \ / ;; + ;; / \ ;; + + ;; \ / ;; + ;; / \ ;; + + ;; \*/ ;; + spawn: (2 2) 2 n parts: "l": location "switches2" "a": recording "data/recs/switch.fus" vars: "key": "switches2_a" "b": recording "data/recs/switch.fus" vars: "key": "switches2_b" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; */* * ;; . . . . . . . . . . . . . . - . . . . . . . . . . . . . ;; * * */* ;; . . . . . . . . . . . . . + - + - + - . . . . . . . . . . ;; * / \*/* ;; . . . . . . . . . . . . - + . . + - + - + . . . . . . . . . ;; */*\ =o \ * ;; . . . . . . . . . . . . - + . . @ . + - ! . . . . . . . [l^5~] ;; */ = \*/* * * * */* ;; + - + - + - + . . . . . . . . + . . . @ . . + . . . . - + - + - + - . ;; / =o \ \ = \*/*\* * ;; + . . @ + . . . . . . . . + . . . @ . . + . . . . . . ;; \ = \ \ = = ;; + . . @ + . . . . . . . . + - . . . @ . + - + - + - + - + = @ = @ = @ . + ;; = =o/ = /*\* * ;; . @ . . + . . . . . . . . . . . . . @ (+) . . . . . . ;; = / =o/ ;; . . @ . + . . . . . . . . . . . . . . + . . . . . . . ;; = \ = ;; . . @ . + . . . . . . . . . . . . . + @ . . . . . . ;; = \ /*\ = ;; . . . @ . + . . . . . . . . . . . . + . @ . . . . . . ;; = / /* * * = ;; . . . @ . . . . . . . . . . . . . + . . @ . . . . . ;; = \* * ;; . . . . @ . . . . . . . . . . . . . + . . . . . . . . ;; = /* * * ;; . . . . @ + - . . . . . . . . . . . + - + - . . + - + . . . ;; =o/ \*/ ;; . . . . . + . . . . . . . . . . . + . . . . ! . . . . [b^2] ;; \ / ;; . . . . . + . . . . . . . . . . + . . . . . . . . . ;; o\ / ;; + . + @ = @ = @ = + - + - + . . . . . . + - + . . . . . . . . . . ;; S \ / * * ;; . . . . . . . . + . . . . . + . . . . . . . . . . . ;; \ /* */* ;; . . . . . . . . . + . . . . ! - . . - . . . . . . . . . . [a^1] ;; \ / */* * ;; . . . . . . . . . + . . + - + . . . . . . . . . . . . ;; \ /* * * ;; . . . . . . . . . . + - + - + - . . . . . . . . . . . . . . ;; * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . (.) . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . default_vert: "1" default_edge: "1" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . (.) . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; /* ;; . . . . . - + - . . . . . . . . . . . . . . . . . . . . . ;; / / \*/ \ ;; . . . . . . . + . . . . . . . . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . + - + . . . . . . . ;; \* *\ ;; . . . . . . . . . . . . . . . . . . + - + . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . + - + . . . . . . ;; /* */ ;; . . . . . . . . . . . . . . . . . . + - + + + . + - + . . ;; \*/ \* *\ ;; . . . . . . . . . . . . . . . . . . . . + . . + - + . resets_position: no anim: "anim/eyespider.fus" state: "stand" pos: ( -138 -2) rot: 3 turn: no keys: x: y: u: d: l: r: data: " w49 +r w45 -r w23 +l w2 -l w52 +l w44 -l w14 +r w2 -r w8" anim: "anim/eyespider.fus" state: "stand" pos: ( -90 13) rot: 0 turn: no keys: x: y: u: d: l: r: data: " w46 +y w3 -y w27 +d w25 +y w3 -y w16 -d w14 +y w3 -y w7 +r w46 -r w24 +l w2 -l w16 +y w4 -y w9 +r w3 -r w3 +d w8 +y w2 -y w13 -d w47 +l w48 -l w13 +r w1 -r w6 +y w4 -y w43" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + - + - + - + . . . . . . . . . . . . . . . . ;; /* * * * * */ ;; . . . . . . . . + . . + . . . . . . . . . . . . . . . . ;; /* * * * * */ ;; . . . . . . . + . . + . . . . . . . . . . . . . . . . . ;; /* * * * * */ ;; . . . . . . . + - + - + - + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . + - + - + . . . . . . . . + - + - + . . . ;; /* * * * *\ /* * * * *\ ;; . . . . . . . . . + . . + . . . . . . . + . . + . . . ;; /* * * * * * *\ \* * * * * *\ ;; . . . . . . . . + . . . + . . . . . . . + . . + . . ;; /* * * * * * * * *\ \* * * * * *\ ;; . . . . . . . . + . . . . + . + - + - + - + - + . + - + - + - + . . ;; \* * * * * * * * */ /* * * * * * * */ ;; . . . . . . . . + . . . + . + . . . + . . . . . . . ;; \* * * * * * */ /* * * * * * * */ ;; . . . . . . . . . + - + - + - + . + - + - + - + - + . + - + - + - + . . . ;; \* * * * */ ;; . . . . . . . . . . . . . . . . . . . . + . + . . . ;; \* * */ ;; . + - + - + - + - + - + - + - + . . . . + - + - + - + - + . . . + + . . . . ;; \* * * * * * * * * * * * */ \* * * * * * */ \*/ ;; . + . . . . . + . . . . . + . . + . . . . + . . . . ;; \* * * * * * * * * * */ \* * * * */ ;; . . + . . . . + . . . . . . + . + . . . . . . . . . . ;; \* * * * * * * * */ \* * */ ;; . . + . . . + . . . . . . . + + . . . . + - + - + . . . ;; \* * * * * * */ \*/ /* * * * *\ ;; . . . + . . + . . . . . . . . + . . . . + . . + . . . ;; \* * * * */ /* * * * * * *\ ;; . . . + . + . . . . + . . . . . . . . + - + - + - + - + . . ;; \* * */ /*\ ;; . . . . + + . . . . + + . . . . . . . . . . . . . . . ;; \*/ /* * *\ ;; + . . . + . . . . + - + - + . + - + - + - + . . . . . + - + -(+)- . ;; /*\ /* * * * * * *\ ;; + + . . . . . . . . . . . + . . . + . . . . . . . . . ;; /* * *\ /* * * * * * * * *\ ;; + . + . . . . . . . . . . + . . . . + . . . . . . . . ;; /* * * * *\ \* * * * * * * * */ ;; + . . + . . . + - + . . . . . + . . . + . . . . . . . . . ;; /* * * * * * *\ \* *\ \* * * * * * */ ;; + - + - + - + - + . . . + - + . . . . . + - + - + - + . . . . . . . . . parts: "a": recording "data/recs/coin.fus" vars: "collected_key": "entrance_coin_a" "b": recording "data/recs/coin.fus" vars: "collected_key": "entrance_coin_b" "c": recording "data/recs/coin.fus" vars: "collected_key": "entrance_coin_c" "crouch": T "d": recording "data/recs/coin.fus" vars: "collected_key": "entrance_coin_d" collmap: ;; ;; . . . . . . . . . . . . . . + + . . . . . . . . . . . ;; * */* ;; . . . . . . . . . . . . . . + . . . . . . . . . . . ;; */* * ;; . . . . . . . . . . . . . . + + . . . . . . . . . . . ;; * */* ;; . . . . . . . ? . . + - + . . + . . . . . . . . . . . [d] ;; / \ */* * ;; . . . . . . . . + - + - + + + . + + . . . . . . . . . . . ;; / / * */* ;; . . . . . . . + + - + - + - + . . . . . . . . . . . . . . ;; / / ;; . . . . . + - + - + + . . . . . . . . ? . ? . . . . . . . [b] [c] ;; / \ * */* ;; . . . . + + - + - + + - + . . . . + . . . . . . . . . . . ;; *\ \ */* * ;; . . . . . + - + - + - + + + . . . + + . . . . . . . . . . . ;; * * * */ \ / * */* ;; . . . . . + . . + - + ? . . . + . . . . . . . . . . . [a] ;; * * */ */* * ;; . . . . . + . . . . . . . . + + . . . . . . . . . . . ;; */ ;; . . . . + . . . . . . . . . . . . . . . . . . . . . ;; \ ;; . . . . . + -(+)- + - + . . . . . . . . . . . . . . . . . . ;; \ \ ;; . . . . . + + - + + - + - + - + . . . . . . . . . . . . . . ;; \ / ;; . . . . . . + - + - + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . + - + - + - + . . . . . . . . . . . . . . . ;; / * * * * *\ ;; . . . . . . . + . . . + . . . . . . . . . . . . . . ;; \ * * * * */ ;; . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . . ;; / * * * * *\ ;; . . . . . . . . + . . . . + . . . . . . . . . . . . ;; \ * * * * */ ;; . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . . ;; * * * / * * * * * * *\ ;; . . . . . . . + . . . . . + . . . . . . + - + . + - + . ;; * * * * \ * * * * * * */ / \ / \ ;; . . . . . . . . + - + - + - + - + - + . . . + - + . + . + + . + . ;; * * * * * * * * * * * * / \ / / ;; . . . . . . . . . . . . . . . . + . + + . + . . . . ;; * * * * * * * * * * * * * / / / / ;; . . . . . . . . . . . . . . . . + . + + . + . . . . . ;; * * * * * * * * * * * * * / / / / ;; (+)- + - + - + - + - + - + . . . . . . + - + - + - + + + . + . . . . . ;; \ / * * * * * * * * * \ / / / / ;; . + - + - + - + . + . . . . . . . + - + - + - + - + - + - + . . . . . . ;; \ /* * * * * * * * * * * * * * * * * * * * * * *\ ;; . . . . + + . . . . . . . . . . . . . . + . . . . . ;; \ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ ;; . . . . + - + . . . . . . . . . . . . . . . + . . . . . ;; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ;; . . . + . . . . . . . . . . . . . . . . + . . . . . ;; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ ;; . . . + . . . . . . . . + - + . . . . . . + . . . . . . ;; \* * * * * * * * * * * * * * * * */ \* * * * * * * * * * * * */ ;; . . . + . . . . . . + - + . + . + - + . . + . . . . . . ;; \* * * * * * * * * * * * */ \* * */* * \* * * * */ ;; . . . . + - + - + . + - + - + . . . + - + . + - + - + . . . . . . . ;; \* * */ ;; . . . . . . + - + . . . . . . . . . . . . . . . . . . parts: "A": recording "data/recs/eye.fus" vars: "key": "coin_f" "f": recording "data/recs/coin.fus" vars: "appear": T "key": "coin_e" "collected_key": "coin_f" "g": recording "data/recs/coin.fus" vars: "appear": T "key": "coin_f" "collected_key": "start_solved" "num_key": "num_coin_g" collmap: ;; ;; . . . . . . . . + - + - + - + . . . . . . . . . . . . . . . ;; / * * *\ ;; . . . . . . . + . . . + . . . . . . . . . . . . . . ;; \ * * */ ;; . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . . ;; / * * *\ ;; . . . . . . . ? + . . . . + . . . . . . . . . . . . [g] ;; \ * * */ ;; . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . . ;; * / * * * * *\ ;; . . . . . . . + . . . . . + . . . . . . . . ? + - + . [f] ;; * * * * * * \ * * * * */ /* \ ;; . . . . . . . . + - + - + - + - + - + . . . . . . . . . + . + . ;; * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * S * * * ;; . . . . . . ? . . . . . . . . . . . . . . . . . . . . . [g] ;; * ;; . + -(+)- + - + - + - + - + . . . . . . . + - + - + - + . . . . . . . . . ;; * * * *\ \ \ / /* * * ;; . . + - + - + - + . + . . . . . . . + - + - + - + - + - + - + - + . . . . . ;; * * * * * \ / \* * * * * * ;; . . . . . + + . . . . . . . . . . ? . . . + . . . . . [g] ;; * * *\ / /*\* * * * ;; . . . . + - + . . . . . . . . . . . . . . + + . . . . . ;; * * */ \*/* * * ;; . . . + . . . . . . . . . . . . . . . . + ? . . . . [A] ;; * */ /* * * * * ;; . . . + . . . . . . . . + - + . . ? . . . + . . . . . . [g] ;; *\ / *\ /* * * ;; . . . + ? . . . + . + - + . + . + - + . . + . . . . . . [g] ;; * * * *\ /*\ /* * * * *\ /* * *\ /* * * * ;; . . . . + - + - + . + - + - + . . . + - + . + . + . . . . . . . ;; * * * * * * *\ /* * * * * * * * * * * * ;; . . . . . . + - + . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . spawn: (0 -1) -2 y parts: "A": recording "data/recs/eye.fus" vars: "antikey": "start3b_coin_e" "a": recording "data/recs/coin.fus" vars: "collected_key": "start3b_coin_a" "num_key": "start3b_num_coin_a" "b": recording "data/recs/coin.fus" vars: "appear": T "key": "start3b_coin_a" "collected_key": "start3b_coin_b" "num_key": "start3b_num_coin_b" "c": recording "data/recs/coin.fus" vars: "appear": T "key": "start3b_coin_b" "collected_key": "start3b_coin_c" "num_key": "start3b_num_coin_c" "d": recording "data/recs/coin.fus" vars: "appear": T "key": "start3b_coin_c" "collected_key": "start3b_coin_d" "num_key": "start3b_num_coin_d" "e": recording "data/recs/coin.fus" vars: "appear": T "key": "start3b_coin_d" "collected_key": "start3b_coin_e" "num_key": "start3b_num_coin_e" collmap: ;; * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . - + - + - . . . . . . . . ;; \* * * * * * * * ;; . . . . . . + . . . . . . ? . . . . . . . . . . . . . . . . . . . . [e] ;; / * ;; . . . . + - + - + . . . . . . + - + . . . . + - + . . . . . - + . . . . . . ;; /* / \* / \ * * *\* * ;; . . . + - + - + . . . . . . + - + . . . . . . . + . . . . . + - + . . . . . ;; * * / * / \ * * \ * ;; . . - + . . + . . . . . + ? . . . . (+) . . + + . . . . . . + . . . . [b] ;; /* /*\ / \ \ * *\* * * ;; . . . . . + - + . . . . + . . . . . . + - + . + + - + - + . . . . + . . . . ;; *\ / * / \ \ \ / \ * /* * ;; . . . - + - . . . . . ? + + . . . . . ? + + . + . ? + - + . . + - + - + . . [e] [a] [c] ;; * * * * \ \ / \ / / \ * * * \ * ;; . . . + - + - . - . . . . . + + . . . . . + + . + . . . . + . . . . + . . ;; * / *\ /* \ / / / \ / \* * * ;; . . + . . . . . . . . + ? . . . . + + . . + = @ = @ = @ = + ? . . . . + - . [b] [d] ;; * * \ * \ \ / \ \ * / ;; . . . + - + . + . . . . . + . . . . + + . . . + . . . + - + . . . + . . ;; *\ * /*\ * /* / \ / \ */ * ;; . . . . + - + + - + . . . + + . . ? + + . . . . . . ? . . + . . . . . [a] [c] ;; * / \ / / / * * ;; . . . . + . . . . ? . . + . . . + + - + . + - + = @ = + = @ = @ = + - + . . . . . . [e] ;; /* \ / \ / \o \ \ / * *\ * * ;; . . . + - + . . . . . . . + . . + + . + + . + . + . . + . . . + - + . . ;; * /* * * \ \ / \ / / / * * \ * ;; . . . . + - + + - . . . . . + - + . . + + - + . + - + . + . . + . . . . . + . ;; * /* / / / \ / * *\ ;; . . . . + - + . . . . . + + ? . . + + . . . . + . . . . . . + - + . + [b] ;; * * * \ / / / * */ * \* */ ;; . . . . . . + . . . . . + - + . . . + . . . + - + . . . . . . + . + - + . ;; * * * * / \ \ / */* * * ;; . . . . . . + . . . . + ? + . . . + . . + . . + - + . . . + . . . . [A] ;; * / * * \ / \ /o / / \* * * ;; . . . + . . . . . . . . + - + . . . . + + - + = @ = @ = + - + . . . . . . . . . ;; *\ / *\ / \ / / ;; . . . + - + . - + . . . . . + . . . ? + + . . . . . ? . . . . . . . . [a] [d] ;; * * * / \ \ / \ * * * / * * * ;; . . + - + . . . . . . . . . + . . + - + . + - + . . . . . . . + . . . . . ;; / \* \ \ \ \ * * */ ;; . . . + . . . . ? . . . . + . . . + ? + - + . . . . . . + . . . . . [e] [c] ;; \ / / \ \ / / ;; . . . . + - + . . . + . . . + + . . . + - + . . . . . . . . . . . . . . ;; /* * *\ /* \ / ;; . . . + . + - . . - + . . . . + . . . . . . . . . . . . . . . . . . . ;; * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; name: "tutorial2" unit: 3 2 0 -1 spawn: "data/maps/tutorial2/start.fus" #spawn: "data/maps/tutorial2/entrance.fus" palette: "data/maps/trees/pals/trees.fus" tileset: "data/tileset1.fus" vars: "coin_a": F "coin_b": F "coin_c": F "coin_d": F "coin_e": F "coin_f": F "start_solved": F nosave "num_coin_g": 5 nosave "start2_eye_a_open": 0 nosave "start2_eye_b_open": 0 nosave "start2_eye_c_open": 0 "start3b_coin_a": F "start3b_coin_b": F "start3b_coin_c": F "start3b_coin_d": F "start3b_coin_e": F "start3b_solved": F nosave "start3b_num_coin_a": 3 nosave "start3b_num_coin_b": 3 nosave "start3b_num_coin_c": 3 nosave "start3b_num_coin_d": 2 nosave "start3b_num_coin_e": 4 nosave "start4a_num_coin": 4 nosave "start4b_num_coin": 4 nosave "start4c_num_coin": 4 "start4a_solved": F "start4b_solved": F "start4c_solved": F submaps: : pos: (0 0) mapper: ("triple") submaps: "entrance": submaps: : file: "data/maps/tutorial2/entrance.fus" pos: (-20 0) camera: (0 0) "start": submaps: : bg file: "data/maps/tutorial2/start_bg.fus" pos: (0 0) tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start.fus" pos: (0 0) camera: (15 0) submaps: : file: "data/maps/tutorial2/start_blocker.fus" visible: ! mapvar("start_solved") pos: (13 -7) : file: "data/maps/tutorial2/start_unblocked.fus" visible: mapvar("start_solved") pos: (13 -7) "start2": submaps: : bg file: "data/maps/tutorial2/start2_bg.fus" pos: (28 0) tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start2.fus" pos: (28 0) camera: (8 0) submaps: : file: "data/maps/tutorial2/start2_blocker.fus" visible: ! mapvar("coin_e") pos: (0 5) "start3.1": recs: : "data/maps/tutorial2/recs/start3_crawler.fus" "spider_cpu" submaps: : bg file: "data/maps/tutorial2/start3b_bg.fus" pos: eval: (13 -9) + (-1 -12) tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start3.fus" pos: eval: (13 -9) camera: (-4 -8) : file: "data/maps/tutorial2/start3b.fus" pos: eval: (13 -9) + (-1 -12) camera: (-5 -8) submaps: : file: "data/maps/tutorial2/start3b_blocker.fus" visible: ! mapvar("start3b_coin_b") pos: (5 -7) : file: "data/maps/tutorial2/start3b_blocker.fus" visible: ! mapvar("start3b_coin_d") pos: (6 -2) : file: "data/maps/tutorial2/start3b_blocker.fus" visible: ! mapvar("start3b_coin_e") pos: (-15 -19) "start3.2": pos: (-13 -32) submaps: : bg file: "data/maps/tutorial2/start3.2b_bg.fus" pos: eval: (13 -9) + (-1 -12) tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start3.2.fus" pos: eval: (13 -9) camera: (2 -8) : file: "data/maps/tutorial2/start3.2b.fus" pos: eval: (13 -9) + (-1 -12) camera: (-3 -8) recs: : "data/maps/tutorial2/recs/coin_beast_waiter.fus" "start3.2_blockers": pos: eval: (-13 -32) + (-10 -50) submaps: : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-5 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (0 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (5 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (10 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (15 0) "start4": pos: eval: (-13 -32) + (13 -9) + (-1 -12) + (-29 -19) camera: (-8 6) submaps: : bg file: "data/maps/tutorial2/start4_bg.fus" tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start4.fus" actors: : (0 0) 0 n "data/maps/tutorial2/actors/coin_beast_start4.fus" : file: "data/maps/tutorial2/start4_blocker.fus" visible: ! mapvar("start4a_solved") pos: (-3 -2) rot: 3 : file: "data/maps/tutorial2/start4_blocker_line5.fus" visible: ! mapvar("start4b_solved") pos: (-13 2) rot: 1 : file: "data/maps/tutorial2/start4_blocker.fus" visible: ! mapvar("start4b_solved") pos: (-17 5) rot: 1 : file: "data/maps/tutorial2/start4_blocker2.fus" visible: ! mapvar("start4c_solved") pos: (-10 -2) "start4_blockers": pos: eval: (-13 -32) + (13 -9) + (-1 -12) + (-29 -19) + (10 -15) submaps: : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-40 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-35 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-30 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-25 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-20 0) : file: "data/maps/tutorial2/start2_blocker.fus" pos: (-15 0) "start4.2": pos: eval: (-13 -32) + (13 -9) + (-1 -12) + (-29 -19) + (-20 -45) camera: follow mapper: ("double") submaps: : bg file: "data/maps/tutorial2/start4_bg.fus" rot: 0 tileset: "data/tileset1_bg.fus" : bg file: "data/maps/tutorial2/start4_bg.fus" rot: 2 tileset: "data/tileset1_bg.fus" : bg file: "data/maps/tutorial2/start4_bg.fus" rot: 4 tileset: "data/tileset1_bg.fus" : file: "data/maps/tutorial2/start4.2.fus" rot: 0 : file: "data/maps/tutorial2/start4.2.fus" rot: 2 : file: "data/maps/tutorial2/start4.2.fus" rot: 4 $SET_STR SPIT: lines: at(0 0) ;; ;; ;; You can grab it with your spit. $SET_STR GO_BACK: lines: at(0 0) ;; ;; ;; You should probably go back and get that. text: if mapvar("start2_eye_b_open") then if mapvar("coin_c") then null else $GET_STR SPIT else null text: if mapvar("start2_eye_c_open") then if mapvar("coin_c") then null else $GET_STR GO_BACK else null parts: "A": recording "data/recs/eye.fus" vars: "opened_key": "start2_eye_a_open" "B": recording "data/recs/eye.fus" vars: "key": "coin_b" "opened_key": "start2_eye_b_open" "C": recording "data/recs/eye.fus" vars: "key": "coin_b" "opened_key": "start2_eye_c_open" "a": recording "data/recs/coin.fus" vars: "collected_key": "coin_a" "b": recording "data/recs/coin.fus" vars: "appear": T "key": "coin_a" "collected_key": "coin_b" "c": recording "data/recs/coin_crouch.fus" vars: "appear": T "key": "coin_b" "collected_key": "coin_c" "d": recording "data/recs/coin.fus" vars: "appear": T "key": "coin_c" "collected_key": "coin_d" "e": recording "data/recs/coin.fus" vars: "appear": T "key": "coin_d" "collected_key": "coin_e" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + . ;; * * ;; . . . . . . . . . . . . . . ? . . . . . . . . . ? . . [d] [e] ;; * * ;; . . . . . . . . . . . . . + - + - + . . . . . . . + . . ;; / \ * */ \ * * ;; . . . . . . + - + . . . . + - + + + + . . ? . . . . . . . [C] ;; /* \*/ \ ;; . . . . . + . . . . . . . . + . + . . . . . . . . . ;; /* * * * * * ;; . . . . + - + . . . . . . . + - + . . . . . . . . . . . . ;; /* * * / * *\ ;; . . . + ? . . . . . . + - + . + . . . . . . . . . . . [A] ;; \* * * / * *\ * */ ;; . . . . + . . . . . . + - + + + . . . . . . . . . . . . ;; \* *\*/ ;; . . . . . . . . . . + - + + + . . . . . . . . . . . . ;; / * *\ \* *\ ;; . . . (+)- + - + - + . . . + . + + + . . . . . . . . . . . . ;; \* /* */ \ * */ / * *\ ;; . . . + + + . . . . + + + . + . . . . . . . . . . . ;; \ / \* \ \*/ \ * */ ;; . . . . + + + . . . + + . + + . . . . . . . . . . . . ;; \ / / \ \*/ ;; . . . . . + . . . + + . ? + + . . . . . . . . . . . [a] ;; \ *\ /*\ ;; + - + - + . . . . . . . + + + - + + + . . . . . . . . . . . ;; *\*/ *\ \*/ / * *\ \*/ ;; . + . + . . . . . . . + + . + + . . . . . . . . . . . ;; * * *\ * */ \ * */ ;; . . + + ? . . . . . . . . + + . . . . . . . . . . . . . [b] ;; * * * *\*/ \ \*/ * ;; . + + . . . . . . . . . + . . . . . . . + - + . . . . . ;; \ *\ / \ * * ;; . . + + . . . . . . . . . . . . . . . + - + . + + . . . . ;; \*/ / \ * */ / \ * * * ;; . . + . . . . . . + - + . . . . . . . + . + + + + . . . ;; / */ \ * */ \*/ \*/ * * * ;; . . . . . . . . . + + . . . . . . + - + + + + . + . . . . ;; \ / / \* *\*/ * * * ;; . . . . . . . . . + . . . . . . + . + + . . . + - + - + . ? [B] ;; \ * */ \ / / \ * * * ;; . . . . . . . . . . . . . . . . . + + + . . . + + . + . ;; \*/ \*/ * * * \* *\* * / * * * ;; . . . . . . . . . . . . . . . . . + + . . . . + - + + . ;; * * * \*/ * * * ;; . . . . . . . . . . . . . . . . . . . ? . . . . . + . . [c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . + - + . . . . + - + . . . . . . . . . . . . ;; /* * \ ;; . . . . . . . . . . . . + - + . . . . . . . + . . . . . . . . . . . . ;; * * * * * /* * * * * *\ ;; . . . . . . . . . . . + . . . . . (+) . . . + . . . . . . . . . . . ;; * * * * * * * * * * /* * * * * * * *\ * *\ ;; . . . . . . . . . . . + . . . . . . + - + . . + - + - + . . . . . . . . . ;; * * * * * * * * * * * / \* * * * * * * * * * * * * *\ \ */ \ ;; . . . . . . . . . . + + . . . . . . + + . + . . + - + . . . . . . . ;; * * * * * * * * * * \ \* * * * * * * * * * * * */ \ /* * * / * *\ ;; . . . . . . . . . . . + + . . . . . + + . + . . . . + . . . . . . . ;; * * * * * * * * \ /* * * * * * * * * * * */ /* * * * *\ * */ ;; . . . . . . . . . . . + . . . . . + + . . + . . . + . . . . . . . ;; * * \* * * * * * * * * * * *\ /* * * * * * *\* * * * * * * *\ ;; . . . . . . . . . . . . + . . . . . + . . . + . . . + - + . . . . . . ;; \* * * */* * * * * * * * * * * * * * * * * * *\ ;; . . . . . . . . . . . . + . . . . + . . . . . . . . . + . . . . . ;; / * */* * * * * * * * * * * * * * */ ;; . . . . . . . . . . . . + . . . . + + . + - + . + . . + - + . . . . . . ;; * * * * * \ * */* */ \* * */ \* * * *\ \ / ;; . . . . . . . . . . . . + . . . + + + + . + . + . . + . . . . . . ;; * * * * * * \ * *\* *\ /* * *\ /* * * */ / ;; . . . . . . . . . . . . + - + . . . + + . + - + . + . . + . . . . . . . ;; * * * * * * / /* * * *\* * * * * * * * * * */ ;; . . . . . . . . . . . + + . . . . + . . . . + . . . . . . . . . . ;; * * * * * * \ /* * * * * * * * * */* * * * * * * * * */ ;; . . . . . . . . . . . . + - + . . . + . . . + - + . . . . . . . . . . . ;; * * * * * / \* * * \* * * * * * */ ;; . . . . . . . . . . . + . + . . . + . . + . . + - + . . . . . . . . ;; \ / \* * * * */ / / ;; . . . . . . . . . . . . + - + . . . . + + - + . . + - + . . . . . . . . . ;; * * * * * \* /* */ ;; . . . . . . . . . . . . + . . . . + + . . . . . . . . . . . . . . ;; * * * * * * \ /* * *\ ;; . . . . . . . . . . . . . + . . + - + . + - + . . . . . . . . . . . . . ;; * * * * * \ \* * * *\ \ ;; . . . . . . . . . . . . . + . . . + . + - + . . . . . . . . . . . . ;; / \ \* * */ ;; . . . . . . . . . . . . . + + . . . + - + . . . . . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; (+)- + - + ;; * ;; . . spawn: (-4 -1) 0 n parts: "l": location "start4.2" "b": actor "actor/airoller.fus" "A": recording "data/recs/eye.fus" "D": recording "data/recs/door.fus" vars: "map": "data/maps/tutorial3/worldmap.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + - + . . . . . . . . . . . . . . . . . . ;; /* * *\ ;; . . . . . . . + . + - + . . . . . . . . . . . . . . . . . ;; \* * * * */ ;; . . . . . . . . + - + - + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ! - + - + . . . . . . . . ! - + - + . . . [b] [b] ;; / \ / \ ;; . . . . . . . . . . + . . + . . . . . . . + . . + . . . ;; / / ;; . . . . . . . . . . + . . . . . . . . . . . . . + . . . ;; /*\ /*\ ;; . . . . . . . . . + + - + . . + . + - + - + . + . . + - + - + . . ;; \* * * *\ / \*/ / ;; . . . . . . . . . . + . + - + - + . . . + . + . . . . . . . ;; \* * */ \*/ /*\ / ;; . . . . . . . . . . + - + . + . . . + - + - + . . + - + . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . . . . . . + . . . ;; / ;; . . ! - + - + - + . + - + - + . . . . + - + - + - + - + . . . . + . . . . [b] ;; \* * * * */ /* * * */ \* * * * */ / ;; . . . + - + + . + . + . . . . . . + - + - + . . . . + . . . . ;; \*/ /* * * */ / ;; . . . . + . + + - + . . . . . . + . . . . . . . . . . . . ;; /* */ \ ;; . . . . . . + + . . . . . . . . + - + . . . . ! . . . . . [b] ;; /* * *\ \* *\ \ ;; . . . . . ! . + . . . . . . . . + - + . . . . + . . . . . [b^1] ;; \* * */ \ ;; . . . . . . + + . . . . + . . . . . . . . . . + . . . . ;; /* */ / ;; . . . . . + + . . . . + . . . . . . . . . . . . . . . . (.) ;; \*/ /*\ S ;; . . + . . . + . . . . + - + - + . ! - + . + . . . . . + - ! - + . . [b] [l] ;; / \* *\ / \*/ \ ;; . + . . . . . . . . . . . . . + + - + . . . . . . + ? + . [A] ;; / \* * */ /*\ / ;; . + . . . . . . . . . . . . + . + + . + . . . . + - + - + . ;; /*\ \ \*/ / ;; + + . + . . . + - + . . . . . + . + ? + . . . . . . . . . [D] ;; \* *\ /*\ \* *\ \ \ / ;; . + - + + - + . . . + - + . . . . . + . + - + + . . . . . . . . ;; \ ;; . . . . . . . . . . . . . . . . . . . + . . . . . . . . ;; ;; . . . . . . . . . . + - + - + . . . . . . . . . + . . . . . ;; \* * * *\ /*\ ;; . . . . . . . . . . + - + - + - + . . . . . . + - + - + . . . . . ;; spawn: (0 0) -1 y parts: "A": recording "data/recs/eye.fus" vars: "key": "start_solved" collmap: ;; ;; . . . . . . . (+) . . . . . . . . . . . . . . . . . . ;; /* * ;; . . . . . . . + . . . . . . . . . . . . . . . . . . . ;; \* * * ;; . . . . . . . + . . . . . . . . . . . . . . . . . . ;; \* * ;; . . . . . . . + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . + . . ? . . . . . . . . . . [A^3] ;; \ * *\ * * * ;; . . . . . . . + + + . . . . . . . . . . . . ;; S\ * / * * * * ;; . . . . . . . . + - + . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; (.) . + ;; \* * ;; . . + ;; \* ;; . . + spawn: (0 0) -1 y parts: "h": recording "data/recs/hotspot.fus" vars: "key": "start_solved" "A": recording "data/recs/eye.fus" vars: "key": "start_solved" collmap: ;; . . . . . + . . . . . . . . . . . . . . . . . . ;; / ;; . . . . . + . . . . . . . . . . . . . . . . . . . ;; / ;; . . . . . + ? (+) . . . . . . . . . . . . . . . . . . [h] ;; *\ /* * ;; . . . . . . + + . . . . . . . . . . . . . . . . . . . ;; * * \* * * ;; . . . . . . . + . . . . . . . . . . . . . . . . . . ;; \* * ;; . . . . . . . + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . + . . ? . . . . . . . . . . [A^3] ;; \ * *\ * * * ;; . . . . . . . + + + . . . . . . . . . . . . ;; S\ * / * * * * ;; . . . . . . . . + - + . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . + . . . . . . + - + - + . . . . . . . . . . . ;; /* /*\ /*\ ;; . . . . . + . . . . . + - + + + + . . . . . . . . . . ;; /* * * * * * * * *\ /* * *\ ;; . . . . . + . . . . . . . . + . . . . . . . . . . . . ;; /* * * * * * * * * * * * * * ;; . . . + - + . . . . . . . + - + . . . . . . . . . . . . ;; /* * * * * * * * * * * * * / \* * * * * ;; . . . + . . . . . . . + - + . + . . . . . . . . . . . . ;; \* * * * * * * * * * * * */ / \ /* * * * * ;; . . . + . . . . . + + - + + + . . . . . . . . . . . . ;; /* * * * * * * * */ *\ \ /* * * * * * ;; . . . + . . . . . + + - + + + . . . . . . . . . . . . . ;; /* * * * * * * * */ / \* *\ \* * * * */ ;; . . (+)- + - + - + . . + + . + + + . + . . . . . . . . . . ;; \ / \* * * * */ \ /* */ \* * */ ;; . . . + + . + . + . + + + . + + . . . . . . . . . . . ;; *\ / \* * */ *\ /* * *\ /* */ ;; . . . + . . + + . + + . + + + . . . . . . . . . . . ;; * * /* */ / \* * * * * *\ /* */ ;; . . . . . . + + . + + . . + + . . . . . . . . . . . . ;; * * /* */ *\ \* * * * * * */ \ ;; + - + - + . . . + - + . . + + + - + + + . . . . . . . . . . . ;; /*\ \* * *\ /* */ \* *\ / ;; + + . + . . . . . . . + + . + + . . . . . . . . . . . . ;; /* * *\ / * * * * *\ /* */ ;; + + + . . . . . . . . . + + + . . . . . . . . . . . . ;; /* * * * *\ / * * * * * *\ /* * *\ ;; + . + . . . . . . . . . . + . + . . . . . + - + . . . . . ;; \* * * * * *\ * * * * * * * * * */ / \ ;; + . + . . . . . . . . . . . + . . . . + - + . + - + . . . ;; /* * * * * * *\ * * * * * * * * * */ / \ /* */ \ ;; + . . + . . . . . . + - + - + - + - + . . . . + . + + + + . . . ;; \* * * * * * * *\ / / /*\ /*\ /* * *\ /*\ ;; + - + - + . + . . . . . + + . . . . . . + - + + + + . + + . . ;; \* * */ \ / / \* *\ /* * * * * * * * *\ ;; . + - + . . . . . . + . . . . . . + . + + . . . + - + - + . ;; \ / \* * * * * * * * */ / \ ;; . . . . . . . . . . . . . . . . . + + + . . . + + . + . ;; *\ /*\ /* * * * * * * * *\ \ / ;; . . . . . . . . . . . . . . . . . + + . . . . + - + + . ;; * * * * * * * * * * * * * * * * *\ /* ;; . . . . . . . . . . . . . . . . . . . . . . . . . + . . ;; * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . default_face: "3" collmap: ;; + ;; /*\ ;; + + ;; /* * *\ ;; (+)- + - + spawn: (0 0) 0 y parts: "A": recording "data/recs/eye.fus" vars: "antikey": "start4c_solved" "a": recording "data/recs/coin.fus" vars: "appear": T "key": "start3b_solved" "collected_key": "start4a_solved" "num_key": "start4a_num_coin" "b": recording "data/recs/coin.fus" vars: "appear": T "key": "start4a_solved" "collected_key": "start4b_solved" "num_key": "start4b_num_coin" "c": recording "data/recs/coin.fus" vars: "appear": T "key": "start4b_solved" "collected_key": "start4c_solved" "num_key": "start4c_num_coin" "D": recording "data/recs/door.fus" vars: "key": "start4c_solved" "location": "start4.2" "h": recording "data/recs/hotspot.fus" vars: "key": "start3b_solved" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . ? . ? . ? . ? [c][c][c][c] ;; ;; . . . . . . . . + - + . . . . . . . . . . . . . . . . . . ;; /* * *\ ;; . . . . . . . + . + - + . . . . . . . . . . . . . . . . . ;; \* * * * */ ;; . . . . . . . . + - + - + . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + - + - + . . . . . . . . + - + - + . . . ;; / \ / \ ;; . . . . . . . . . . + . ? + . . . . . . . + . . + . . . [b] ;; / / ;; . . . . . . . . . . + ? . . . . . . . . . . . . + . . ? [b] [b] ;; /*\ /*\ ;; . . . . . . . . . + + - + . . + . + - + - + . + . . + - + - + . . ;; \* * * *\ / \*/ / ;; . . . . . . . . . . + . + - + - + . . ? + ? + . . . . . . . [a] [b] ;; \* * */ \*/ /*\ / ;; . . . . . . . . . . + - + . + . . . + - + - + . . + - + - + . . . ;; \*/ ;; . . . . . . . . . . . . . . . . . . . . . . . . + . . . ;; / ;; . . + - + - + - + . + - + - + . . . . + - + - + - + - + . . . . + . . . . ;; \* * * * */ /* * * */ \* * * * */ / ;; . . . + - + + . + . + . . . . . ? + - + - + . . . . + . . . . [a] ;; \*/ /* * * */ / ;; . . . . + . + + - + . . . . . . + . . . . . . . . . . ? . [a] ;; /* */ \ ;; . . . . . . + + . . . . . . . . + - + . . . . + - + - + . . . ;; /* * *\ \*/* / \*/ ;; . . . . . + . + . . . . . . . . + . . . . + ? + . . . . [A^3] ;; \* * */ /*\ / ;; . . . . . . + + . . . . + . . . . . . . . + - + - + . . . . ;; /* */ / ;; . . . . . + + . . . . + . . . . . . . . . . . . . ? . . [h] ;; \*/ /*\ S ;; . . + . . . + . . . . + - + - + . + - + . + . . . . . + - + -(+)- + - + ;; / \* *\ / \* * * * */ ;; . + . . . . . . . . . . . . . + + - + . . . . . ? + . . . [a] ;; / \* * */ / * * ;; . + . . . . . . . . . . . . + . + + . + . . . . + . . . ;; /*\ \ \*/ / ;; + + . + . . . + - + . . . . . + . + ? + . . . . . . . . . [D] ;; /* * *\ /*\ \* *\ \ \ / ;; + - + - + + - + . . . + - + . . . . . + . + - + . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + . . . . . . . . . + . . . . . ;; *\ /* ;; . . . . . . . . . . . . + - + . . . . . . + - + . . . . . . ;; * * collmap: ;; . . . . ;; * * * ;; . . . . . ;; * * * * * * ;; . . . . ;; * * * * * * ;; . . . . . ;; * * * ;; . . (.) . spawn: (0 -1) -2 y parts: "A": recording "data/recs/eye.fus" vars: "antikey": "start3b_solved" "R": recording "data/recs/hexroller_rd.fus" "h": recording "data/recs/hotspot.fus" vars: "key": "start3b_solved" collmap: ;; * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . - + - + - . . . . . . . . ;; \* * * * * * * * ;; . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; / * ;; . . . . + - + - + . . . . . . + - + . . . . + - + . . . . . - + . . . . . . ;; /* / \* / \ * * *\* * ;; . . . + - + - + . . . . . . + - + . . . . . . . + . . . . . + - + . . . . . ;; * * / * / \ * * \ * ;; . . - + . . + . . . . . + . . . . . (+) . . + + . . . . . . + . . . . ;; /* /*\ / \ \ * *\* * * ;; . . . . . + - + . . . . + . . . . . . + - + . + + - + - + . . . . + . . . . ;; *\ / * / \ \ \ / \ * /* * ;; . . . - + - . . . . . . + + . . . . . . + + . + . . + - + . . + - + - + . . ;; * * * * \ \ / \ / / \ * * * \ * ;; . . . + - + - . - . . . . . + + . . . . . + + . + . . . . + . . . . + . . ;; * / *\ /* \ / / / \ / \* * * ;; . . + . . . . . . . . + . . . . . + + . . + = @ = @ = @ = + . . . . . + - . ;; * * \ * \ \ / \ \ * / ;; . . . + - + . + . . . . . + . . . . + + . . . + . . . + - + . . . + . . ;; *\ * /*\ * /* / \ / \ */ * ;; . . . . + - + + - + . . . + + . . . + + . . . . . . . . . + . . . . . ;; * / \ / / / * * ;; . . . . + . . . . . . . + . . . + + + . ! - + = @ = + = @ = @ = + - + . . . . . . [R] ;; /* \ / / \ / \o \ \ / * *\ * * ;; . . . + - + . . . . . . . + . . + + + + + . + . + . . + . . . + - + . . ;; * /* * * \ \ \ / \ / / / * * \ * ;; . . . . + - + + - . . . . . + - + . . + + + . + - + . + . . + . . . . . + . ;; * /* / / / \ / * *\ ;; . . . . + - + . . . . . + + . . . + + . . . . + . . . . . . + - + . + ;; * * * \ / / / * */ * \* */ ;; . . . . . . + . . . . . + - + . . . + . . . + - + . . . . . . + . + - + . ;; * * * * / \ \ / */* * * ;; . . . . . . + . . . . + ? + . . . + . . + . . + - + . . . + . . . . [A] ;; * / * * \ / \ /o / / \* * * ;; . . . + . . . . . . . . + - + . . . . + + - + = @ = @ = + - + . . . . . . . . . ;; *\ / *\ / \ / / ;; . . . + - + . - + . . . . . + . . . . + + . . . . . . . . . . . . . . ;; * * * / \ \ / \ * * * / * * * ;; . . + - + . . . . . . . . . + . . + - + . + - + . . . . . . . + . . . . . ;; / * \ \ \ \ * * */ ;; . . . . . . . . . . . . . + . . . + . + - + . . . . . . + . . . . . ;; / / \ \ / / ;; . . . ? + - + . . . + . . . + + . . . + - + . . . . . . . . . . . . . . [h] ;; /* * *\ /* \ / ;; . . . + . + - . . - + . . . . + . . . . . . . . . . . . . . . . . . . ;; / * * * * * * * ;; . . - + - + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . default_face: "3" collmap: ;; + ;; /*\ ;; (+)- + - + ;; \*/ ;; + collmap: ;; ;; . . . . . . . . . . . . . + - + . . . . + - + . . . . . . . . . . . . ;; /* * \ ;; . . . . . . . . . . . . + - + . . . . . . . + . . . . . . . . . . . . ;; * * * * * /* * * * * *\ ;; . . . . . . . . . . . + . . . . . (+) . . . + . . . . . . . . . . . ;; * * * * * * * * * * /* * * * * * * *\ * *\ ;; . . . . . . . . . . . + . . . . . . + - + . . + - + - + . . . . . . . . . ;; * * * * * * * * * * * / \* * * * * * * * * * * * * *\ \ */ \ ;; . . . . . . . . . . + + . . . . . . + + . + . . + - + . . . . . . . ;; * * * * * * * * * * \ \* * * * * * * * * * * * */ \ /* * * / * *\ ;; . . . . . . . . . . . + + . . . . . + + . + . . . . + . . . . . . . ;; * * * * * * * * \ /* * * * * * * * * * * */ /* * * * *\ * */ ;; . . . . . . . . . . . + . . . . . + + . . + . . . + . . . . . . . ;; * * \* * * * * * * * * * * *\ /* * * * * * *\* * * * * * * *\ ;; . . . . . . . . . . . . + . . . . . + . . . + . . . + - + . . . . . . ;; \* * * */* * * * * * * * * * * * * * * * * * *\ ;; . . . . . . . . . . . . + . . . . + . . . . . . . . . + . . . . . ;; / * */* * * * * * * * * * * * * * */ ;; . . . . . . . . . . . . + . . . . + - + . + - + . + . . + - + . . . . . . ;; * * * * * \ * */ \* * */ \* * * *\ \ / ;; . . . . . . . . . . . . + . . . + . + + . + . + . . + . . . . . . ;; * * * * * * \ * *\ /* * *\ /* * * */ / ;; . . . . . . . . . . . . + - + . . . + - + . + - + . + . . + . . . . . . . ;; * * * * * * / /* * * *\* * * * * * * * * * */ ;; . . . . . . . . . . . + + . . . . + . . . . + . . . . . . . . . . ;; * * * * * * \ /* * * * * * * * * */* * * * * * * * * */ ;; . . . . . . . . . . . . + - + . . . + . . . + - + . . . . . . . . . . . ;; * * * * * / \* * * \* * * * * * */ ;; . . . . . . . . . . . + . + . . . + . . + . . + - + . . . . . . . . ;; \ / \* * * * */ / / ;; . . . . . . . . . . . . + - + . . . . + + - + . . + - + . . . . . . . . . ;; * * * * * \* /* */ ;; . . . . . . . . . . . . + . . . . + + . . . . . . . . . . . . . . ;; * * * * * * \ /* * *\ ;; . . . . . . . . . . . . . + . . + - + . + - + . . . . . . . . . . . . . ;; * * * * * \ \* * * *\ \ ;; . . . . . . . . . . . . . + . . . + . + - + . . . . . . . . . . . . ;; / \ \* * */ ;; . . . . . . . . . . . . . + + . . . + - + . . . . . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . default_face: "3" collmap: ;; + - + - + ;; \* * * *\ ;; + + - + - + - + - + ;; /* * * * * */ \ ;; + + + - + - + ;; /* * * * * * *\ \* * * *\ ;; (+)- + - + - + - + - + + + ;; \* * */ ;; + + ;; \*/ ;; + anim: "anim/spider.fus" state: "stand" pos: ( 12 -23) rot: 5 turn: yes keys: x: y: u: d: l: r: data: " w26 +l w2 -l w11 +d w4 +l w8 -l w28 +l w19 -l w4 -d w6 +r w1 -r w36 +l w2 -l w17 +d w15 +r w24 -r w11 +l w5 -l w29 +r w17 -r w9 +l w2 -l w1 -d w9" anim: "anim/coin_beast.fus" state: "stand" pos: ( -28 -72) rot: 0 turn: yes keys: x: y: u: d: l: r: data: " w14 +r w22 -r w17 +r w6 -r w47 +l w4 -l w10 +l w18 -l w52 +r w23 -r w9 +d w74 -d w27 +l w28 -l w47" anim: "anim/coin_beast.fus" state: "init" pos: eval: ( -37 -21) - (13 32) rot: 4 turn: yes keys: x: y: u: d: l: r: data: " w1 +l w73 -l w18 +r w7 -r w3 +l w3 -l w11 +u w3 -u w24 +l w38 -l w15 +r w3 -r w10 +l w25 -l w21 +r w3 -r w12 +r w30 -r w24 +u w5 -u w98" state "start": if: expr: mapvar("start4b_solved") then: play: "data/maps/tutorial2/recs/coin_beast_start4.fus" name: "spidertown" unit: 3 2 0 -1 spawn: (0 0) palette: "data/maps/trees/pals/trees.fus" tileset: "data/maps/trees/tilesets/trees.fus" submaps: : bg file: "data/maps/trees/start_bg.fus" pos: (-21 -21) tileset: "data/maps/trees/tilesets/trees_dark.fus" : bg file: "data/maps/trees/start_bg.fus" pos: (0 0) tileset: "data/maps/trees/tilesets/trees_dark.fus" : bg file: "data/maps/trees/start_bg.fus" pos: ( 21 21) tileset: "data/maps/trees/tilesets/trees_dark.fus" : file: "data/maps/spidertown/map3xx.fus" pos: (0 0) camera: (0 4) mapper: ("double") parts: "D": recording "data/recs/door.fus" vars: "map": "data/maps/trees/worldmap.fus" "location": "start" "E": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "spidertown_exit" "l": location "trees_exit" "s": location "start" collmap: ;; ;; ;; ;; + - + + - + ;; * / \ / \ ;; + + - + + - + + - + ;; * * * \ \ / \ \ ;; + - . . . - + . + + + ;; */ \ *\* / ;; . + . . + + - + . ;; \ *\ /* / \ ;; . + - + . . + - + . + - + + . ;; \* \ / \ ;; + + . . + + + + + + - + . ;; \ S / / / \ \ ;; + - + + - + . . + . . + + + - + + - + - + - + . + ;; / \ / / \ / *\ ;; + - + . . . . . + - + + - + + + . + ;; / \ \ */ ;; + + . . + . . + ! - + - + ? . + [l][D] ;; \ / / \ / \ \ ;; + - + + + . + + + - + . + - + + + + - + + . ;; \ \ / /*\ / / / / \ /*\ \ / \ ;; + + + + - + - + + + + - + . + - + + + ;; / / \ / */*\* \ \ \*/ / ;; + + - + - + + + - + - + - + - + + + - + - + - + + . ;; / / / * *\*/* \ / \ /*\ /*\ / \ \ ;; + - + - + + - + + - + - + + - + + - + . . ;; */ \ ;; + . + + . . ;; \ / ;; + - + . . . + - + - + . + - + - + . + . + - ;; \ \ \*/*\ \ /* * ;; + + . + - + - + + - + + - . + - ;; \ \ /*\*/*\*/ \ \ /*\* * \ ;; + - + - + . + - + - + + - + - + - + - . + ;; */*\*/*\* / ;; . . + + - + ;; \* / * * ;; + - + . . + - + + - + + - + - ;; \ / / / \*/*\ / \ *\* ;; + + + + - + + - + + ;; \ \ / \ ;; + + - + + + - + . ;; / / \ / \ ;; + + + - + + - + + ;; \ / \ / / ;; . + - + + . + - + ;; \* ;; + . + - + + ;; / \ / \ / ;; + (+)- + . . + - + . + + + ;; / / / \ \ /*\ ;; + + + + + + - + . . . ;; \ \ \ / / /*\*/ ;; + + + - + + - + - + + ;; \ / \*/ /* ;; + - + . + + - ;; /* ;; . + . ? + - + . + - [E] ;; / \ / \ /*\* ;; + - + + - ! + - + + - + [s~^3] ;; \ \ \ / ;; + + + + ;; \ / / / ;; + - + - + . + - + - + spawn: (0 0) 1 n collmap: # hexbox: (-18 25) (-6 15) (-23 20) ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . + - + . . . . . . . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . . . . + . . - + . . . . . . . . . . . . + . . . . . . . . . ;; / \ \S S S S S S S S S S S S S S S S S S S S S S S S S/ \S S S S S S S ;; . . . . . . . . . . . + + - + + - + - + + + + + + + - + . . . . . . . . . . . . . . . ;; / \ S S ;; . . . . . . . . @ = @ = @ . . . . . . . . . . . + + + + - + . . . . . . . . . . . . . ;; S S S S S S \ / \ / / / ;; . . . . . . . . . . . . . . . + - + - + - + . . . . + - + + + . . . . . . . . . . . . . . ;; S S S S S S / \ \ ;; . . . . . . . . . . . . . + . . . . . . . . . + . . + - + . . . . . . . . . . . . . . ;; w w w S S / ;; . . . . . . . . . . . . . + . . . . . . . . . + + - + - + - + . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w / S S / ;; . . . . . . + . . . + . . + . . . . . . . + - + + - + - + - + - + = @ - + - + - + - + - + . . . . . . . . . . ;; \ / \ w w w w w w w w w w w w w w w w w S w w w w \ ;; . . . . . . + - + - + - + + . + . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . . ;; \ / / \ w w w w w w w w w w w w w w w w w w w w w w = ;; . . . . . + - + - + - + - + - + + . . . . . . . . . . . @ . . . . . . . . . . . . . . . . . . ;; \ \ / w w w w w w w w w w w w w w w w w w w w w w = ;; . . . . . + + + - + . + + - + - + - . . . . . . . . . @ . . . . . . . . . . . . . . . . . ;; / \ / \ w w w\w w w w\w w w w w w w w w w w w w w w \ * * * * ;; . + . . + . + - + + + . + - + - + . . . . . + - + . - . + . . . . . . . . . . . . . . . . ;; \ / \ \ / \ \ \ w w/w / * * * * * * * ;; . + . + . . + - + . - . - . + - + - + - . - . . . (+) . . + - + . . . . . . . . . . . . . . . . ;; / / / / \ / \ / w w\w * * * * ;; + - + - + - + - + - + - + - + . + + - + - + - + - + - . . . + . . . . . . . . . . . . . . . . . . . ;; \ \ * \ \ \ / / \ ;; . + - @ = @ = @ . + . . . + - + - + + . . . . . . . . . . . . . . . . . . . . . . . ;; = = * * \ / * * w w w w w ;; @ = @ = @ = @ @ + . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . ;; = = = = = = = * * * S S S S S * * * * w w w w w ;; @ = @ = @ = @ = + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; = = = = = * * S S S S S * * * * * * * * * * ;; . . @ = @ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * S S * * * * * * * * ;; . . + . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . name: "touma" unit: 3 2 0 -1 spawn: "data/maps/touma/start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : file: "data/maps/touma/start.fus" pos: (0 -5) camera: (0 0) mapper: ("double") palette: "data/maps/demo/pals/start.fus" : file: "data/maps/touma/start2.fus" pos: (30 0) camera: (8 -8) mapper: ("triple") : file: "data/maps/touma/swimming_pool.fus" pos: (60 0) camera: (8 -8) mapper: ("triple") collmap: # hexbox: (-9 29) (-16 1) (-2 36) ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; + - + -(+)- + + + + - + - + + + + - + . . . . + - + + - + + + - . - + + - + + . . . . ;; / \ \ / \ / \ / \ / \ / \ * * ;; . + - . . + + + . + - + . + + . . . . . + - + . . . . . + . . - + . . . . ;; / / / / \ / \ / * * * * * * ;; . + + - . + + . . . + - + - + - + . . . . + . + . + - + . . + . . . . . . . . ;; / / \ / \ \ w w w w w \ / \ * * * * ;; . . + - + + - + + . . . . . + . . . . . . . . . + + . . . . . . . . . . . ;; / / \ / w w w w w * */*\ / \* * * * * * ;; . . . . + - + + + . . . . . . . . . . . . . . + + + . . . . . . . . . . . ;; w w w w w w * * * * * * \ w w * * * w w * * * * \* * * * * * * * * ;; . . . . . . . + . . . = @ = . + - + . . + . . . . . . . . . . . . . . . . . . . ;; w w w w w w \ \ * w w * * w w w w w w * * * * * * \ ;; . . . . . . . + . . . = @ = . . - + - + . . . . . . . . . . . . . . . . . . . . . . ;; w = = * * w w w * * * * * * ;; . . . . . . . + + - + + . . - + - . . . + . . . . . . . . . . . . . . . . - . . . . . ;; / / \ * * * * * * * ;; . . . . . . + + + - + . . . . . . + . . . . . . . . . . . . . + . . . . . . . ;; / / \ / * \ ;; . . . . . + - + + + - + . . . . . . . . . . . . . . . . . . . . + . . . . . . ;; / \ / * ;; . . . . + + - + + - + . . . . . + . . . . . . . . . . . . . . . . . . . . . ;; \ / *\* * * ;; . . . . . . + - + + + . . - + - + . . . . . . . . . . . . . . . . . . . . . ;; \ \ / /* * * * ;; . . . . . . . + . . . + + . . . . . + - . . . . . . . . . . . . . . . ;; / \ / / * * * * * * * * ;; . . . . . . . . . . + + + . . . . + - + + . . . . . . . . . . . . . ;; / /* /*\* * * * * * * * ;; . . . . . . + - . - . - . + . . . . . . + - + - + . . . . . . . . . . . . ;; \ / \ / \ / \ * * * \ * * * * * ;; . . . . . . . - . - . - . . . . . . . . . . - . . . . . . . . . . . . ;; * */* \ * * * ;; . . . . . + . . . . . . . . . . . . . . . . . . . . . . . . collmap: # hexbox: (-10 29) (-19 0) (-1 39) ;; ;; . (+)- + . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; S S S S S S S S S S S S S S S S S S S S ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . + + - + . + . + . . . . . . . . ; ;; / \ ; ;; . . . . + . (+)- + . . . . . . . . . . ; ;; \ \ ; ;; . . . . . + - + . + + . + . + . . . . . ; ;; \ / ; ;; . . . . . . + - + . . . . . . . . . . ; ;; ; ;; . . . . + + - + . + . . . . . + . . . . ; ;; / \ ; ;; . . . . + . + . . . . . . . . . . . ; ;; \ / ; ;; . . . + . + - + + . + . + . + . + . . . ; ;; ; ;; . . . + - + . . . . . . . . . . . . . ; ;; / \ ; ;; . . + + . + - + . + . + . + . + . + . . ; ;; \ \ ; ;; . . . + - + . + . . + - + + . . . . . . ; ;; \ / / \ ; ;; . . . + . + - + . . + . + . . + - + . . . ; ;; \ / / ; ;; . . . . . . + . . + - + . + - + . . . . ; ;; / \ ; ;; . . . . . . + + + - + . + + . + . . . . ; ;; \ / \ / ; ;; . . . . . . + - + . + - + . . . . . . . ; ;; ; ;; . . . . . . . + . + . + . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . ; name: "wastes" unit: 3 2 0 -1 spawn: "data/maps/wastes/start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" actors: #: (0 0) 0 n "actor/aispider.fus" "spider_cpu" #: (14 1) 1 n "actor/aibird.fus" "spider_cpu" #: (-6 -11) 4 y "actor/aibig_roller.fus" "spider_cpu" submaps: : file: "data/maps/wastes/start.fus" pos: (0 0) camera: (5 -5) mapper: ("triple") : file: "data/maps/wastes/start2.fus" pos: (18 5) camera: (-5 -5) mapper: ("triple") : file: "data/maps/wastes/start3.fus" pos: (-8 2) camera: (-5 -5) mapper: ("triple") : file: "data/maps/wastes/grid1.fus" pos: (20 20) camera: (0 0) mapper: ("double") : file: "data/maps/wastes/grid2a.fus" pos: (0 20) camera: (0 0) mapper: ("double") : file: "data/maps/wastes/unsafe_grid1.fus" pos: (0 35) camera: (0 0) mapper: ("double") collmap: ;; . . + - + . . . . . . . . . . + - + . . . ; ;; / \ / \ ; ;; + - + . + - + . . . . . . . + - + . + . . ; ;; / \ / / \ ; ;; + . + - + . . . . . . . . + . + . . . . ; ;; ; ;; . . . . . . . . . . . . . . . + - + . ; ;; / \ ; ;; . . . . . + - + . . . . . . . . + . + . ; ;; / \ \ / ; ;; + - + . . + . (+)- + . . . . . . . + - + . ; ;; \ \ \ ; ;; . . + . . + - + . + . . . . . . . . . . ; ;; / \ / ; ;; . + . . . . + - + . . . . + - + . . . . ; ;; / \ ; ;; . . . . . + - + . . . . . + . + . . . . ; ;; / \ \ / ; ;; . . . . + . + . . . . . + - + . + - + . ; ;; \ / / \ ; ;; . . . . . + - + . . . . . . . + - + . + . ; ;; / / ; ;; . . . + - + . . . . . . . . + . + - + . ; ;; / \ \ / ; ;; . . . + . + - + . . . . . . . + - + . . . ; ;; \ \ ; ;; . . . + - + . + . . . . . + - + . + - + . ; ;; \ / / \ / \ ; ;; . . . . . + - + . . . . . + . + + . + . ; ;; / \ / \ / ; ;; . . . . + . + - + . . . . + - + . + - + . ; ;; \ / \ \ ; ;; . . . . . + - + . + - + . + - + . + . . . . ; ;; \ / \ / \ / ; ;; . . . . . . + - + . + - + . + - + . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . ; parts: "b": "data/maps/wastes/parts/box_sm.fus" collmap: ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . . . . ; [b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; ? . . . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . . . . ; [b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; ? . . . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . (.) . . . . . . . . . . . . . . . ; ;; ; ;; . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . . . . ; [b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; ? . . . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . . . . ; [b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; ? . . . . . ? . . . . . ? . . . . . ? . . . . . ? . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; collmap: ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . + - + . + -(+)- + - + . . . . . . . . . . . . . . . . ; ;; / \ / \ ; ;; . . . . . . + . + + - + - + . + . . . . . . . . . . . . . . . . ; ;; \ / \ \ ; ;; . . . . . . . + - + . . . + . + . . . . . . . . . . . . . . . ; ;; \ / ; ;; . . . . . . . . . . . . + - + . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . + - + . . . + . . . . . . . . . . . . . . . . . ; ;; / \ / \ ; ;; . . . . . . + . + . + - + + . . . . . . . . . . . . . . . . . ; ;; \ / / / ; ;; . . . . . . . + - + . + . + . . . . . . . . . . . . . . . . . ; ;; \ / / ; ;; . . . . . + - + . + - + + - + . . . . . . . . . . . . . . . . . . ; ;; / \ / / ; ;; . . . . . + . + + . + . . . . . . . . . . . . . . . . . . . ; ;; \ / / / ; ;; . . . . . + - + + . + . . . . . . . . . . . . . . . . . . . . ; ;; \ / ; ;; . . . . . . . . + - + . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; parts: "b": "data/maps/wastes/parts/box_sm.fus" collmap: ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . ? . . ? . . ? . . ? . . ? . . . . . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . ? . . ? . . ? . . ? . . ? . . ? . . . . . . . ; [b][b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . (.) . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . ? . . ? . . ? . . ? . . ? . . ? . . ? . . . . . . ; [b][b][b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . ? . . ? . . ? . . ? . . ? . . ? . . . . . . . ; [b][b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . ? . . ? . . ? . . ? . . ? . . . . . . . . . ; [b][b][b][b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . ? . . ? . . ? . . ? . . . . . . . . . . ; [b][b][b][b] parts: "b": "data/maps/wastes/parts/box_sm.fus" collmap: ;; ; ;; . . . . . . . . . ? . . ? . . . . . ? . . ? . . . . . . . . ; [b][b] [b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . ? . . . . . ? . . ? . . . . . ? . . . . . . ; [b] [b][b] [b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . ? . . ? . . . . . ? . . ? . . . . . . . . ; [b][b] [b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . (.) . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . ? . . . . . ? . . ? . . . . . ? . . . . . . ; [b] [b][b] [b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . ? . . ? . . . . . ? . . ? . . . . . . . . ; [b][b] [b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . ? . . ? . . . . . . . . . . . . ; [b][b] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; parts: "G": "data/maps/wastes/grid2.fus" | -1 collmap: ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; x x x x x x x ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; x x x x x x x ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; * * * * * * * ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; * * * * * * * ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . (?) . . . . . . . . . . . . . . . . . ; [G] ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; ;; ; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; collmap: ;; + - + ;; / \ ;; + (.) + ;; \ / ;; + - + parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" collmap: ;; ;; ? ? - ! - + [C][C][C] ;; /* * * * * */ ;; + + ;; \* * * * * *\ ;; + + - + + ;; /* * *\ /* */ ;; + - + - + + - + ;; /* * *\ \*/ ;; + - + - + - + + - + ;; / /* * *\ \* * */ ;; + - + - + + - + - + + - + + - + + ;; / / \ \* * * * */* ;; + - + - + - + + ? ? + - + - + + + - + - [c][c] ;; / \ \ \*/ */*\* ;; + + - + ? + + [c] ;; / / / \ \ ;; + + - + - + - + ? ? + + [c][c] ;; \ / S / / ;; + - + . + - + + - + - + + ;; / \ / \ ;; . (+)- + - + - + + - + - + - + ;; / / \ /* ;; + - + + + - + - + - + ;; / \ / * * * ;; + + - + - + - + ;; \ ;; ? ? + [c][c] ;; / ;; ? + [c] ;; / ;; ? + [C] ;; */ ;; . ;; ;; name: "sprucetown" unit: 3 2 0 -1 spawn: "data/maps/sprucetown/start.fus" palette: "data/pal1.fus" tileset: "data/maps/sprucetown/tilesets/earth.fus" submaps: : file: "data/maps/sprucetown/start.fus" pos: (0 0) camera: (6 4) mapper: ("triple") shapes: ########## # VERTEX # ########## "earth_vert0": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 2 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 2 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 4 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 4 : "vert" (0 0 0 0) 0 f eval: 1 + 8 + 6 "earth_vert0_dirt": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 2 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 2 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 6 : "tri" (0 0 0 0) 8 f eval: 1 + 0 + 8 : "tri" (0 0 0 0) 10 f eval: 1 + 0 + 8 "earth_vert0_grass": prismels: : "tri" (0 0 0 0) 0 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 2 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 4 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 6 f eval: 1 + 0 + 7 : "tri" (0 0 0 0) 8 f eval: 1 + 8 + 7 : "tri" (0 0 0 0) 10 f eval: 1 + 8 + 7 "_earth_vert0_flower_third": prismels: : "tri" (-1 0 1 0) 2 f eval: 1 + 8 + 5 : "tri" (-1 0 1 0) 0 f eval: 1 + 8 + 5 : "tri" ( 1 0 0 0) 0 f eval: 1 + 8 + 3 : "tri" ( 1 0 0 0) 2 f eval: 1 + 8 + 3 "earth_vert0_flower": shapes: : "earth_vert0_grass" (0 0 0 0) 0 f : "_earth_vert0_flower_third" (0 0 0 0) 0 f : "_earth_vert0_flower_third" (0 0 0 0) 4 f : "_earth_vert0_flower_third" (0 0 0 0) 8 f ######## # EDGE # ######## "earth_edge0_dirt": # +---+ # ---| |--- # *---+ | | + # ---| |--- # +---+ prismels: : "tri" (1 0 0 0) 11 f eval: 1 + 0 + 2 : "sq" (1 1 0 -1) 0 f eval: 1 + 0 + 6 : "tri" (2 2 0 -1) 5 f eval: 1 + 0 + 2 "_earth_edge0_grass_top": # +---+---+ # --- | | | | --- # + | | | | + # | | | | | | # | +---+ | # | --- --- | # *---+ + prismels: : "sq" (1 0 0 0) 1 f eval: 1 + 0 + 6 : "tri" (1 1 0 0) 2 f eval: 1 + 0 + 2 : "tri" (1 1 0 0) 0 f eval: 1 + 0 + 2 : "tri" (2 1 0 0) 2 f eval: 1 + 0 + 2 : "sq" (2 1 0 0) 11 f eval: 1 + 0 + 6 "_earth_edge0_grass_top_spiky": # Like "_earth_edge0_grass_top" but with different colours, # and some prismels removed (causing spikiness) prismels: : "tri" (1 0 0 0) 1 f eval: 1 + 0 + 6 #: "tri" (1 1 0 0) 2 f eval: 1 + 0 + 2 : "tri" (1 1 0 0) 0 f eval: 1 + 0 + 2 #: "tri" (2 1 0 0) 2 f eval: 1 + 0 + 2 : "tri" (2 1 0 0) 11 f eval: 1 + 0 + 6 "earth_edge0_grass_top": shapes: : "earth_edge0_dirt" (0 0 0 0) 0 f : "_earth_edge0_grass_top" (0 0 0 0) 0 f "earth_edge0_grass_bottom": shapes: : "earth_edge0_dirt" (0 0 0 0) 0 f : "_earth_edge0_grass_top" (0 0 0 0) 0 t "earth_edge0_grass_both": shapes: : "_earth_edge0_grass_top_spiky" (0 0 0 0) 0 f : "_earth_edge0_grass_top_spiky" (0 0 0 0) 0 t prismels: # Like "earth_edge0_dirt" but with different colours : "tri" (1 0 0 0) 11 f eval: 1 + 8 + 2 : "sq" (1 1 0 -1) 0 f eval: 1 + 8 + 6 : "tri" (2 2 0 -1) 5 f eval: 1 + 8 + 2 ######## # FACE # ######## "_earth_face0a_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 0 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 8 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 0 + 1 "_earth_face0a": shapes: : "_earth_face0a_third" (1 1 1 0) 0 f : "_earth_face0a_third" (1 1 1 0) 4 f : "_earth_face0a_third" (1 1 1 0) 8 f "_earth_face0b_third": prismels: : "tri" ( 0 0 0 0) 0 f eval: 1 + 8 + 1 : "tri" ( 0 0 0 0) 2 f eval: 1 + 0 + 1 : "sq" (-1 0 1 0) 0 f eval: 1 + 8 + 1 "_earth_face0b": shapes: : "_earth_face0b_third" (1 1 1 0) 0 f : "_earth_face0b_third" (1 1 1 0) 4 f : "_earth_face0b_third" (1 1 1 0) 8 f "earth_face0": shapes: : "_earth_face0a" (0 0 0 0) 0 f "earth_face0_r1": shapes: : "_earth_face0b" (0 0 0 0) 2 f unit: 3 2 0 -1 verts: "0": when_faces_solid: none: "earth_vert0_grass" some: "earth_vert0" all: "earth_vert0_dirt" "1": "map_vert0" "2": "map_vert1" "@": "map_bgvert" edges: "0": when_faces_solid: neither: "earth_edge0_grass_both" bottom: "earth_edge0_grass_top" top: "earth_edge0_grass_bottom" both: "earth_edge0_dirt" "1": "map_edge0" "2": "map_edge1" "=": "map_bgedge" faces: "0": "earth_face0" "earth_face0_r1" "1": "map_face0" "2": "map_face1" "3": "map_face3" "S": "map_savepoint" "M": "map_minimap" "w": frame_offset(1) "map_water" "o": "map_bgface" "E": frame_offset(1) "map_face_energy_on" "e": "map_face_energy_off" collmap: ;; ;; . . . . . . . . . . . . . . . + - + . . . . . . . . . . ;; / \ ;; . . . . + - + - + - + = @ = @ = @ = @ = @ = @ = + . + . . . . . . . . . ;; / \ / / / ;; . . . . + . - + - . + = @ = @ = @ = + - + - + + + . . . . . . . . . . ;; / / / / = / / / ;; . . . + + . + + @ . . + . - + - + + . . . + - + . + - + . . ;; / / / / = = \ \ \ / \ / \ ;; . . . + . - + - . + . @ . @ + - + - + + + . . + . + + . + . . ;; \ / = = \ \ \ = \ / \ / ;; . . . + - + - + - + . . @ @ . . . + . + = @ = @ = + - + . + - + . . ;; = = = = = \ / = = ;; . . . @ @ . @ . . + -(+)- + - + - + . + - + @ @ . . . . . + - + = @ = @ = @ ;; = = = / \ = = / \ ;; . . . @ . @ @ . . + . - + - + - . + . . . @ . . . . . + . + ;; = = = \ / = = = \ / ;; . . . @ . . @ . . . + - + - + - + - + @ . . @ @ . . . . . + - + = @ = @ ;; = = = = = = = ;; . . . @ . . @ @ . . . @ . . . . @ . @ . + - + - + . + - + . . ;; = = = = = = \ \ / \ ;; . . . + - + - + - + = @ = @ = @ = @ = @ = @ = @ = @ = @ = @ = + - + . . + . + + . + . . ;; / \ = = / \ \ / \ / ;; . . + . - + - . + . @ . . . @ . . . + . + . . + - + . + - + . . ;; \ / = = / / \ \ ;; . . . + - + - + - + . . @ + - + . @ . . + + + + . . . . . . . . . ;; = = / \ = = \ \ / / ;; . . . @ + - + . . . + . + . @ . @ + . + . . . . . . . . . ;; = / \ \ \ \ = = \ / ;; . . . + . + . . . + + + . @ + - + + - + . . . . . . . . . . ;; \ / \ \ \ = / \ = ;; . . . + - + = @ = @ = @ = @ = + . + . + . + . . . . . . . . . . . ;; \ / \ / ;; . . . . . . . . . + - + = @ = @ = + - + . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . $SET_STR WM "data/maps/bridges/" name: "bridges" unit: 3 2 0 -1 spawn: $PREFIX WM "start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" submaps: : file: $PREFIX WM "start.fus" pos: (0 0) camera: (2 0) mapper: ("triple") : file: $PREFIX WM "start2.fus" pos: (28 -1) camera: (8 0) mapper: ("triple") collmap: ;; . . . . . @ . . . . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . @ . . . . . . . . . . . . . . . . . . . . ;; = \ / ;; . . . . . . @ . . . . . . . . . . . . . . . . - + - . . ;; = / \ ;; . . . . . . . @ . . . . . . . . . . . . . . . . . . . ;; = \ / ;; . . . . . . . @ . . . . . . . . . . . . . . . . . - + - . ;; / \ ;; . . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . ;; /* \ \ / ;; . . . . . . . . . + . . + . . . . . . . . . - + - . . . . ;; \* * * * \ / \ ;; . . . . . . . . . . + - + - + - + - + - + - + - + - + @ = @ = @ = @ = @ = @ = @ = @ = @ ;; = o o o o o o o o o o o o o o ;; . . . . @ = @ = @ . . . . . + . . . . . . . . . . . . . . . ;; =o o o o o= \ o o o o o o o o o o o ;; . . . . @ . . @ = @ . . . . + . . . . . . . . . @ = @ = @ = @ = @ = @ ;; =o o o o o o o o o= = \ / ;; . . . . @ . . . . @ . . . . + - + - + - + - . . . . . . . . . - + - . . ;; =o o o o o o o o o o= / / \ \ / ;; @ = @ = @ = @ = + - + - + - + . . @ . . . + . . . . . . . . . . . . . . - + - . ;; /* * * \o o o o o= = / \ ;; . . . + . - + - . (+)- + - + = + - + - + - + - + - + - + - + - + - + - + - + . . . . @ = @ = @ = @ ;; \* * * * / / * * */ = = o o o o ;; @ = @ = @ = + - + - + - + . . + . + . . . . @ . @ . . . . . . . . . . ;; \ * */ = = o o o o ;; . . . . . . . . . + - + = + - + . . - + - + - + - + - . . . @ = @ = @ = @ = @ = @ = @ ;; \ = ;; . . . . . . . . . . . . + . . . . . @ . . . . . . . . . ;; / = \ / ;; . . . . . . . . . . + - + . . . . . . @ . . . . . . . - + - . ;; / *\ = / \ ;; . . . . . . . . . + . + . + - + - . . . - + - + - + - + - + . . . . ;; \ * * *\ /* ;; . . . . . . . . . + - + - + - + - + . . . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . . . . . . . . - + - . . ;; / \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ / \ / ;; . . . . . . . . . . . . . . . . . . . - + - . . . . . - . - . ;; / \ / \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "T": "data/maps/water/water_tri8.fus" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . . . . . ? . . . . . . . . . . . . . . [T] [T^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . (?) . . . . . . . ? . . . . . . . ? . . . . . . . . . . [T] [T] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "t": "data/maps/water/water_tri4.fus" collmap: ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . ? . . . ? . . . . . . . . . . [t] [t^3] ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . (?) . . . ? . . . . . . . . . . . . [t] [t] ;; ;; . . . . . . . . . . . . . . . . . . parts: "T": "data/maps/water/water_tri8.fus" "a": "data/maps/water/air_bubble_sm.fus" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "water_exit" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . . . . . . . . . . . . [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . ? . . . . ? . . . . . . . . . . . . . . [T][a|1][T^3] ;; ;; . . . . . . . . . . ? . . . . . . . . . . . . . . . . . [D] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . (?) . . . . . . . ? . . . . . . . ? . . . . . . . . . . [T] [T] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "l": location "hermit_exit" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "hermit_entrance" collmap: ;; + - + ;; \*/ ;; + - + - + + - + - + + + - + ;; / \ / /*\ / \ ;; + + + + + + . + ;; \ \*/ /*\ ;; . . . . . + . . . . . . . + + + . . . . . . . . . . . . ;; \*/ ;; . . . . . . . . . . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . + . + . . . + - + . . . . . . . . . . . ;; \ /*\ /*\ \ ;; . . . . . . . . . . + + - + . . + - + + . . . . . . . . . . ;; /*\ \ / ;; . . . . . . . . . + + . . . . + - + . . . . . . . . . . . ;; \*/ \ ;; . . . . . . . . . . + . . . . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . ? . . . . . (!)- + . . . . . . . . . . . . . [D] [l] ;; /* * *\ ;; . . . . . + - + - + - + . . + - + - + - + . . . . . . . . . . . . . ;; \* * */ ;; . . . . . . . + - + . . . . . . . . . . . . . . . . . . . ;; / ;; . . . . . . + . . . + . . . . . . . . + - + . . . . . . . ;; /*\ \* *\ ;; . . . . . . . . . + - + + . . . . . . . + + + . . . . . . ;; /* * * * *\ /*\ \* *\ ;; . . . . . . . . + - + - + + - + . + - + . + - + + + - + . . . . . . ;; \* * */ /* */ \* * */ ;; . . . . . . . . . . . + - + . + - + . . + - + . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "t": "data/maps/water/water_tri4.fus" collmap: ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . ? . . . . . . . . [] [t^3] ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . ? . . . ? . . . ? . . . . . . [t] [t t^3] [t^3] ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . . . . . (?) . . . ? . . . . . . . . [t] [] ;; ;; . . . . . . . . . . . . . . . . . . parts: "c": recording "data/recs/coin.fus" "C": recording "data/recs/coin_crouch.fus" "l": "data/maps/wilderness/start_line2.fus" "L": "data/maps/wilderness/start_line3.fus" "m": "data/maps/wilderness/start_line4.fus" "M": "data/maps/wilderness/start_line5.fus" "E": location "water_entrance" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "water_exit" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * ;; . . . . . . . - . - . . . . . . . . . . . . . . . . . . . . . . . . ;; * * \ ;; . . . . . . . . . - . . . . . . . . . . . . . . . . . . . . . . ;; * S \ ;; . . . . . - + - + - + - + . . - . - . - . . . . . . . . . . . . . . . . . . . ;; * * \w w w w w w w w w w\ ;; . . . . . . . ? + . . . . . - . . . . . . . . . . . . . . . . . [D] ;; * * w w w w w w w w w w w w w\ ;; . . . . . . . - + - + - ! - + - + - + . . . . . . . . . . . . . . . . . . . [E] ;; /w w w w w\w w w w w w\ ;; . . . . . . . . . + . - . + - + - + . . . . . . . . . . . . . . . . ;; /w w/w w w w w w w w w\w w\ ;; . . . . . . . . . + . . . . . + . . . . . . . . . . . . . . . . ;; /w w/w w w w w w w w w w/w w/ ;; . . . . . . . . + . . + - + - + - + . . . . . . . . . . . . . . . . ;; /w w w\w w w w w w w w w w w/ ;; . . . . . . . . + . . . . . . . . . . . . . . . . . . . . . . . ;; /w w w w/*\w w w w w w w w w/ ;; . . . . . . . . . . - . - . - . - . - . - + - + - + . . . . . . . . . . . . . ;; /w w w w/w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . . . . . . . . + - + - + . . . . . . . . . . . ;; /w w w w/w w w w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . . . . . . . . . . + . . . . . . . . . . ;; \w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . - + -(+)- + . . . . . . . + . . . . . . . . . . ;; \w w w w w/ \w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . - . - . . + . . . . . . . . . + . . . . . . . . . ;; \w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . . + - + . . . . . . . . + . . . . . . . . . ;; \w w w w w w w w w w w w w w w w w/ ;; . . . . . . . . . . . + - + + - + - + . . . . . + . . . . . . . . . ;; /w w w\ /w w w w w w w w w w w w/ ;; . . . . . . . . . . . + . + - + - + . . . . . + - + . . . . . . . . . ;; \w w w w w w w w w w w w w w w w w w w w w w\ ;; . . . . . . . . . . . + - + . . . . . + - + - + . + . . . . . . . . ;; \w w w w w w w w w w w w \w w w/ ;; . . . . . . . . . . . . . + . . . . . . . + - + . . . . . . . . . ;; \w w w w w w w w w w w ;; . . . . . . . . . . . . . + - + - + - + - + - + . . . . . . . . . . . . name: "water" unit: 3 2 0 -1 spawn: "data/maps/water/start.fus" #palette: "data/pal1.fus" palette: "data/maps/water/pals/deeps.fus" #palette: "data/maps/demo/pals/light_dark_cycle.fus" tileset: "data/tileset1.fus" vars: nosave "num_coins_a": 10 "coins_a": F submaps: : pos: (0 0) camera: (3 2) mapper: ("triple") recs: : "data/maps/water/recs/water_roller_000.fus" : "data/maps/water/recs/water_roller_001.fus" : "data/maps/water/recs/water_roller_002.fus" : "data/maps/water/recs/water_roller_003.fus" : "data/maps/water/recs/flier_000.fus" : "data/maps/water/recs/flier_001.fus" : "data/maps/water/recs/roller_chain_000.fus" empty 0 : "data/maps/water/recs/roller_chain_000.fus" empty 100 : "data/maps/water/recs/roller_chain_000.fus" empty 200 : "data/maps/water/recs/roller_chain_000.fus" empty 300 : "data/maps/water/recs/roller_chain_000.fus" empty 400 : "data/maps/water/recs/roller_chain_000.fus" empty 500 : "data/maps/water/recs/roller_chain_000.fus" empty 600 : "data/maps/water/recs/roller_chain_000.fus" empty 700 : "data/maps/water/recs/roller_chain_000.fus" empty 800 : "data/maps/water/recs/roller_chain_000.fus" empty 900 : "data/maps/water/recs/death_flier_chain_000.fus" empty 0 : "data/maps/water/recs/death_flier_chain_000.fus" empty 20 : "data/maps/water/recs/death_flier_chain_000.fus" empty 25 : "data/maps/water/recs/death_flier_chain_000.fus" empty 35 : "data/maps/water/recs/death_flier_chain_000.fus" empty 50 submaps: : file: "data/maps/water/start.fus" : file: "data/maps/water/bubble_sm.fus" pos: (16 -7) camera: (0 0) submaps: : file: "data/maps/water/rubble.fus" pos: (5 -2) : file: "data/maps/water/bubble_sm.fus" pos: (16 6) camera: (0 0) : file: "data/maps/water/bubble_sm.fus" pos: (26 6) camera: (0 -5) : file: "data/maps/water/room_sm_bubble1.fus" pos: (42 0) camera: (0 0) mapper: ("double") : file: "data/maps/water/air_bubble_walled_sm.fus" pos: eval: (42 0) + (10 -9) camera: (0 0) : bg file: "data/maps/water/air_bubbles_walled1_bg.fus" pos: eval: (42 0) + (29 10) + (0 -12) tileset: "data/tileset1_bg.fus" : file: "data/maps/water/air_bubbles_walled1.fus" pos: eval: (42 0) + (29 10) camera: (-1 -4) recs: : "data/maps/water/recs/air_bubbles_walled1_roller_000.fus" empty 0 : "data/maps/water/recs/air_bubbles_walled1_roller_000.fus" empty 1000 : "data/maps/water/recs/air_bubbles_walled1_roller_000.fus" empty 2000 : "data/maps/water/recs/air_bubbles_walled1_roller_000.fus" empty 3000 submaps: : file: "data/maps/water/bubble_sm.fus" pos: (14 -6) camera: (0 0) mapper: ("double") : file: "data/maps/water/air_bubbles_walled1_tunnel.fus" pos: (24 7) camera: (0 0) mapper: ("quadruple") submaps: : file: "data/maps/water/air_bubbles_walled1_tunnel_blocker.fus" visible: ! mapvar("coins_a") pos: (-7 -1) : file: "data/maps/water/room_sm_bubble2.fus" pos: eval: (42 0) + (20 -19) camera: (0 5) : file: "data/maps/water/water_hex8_bite.fus" pos: eval: (42 0) + (20 -19) + (16 2) camera: (8 8) : file: "data/maps/water/water_tri16_bite.fus" pos: eval: (42 0) + (20 -19) + (25 4) camera: (10 10) collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + - + - + - + . . . . . . . . . . . . . ;; x x x x x x x\ ;; . . . . . . . . . . + - + . . . + + . . . . . . . . . . . ;; /x x x\x x x x x x x/x x x\ ;; . . . . . . . . . + . + . . + . + . . . . . . . . . . . ;; /x x x x x x x x x x x x x x x\ ;; . . . . . . . . . + . . . . . . . + . . . . . . . . . . ;; /x x x x x x x x x x x x x x x x x\ ;; . . . . . . . . + . . . . . . . . + . . . . . . . . . . ;; x x x x x x x x x x x x x x x x x/ ;; . . . . . . . . . + - + . . (.) . . + - + . . . . . . . . . . ;; /x x x x x x x x x x x x x x x x x ;; . . . . . . . . + . . . . . . . . + . . . . . . . . . . ;; \x x x x x x x x x x x x x x x x x/ ;; . . . . . . . . . + . . . . . . . + . . . . . . . . . . ;; \x x x x x x x x x x x x x x x/ ;; . . . . . . . . . + . + . . + . + . . . . . . . . . . . ;; \x x x/x x x x x x x\x x x/ ;; . . . . . . . . . . + + . . . + - + . . . . . . . . . . . ;; \x x x x x x x ;; . . . . . . . . . . . + - + - + - + . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "T": "data/maps/water/water_tri8.fus" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . ? . . . . . . . . . . [] [T^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . . . . . ? . . . . . . . ? . . . . . . [T] [T T^3] [T^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (?) . . . . . . . ? . . . . . . . . . . [T] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; parts: "b": "data/maps/water/bubble_sm.fus" collmap: ;; ;; . . . . . . . + - + . . . . . . . . . . . . . . . . . . . ;; \* *\ ;; . . . . . . . . + + . . . . . . . . . . . . . . . . . . ;; \*/ ;; . . . . . . . . + . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ? . . . . . . . . . . . . [b] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . . . . . + . + . . . ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . (.) . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w S w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . . . . . + . + . . . ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; parts: "a": "data/maps/water/air_bubble_walled_sm.fus" "b": "data/maps/water/bubble_sm.fus" "s": "data/maps/water/save.fus" "c": recording "data/recs/coin.fus" vars: "collected_key": "coins_a" "num_key": "num_coins_a" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ? . . . . . . . . . . . . . . . [a] ;; ;; . . . . . . . . . . . . . . . . . . . . ? . . . . . . . [b] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; *\ ;; . . . . . . . . . ? . . . . . . . . . . . . . . . + . . [c] ;; * */ ;; . . . . . . . . . . . ? . (?) . . . . ? . ? . . . . + . . [c][c] [c][c] ;; * */ ;; . . . . . . . . . . . . . . . . . . . . . ? . . + . . . [c] ;; \*/ ;; . . . . . . . . . . ? . ? . . . . . . . . . . . + . . . [c][c] ;; ;; . . . . . . ? . . . ? . . . . . . . . . . . . . . . . . [s|1][a] ;; ;; . . . . . . . . . . . . . . . . . . . ? . . . . . . . . [a] ;; ;; . . . . . . . . . . . . . . . . . ? . ? . . . . . . . . [c][c] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . + - + . . . ;; \*/ ;; . . . . . . . . . . . . . . . . . . . . + - + . + . . . . ;; \* *\ \ ;; . . . . . . . . . . . . . . . . . . . + - + + - + . + . . . ;; /* * *\ /*\ ;; . . . . . . . . . . . . . . . . . . + . + - + - + - + + - + . . ;; \* * * * */ \* * */ ;; . . . . . . . . . . . . . . . . . . . + - + - + . . + - + . . ;; collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . (.) . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; x x x x x x x ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; S ;; (+)- + ;;spawn: (2 3) 0 n collmap: ;; ;; + - + + - + ;; /* * *\ /* */ ;; + + - +%- + - + + [1] ;; \* * * * * *\ \* * * *\ ;; + + - + + + - + ;; /* * * */ \*/ ;; (+)- + - + + ;; collmap: ;; ;; . . . . ;; x x x x x x x ;; . . . . . ;; x x x x x x x x x ;; . . . . . . ;; x x x x x x x x x x x ;; . . . (.) . . . ;; x x x x x x x x x x x ;; . . . . . . ;; x x x x x x x x x ;; . . . . . ;; x x x x x x x ;; . . . . ;; collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . + - + . . . ;; /* */ ;; . . . . . . . . . . . . . . . . . . . . + - + - + + . . . . ;; \* * * * * *\ ;; . . . . . . . . . . . . . . . . . . . (+)- + - + . . + . . . ;; /* * * * * * * * * * *\ ;; . . . . . . . . . . . . . . . . . . + . . + - + - + + - + . . ;; \* * * * */ \* * */ ;; . . . . . . . . . . . . . . . . . . . + - + - + . . + - + . . ;; collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . . . . . + . + . . . ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . (.) . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w S w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . . . . . + . + . . . ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; parts: "b": "data/maps/water/air_bubble_sm.fus" "B": "data/maps/water/air_bubble_walled_sm.fus" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . . . . . + . + . . . ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . ? . . . . . . . . . . . . [b] ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . (.) . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; w S w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; / \w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w/ \ ;; . . . . + . + . . . . . . . . . . . ? . . . + . + . . . [B] ;; \ /w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w w\ / ;; . . . . . + - + . . . . . . . . . . . . . . . . + - + . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; ;; + - + - + ;; /* * * * *\ ;; + + - + + ;; /* */ \* *\ ;; + + + + ;; \* *\ /* */ ;; + -(+)- + - + collmap: ;; ;; + - + - + - + ;; /*\*/*\*/*\*/*\ ;; + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + -(+)- + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + ;; \*/*\*/*\*/*\*/ ;; + - + - + - + ;; collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + + + + . . . . . . . . . . . . . ;; w w w w w w w ;; . . . . . . . . . . + . . . . . + . . . . . . . . . . . ;; w w w w w w w w w w w w w ;; . . . . . . . . . + . . . . . . + . . . . . . . . . . . ;; w w w w w w w w w w w w w w w ;; . . . . . . . . . + . . . . . . . + . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w ;; . . . . . . . . + . . . . . . . . + . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w ;; . . . . . . . . . . . . . (.) . . . . . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w ;; . . . . . . . . + . . . . . . . . + . . . . . . . . . . ;; w w w w w w w w w w w w w w w w w ;; . . . . . . . . . + . . . . . . . + . . . . . . . . . . ;; w w w w w w w w w w w w w w w ;; . . . . . . . . . + . . . . . . + . . . . . . . . . . . ;; w w w w w w w w w w w w w ;; . . . . . . . . . . + . . . . . + . . . . . . . . . . . ;; w w w w w w w ;; . . . . . . . . . . . + + + + . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; . . . . . . . . ;; ;; . . . . . . . . ;; w ;; . . . . . . . . ;; w w w ;; . . . . . . . . ;; w w w w w ;; . . . . . . . . ;; w w w w w w w ;; . (.) . . . . . . ;; ;; . . . . . . . . ;; parts: "T": "data/maps/water/water_tri8.fus" "a": "data/maps/water/air_bubble_sm.fus" collmap: ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . ? . . . . . . . ? . . . . . . . . . . [] [T^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . ? . . . . . . . ? . . . . . . . ? . . . . . . [T] [T T^3] [T^3] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . ? . . . . . . . . . . [a|1] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . (?) . . . . . . . ? . . . . . . . . . . [T] [] ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; anim: "anim/flier.fus" state: "hover" pos: ( -29 3) rot: 0 turn: no keys: x: y: u: d: l: r: data: " w10+u w37+r w3-r w32+l w3-l w32+r w2-r w6+l w3-l w15+r w4-r w13+l w2-l w52+r w5-r w12+l w6-l w91+l w3-l w7+r w3-r w43+l w4-l w59+r w3-r w13+l w3-l w14+r w4-r w18+l w6-l w57+r w1-r w14+l w7-l w19+r w6-r w21+l w3-l w10+r w4-r w31+l w4-l w8+r w9-r w13+l w6-l w14+r w4-r w15+l w3-l w15+r w6-r w13+l w5-l w60+r w2-r w13+l w5-l w21+r w2-r w27+l w3-l w13+l w20" anim: "anim/water_roller.fus" state: "stand" pos: ( 25 10) rot: 0 turn: no keys: x: y: u: d: l: r: data: " w68+l w49-l w100+l w64-l w122+l w60-l w123+r w29-r w43+l w117-l w97+l w30-l w100+l w92-l w112+r w24-r w65" anim: "anim/roller.fus" state: "stand" pos: ( 69 11) rot: 4 turn: no keys: x: y: u: d: l: r: is was data: " w220+d w32-d w185+d w22-d w14+d w55-d w238+d w30-d w215+d w30-d w241+d w28-d w6-r w1+l w28+d w55-d w1-l w1+l w8-l w14+d w2+l w4-l w1-d w16+d w4-d w6+r w4-r w7+d w3-d w1+r w98-r w1+l w169-l w2+r w45+d w17-d w1-r w1+l w21+d w29-d w239+d w42-d w243-l w2+r w33-r w1+d w2+r w67-d w30+d w27-d w14+d w10-r w4+l w35-d w123" anim: "anim/water_roller.fus" state: "stand" pos: ( 88 12) rot: 1 turn: yes keys: x: y: u: d: l: r: data: " w54+r w27-r w128+r w24-r w162+r w16-r w8" anim: "anim/death_flier.fus" state: "hover" pos: ( -1 -41) rot: 1 turn: no keys: x: y: u: d: l: r: data: " w13+u w173+l w7-l w15-u w56+u w132+l w3-l w18-u w43" anim: "anim/water_roller.fus" state: "stand" pos: ( 95 21) rot: 1 turn: no keys: x: y: u: d: l: r: data: " w213+r w46-r w194+l w24-l w6+d w7+r w18-d w1-r w27+l w4-l w120+r w24" anim: "anim/flier.fus" state: "hover" pos: ( 67 -6) rot: 2 turn: yes keys: x: y: u: is was d: l: r: data: " w11+r w2-r w15+r w2-r w15+r w2-r w16+r w2-r w12+r w2-r w12+r w4-r w28+r w1-r w6+l w2-l w31+l w7-l w13+r w6-r w5-u w12+l w2-l w5+u w18+r w2-r w14+r w3-r w21+r w3-r w23+r w4-r w21+r w4-r w19+r w3-r w12+r w2-r w16+r w3-r w18+l w3-l w18-u w4+l w2-l w14+u w5-u w6+r w2-r w7+u w6-u w4+l w3-l w7+u w11+r w3-r w16-u w6+l w2-l w32+l w5-l w10+u w11+l w1-u w2-l w19+l w2-l w5+r w2-r w4+r w3-r w6+r w2-r w18+r w4-r w16+u w5-u w3+l w2-l w21+u w13+r w2-r w11+l w2-l w15+l w4-l w12+r w3-r w15+l w3-l w14+r w4-r w10+l w3-l w15+r w2-r w4+l w3-l w14+r w3-r w17+l w12-l w6-u w14+r w7-r w18+r w7-r w21+l w8-l w3+u w36+l w2-l w58+r w8-r w16-u w12+r w10-r w15+u w6+l w3-l w16+r w3-r w14+l w7-l w6-u w24+l w1-l w10+r w5-r w25+u w5+l w2-l w6-u w14+r w4-r w11+u w12+l w2-l w4+r w4-r w18+l w3-l w17+l w4-l w24+r w14-r w24+l w2-l w1-u w15+l w1-l w9+r w2-r w13+u w2-u w7+r w1-r w11+u w15-u w9+r w5-r w32+u w9+l w6-l w12+r w4-r w9+l w3-l w17+r w4-r w15+l w3-l w8+r w3-r w15+r w2-r w39+r w2-r w9+l w3-l w17+r w4-r w17+l w2-l w7+r w6-r w14+l w4-l w10+r w3-r w10+l w7-l w18+r w4-r w19+r w2-r w6+l w3-l w15+r w3-r w13-u w23+l w2-l w3+r w2-r w11+u w10-u w23+r w2-r w5+u w9+r w2-r w16+r w2-r w3" resets_position: no anim: "anim/roller.fus" state: "stand" pos: ( 47 -6) rot: 0 turn: yes keys: x: y: u: d: l: r: data: " w32+r w16-r w29+l w4-l w29" anim: "anim/water_roller.fus" state: "stand" pos: ( 95 16) rot: 5 turn: no keys: x: y: u: d: l: r: data: " w123+l w33-l w39+r w2-r w86+l w18-l w96+l w9" colors: : 0 0 0 : 0 0 127 : 80 127 127 : 0 80 127 : 127 80 80 : 0 127 80 : 80 0 127 : 0 80 127 : 100 100 100 : 60 80 100 : 60 255 120 : 20 120 255 : animate: : (200 30 90) 30 : (200 60 60) 30 : 0 220 20 : 20 110 40 : 100 200 100 255: animate: : ( 0 20 0) 30 : ( 0 20 40) 90 : ( 0 0 30) 30 : ( 0 30 45) 90 : ( 10 0 20) 30 : ( 10 10 35) 60 parts: "e": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_e_open" collmap: ;; ;; . . . . . . . . . ;; ;; . . . + - + . . . ;; /*\*/*\ ;; . . . + -(?)- + . . . [e] ;; \*/*\*/ ;; . . . + - + . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . ;; ;; . . . . . . + . . . . . . ;; / ;; . . . . . . + . . . . . . ;; \ ;; . . . . . . + . . . . . . ;; / ;; . . . . . . + . . . . . . ;; / ;; . . . . . + . . . . . . . ;; / ;; . . . . . + . . . . . . . ;; \ ;; . . . . . + . . . . . . . ;; \ ;; . . . . . . + . . . . . . ;; \ ;; . . . . . . + . . . . . . ;; \ ;; . . . . . . . + . . . . . ;; \ ;; . . . . . . . + . . . . . ;; \ ;; . . . . . . . . + . . . . ;; \ ;; . . . . . . . . + . . . . ;; \ ;; . . . . . . . . . (+) . . . ;; parts: "s": recording "data/recs/switch.fus" visible: mapvar("switch2") vars: "key": "switch3" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ! - + . + - + - + - + - . [s] ;; /* * *\ / ;; . . . . . . . . + - + - + - + - + - + - + . . . . . ;; / ;; . . . . . . - + -(+) . . . . . . . . . . . ;; collmap: ;; . . . . . . . . . ;; * * * * * * * * * * * * ;; . . . . . . . . . . ;; * * * * * * * * * * * * * * ;; . . . . . . . . . . . ;; * * * * * * * * * * * * * * ;; . . . . . . . . . . . . ;; * * * * * * * * * * * * * * * * ;; . . . . . . . . . . . . . ;; * * * * * * * * * * * * ;; . . . . . . . (.) . . . . ;; * * * * * * * * * * ;; spawn: (-1 -4) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" "d": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_d_open" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + - + = @ = @ = @ = + - + - + . . . . . . . . . . . . ;; /*\*/*\*/ \*/*\*/*\ ;; . . . . . + - + - + . . . . + - + - + . . . . . . . . . . . . ;; /*\*/ \*/*\ ;; . . . . + - + . . . . . . . + - + . . . . . . . . . . . ;; = = ;; . . . . @ . . . . . . . . . . @ . . . . . . . . . . . ;; =o = ;; . . . (+)- + . . . . . . . . . . @ . . . . . . . . . . ;; /*\*/*\ = ;; . . . + - ? - + . . . . . . . . . . @ . . . . . . . . . . [a^3] ;; \*/*\*/ o= ;; . . . + - + . . . . . . . . . . + - + = @ = @ = @ = @ = @ . . . . ;; = = / \o ;; . . . . @ @ . . . . . . . . . + ? + . . . . . . . . . [d] ;; = = /*\ / ;; . . . . + - + . . . . . . . . + - + - + . . . . . . . . . ;; /*\*/*\ \*/*\*/o ;; . . . . + - ? - + . . . . . . . . + - + = @ = @ = @ = @ = @ = @ . . . . [b^3] ;; \*/*\* ;; . . . . + . + . . . . . . . . . . . . . . . . . . . ;; *\*/*\ ;; . . . . . + - ! - + . . . . . . . . . + . . . . . . . . . [c] ;; \*/*\*/ \ ;; . . . . . + - + . . . . . . . . . . + . . . . . . . . ;; \* * / ;; . . . . . . + + . . . . . . . . + - + . . . . . . . . . ;; \* * /*\*/o ;; . . . . . . + - + - + . . . . . . + - + = @ = @ = @ . . . . . . ;; \ / ;; . . . . . . . . . + - + . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . (.) . . ;; ;; . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . . ;; S ;; . . . . . . . . . parts: "s": recording "data/recs/switch_oneway.fus" vars: "key": "switch1" collmap: ;; ;; + - + - + - . . - + - + - + ;; / \ ;; + . + ;; ;; . ;; S ;; (+)- + - + - . ! - + [s] ;; /*\*/*\ \*/ ;; + - + - + + ;; / */*\*/ \ / \ ;; - + - + + + + + ;; \ \ / / / ;; . + + ;; / / \ ;; + + ;; \ ;; . collmap: ;; ;; . . . + - + . . . ;; / \ ;; . . . . . . . . ;; ;; . . . (.) . . . . ;; name: "tutorial3" unit: 3 2 0 -1 spawn: "data/maps/tutorial3/floaty_start.fus" palette: "data/pal1.fus" tileset: "data/tileset1.fus" vars: "switch1": F "switch2": F "switch3": F "start5_switch_a": F "start5_switch_b": F "final_switch": F nosave "start_eye_a_open": 0 nosave "start_eye_b_open": 0 nosave "start_eye_c_open": 0 nosave "start_eye_d_open": 0 nosave "start_eye_e_open": 0 submaps: "floaty_start": file: "data/maps/tutorial3/floaty_start.fus" pos: eval: (-7 0) camera: (0 0) mapper: ("quadruple") "start": file: "data/maps/tutorial3/start.fus" pos: eval: (0 0) camera: (6 0) mapper: ("triple") submaps: : file: "data/maps/tutorial3/start_save.fus" visible: ! mapvar("switch1") inherit_rot : file: "data/maps/tutorial3/start_save_alt.fus" visible: mapvar("switch1") inherit_rot : file: "data/maps/tutorial3/final_switch.fus" pos: (0 -10) submaps: : file: "data/maps/tutorial3/final_switch_blocker.fus" visible: ! mapvar("switch3") : file: "data/maps/tutorial3/start_exit.fus" pos: (3 -5) tileset: "data/tileset2.fus" submaps: : file: "data/maps/tutorial3/start_exit_blocker.fus" visible: ! mapvar("final_switch") "blocker": file: "data/maps/tutorial3/blocker.fus" pos: (-8 -20) rot: 3 mapper: ("triple") "start2": file: "data/maps/tutorial3/start2.fus" pos: eval: (0 0) + (11 -14) rot: 1 camera: (11 3) mapper: ("triple") tileset: "data/tileset2.fus" recs: : relative (-1 -4) 0 n "data/recs/roller_r.fus" : relative ( 8 -9) 0 n "data/recs/roller_l.fus" #: relative (11 -2) 0 n "data/recs/death_roller_r.fus" # visible: mapvar("switch3") : relative ( 0 0) 0 n "data/recs/death_roller_l.fus" visible: mapvar("switch3") : relative ( 4 4) 0 n "data/recs/death_roller_r.fus" visible: mapvar("switch3") : relative (10 4) 0 n "data/recs/death_roller_l.fus" visible: mapvar("switch3") submaps: : file: "data/maps/tutorial3/start_save.fus" visible: ! mapvar("switch1") inherit_rot "start3": file: "data/maps/tutorial3/start3.fus" pos: eval: (0 0) + (11 -14) + (7 -16) rot: 2 camera: (6 9) mapper: ("triple") tileset: "data/tileset1.fus" recs: : "data/maps/tutorial3/recs/start3_spider000.fus" submaps: : file: "data/maps/tutorial3/start_save.fus" visible: ! mapvar("switch1") inherit_rot : file: "data/maps/tutorial3/start_save_alt.fus" visible: mapvar("switch1") inherit_rot : file: "data/maps/tutorial3/lone_eye.fus" pos: (-7 4) : file: "data/maps/tutorial3/start3_switched_a.fus" visible: mapvar("switch2") pos: (0 10) submaps: : file: "data/maps/tutorial3/start3_switched_b.fus" inherit_visible pos: (11 2) : file: "data/maps/tutorial3/start3_switched_blocker.fus" visible: if all: mapvar("switch2") not mapvar("switch3") then T else F pos: (0 10) camera: (2 0) : file: "data/maps/tutorial3/miniblocker_line.fus" visible: if all: mapvar("switch1") not mapvar("switch2") then T else F pos: (-1 4) "start4": file: "data/maps/tutorial3/start4.fus" pos: eval: (0 0) + (11 -14) + (7 -16) + (0 -12) rot: 3 camera: (-5 3) mapper: ("triple") tileset: "data/tileset2.fus" recs: : relative (-1 -4) 0 n "data/recs/death_roller_r.fus" submaps: : file: "data/maps/tutorial3/start4_switched.fus" visible: mapvar("switch1") pos: (-5 -2) "blocker4": file: "data/maps/tutorial3/blocker.fus" pos: (-30 0) rot: 4 mapper: ("triple") tileset: "data/tileset1.fus" "start5": file: "data/maps/tutorial3/start5.fus" pos: eval: (0 0) + (11 -14) + (7 -16) + (0 -12) + (-10 -8) rot: 4 camera: (-5 0) mapper: ("triple") tileset: "data/tileset1.fus" recs: : relative (-1 -4) 0 n "data/recs/death_roller_r.fus" : relative (11 -2) 0 n "data/recs/death_roller_l.fus" submaps: : file: "data/maps/tutorial3/start5_stick1.fus" visible: mapvar("start5_switch_a") pos: (-15 -10) rot: 3 : file: "data/maps/tutorial3/start5_stick2.fus" visible: mapvar("start5_switch_b") pos: (-12 -1) rot: 4 : file: "data/maps/tutorial3/start_save_alt.fus" inherit_rot : file: "data/maps/tutorial3/end.fus" pos: (2 -7) camera: (3 14) mapper: ("double") : file: "data/maps/tutorial3/start5_alt.fus" visible: mapvar("switch1") pos: (-9 -9) parts: "b": "data/maps/tutorial3/miniblocker.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . ? . ? . ? . ? . . . . . . . . . . [b][b][b][b] ;; ;; . . . . . . . . . . . . . . . . . . ;; ;; . ? . ? . ? . ? . ? . ? . ? . ? [b][b][b][b][b][b][b][b] ;; ;; . . . . . . . . (.) . . . . . . . ;; ;; . ? . ? . ? . ? . ? . ? . ? . ? [b][b][b][b][b][ ][b][b] ;; ;; . . . . . . . . . - . . . . - . . . ;; * * spawn: (-1 -4) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" "d": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_d_open" "A": recording "data/recs/switch.fus" vars: "key": "start5_switch_a" "B": recording "data/recs/switch.fus" vars: "key": "start5_switch_b" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + - + = @ = @ = @ = + - + - + . . . . . . . . . . . . ;; /*\*/*\*/ \*/*\*/*\ ;; . . . . . + - + - + . . . . + - + - + . . . . . . . . . . . . ;; /*\*/ \*/*\ ;; . . . . + - + . . . . . . . + - + . . . . . . . . . . . ;; = = ;; . . . . @ . . . . . . . . . . @ . . . . . . . . . . . ;; =o = ;; . . . (+)- + . . . . . . . . . . @ . . . . . . . . . . ;; /*\*/*\ = ;; . . . + - ? - + . . . . . . . . . . @ . . . . . . . . . . [a^3] ;; \*/*\*/ o= ;; . . . + - + . . . . . . . . @ . + - + . . . . . . . . . ;; = / \ ;; . . . . . . . . . . . . . . @ + ? ! . . . . . . . . . [d] [A~^2] ;; = /*\ / ;; . . . . + - + . . . . . . . . + - + - + . . . . . . . . . ;; /*\*/*\ \*/*\*/ ;; . . . . + - ? - + . . . . . . . . + - + . . . . . . . . . . [b^3] ;; \*/*\* ;; . . . . + . + . . . . . . . . . . . . . . . . . . . ;; *\*/*\ ;; . . . . . + - ! - + . . . . . . . . . + . . . . . . . . . [c] ;; \*/*\*/ \ ;; . . . . . + - + . . . . . . . . . . + . . . . . . . . ;; \* * / ;; . . . . . . ! + . . . . . . . . + - + . . . . . . . . . [B^2] ;; \* * /*\*/ ;; . . . . . . + - + - + . . . . . . + - + . . . . . . . . . ;; \ / ;; . . . . . . . . . + - + . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . spawn: (-1 -4) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" "d": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_d_open" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . @ . . . . . . . . . . . . . ;; = ;; . . . . . . . . . . . . . @ . . . . . . . . . . . . . ;; o= ;; . . . . . + - + - + = @ = @ = @ = + - + - + . . . . . . . . . . . . ;; /*\*/*\*/ = \*/*\*/*\ ;; . . . . . + - + - + . . . @ + - + - + . . . . . . . . . . . . ;; /*\*/ = \*/*\ ;; . . . . + - + . . . . . @ . + - + . . . . . . . . . . . ;; = = = ;; . . . . @ . . . . . . . @ . . @ . . . . . . . . . . . ;; =o = = ;; . . . (+)- + . . . . . . . @ . . @ . . . . . . . . . . ;; /*\*/*\ = = ;; . . . + - ? - + . . . . . . . @ . . @ . . . . . . . . . . [a^3] ;; \*/*\*/ = o= ;; . . . + - + . . . . . . . . @ . + - + . . . . . . . . . ;; = / \ ;; . . . . . . . . . . . . . . @ + ? + . . . . . . . . . [d] ;; = /*\ / ;; . . . . + - + . . . . . . . . + - + - + . . . . . . . . . ;; /*\*/*\ \*/*\*/ ;; . . . . + - ? - + . . . . . . . . + - + . . . . . . . . . . [b^3] ;; =o\*/*\* ;; . . . @ + . + . . . . . . . . . . . . . . . . . . . ;; = *\*/*\ ;; . . . @ . + - ! - + . . . . . . . . . + . . . . . . . . . [c] ;; = \*/*\*/ \ ;; . . @ . . + - + . . . . . . . . . . + . . . . . . . . ;; = \* * / ;; . . @ . . . + + . . . . . . . . + - + . . . . . . . . . ;; = \* * /*\*/ ;; . @ . . . . + - + - + . . . . . . + - + . . . . . . . . . ;; = \ / ;; . @ . . . . . . . + - + . . + - + - + . . . . . . . . . . . ;; o= ;; . . . . . . . . . . . . . . @ . . . . . . . . . . . ;; = ;; . . . . . . . . . . . . . . @ . . . . . . . . . . . . ;; = ;; . . . . . . . . . . . . . @ . . . . . . . . . . . . ;; = ;; . . . . . . . . . . . . . @ . . . . . . . . . . . . . collmap: ;; (+)- + - + - + parts: "e": recording "data/recs/eye.fus" visible: mapvar("switch2") vars: "antikey": "switch3" "opened_key": "start_eye_e_open" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . + - + - + ;; / \ ;; . . . . . . . . . . . . . . . . . . . . + . . + ;; \ \ ;; . . . . . . . . . . . . . . . . . . . . . . . . + ;; / ;; . . . . . . . . . . . . . . . . . . (+)- + - + - + . . - + - + ;; / \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . + ;; \ / ;; . . . . . . . . . . . . . . . . . . . . . . + - + - + ;; \ / ;; . . . . . . . . . . . . . . . . . . . + . + ? . . [e] ;; \ \ / ;; . . . . . . . . . . . . . . . . . . . + . + - + - + ;; \ ;; . . . . . . . . . . . . . . . . . . . + . ;; collmap: ;; (+)- + - + . spawn: (-1 -4) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" "d": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_d_open" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . + - + - + = @ = @ = @ = + - + - + . . . . . . . . . . . . ;; /*\*/*\*/ \*/*\*/*\o ;; . . . . . + - + - + . . . . + - + - + . . . . . . . . . . . . ;; /*\*/ \*/*\ ;; . . . . + - + . . . . . . . + - + . . . . . . . . . . . ;; = = ;; . . . . @ . . . . . . . . . . @ . . . . . . . . . . . ;; =o = ;; . . . (+)- + . . . . . . . . . . @ . . . . . . . . . . ;; /*\*/*\ = ;; . . . + - ? - + . . . . . . . . . . @ . . . . . . . . . . [a^3] ;; \*/*\*/ o= ;; . . . + - + . . . . . . . . . . + - + . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . . . + ? + . . . . . . . . . [d] ;; /*\ / ;; . . . . + - + . . . . . . . . + - + - + . . . . . . . . . ;; /*\*/*\ \*/*\*/ ;; . . . . + - ? - + . . . . . . . . + - + . . . . . . . . . . [b^3] ;; \*/*\* ;; . . . . + . + . . . . . . . . . . . . . . . . . . . ;; *\*/*\ ;; . . . . . + - ! - + . . . . . . . . . + . . . . . . . . . [c] ;; \*/*\*/ \ ;; . . . . . + - + . . . . . . . . . . + . . . . . . . . ;; \* * / ;; . . . . . . + + . . . . . . . . + - + . . . . . . . . . ;; \* * /*\*/ ;; . . . . . . + - + - + . . . . . . + - + . . . . . . . . . ;; \ / ;; . . . . . . . . . + - + . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "l": location "floaty_start" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "fisheye_location_a" collmap: ;; ;; * * * ;; ;; * * * ;; ;; ;; ;; * * * ;; ;; * * * ;; (!)- + = @ = @ = @ = @ = @ = @ [l] ;; /* *\o o ;; + + ;; /* * * *\ ;; + + ;; \ * * * /* * * ;; ? + - - + [D] ;; * * * * * * ;; ;; * * * ;; ;; * * * ;; spawn: (-1 -4) 0 n parts: "a": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_a_open" "b": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_b_open" "c": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_c_open" "d": recording "data/recs/eye.fus" vars: "opened_key": "start_eye_d_open" "s": recording "data/recs/switch.fus" visible: mapvar("switch1") vars: "key": "switch2" collmap: ;; ;; . . . . . . . . @ . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . . . @ . . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . . @ . . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . . @ . . . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . @ . . . . . . . . . . . . . . . . . . . ;; = ;; . . . . . . @ . . . . . . . . . . . . . . . . . . . . ;; =o ;; . . . . . + - + - + = @ = @ = @ = + - + - + . . . . . . . . . . . . ;; /*\*/*\*/ \*/*\*/*\ ;; . . . . . + - + - + . . . . + - + - + . . . . . . . . . . . . ;; /*\*/ \*/*\ ;; . . . . + - + . . . . . . . + - + . . . . . . . . . . . ;; = = ;; . . . . @ . . . . . . . . . . @ . . . . . . . . . . . ;; =o = ;; . . . (+)- + . . . . . . . . . . @ . . . . . . . . . . ;; /*\*/*\ = ;; . . . + - ? - + . . . . . . . . . . @ . . . . . . . . . . [a^3] ;; \*/*\*/ o= ;; . . . + - + . . . . . . . . . . + - + . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . . . . + ? + . . . . . . . . . [d] ;; /*\ / ;; . . . . + - + . . . . . . . . + - + - + . . . . . . . . . ;; /*\*/*\ \*/*\*/ ;; . . . . + - ? - + . . . . . . . . + - + . . . . . . . . . . [b^3] ;; \*/*\* ;; . . . . + . ! . . . . . . . . . . . . . . . . . . . [s^5] ;; *\*/*\ ;; . . . . . + - ! - + . . . . . . . . . + . . . . . . . . . [c] ;; \*/*\*/ \ ;; . . . . . + - + . . . . . . . . . . + . . . . . . . . ;; \* * / ;; . . . . . . + + . . . . . . . . + - + . . . . . . . . . ;; \* * /*\*/ ;; . . . . . . + - + - + . . . . . . + - + . . . . . . . . . ;; \ / ;; . . . . . . . . . + - + . . + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; . . ;; *\*/* ;; . -(+)- . ;; */*\* ;; . . collmap: ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . (.) . . ;; / ;; . . + . . . . ;; \ / ;; . . . + - + - + . . collmap: ;; . . ;; * * * ;; . (.) . ;; * * * ;; . .parts: "D": recording "data/recs/ability_door.fus" vars: "set_yourbool": "is_rollerspider" collmap: ;; ;; . . . . . . . . ;; ;; @ = @ = + - + ? + - + = @ = @ = @ [D] ;; o \ / ;; . . . (+)- + . . . ;; default_vert: "1" default_edge: "1" default_face: "1" collmap: ;; ;; . . . . . . ;; ;; . . . . . . . ;; ;; . . + . . . ;; / ;; . . + . . . . ;; / ;; . + . . . . ;; \ ;; . . + . . . . ;; \ ;; . . + . . . ;; \ ;; . . . + . . . ;; \ ;; . . . + . . ;; \ ;; . . . . (+) . . ;; parts: "s": recording "data/recs/switch.fus" vars: "key": "final_switch" collmap: ;; . . . . . . . . ;; ;; . . . . . . . ;; ;; . . . . . (?) . . [s^3] ;; ;; . . . . . . . ;; ;; . . . . . . . . collmap: ;; S ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . (.) . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . ;; collmap: ;; ;; . . . . . . . . . . . . . ;; ;; . . . . . . + - + . . . . . . ;; / \ ;; . . . . . . + . + . . . . . ;; \ ;; . . . + - + . . + . . . . . . . ;; / \ ;; . . . + . + . . . . . . . . . ;; \ ;; + - + . . + . . . . . . . . . . . ;; / \ ;; - + + . . . . + . . . . . . . . . . ;; */ \ ;; + . . . . + - + . . . . . . . . . ;; \ / \ ;; + - + . . + . + . . . . . . . . ;; \* \ ;; . . . . + . . + - . . . . . . . ;; \ /*\* ;; . . . . + - + -(+) . . . . . . . ;; ;; . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ;; parts: "b": "data/maps/tutorial3/blocker_sm.fus" collmap: ;; ;; . . . . ? . . . . . . . [b] ;; ;; . . . . . . . ? . . . . . [b] ;; ;; . . . ? . . . . . . ? . . (.) [b] [b] ;; ;; . . ? . . . . . ? . ? . ? . [b] [b] [b][b] ;; anim: "anim/eyespider.fus" state: "crawl" pos: ( 26 -12) rot: 5 turn: yes keys: x: y: u: d: is was l: r: data: " w71 +r w26 -r w11 +y w4 -y w31 +l w8 -l w3 +r w4 -r w133 +l w13 -l w5 +r w4 -r w84 +r w12 -r w50 +l w5 -l w12 +r w2 -r w7 +y w2 -y w8 +l w26 -l w9" collmap: ;; + + ;; * * * * ;; + - + + ;; / \* ;; . . . . . . + - + - + . . . . . + - + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . + . + . . . . . . . . . . . . . . . . . ;; \* * */ \ ;; . . . . . . . . + - + - + . . . . . . . . . . . . . . . . ;; \ /* * *\ ;; . . . . + . . . + + + . . . . . . . . . . . . . . . . ;; / *\ ;; . . . . + . . . . + . . . . . . . . . . . . . . . . . ;; / * */ \ ;; . . . + . . . + - + - + . + . . . . . . . . . . . . . . . ;; / \ / *\ ;; . . . . . . . + + - + . + + . . . . . . . . . . . . . . ;; / /* * / \* *\ ;; . . . . . . + - + . . + - + + . . . . . . . . . . . . . . ;; \ \* * \ /* */ \ ;; . . . . . . . + + - + . + + + . . . . . . . . . . . . . ;; \ / \ */ /* ;; . . . . . + . + - + - + . + - + (.) . . . . . . . . . . . . . ;; \ ;; . . . . . . + . . . . . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . + . + - + - + . + . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; default_face: "1" collmap: ;; ;; . . . ;; \ / ;; . + - + . ;; /* * *\ ;; . - + (+)- + - . ;; \* *\ ;; . + - + . ;; / \ ;; . . . default_face: "E" import "data/maps/triangles/_start2_bg_e.fus" collmap: ;; ;; + - + . . . . ;; */ / ;; + + . . . . . ;; \ / * ;; + . . . + - + . . . . . . . . . . . . . . ;; / \ / \ * * ;; + + . . + + - + - . . . + - + . . + - + . . . . . ;; *\ \ *\ \* * /* * *\ / \ ;; + - + - + - + + - + . . . + . + - + - + - + - + - + - + . . . ;; \ / \ / ;; . + - + . . . . . . . . . . . . + + . . . . ;; * \ / ;; + . . . . . . . . . . . . . . . + . . . . . ;; / \ / \ ;; + - + . . . . . . . . . . . . . . + + . . . . . ;; \ *\ /* ;; + . . . . . . . . . . . . . + + - + - + - + - + - + . ;; * *\ / \ /* * * * * *\ ;; . . . . . . + - + . . . . . + + - + + + + + . ;; *\ \ * * * * * \*/* * *\ ;; . . + - + - + . . + - + . . . . . + + + . + . + . ;; \ / \* * * * ;; . . + + . . . . . . . . . . . . . . + - + . . ;; \ / * *\* * ;; . . . + . . . (+)- + - + . . . . . . . . . + + - + ;; / \ ;; . . . . . . + . . + . . . . . . . . . . . ;; / \ ;; . . . . . . + - + - + - + - + . . . . . . . . . . ;; * ;; . . . . . . . . . . . . . + - + . . . . . ;; / \ ;; . . . . . + . + - + - + . + - + - + . + . . . . ;; / \ \ / \ / ;; . . . . + + . + - + . . . . + - + . . . . ;; / /* * * ;; . . . . + - + . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + . + . + . + . + . . . . . . ;; \* * * * * * */ ;; . . . . . . . . . . . . + - + - + - + . . . . . . . . . . . ;; * * * * * ;; . . . . . . . . . . . + . + . . . . . . . . . . . . . ;; \* * */* * * * * * ;; . . . . . . . . . . . + - + + - + . . . + - + . . + - + . . . ;; * */* * * * *\ / \ ;; . . . . . . . . . . . . + + . . . . . . + . + - + - + . . ;; * *\* ;; . . . . . . . . . . . . . + . + . . . . . . + . . . . ;; */ / ;; . . . . . . . . . . . . . + . + . + . + . + . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + - + + . + . . . + - + + . . . + - + + - + . + - + ;; \ /* * \ \* *\ \* */ \ ;; . . . . . . . . + . . . . . . . . . . . . . + - + + + + . + ;; * * \ / \ \ ;; . . . . . . . . . + . + . + . . . . . . . . . . . + . + - + - + ;; * * * * * ;; . . . . . . . . . (+)- + . . . . . . . . . . . . . . . . ;; * */ \* * ;; . . . . . . + - + + + + + + . + . . . + - + + . . . . . . ;; default_face: "E" import "data/maps/triangles/_start2_bg_e2.fus" spawn: (1 3) 0 n parts: "s": recording "data/recs/switch.fus" target: T vars: "key": "start_blocker2" "D": recording "data/recs/door.fus" vars: "map": "data/maps/demo/worldmap.fus" "location": "triangles_exit" collmap: ;; ;; . . . . . + . . . . . . . . . . . ;; / ;; . . . . + - + . . . . . . . . . . . . ;; \ ;; . . . . . . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . ;; ;; + - + . . . . . . . . . . . . . . . + - + - + . . ;; / / ;; + + . . . . . . . . . . . . . . . . + - + . . . ;; \ / ;; + . . . + - + . . . . . . . . . . . . + . . . . ;; / \ / \ ;; + + . . + + - + - . . . + - + . . + - + . . . . . . . . ;; \ \ \ \ / \ / \ ;; + - + - + - + + - + . . . + . + - + - + - + - + - + - + . . . . . . ;; \ / \ / ;; . + - + . . . . . . . . . . . . + + . . . . . . . ;; \ / ;; + . . . . . . . . . . . . . . . . + . . . . . . . . ;; / \ / \ ;; + - ! . . . . . . . . . . . . . . . . + + . . . . . . . . [s^3] ;; \ \ / ;; + . . . . . . . . . . . . . . . + + - + - + - + - + - + . . . . ;; \ / \ / \ ;; . . . . . . . . . + - + . . . . . + + - + + + + + . . . . ;; *\ \ \ / \ ;; . . . . + - + - + . . + - + . . . . . + + + . + . + . . . ;; \ / \ ;; . . . . + + . . . . . . . . . . . . . . + - + . . . . ;; \ / \ ;; . . . . + . . . (.) ? . . . . . . . . . . + + - + . . [D] ;; ;; . . . . . . . + - + - + - + . . . . . . . . . . . . . . ;; / \ ;; + - + - + . . . + - + - + - + - + . . . + - + . . . . . . . . ;; \ / / \ ;; + + . . . . . . . . . . . + . + . . . . . . . . ;; / \ / S / / ;; + + . . . + . + - + - + . + - + - + . + . . . . . . . . ;; \ / / \ \ / \ / ;; + . . . + + . + - + . . . . + - + . . . . . . . . . ;; / / ;; . . . . + - + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; + - + . . . . ;; / / ;; + + . . . . . ;; \ / ;; + . . . + - + . ;; / \ / \ ;; + + . . + + - + - . . . + - + . . + - + . . . . ;; \ \ \ \ / \ / \ ;; . + - + - + - + + - + . . . + - + - + - + - + - + - + - + - + . . ;; \ / * \ / ;; . . . + - + . . . . . . . . . . . . + + . . . ;; * \ / ;; + . . . . . . . . . . . . . . . . . + . . . . ;; / \* * * * / \ ;; + - + . . . . . . . . . . . . . . . . + + . . . . ;; \* * * * * \ / ;; . + . . . . . . . . . . . . . . . + + - + - + - + - + - + ;; * * * \ / \ / \ ;; . . . . . . . . . . . + - + . . . . . + + - + + + + + ;; / \ \ / \ ;; . . . . . . + - + - + . + - + - + . . . . . + + + . + . + ;; \ / \ ;; . . . . . . + + . . . . . . . . . . . . . . + - + . ;; \ / \ ;; . . . + . . . (+)- + - + . . . . . . . . . + + - + ;; / \ ;; . . . . . . + . . + . . . . . . . . . . . ;; / \ ;; . . . . . . + - + - + - + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . + - + . . . . . ;; / \ ;; . . . . . + . + - + - + . + - + - + . + . . . . ;; / \ \ / \ / ;; . . . . + + . + - + . . . . + - + . . . . ;; / / ;; . . . . + - + . . . . . . . . . . . . . name: "triangles" unit: 3 2 0 -1 spawn: "data/maps/triangles/start.fus" palette: "data/maps/trees/pals/trees.fus" tileset: "data/maps/sprucetown/tilesets/earth.fus" vars: "start_blocker2": F "start2_blocker": F "start3_blocker": F "start4_blocker": F "got_flip": F submaps: "bg": tileset: "data/tileset1_bg.fus" submaps: : bg file: "data/maps/triangles/tutorial_bg.fus" pos: eval: (-10 -6) : pos: eval: (0 0) submaps: : bg file: "data/maps/triangles/start_bg_e2.fus" visible: mapvar("start_blocker2") : bg file: "data/maps/triangles/start_bg_E2.fus" visible: ! mapvar("start_blocker2") : bg file: "data/maps/triangles/start_bg.fus" : pos: eval: (14 12) submaps: : bg file: "data/maps/triangles/start2_bg_e.fus" visible: mapvar("start2_blocker") : bg file: "data/maps/triangles/start2_bg_E.fus" visible: ! mapvar("start2_blocker") : bg file: "data/maps/triangles/start2_bg_e2.fus" visible: mapvar("start4_blocker") : bg file: "data/maps/triangles/start2_bg_E2.fus" visible: ! mapvar("start4_blocker") : bg file: "data/maps/triangles/start2_bg.fus" : bg file: "data/maps/triangles/start3_bg_e.fus" visible: mapvar("start3_blocker") pos: eval: (14 12) + (22 15) + (11 14) : bg file: "data/maps/triangles/start3_bg_E.fus" visible: ! mapvar("start3_blocker") pos: eval: (14 12) + (22 15) + (11 14) : bg file: "data/maps/triangles/start3_bg.fus" pos: eval: (14 12) + (22 15) : bg file: "data/maps/triangles/start4_bg.fus" pos: eval: (14 12) + (22 15) + (-4 3) : submaps: "tutorial": file: "data/maps/triangles/tutorial.fus" target: ! mapvar("start_blocker2") pos: (-10 -6) camera: (-5 -10) mapper: ("triple") recs: : "data/maps/triangles/recs/bigroller_tutorial.fus" "start": file: "data/maps/triangles/start.fus" pos: (0 0) camera: (0 0) mapper: ("triple") recs: : "data/maps/triangles/recs/bigroller000.fus" #: "data/maps/triangles/recs/bigroller000.fus" "cya" #: "data/maps/triangles/recs/bigroller000.fus" "grn" 650 #: "data/maps/triangles/recs/bigroller000.fus" "prp" 1110 submaps: : file: "data/maps/triangles/start_blocker2.fus" visible: ! mapvar("start_blocker2") pos: (0 9) mapper: ("triple") "start2": pos: (14 12) submaps: : file: "data/maps/triangles/start2.fus" pos: (19 12) camera: (3 0) mapper: ("triple") "start2b": file: "data/maps/triangles/start2b.fus" target: && mapvar("start_blocker2") ! mapvar("start2_blocker") pos: (16 0) camera: (-5 0) mapper: ("triple") : file: "data/maps/triangles/start2_blocker.fus" visible: ! mapvar("start2_blocker") pos: (10 10) "start3": pos: eval: (14 12) + (22 15) camera: (11 8) mapper: ("triple") submaps: : file: "data/maps/triangles/start3.fus" : file: "data/maps/triangles/start3_blocker.fus" visible: ! mapvar("start3_blocker") pos: (17 7) "cage": file: "data/maps/triangles/cage.fus" pos: eval: (14 12) + (22 15) + (13 -10) camera: (4 6) mapper: ("quadruple") recs: : "data/maps/triangles/recs/caged_eyespider.fus" "start4": file: "data/maps/triangles/start4.fus" target: && mapvar("start2_blocker") ! mapvar("start3_blocker") pos: eval: (14 12) + (22 15) + (-4 3) camera: (3 -7) mapper: ("double") submaps: : file: "data/maps/triangles/start4_blocker.fus" visible: ! mapvar("start4_blocker") parts: "R": actor "actor/aibig_roller.fus" "u": recording "data/recs/switch.fus" target: T vars: "key": "start4_blocker" collmap: ;; ;; . . . . . . . . . . . . + - + . . . . . . ;; /* * *\ ;; . . . . . . . . . . . . + . + . . . . . ;; \* * */ \ S ;; + . ! . . . + . . . . . + + - + -(+)- + - + - + . . . . . . [R] ;; \ / ;; . . . . . + - + . . . . . . . + - + . + . . . . . . . ;; / \ \ / ;; + . + . + - + - + . . . . . + . + . . . . + . . . . ;; / \ ;; . . . . . . . . . . . . . . . . . . . + + . + . . ;; \ / ;; . + . + . . . + . + . + . + . + . . . + + + . . ;; \ / / \ / \ ;; . . ! - + . . . . . . . . . . . + + . . + + . . . . [u] ;; \ / / / \ \ ;; . . + . . . . . . . + . + . + - + . + . + - + . . . + . - + . ;; / \ \ ;; . . . . . . . . . . . . . . . . . + + . . . . . . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . + . + . . . . . + . + . ;; collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . (.) . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + . . . . . . . . . . . . ;; / ;; . . . . + . . . . . + . + . . . . . . . . . . . ;; * / \ ;; . . . . + - + . . . . + . . + . . . . . . . . . . ;; / \ / \ ;; . . . + - + - + . . . + . . . + . + . + . . . . . . ;; / \* * * * * * * * ;; . . . . . . . . . + . . . . + - + - + - + . . . . . . ;; / * * * * * *\* * ;; . . + . . . . . + . + . + . + . + + + . . . . . ;; / \ \* * * * * * * * */* * ;; . . + + . . . . . + - + - + - + - + . . . + . . . . . . ;; / /* /* * * * * * * * * \* ;; . + - + + - + - + . . - + + . + . + . . . + . . . . . . ;; \ /* * \* * / ;; . . . . + . . . . + . . . . . . . + . . . . . . ;; \* \* * / ;; . . . . + . . . . + + . . . + - + - + . . . . . . . ;; \* * / ;; . . . . . . . . . . + . . . + . . . . . . . . . ;; \* * / ;; . . . + . . . . . . + + . + . . . . . . . . . . ;; / \ \* \ ;; . . . + + . . . . . . + . . + . . . . . . . . . ;; *\ \ \ ;; . . + + - + . + . . . . . . . + . . . . . . . . . ;; * * * * * * * * * ;; . . + - + . . + - + . . . . . . . . . . . . . . . . ;; / \* * * * */ \ ;; . + - + - + . + - + - + . + - + - + . . . . . . . . . . . . ;; * * * \ / ;; . . . . . . . . . . + - + . . . . . . . . . . . . ;; * * ;; . . . . + . . . . . + . . . . . . . . . . . . . ;; * ;; . . . . + - + . . . . . . . . . . . . . . . . . . ;; / \ ;; . . . + - + - + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * * * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * * ;; . . . . (.) . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . parts: "s": recording "data/recs/switch.fus" target: T vars: "key": "start3_blocker" "D": recording "data/recs/ability_door.fus" vars: "location": "cage" "set_yourbool": "is_flipspider" "set_mapbool": "got_flip" collmap: ;; ;; . . . . . . . . . . . . + . . . . . . . . . . . ;; ;; . . . . . . . . . . . . + - + . . . . . . . . . . . ;; / \ ;; . . . . . . . . . . . . + - ! - + . . . . . . . . . . . [s^3] ;; \ ;; . . . . . . . . . . . . . . . + . . . . . . . . . . . ;; \ ;; . . . . . . . . . . . . + . + . + . + . + . . . . . . ;; \ / ;; . . . . . . . . . . . . + - + - + - + . . . . . . . . . . . ;; ;; . . . . . . . . . . . + . + . . . . . . . . . ? . . . [D] ;; \ / ;; . . . . . . . . . . . + - + + - + . . . + - + . . + - + . . . ;; / \ /* * *\ ;; . . . . . . . . . . . . + + . . . . . . + . + - + - + . . ;; \ ;; . . . . . . . . . . . . + . + . + . . . . . . + . . . . ;; / / ;; . . . . . . . . . . . . + . + . + . + . + . + . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . + - + + . + . . . + - + + . . . + - + + - + . + - + ;; \ / \* *\ \* *\ /* * *\ ;; . . . . . . . . + . . . . . . . . . . . . . + - + + + + . + ;; \*/ \* * * *\ ;; . . . . . . . . . + . + . + . . . . . . . + . + . + . + - + - + ;; ;; . . . . . . . . . (+)- + . . . . . . . . . . . . . . . . ;; / \ ;; . . . . . . . . + + + + + . + . . . + - + + . . . . . . ;; \ / ;; . . . . . . . . . + - + . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; collmap: ;; + ;; /*\ ;; + + ;; /* * *\ ;; (+)- + - + collmap: ;; ;; . . . . . . . . . . . . + - + . + . + + . ;; /* * *\* * * *\ /* * ;; . . . . . . . . . . . . + . + . + - + . . ;; *\* * */ \* * * * * * * ;; . . . . . + . . . . . + + - + - + - + - + - + . . . . . . ;; * * * * * *\ / ;; . . . . . + - + . . . . . . . + - + . + . . . . . . . ;; / \ \ / * ;; . . . . + - + - + . . . . . + . + . . . . + . . . . ;; */ \* ;; . . . . . . . . . . . . . . . . . . . + + . . . . ;; \ / ;; . + . + . . . + . . . + . + . + . . . + + + . . ;; \* * */ / \ / \ ;; . . + - + . . . . . . . . . . . + + . . + + . . . . ;; \ / / /* *\ \ ;; . . + . . . . . . . . . + . + - + . + . + - + . . . ;; */ \* ;; . . . . . . . . . . . . . . . . . + + . . . . . . ;; \ / ;; . . . . . . . . . . . . . . . . . + . + . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . + . + . + . + . + . + . . . ;; * * * * * \* * */ ;; . . . . . . . . . . . + - + . + - + + . . + - + . . . ;; \*/ /* * *\ *\* * * ;; . (+)- + - + . + - + - + . . . + . + + + + + - + - + - + - + . . . - + . + ;; * * * * * * *\ */*\* \* * */ \ / ;; . . + - + . . + - + + . . . . . + - + + - + . . . . . + + ;; * * *\* *\ * * / ;; . . + . . . + + + . . . + . + . + . . . . . . + . + ;; \* * * ;; . . . . . . . . . . . . . . . . . . . . . . . + - + ;; * ;; . . . . . . . + - + + . + . . . . . . . . . . + ;; * *\* \* * * ;; . . . . . . . . + + + - + . . . . . . . . . . ;; */ \*/ ;; . . . . . . . . + . + . . . . . . . . . . ;; / ;; . . . . . . . . . . + . . . . . . . . . . ;; / ;; . . . . . . . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . ;;default_vert: "1" default_edge: "1" collmap: ;; . . . . . + - + - + . . ;; ;; . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . ;; ;; . . . . + . . . . . . . . ;; / ;; . . . . + . . . . . . . . . ;; / ;; . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . ;; ;; . . . . . + . . . . . . . (.) . ;; \ ;; . . . . . . + . . . . . . . . ;; \ ;; . . . . . . + - + - + - + - + . . . ;; ;; . . . . . . . . . . . . . ;; collmap: ;; + + ;; ;; + - + + ;; / \ ;; . . . . . . + . + . . . . . + - + - + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . + . + . . . . . . . . . . . . . . . . . ;; \ / \ ;; . . . . . . . . + - + - + . . . . . . . . . . . . . . . . ;; \ / \ ;; . . . . + . . . + + + . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . + . . . . . . . . . . . . . . . . . ;; / \ ;; . . . + . . . + - + - + . + . . . . . . . . . . . . . . . ;; / \ / \ ;; . . . . . . . + + - + . + + . . . . . . . . . . . . . . ;; / / / \ \ ;; . . . . . . + - + . . + - + + . . . . . . . . . . . . . . ;; \ \ \ / / \ ;; . . . . . . . + + - + . + + + . . . . . . . . . . . . . ;; \ / \ / / ;; . . . . . + . + - + - + . + - + (.) . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . + . + . + . + . + . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; default_face: "1" collmap: ;; ;; \ / ;; + - + ;; /* * *\ ;; - + - + -(+)- ;; / / \ \ ;; spawn: (-6 -6) 1 n parts: "L": recording "data/recs/big_roller_l.fus" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . (.) . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . + . . . . . . . . . . . . ;; / ;; . . . . ! . . . . . + . + . . . . . . . . . . . [L] ;; / \ ;; . . . . + - + . . . . + . . + . . . . . . . . . . ;; / \ S/ \ ;; . . . + - + - + . . . + . . . + . + . + . . . . . . ;; / \ ;; . . . . . . . . . + . . . . + - + - + - + . . . . . . ;; / \ ;; . . + . . . . . + . + . + . + . + + + . . . . . ;; / \ \ / ;; . . + + . . . . . + - + - + - + - + . . . + . . . . . . ;; / / / S \ ;; . + - + + - + - + . . - + + . + . + . . . + . . . . . . ;; \ * *\ / ;; . . . . + . . . . + . . . . . . . + . . . . . . ;; \ *\ / ;; . . . . + . . . . + + . . . + - + - + . . . . . . . ;; * *\ / ;; . . . . . . . . . . + . . . + . . . . . . . . . ;; *\ / ;; . . . + . . . . . . + + . + . . . . . . . . . . ;; / \ * *\ \ ;; . . . + + . . . . . . + . . + . . . . . . . . . ;; \ \ \ ;; . . + + - + . + . . . . . . . + . . . . . . . . . ;; ;; . . + - + . . + - + . . . . . . . . . . . . . . . . ;; / \ / \ ;; . + - + - + . + - + - + . + - + - + . . . . . . . . . . . . ;; \ / ;; . . . . . . . . . . + - + . . . . . . . . . . . . ;; ;; . . . . + . . . . . + . . . . . . . . . . . . . ;; ;; . . . . + - + . . . . . . . . . . . . . . . . . . ;; / \ ;; . . . + - + - + . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . ;; default_face: "e" import "data/maps/triangles/_start2_bg_e2.fus" default_face: "e" import "data/maps/triangles/_start3_bg_e.fus" $SET_STR FLIP: lines: at(15 16) ;;You have learned how to ;; flip around thin walls! ;; ;; While crouching, ;; press the up arrow key. spawn: (2 -1) 0 n text: if mapvar("got_flip") then $GET_STR FLIP else null parts: "l": location "cage" "h": recording "data/recs/hotspot.fus" vars: "key": "got_flip" "value": F "cooldown": 5 collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . + - + . . ? . . . . . . . . . . . . [h] ;; / \ * * * ;; . . . . . . . . . + - + - + - + - + - + - + - + . . . . + - + - + . . . ;; /* * *\* * */ \* *\ \* * * *\ */ \* ;; . . . . . . . . + + - + + + + + - + + . . + - + + - + + . . ;; /* */ \*/ \* *\ \ \* *\ /* */ /* / /* ;; . . . . . . . . + - + + + - + - + - + - + + + . + + + + + . . . ;; *\ \ \ / / /* */ /* */ /* / / \ ;; . . . . . . . . + + - + - + . + - + - + + . + + - + - + - + + . . ;; *\ / \* *\ \ / /* * *\*/ \*/ /* */ ;; . . . . . . . . . + + + - + - + - + . + . . + . . + + . . . ;; *\ \*/ \ / \* * */ / \ \*/ ;; . . . . . . . . . + + . + . + - + - + . + - + . . + . . . ;; */ / \ \ / / \ / \ ;; . . . . . . . . . + . + -(+)- + - + . + . . + - + - + - + - + . . . ;; */ /*\ /*\ / \ \ / \ / ;; . . . . . . . . + . + + - + - + ! - + - + . . . + + . . . . [l] ;; *\ /*\* * * * * * */ \ / ;; . . . . . . . . . + - + + - + - + - + + . . . . . . . . . . . ;; * ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . collmap: ;; ;; . . . . . . . . ;; ;; . . + - + - + . . . . ;; / \ ;; . + . . + . . . ;; / \ ;; . + . . . + . . . ;; \ / ;; . + . . + . . . ;; \ / ;; . . + (.) + . . . . ;; ;; . . . . . . . . ;; collmap: ;; + ;; / \ ;; + + ;; / \ ;; (+)- + - + ;; ;; . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . ;; * * ;; . . . . . + . . . . . ;; * * * * ;; . . . . . + - + . . . . . ;; * * / \ ;; . . . . + - + - + . . . . ;; * * ;; . . . . . . . . . . . . ;; * * ;; . + . + . . . . . . . ;; \* * / ;; . . + - + . . . . . . . . ;; \ / ;; . . + . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . . . . . . . . . . . ;; ;; . . . . . . . . . . . . ;; ;; . (+)- + - + . + - + - + . . . ;; \ ;; . . + - + . . + - + + . . ;; \ \ ;; . . + . . . + + + . ;; parts: "t": recording "data/recs/switch.fus" target: T vars: "key": "start2_blocker" collmap: ;; ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;; \ ;; . . . . . . . . . . + . + . + . + . + . + . . . . . + . + ;; \ / / ;; . . . . . . . . . . . + - + . + - + + . . + - + . . . . . . . . ;; \*/ / \ \ ;; . . . . . + - + - + . . . + . + + + + (+)- + - + - + - + . . . - + . + ;; \ /*\ \ / \ / ;; . . . . . . + . + . . . . . + - + + - + . . . . . . . . + + ;; \ / ;; . . . . . . + + + . . . + . + . + . . . . . . . . . + . + ;; \ ;; . . . . . . . . . . . . . . . . . . . . . . . . . . . + - + ;; ;; . . . . . . . + - + + . + . . . . . . . . . . . . . . . + ;; \ \ ;; . . . . . . . . + + + - + . . . . . . . . . . ;; / \*/ ;; . . . . . . . . + . + . . . . . . . . . . ;; / ;; . . . . . . . . . . ! . . . . . . . . . . [t^4] ;; / ;; . . . . . . . . . + . . . . . . . . . . ;; ;; . . . . . . . . . . . . . . . . . . . . ;; ;; ;; . . . . . + . . . . . ;; ;; . . . . . + - + . . . . . ;; / \ ;; . . . . + - + - + . . . . ;; * * * * ;; . . . . . . . . . . . . ;; * * * ;; . + . + . . . . . . . ;; \ / * * ;; . . + - + . . . . . . . . ;; \ / * * ;; . . + . . . . . . . . ;; * * ;; . . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . . . . ;; * * * * ;; . . . . . . . . . . . ;; * * ;; . . . . . . . . . . . . ;; * * * * ;; . (+)- + - + . + - + - + . . . . . ;; \ * * ;; . . + - + . . + - + + . . . . . ;; \ \ * * ;; . . + . . . + + + . . . . . ;; * * ;; . . . . . . . . . . . . . . . ;; * * ;; . . . . . . . + - + + . . . . . ;; \ \ * * ;; . . . . . . . . + + + - + . . . ;; / \ / * * ;; . . . . . . . . + . + . . . ;; / * * ;; . . . . . . . . . . + . . . ;; / * * ;; . . . . . . . . . + . . ;; * * * * ;; . . . . . . . . . . . . ;; default_face: "E" import "data/maps/triangles/_start3_bg_e.fus" default_face: "E" import "data/maps/triangles/_start_bg_e2.fus" default_face: "e" import "data/maps/triangles/_start2_bg_e.fus" default_face: "e" import "data/maps/triangles/_start_bg_e2.fus" anim: "anim/big_roller.fus" state: "stand" pos: ( 8 8) rot: 3 turn: yes keys: x: y: u: d: l: r: data: " w69+d w16+l w52-l w59+r w15-r w76+l w44-l w79+r w23-r w59+r w3-r w1+r w39-r w61+l w22-l w79+l w70-l w55-d w1+r w19-r w104+d w3+l w29-l w66-d w7+l w25-l w11+d w3+r w48-d w29-r w29+l w18-l w66+r w29-r w13+r w4-r w30" anim: "anim/eyespider.fus" state: "stand" pos: ( 57 17) rot: 0 turn: no keys: x: y: u: d: l: r: vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": T "is_stickyspider": F data: " w73 +l w4 -l w31 +d w19 +u w2 -u w4 -d w35 +u w2 -u w56 +r w7 -r w45 +d w12 +u w2 -u w3 -d w31 +u w3 -u w4 +r w1 -r w15 +l w3 -l w27 +d w4 +u w1 -d w1 -u w7 +u w3 -u w67 +l w17 -l w17 +d w27 +u w3 -u w9 -d w31 +r w10 -r w7 +l w4 -l w37 +l w8 -l w7 +u w3 -u w52 +l w4 -l w16 +d w8 +l w2 -l w9 -d w14 +u w3 -u w46 +r w25 -r w29 +l w3 -l w5 +l w20 -l w8 +l w5 -l w10 +u w3 -u w28 +d w7 +r w4 -r w15 -d w30 +l w23 -l w51 +r -r w6" anim: "anim/big_roller.fus" state: "stand" pos: ( -15 -19) rot: 4 turn: yes keys: x: y: u: d: is was l: is was r: data: " w71-d w49+d w20-d w52+d w13-d w43+d w10" # May be used for spider *or* coin_beast! state "mainloop": # Main AI loop "always" if() then: key: up u key: up d key: up l key: up r key: up x key: up y inc myvar("wait_time") continue "wait" if: expr: < myvar("wait_time") 14 then: "turn" if: chance: 5% then: key: down b set myvar("wait_time"): 20 "start_running" if: chance: 5% then: set myvar("run_time"): 0 goto: "run_around" state "run_around": "always" if() then: key: up u key: up d key: up l key: up r key: up x key: up y inc myvar("run_time") continue "dead" if: dead() then: goto: "create_body" delay: 42 "stop_running" if: expr: > myvar("run_time") 10 chance: 5% then: set myvar("wait_time"): 0 goto: "mainloop" "jumping" if: not: coll: all yes ;; (+)- + then: # If we're jumping, then do nothing... # Sometimes, jump! "jump" if: chance: 40% any: all: # Jump forward small, land forward coll: all yes ;; ( ) . . + - + coll: any no ;; ( ) . - + - . . coll: all no ;; \*/*\*/*\*/* ;; + - + - + - ;; /*\*/*\*/*\* ;; ( ) . . . . all: # Jump forward small, land up coll: all yes ;; + ;; / ;; ( ) . . + coll: any no ;; ( ) . - + - . coll: all no ;; \*/*\*/* ;; + - + - ;; /*\*/*\* ;; ( ) . . . all: # Jump forward medium, land forward coll: all yes ;; ( ) . . . + - + coll: any no ;; ( ) . - + - + - . . coll: all no ;; \*/*\*/*\*/*\*/* ;; + - + - + - + - ;; /*\*/*\*/*\*/*\* ;; ( ) . . . . . all: # Jump forward medium, land up coll: all yes ;; + ;; / ;; ( ) . . . + coll: any no ;; ( ) . - + - + - . coll: all no ;; \*/*\*/*\*/* ;; + - + - + - ;; /*\*/*\*/*\* ;; ( ) . . . . then: key: down u # Sometimes, crawl! "crawl" if: chance: 25% any: all: coll: any yes # Only crawl somewhere we couldn't just walk ;; \*/* ;; + - ;; ;; ( ) . coll: all yes ;; ( ) + - + coll: all no ;; \*/* ;; (.) . all: coll: any yes # Only crawl somewhere we couldn't just walk ;; \*/* ;; + - ;; \*/* ;; ( ) . + - ;; \* coll: all yes ;; ( ) + ;; \ ;; + coll: all no ;; \*/* ;; (.) . - ;; * then: key: down d set myvar("crawl_time"): 0 goto: "mainloop_crawl" "turn" if: # Small chance to spontaneously turn around... # Can help get un-stuck from certain situations # NOTE: multiple "chance" conditions can be used to achieve sub-1% chance... chance: 1% chance: 20% then: key: down b # Always walk straight ahead if we can "step" if: any: all: # Step forward coll: all yes ;; ( ) + - + coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) all: # Step forward over a small gap coll: all yes ;; ( ) . + - + coll: all no ;; \*/*\*/* ;; + - + - ;; /*\*/*\* ;; ( ) . . . all: # Step up coll: all yes ;; + ;; / ;; ( ) + all: # Step up over a small gap coll: all yes ;; + ;; / ;; ( ) . + coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) all: # Step up over a small gap coll: all yes ;; + ;; / ;; + ;; ;; ( ) + coll: all no ;; ;; *\*/* ;; - + - . ;; \* ;; . ;; ;; ( ) . all: # Small backflip coll: all yes ;; + ;; \ ;; + ;; ;; ( ) + all: # Medium backflip coll: all yes ;; + - + ;; ;; + ;; ;; ( ) + all: # Step down coll: all yes ;; ( ) + ;; \ ;; + coll: all no ;; \*/* ;; + - ;; /*\*/* ;; ( ) - + - ;; */*\* then: key: down f # Turn around if we're stuck "turn_because_stuck" if() then: key: down b state "mainloop_crawl": "always" if() then: key: up u #key: up d # Don't uncrawl by default!.. key: up l key: up r key: up x key: up y inc myvar("crawl_time") continue # Sometimes, stand! "stand" if: expr: > myvar("crawl_time") 7 # Don't just stand up right after crouching... chance: 25% coll: all no ;; *\*/* ;; - + - ;; */*\* ;; ( ) then: key: up d goto: "mainloop" # Always walk straight ahead if we can "step" if: any: all: coll: all yes ;; + ;; / ;; ( ) + coll: all no ;; \* ;; ( ) all: coll: all yes ;; ( ) + - + coll: all no ;; \*/* ;; (.) . all: coll: all yes ;; ( ) + ;; \ ;; + coll: all no ;; \*/* ;; (.) . - ;; * then: key: down f # Stand up if we're stuck "stand_because_stuck" if: chance: 70% coll: all no ;; *\*/* ;; - + - ;; */*\* ;; ( ) then: key: up d goto: "mainloop" # Turn around if we're stuck "turn_because_stuck" if() then: key: down b state "create_body": if() then: play: "actor/rec/aispider.fus" goto: "mainloop" import "actor/_aispider.fus" state "create_body": if() then: play: "actor/rec/aiwater_roller.fus" goto: "mainloop" $UNSET_BOOL BIGROLLER $SET_INT KUP_F 100 $SET_INT KDOWN_F 2 $SET_INT KUP_D 150 $SET_INT KDOWN_D 150 $SET_INT TURN 1 import "actor/_airoller.fus" collmap "detect": ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + -(+)- + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + collmap "detect_small": ;; + - + - + - + ;; /*\*/*\*/*\*/*\ ;; + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + -(+)- + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + ;; \*/*\*/*\*/*\*/ ;; + - + - + - + state "create_body": if() then: play: "actor/rec/aibig_roller.fus" goto: "mainloop" $SET_BOOL BIGROLLER $SET_INT KUP_F 30 $SET_INT KDOWN_F 200 $SET_INT KUP_D 200 $SET_INT KDOWN_D 200 $SET_INT GRAB 200 $SET_INT TURN 10 import "actor/_airoller.fus" # Expected variables: # bool BIGROLLER # int KUP_F # int KDOWN_F # int KUP_D # int KDOWN_D # int GRAB # int TURN state "mainloop": if: then: key: up b key: up u continue if: chance: $GET_INT KUP_F/1000 then: key: up f continue if: chance: $GET_INT KDOWN_F/1000 then: key: down f continue if: chance: $GET_INT TURN/1000 then: key: up f key: down b continue if: all: chance: $GET_INT GRAB/1000 coll: all yes $IF BIGROLLER: ;; . . + ;; ;; . . . ;; ;; (.) . . $IF !BIGROLLER: ;; . + ;; ;; (.) . coll: all no $IF BIGROLLER: ;; . . . ;; \*/*\* ;; . + - . ;; \* ;; (.) . . $IF !BIGROLLER: ;; . + ;; \* ;; (.) . then: key: down u continue if: any: chance: $GET_INT KDOWN_D/1000 coll: all yes $IF BIGROLLER: ;; + ;; ;; . . ;; ;; (+) . + $IF !BIGROLLER: ;; + ;; ;; (+) + then: key: down d continue if: chance: $GET_INT KUP_D/1000 not: coll: all yes $IF BIGROLLER: ;; + ;; ;; . . ;; ;; (+) . + $IF !BIGROLLER: ;; + ;; ;; (+) + then: key: up d continue state "create_body": if() then: play: "actor/rec/aicoin_beast.fus" goto: "mainloop" import "actor/_aispider.fus" state "mainloop": if: then: key: up f key: up b continue if: any: all: coll: all yes ;; + ;; ;; . + ;; ;; ( ) . coll: all no ;; . . ;; *\*/* ;; . + - . - . ;; \*/*\* ;; . . . . ;; ;; (.) . all: coll: all yes ;; ( ) . ;; ;; + + coll: all no ;; . . ;; /*\*/* ;; + - + - . ;; \*/*\* ;; + - . ;; /*\*/* ;; ( ) . - + - . ;; */*\* ;; . . all: coll: all yes ;; + + ;; ;; ( ) . coll: all no ;; . . ;; *\*/* ;; . - + - . ;; \*/*\* ;; + - . ;; /*\*/* ;; + - + - . ;; \*/*\* ;; . . ;; ;; ( ) . all: coll: all yes ;; ( ) + ;; ;; + coll: all no ;; . . ;; /*\*/* ;; + - + - . . ;; \*/*\*/*\*/* ;; + - + - + - . ;; /*\*/*\*/*\* ;; ( ) . - + - . . ;; */*\* ;; . . all: coll: all yes ;; ( ) + + coll: all no ;; . . . ;; \*/* ;; . . + - . ;; /*\* ;; . + - + ;; \*/* ;; . . + - . ;; /*\* ;; (.) . . then: key: down f if: then: key: down b collmap "detect_small": ;; + - + - + - + ;; /*\*/*\*/*\*/*\ ;; + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + -(+)- + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + ;; \*/*\*/*\*/*\*/ ;; + - + - + - + state "create_body": if: expr: mapvar("eyespider_vines_ran_away_2") then: goto immediate: "start3_remove" if: expr: mapvar("eyespider_vines_ran_away_1") then: play: "data/maps/demo/recs/eyespider_vines_wait_2.fus" goto immediate: "start2" if: then: play: "data/maps/demo/recs/eyespider_vines_wait_1.fus" goto immediate: "start" state "start": if: expr: mapvar("start2_minimap") then: set mapvar("eyespider_vines_ran_away_1"): T play: "data/maps/demo/recs/eyespider_vines_run_away_1.fus" goto: "start2" state "start2": # There is a spider next to us if: coll: bodies("touch") any yes collmap("detect_small") then: play: "data/maps/demo/recs/eyespider_vines_run_away_1_looking.fus" set mapvar("eyespider_vines_looking"): T goto: "start2_looking" if: expr: mapvar("spider_passed_vines") then: set mapvar("eyespider_vines_ran_away_2"): T play: "data/maps/demo/recs/eyespider_vines_run_away_2.fus" goto: "start3" state "start2_looking": # There is *NOT* a spider next to us if: not: coll: bodies("touch") any yes collmap("detect_small") then: play: "data/maps/demo/recs/eyespider_vines_run_away_1_unlooking.fus" set mapvar("eyespider_vines_looking"): F goto: "start2" state "start3": if() then: set mapvar("eyespider_vines_ran_away_3"): T # Delay long enough for the mini_eye to play its "appear" animation delay: 11 goto: "start3_remove" state "start3_remove": if() then: remove goto: "start3_removed" state "start3_removed": state "create_body": if: expr: mapvar("eyespider_tunnels_ran_away_1") then: play: "data/maps/demo/recs/eyespider_tunnels_wait_2.fus" goto immediate: "start2" if: then: play: "data/maps/demo/recs/eyespider_tunnels_wait_1.fus" goto immediate: "start" state "start": if: expr: mapvar("start2_minimap") then: set mapvar("eyespider_tunnels_ran_away_1"): T play: "data/maps/demo/recs/eyespider_tunnels_run_away_1.fus" goto: "start2" state "start2": state "create_body": if() then: play: "actor/rec/aibird.fus" goto: "mainloop" import "actor/_aibird.fus" state "create_body": if() then: play: "actor/rec/airoller.fus" goto: "mainloop" $UNSET_BOOL BIGROLLER $SET_INT KUP_F 40 $SET_INT KDOWN_F 200 $SET_INT KUP_D 40 $SET_INT KDOWN_D 150 $SET_INT TURN 40 import "actor/_airoller.fus" state "create_body": if: expr: mapvar("eyespider_dodecas_ran_away_1") then: play: "data/maps/demo/recs/eyespider_dodecas_wait_2.fus" goto immediate: "start2" if: then: play: "data/maps/demo/recs/eyespider_dodecas_wait_1.fus" goto immediate: "start" state "start": if: expr: mapvar("start2_minimap") then: set mapvar("eyespider_dodecas_ran_away_1"): T play: "data/maps/demo/recs/eyespider_dodecas_run_away_1.fus" goto: "start2" state "start2": anim: "anim/spider.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/big_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/water_roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/coin_beast.fus" state: "init" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/rollerspider.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/bird.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata anim: "anim/roller.fus" state: "stand" pos: (0 0) rot: 0 turn: no keys: u: d: l: r: nodata state "create_body": if() then: play: "actor/hermit/recs/trapped.fus" goto: "trapped" state "trapped": if: coll: any yes ;; . . . ;; \ ;; . . + ;; / ;; (.) . . . then: play: "actor/hermit/recs/trapped.fus" if() then: play: "actor/hermit/recs/escape1.fus" goto: "escape1_wait" state "escape1_wait": if: # If the bird on jungle5.fus walks to our edge of platform, # he's about to turn and head away, so now's our chance to make # a break for it!.. coll: bodies("crush") any yes ;; . . . . . . . + - + ;; /*\*/*\ ;; . . . . . . . + - + - + ;; /*\*/*\*/ ;; . . . . . . . + - + - + ;; \*/*\*/ ;; (.) . . . . . + - + then: play: "actor/hermit/recs/escape2.fus" goto: "open_door" if() then: play: "actor/hermit/recs/escape1_wait.fus" state "open_door": if() then: set mapvar("vines3_door"): T goto: "escaped" state "escaped": anim: "anim/spider.fus" state: "sleep" pos: ( -11 10) rot: 0 turn: yes keys: x: y: u: d: l: r: data: " w5" anim: "anim/spider.fus" state: "stand" pos: ( -11 7) rot: 3 turn: no keys: x: y: u: d: l: r: data: " w1" anim: "anim/spider.fus" state: "crawl" pos: ( -11 10) rot: 0 turn: yes keys: x: y: u: d: is was l: r: data: " w20-d w32+r w4-r w28+l w2-l w30+l w1-l w59+l w21-l w17+l w9-l w1+d w3+l w11-l w41+r w17-d w32-r w4+l w2-l w18+r w8-r w25+d w2+l w18-l w14-d w2+r w14-r w43" anim: "anim/spider.fus" state: "stand" pos: ( -11 7) rot: 3 turn: no keys: x: y: u: d: l: r: data: " w20+r w46-r w5+l w7-l w30+l w38-l w14+r w3-r w25+l w31-l w10+d w4+r w43-r w34+r w3-r w2-d w18+y w1-y w10+d w5+y w3-y w11-d w44+u w3-u w53+r w41+d w14-r w12+l w7-l w1-d w7+r w29-r w45+l w10-l w8+r w2+u w1-r w2-u w14+r w27-r w10+d w4+r w38-d w3-r w13+r w6-r w8+d w3+l w10-l w15+r w30-r w6+l w43-d w13-l w2+d w3+r w19-d w14-r w7+r w3-r w10+l w2-l w14+d w3+r w35-d w15-r w23+d w5+r w61-r w6-d w11+l w16-l w4+d w34+l w8-l w16+y w1-y w12+r w11-r w5+l w3-l w1-d w9+y w1-y w18+d w5+r w51-d w10-r w3+l w3-l w12+r w3-r w9+d w8+l w19-l w12-d w9+r w29-r w30+l w15-l w2+r w2-r w16+r w2-r w43" collmap "hitbox": ;; . . . . ;; *\*/*\*/*\*/* ;; . - + - + - + - . ;; *\*/*\*/*\*/*\*/* ;; . - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/* ;; . - + - + -(+)- + - + - . ;; */*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - . ;; */*\*/*\*/*\*/*\* ;; . - + - + - + - . ;; */*\*/*\*/*\* ;; . . . . import "anim/_hotspot.fus" collmsgs: "crush" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "death_" import "anim/_roller.fus" state "dead": rgraph: "dead_cycle" if() then: die $SET_STR NS eyespider_ $SET_BOOL EYESPIDER import "anim/_spider.fus" $SET_STR NS spider_ import scoped "anim/_spider.fus" $SET_STR ANIM_NS bird_ $SET_STR RGRAPH_NS spider_ $SET_BOOL SPIDER import scoped "anim/_bird.fus" $SET_STR ANIM_NS roller_ $SET_STR RGRAPH_NS spider_ $SET_BOOL SPIDER import scoped "anim/_roller.fus" $SET_STR ANIM_NS flier_ $SET_STR RGRAPH_NS spider_ $SET_BOOL SPIDER import scoped "anim/_flier_core.fus" $SET_STR RGRAPH_NS "minimap_" $UNSET_BOOL ABILITY $SET_BOOL MINIMAP import "anim/_door.fus" # Expected variables: # RGRAPH_NS (str): e.g. "" $SET_INT MAX_AGE 100 state "string_appear": if: then: goto delay: "_string_appear" state "_string_appear": rgraph: $PREFIX RGRAPH_NS "string_appear" if: then: goto: "string_stay" state "string_stay": rgraph: $PREFIX RGRAPH_NS "string_stay" if: then: inc myvar("age") continue if: expr: > myvar("age") $GET_INT MAX_AGE then: goto delay: "string_disappear" state "string_disappear": rgraph: $PREFIX RGRAPH_NS "string_disappear" if: then: remove # Expected lexer vars: # NS (str), e.g. "spider_" vars: "is_rollerspider": F "is_aimerspider": F "is_spikeyspider": F "is_flierspider": F "is_birdspider": F "is_flipspider": F "is_stickyspider": F # Vars controlling labels which *don't* depend on "is_*spider" vars # (These labels are moved around to animate the spider) # NOTE: these labels are given default values in data/_spider.fus, # so we probably don't actually need to set them here. # PROBABLY TODO: remove them from here; I don't think we would # ever need to modify their values. nosave label "label:head": $PREFIX NS "head" nosave label "label:crawl_head": $PREFIX NS "crawl_head" nosave label "label:sleep_head": $PREFIX NS "sleep_head" nosave label "label:fleg": $PREFIX NS "fleg" nosave label "label:bleg": $PREFIX NS "bleg" # Vars controlling labels which *do* depend on "is_*spider" vars # (These labels are set by proc "update_vars", and are used # to customize the spider's appearance) nosave label "label:_head": null nosave label "label:eye": null nosave label "label:nose": null nosave label "label:toe": null nosave label "label:headbump": null nosave label "label:head_spikes": null nosave label "label:head_spikes_extended": null nosave "carrying": null nosave "carrying_respawn_counter": null nosave label "label:carrying": null nosave "spit_anim": null proc toplevel onstatesetchange "update_vars": # Sets various vars which depend on the "is_*spider" vars. # Default label values: set myvar("label:_head"): $PREFIX NS "_head" set myvar("label:eye"): $PREFIX NS "eye" set myvar("label:nose"): $PREFIX NS "nose" set myvar("label:toe"): null set myvar("label:headbump"): null set myvar("label:head_spikes"): null set myvar("label:head_spikes_extended"): null # Overriding the default label values depending on what # kind(s) of spider we are: if: expr: myvar("is_rollerspider") then: set myvar("label:_head"): $PREFIX NS "_head_roller" if: expr: myvar("is_aimerspider") then: set myvar("label:nose"): $PREFIX NS "nose_aimer" set myvar("label:headbump"): $PREFIX NS "headbump_aimer" if: expr: myvar("is_flierspider") then: set myvar("label:headbump"): $PREFIX NS "headbump_flier" if: expr: myvar("is_spikeyspider") then: set myvar("label:head_spikes"): $PREFIX NS "head_spikes" set myvar("label:head_spikes_extended"): $PREFIX NS "head_spikes_extended" if: expr: myvar("is_flipspider") then: set myvar("label:eye"): $PREFIX NS "eye_flip" if: expr: myvar("is_stickyspider") then: set myvar("label:toe"): $PREFIX NS "toe_sticky" # Set myvar("spit_anim"), i.e. which stateset to use when spawning # our "spit" $IF EYESPIDER: set myvar("spit_anim"): "anim/eyespit.fus" $IF !EYESPIDER: if: expr: myvar("is_spikeyspider") then: set myvar("spit_anim"): "anim/spikeyspit.fus" else: set myvar("spit_anim"): "anim/spit.fus" on "crush": goto: "dead" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "" import "anim/_roller.fus" state "dead": rgraph: "dead_cycle" if() then: die state "born": rgraph: "flier_born" if: coll: all no ;; *\*/* ;; -(+)- ;; */*\* then: goto: "hover" if: key: wasdown b key: not isdown f then: rot: 1 move: 1 0 delay: 1 if: key: wasdown f key: not isdown b then: rot: -1 move: 1 0 delay: 1 if: key: wasdown u then: move: 1 0 delay: 1 import "anim/_flier_core.fus" state "dead": rgraph: "dead_cycle" if() then: die state "stand": rgraph: "roller2" # + - + # / / # (+)- + if: key: wasdown u coll: all yes ;; + ;; ;; ( ) then: move: 2 1 rot: 3 goto: "grab" delay: 1 if: key: wasdown f key: not isdown b coll: all yes ;; ( ) + then: move: 1 0 rot: 1 goto: "stand_flipped" delay: 1 if: key: wasdown u key: wasdown f key: not isdown b coll: all yes ;; ( ) . + coll: all no ;; *\*/* ;; ( ) then: move: 2 0 rot: 2 goto: "grab" delay: 1 if: key: wasdown f key: not isdown b coll: all no ;; /* ;; ( )- + - ;; */*\* then: rot: -1 delay: 1 if: key: wasdown b key: not isdown f then: turn rot: 2 delay: 1 state "stand_flipped": rgraph: "roller2_flipped" # + - + # \ \ # (+)- + if: key: wasdown d key: wasdown f key: not isdown b coll: all no ;; ( )- ;; * then: rot: -1 delay: 1 if: key: wasdown f key: not isdown b coll: all yes ;; ( ) + then: move: 1 0 rot: 2 goto: "stand" delay: 1 if: key: wasdown f key: not isdown b coll: all no ;; ( )- ;; * then: rot: -1 delay: 1 if: key: wasdown b key: not isdown f then: turn rot: 1 delay: 1 state "grab": rgraph: "roller2" if: key: not isdown u then: goto: "stand" delay: 1 $SET_STR RGRAPH_NS "" $UNSET_BOOL SPIKEY $UNSET_BOOL EYE import "anim/_spit.fus" # Expected to be imported by the "stand", "step", "step_down" states. # This allows the actions in this file to be "buffered" during # stepping animations (e.g. buffering a jump while stepping). # Also, as of this writing, the "turn" state does a "goto immediate" # into "step" state, so it also allows buffering of all these # actions. # Can't stand on nothing "ground_disappeared_jump" if: any: all: expr: myvar("is_stickyspider") coll: any no ;; (+) + all: not: expr: myvar("is_stickyspider") coll: any no ;; (+)- + then: move: 1 0 goto immediate: "start_jump" $IF SPIDER: "spit" if: key: wentdown y then: call: "spit" "become_bird" if: expr: myvar("is_birdspider") key: wentdown x coll: all no ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . then: goto: "bird_crawl" delay: 1 $IF EYESPIDER: "close_eye" if: key: wasdown x then: goto delay: "eye_closing" "crawl" if: key: wasdown d coll: all yes # Can only crawl when there's an edge under you. # This is significant for stickyspider. ;; (.)- . then: goto delay: "crawling" "turn" if: key: wasdown b key: not isdown f then: move: 1 0 turn goto delay: "turn" "look_up" if: expr: myvar("is_aimerspider") key: wasdown x key: not wasdown f key: not wasdown b then: goto: "look_up" # Expected vars: # ANIM_NS (str), e.g. "hexroller_", "" # RGRAPH_NS (str), e.g. "hexrollerspider_", "" collmsgs: "solid" state $PREFIX ANIM_NS "init": if() then: set myvar("u"): F set myvar("d"): F set myvar("f"): F set myvar("b"): F set myvar("speed"): 0 goto immediate: $PREFIX ANIM_NS "stand" $SET_STR R0 "" $SET_STR R1 "_R1" $SET_STR R2 "_R2" $SET_STR R3 "_R3" $SET_STR R4 "_R4" $SET_STR R5 "_R5" import "anim/_hexroller.roll.fus" $SET_STR R0 "_R1" $SET_STR R1 "_R2" $SET_STR R2 "_R3" $SET_STR R3 "_R4" $SET_STR R4 "_R5" $SET_STR R5 "" import "anim/_hexroller.roll.fus" $SET_STR R0 "_R2" $SET_STR R1 "_R3" $SET_STR R2 "_R4" $SET_STR R3 "_R5" $SET_STR R4 "" $SET_STR R5 "_R1" import "anim/_hexroller.roll.fus" $SET_STR R0 "_R3" $SET_STR R1 "_R4" $SET_STR R2 "_R5" $SET_STR R3 "" $SET_STR R4 "_R1" $SET_STR R5 "_R2" import "anim/_hexroller.roll.fus" $SET_STR R0 "_R4" $SET_STR R1 "_R5" $SET_STR R2 "" $SET_STR R3 "_R1" $SET_STR R4 "_R2" $SET_STR R5 "_R3" import "anim/_hexroller.roll.fus" $SET_STR R0 "_R5" $SET_STR R1 "" $SET_STR R2 "_R1" $SET_STR R3 "_R2" $SET_STR R4 "_R3" $SET_STR R5 "_R4" import "anim/_hexroller.roll.fus" state "stand": rgraph: "octopus_anim" state "stand": collmsgs: "crush" on "touch": if: exists myvar("key") then: set mapvar(myvar("key")): T remove rgraph: "spikeball" hitbox: ;; . . ;; *\*/* ;; . -(+)- . ;; */*\* ;; . . on "crush": goto: "dead" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "" import "anim/_flier.fus" collmsgs: "carryable" vars: # For use with handlers for collmsg "carryable" "carryable": "mini_eye" "respawn_counter": null "carryable_rgraph": "mini_eye_carried" $SET_STR RGRAPH_STAND "mini_eye" $SET_STR RGRAPH_CROUCH "mini_eye_crouch" $SET_BOOL NO_COLLECT_ON_SPIT $SET_BOOL NO_COLLECT_ON_TOUCH import "anim/_coin.fus" # Expected vars: # ANIM_NS (str), e.g. "roller_", "" # RGRAPH_NS (str), e.g. "rollerspider_", "" # Optional vars: # # STICKY_GRAB: you can "catch" an otherwise uncatchable vertex # as you rotate past it # # + - + + - + # / / => \ \ # (+)- + + + + - + # # FLIPPY_GRAB: you can roll onto your "side" # (and grabbing with your side has a separate anim) # # + - + # \ \ # (+)- + # # GOTO_GRABBED: when you grab something, you stay grabbed until # letting go of "f" # # SPIDER: we are a rollerspider # #$SET_BOOL FLIPPY_GRAB #$SET_BOOL STICKY_GRAB $SET_BOOL STICKY_GRAB $SET_BOOL FLIPPY_GRAB #$SET_BOOL STICKY_GRAB #$SET_BOOL GOTO_GRABBED # TODO: when GOTO_GRABBED is active, when you do the STICKY_GRAB "side grab", # you should stay grabbed until you let go of "f" #$SET_BOOL STICKY_GRAB #$SET_BOOL GOTO_GRABBED #$SET_BOOL FLIPPY_GRAB $IF SPIDER: $SET_BOOL NOGRAB collmsgs: "touch" state $PREFIX ANIM_NS "stand": rgraph: $PREFIX RGRAPH_NS "roller" hitbox: ;; . ;; * ;; (.) . on "spit": goto: $PREFIX ANIM_NS "turn" ################################################ # rollerspider turning back into spider $IF SPIDER: "unroll" if: key: not isdown x coll: all yes ;; (+)- + then: goto: "crawl" "unroll_backward" if: key: not isdown x coll: all yes ;; + ;; / ;; (+) . then: goto: "crawl" rot: -2 turn ################################################ # Grabbing $IF !NOGRAB: # Grabbing a vertex "grab" if: key: wasdown u coll: any yes ;; . + ;; ;; ( ) . coll: all no ;; . ;; \* ;; ( ) . $IF WATER_ROLLER: coll: water all no ;; . ;; \* ;; ( ) . then: move: 2 1 rot: 3 $IF GOTO_GRABBED: goto: $PREFIX ANIM_NS "grabbed" $IF !GOTO_GRABBED: goto: $PREFIX ANIM_NS "grab" delay: 1 $IF !NOGRAB: # Attempting to grab, but no vertex (so we just stick out our pseudopod) "grab_fail" if: key: wasdown u coll: all no ;; . ;; \* ;; ( ) . $IF WATER_ROLLER: coll: water all no ;; . ;; \* ;; ( ) . then: goto: $PREFIX ANIM_NS "grab" delay: 1 ################################################ # Rolling forward "roll_forward" if: # Roll forward (not holding d) key: not isdown d key: not isdown b key: wasdown f any: coll: any yes ;; ( ) + $IF WATER_ROLLER: coll: water any yes ;; ( ) . ;; * then: move: 1 0 rot: 2 delay: 1 "spin_forward" if: # Spin around forward (possibly holding d) key: not isdown b key: wasdown f all: coll: all no ;; ( )- . ;; * $IF WATER_ROLLER: coll: water all no ;; ( )- . ;; * then: rot: -1 delay: 1 "roll_forward_down" if: # Roll forward (possibly holding d) key: not isdown b key: wasdown f any: coll: any yes ;; ( ) + $IF WATER_ROLLER: coll: water any yes ;; ( ) . ;; * then: move: 1 0 rot: 2 delay: 1 ################################################ # Turning around "turn" if: # Turn around key: not isdown f key: wasdown b then: turn rot: 2 delay: 1 state $PREFIX ANIM_NS "turn": # When bumped, turn around "default" if: then: confused: toggle goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "grab": # Rolling around with your pseudopod stuck out rgraph: $PREFIX RGRAPH_NS "roller_grab" hitbox: ;; . . ;; *\* ;; (.) . "ungrab" if: key: not isdown u then: goto: $PREFIX ANIM_NS "stand" delay: 1 $IF FLIPPY_GRAB: "flip_grab" if: key: wasdown f key: not isdown b any: coll: any yes ;; ( ) + $IF WATER_ROLLER: coll: water any yes ;; ( ) . ;; * then: move: 1 0 rot: 1 goto: $PREFIX ANIM_NS "grab_flipped" delay: 1 $IF STICKY_GRAB: "stick_grab" if: key: wasdown f key: not isdown b coll: any yes ;; ( ) . + coll: all no ;; *\*/* ;; ( ) . . $IF WATER_ROLLER: coll: water all no ;; * * * ;; ( ) . . then: move: 2 0 rot: 2 $IF GOTO_GRABBED: goto: $PREFIX ANIM_NS "grabbed" delay: 1 $IF FLIPPY_GRAB: "flip_grab_2" # ??? if: key: wasdown f key: not isdown b any: coll: any yes ;; . ;; ;; ( ) . . ;; ;; + . $IF WATER_ROLLER: coll: water any yes ;; . ;; ;; ( ) . . ;; * ;; . . coll: all no ;; . ;; /* ;; ( )- + - . ;; */*\* ;; . . $IF WATER_ROLLER: coll: water all no ;; . ;; /* ;; ( )- + - . ;; */*\* ;; . . then: move: 0 -1 goto: $PREFIX ANIM_NS "grab_flipped" delay: 1 "forward" if: key: wasdown f key: not isdown b any: coll: any yes ;; . ;; ;; ( ) . . ;; ;; . + $IF WATER_ROLLER: coll: water any yes ;; . ;; ;; ( ) . . ;; ;; . . ;; * coll: all no ;; . ;; /* ;; ( )- + - . ;; */*\* ;; . . $IF WATER_ROLLER: coll: water all no ;; . ;; /* ;; ( )- + - . ;; */*\* ;; . . then: move: 1 -1 rot: 2 $IF GOTO_GRABBED: goto: $PREFIX ANIM_NS "grabbed" delay: 1 "forward_2" # ??? if: key: wasdown f key: not isdown b coll: all no ;; /* ;; ( )- + - ;; */*\* $IF WATER_ROLLER: coll: water all no ;; /* ;; ( )- + - ;; */*\* then: rot: -1 delay: 1 $IF GRAB_WHEN_TURNING: "grab_when_turning" if: key: wasdown b key: not isdown f coll: any yes ;; . + ;; ;; ( ) . coll: all no ;; . ;; \* ;; ( ) . $IF WATER_ROLLER: coll: water all no ;; . ;; \* ;; ( ) . then: move: 2 1 rot: 3 turn rot: 2 $IF GOTO_GRABBED: goto: $PREFIX ANIM_NS "grabbed" delay: 1 "turn" if: key: wasdown b key: not isdown f then: turn rot: 2 delay: 1 state $PREFIX ANIM_NS "grab_flipped": rgraph: $PREFIX RGRAPH_NS "roller_grab_flipped" hitbox: ;; . . ;; */* ;; (.) . "ungrab_forward" if: key: not isdown u key: wasdown f then: goto: $PREFIX ANIM_NS "stand" delay: 1 "ungrab_backward" if: key: not isdown u key: wasdown b then: goto: $PREFIX ANIM_NS "stand" turn rot: 1 delay: 1 "forward_down" if: key: wasdown d key: wasdown f key: not isdown b coll: all no ;; ( )- ;; * $IF WATER_ROLLER: coll: water all no ;; ( )- ;; * then: rot: -1 delay: 1 "forward" if: key: wasdown f key: not isdown b any: coll: any yes ;; ( ) + $IF WATER_ROLLER: coll: water any yes ;; ( ) . ;; * then: move: 1 0 rot: 2 goto: $PREFIX ANIM_NS "grab" delay: 1 "forward_2" # ??? if: key: wasdown f key: not isdown b coll: all no ;; ( )- ;; * $IF WATER_ROLLER: coll: water all no ;; ( )- ;; * then: rot: -1 delay: 1 "turn" if: key: wasdown b key: not isdown f then: turn rot: 1 delay: 1 state $PREFIX ANIM_NS "grabbed": rgraph: $PREFIX RGRAPH_NS "roller_grab" hitbox: ;; . . ;; *\* ;; (.) . "ungrab" if: key: not isdown u then: goto: $PREFIX ANIM_NS "stand" delay: 1 # Expected vars: # CRAWL_SPIT (str) e.g. "crawl_spit", "crawl_looking_up_spit" "spit" if: key: wentdown y then: call: $GET_STR CRAWL_SPIT "become_bird" if: expr: myvar("is_birdspider") key: wentdown x coll: all no ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . then: goto: "bird_crawl" delay: 1 "flip" if: expr: myvar("is_flipspider") key: wentdown u coll: all yes ;; (+)- + coll: all no ;; (.) . ;; * ;; . then: turn rot: 3 goto delay: "crawl_flip" # Flip over an edge # NOTE: this thing is experimental, and therefore turned off by default... # Feels fairly good, but a bit odd, and can happen by accident a # bit too easily $SKIP: "flip_experimental" if: expr: myvar("is_flipspider") key: wasdown f key: wentdown b coll: all yes ;; (+)- + coll: all no ;; (.) . ;; * ;; . then: turn rot: 3 goto delay: "crawl_flip" collmsgs: "solid" vars: # This tells spit that we "accept" mini_eyes # (i.e. if spit which collides with us is carrying a mini_eye, # it should transfer it to us by calling our accept_carryable proc) "accept_carryable": "mini_eye" # If set to T, we open even if a spider isn't nearby "auto_open": F # The collmsg (or stateset filename) of bodies we will look at "key_anim": "touch" # Vars for temporarily storing the results of "coll: bodies ..." nosave "coll_looking": F nosave "coll_looking_l": F nosave "coll_looking_d": F proc "accept_carryable": # me: an eye # you: spit which is carrying a mini_eye if: exists myvar("accepted_mini_eye_key") then: set mapvar(myvar("accepted_mini_eye_key")): T collmap "hitbox": ;; . . ;; *\*/* ;; . -(+)- . ;; */*\* ;; . . collmap "opening": ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + -(+)- + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + collmap "looking": ;; + - + ;; /*\*/*\ ;; + - + - + ;; /*\*/*\*/*\ ;; + - + - + - + ;; /*\*/*\*/*\*/*\ ;; + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\ ;; + -(+)- + - + - + - + ;; \*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + collmap "looking_l": collmap("looking") ^ 2 collmap "looking_d": collmap("looking") ^ -2 state "closed": rgraph: "eye_closed" hitbox: collmap("hitbox") if: any: not: exists myvar("key") expr: mapvar(myvar("key")) any: not: exists myvar("antikey") not: expr: mapvar(myvar("antikey")) any: expr: myvar("auto_open") coll: bodies(myvar("key_anim")) any yes collmap("opening") then: goto delay: "opening" state "opening": rgraph: "eye_opening" hitbox: collmap("hitbox") if() then: if: exists myvar("opened_key") then: inc mapvar(myvar("opened_key")) goto: "open" state "open": rgraph: "eye_open" hitbox: collmap("hitbox") if: any: all: exists myvar("key") not: expr: mapvar(myvar("key")) all: exists myvar("antikey") expr: mapvar(myvar("antikey")) not: any: expr: myvar("auto_open") coll: bodies(myvar("key_anim")) any yes collmap("opening") then: goto delay: "closing" if() then: set myvar("coll_looking"): F set myvar("coll_looking_l"): F set myvar("coll_looking_d"): F if: coll: bodies(myvar("key_anim")) any yes collmap("looking") then: set myvar("coll_looking"): T if: coll: bodies(myvar("key_anim")) any yes collmap("looking_l") then: set myvar("coll_looking_l"): T if: coll: bodies(myvar("key_anim")) any yes collmap("looking_d") then: set myvar("coll_looking_d"): T continue if: expr: myvar("coll_looking") not: expr: myvar("coll_looking_l") not: expr: myvar("coll_looking_d") then: goto delay: "looking" if: not: expr: myvar("coll_looking") expr: myvar("coll_looking_l") not: expr: myvar("coll_looking_d") then: goto delay: "looking_l" if: not: expr: myvar("coll_looking") not: expr: myvar("coll_looking_l") expr: myvar("coll_looking_d") then: goto delay: "looking_d" state "closing": rgraph: "eye_closing" hitbox: collmap("hitbox") if() then: if: exists myvar("opened_key") then: dec mapvar(myvar("opened_key")) goto: "closed" # "anim/_eye_looking.fus": # Provides states looking, unlooking, look (with suffix indicated # by LOOK_SUFFIX) $SET_STR LOOK_SUFFIX "" import "anim/_eye_looking.fus" $SET_STR LOOK_SUFFIX "_l" import "anim/_eye_looking.fus" $SET_STR LOOK_SUFFIX "_d" import "anim/_eye_looking.fus" $SET_STR ANIM_NS human_ import "anim/_human.fus" $SET_BOOL NO_COLLECT_ON_TOUCH on "crush": goto: "dead" import "anim/_coin.behaviour.fus" state "_crouch": if() then: goto: "crawl" state "_stand": if() then: goto: "stand" state "appear": rgraph: "dead_once_reversed" if() then: goto: "stand" state "stand": rgraph: "coin_beast_stand" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . # Crawling, turning import "anim/_walker_stand.state.fus" # Stepping and jumping import "anim/_walker_jump.state.fus" import "anim/_walker_step.state.fus" state "turn": rgraph: "coin_beast_turn" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "step": rgraph: "coin_beast_step" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "step_up": rgraph: "coin_beast_step_up" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "step_down": rgraph: "coin_beast_step_down" hitbox: ;; . . . ;; *\*/*\*/* ;; . - + - . - . ;; */*\*/*\* ;; . (.) . # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "appear_crouch": rgraph: "dead_once_crouch_reversed" "default" if() then: goto: "crawl" state "crawling": rgraph: "coin_beast_crawling" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . "default" if() then: goto: "crawl" state "crawl": rgraph: "coin_beast_crawl" hitbox: ;; . ;; * ;; (.) . "uncrawl" if: key: not isdown d coll: all no ;; . . ;; *\*/* ;; . - + - . ;; */ \* ;; (.) . then: goto delay: "uncrawling" # Crawling import "anim/_walker_crawl.state.fus" "turn" if: key: wasdown b then: move: 1 0 turn delay: 1 state "crawl_step": rgraph: "coin_beast_crawl_step" hitbox: ;; . . ;; */* ;; (.) . "default" if() then: goto: "crawl" state "crawl_step_down": rgraph: "coin_beast_crawl_step_down" hitbox: ;; . . ;; *\*/* ;; . -(.) . "default" if() then: goto: "crawl" state "uncrawling": rgraph: "coin_beast_uncrawling" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . "default" if() then: goto: "stand" state "start_jump": unsafe "default" if() then: goto: "jump" delay: 2 state "jump": rgraph: "coin_beast_jump" unsafe hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . # Landing, jumping, crashing import "anim/_walker_jumping.state.fus" state "collected": rgraph: "dead_once" unsafe "call_collected" if() then: # Do whatever it is coin-like things do while they've been collected... call: "while_collected" continue "default" if() then: die state "mostly_dead": rgraph: "dead_cycle" unsafe "default" if() then: die mostly state "dead": rgraph: "dead_cycle" unsafe "default" if() then: die $SET_STR RGRAPH_NS "" import "anim/_string.fus" # Expected vars: # ANIM_NS (str), e.g. "hexroller_", "" # RGRAPH_NS (str), e.g. "hexrollerspider_", "" collmsgs: "crush" on "spit": confused: toggle $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "" $SET_INT DELAY 2 import "anim/_hexroller.fus" "step_up" if: key: wasdown f any: all: expr: myvar("is_stickyspider") coll: all yes ;; + ;; ;; ( ) + all: not: expr: myvar("is_stickyspider") coll: all yes ;; + ;; / ;; ( ) + then: move: 1 0 rot: 1 goto delay: "step_up" "step_forward" if: key: wasdown f any: all: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + + all: not: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + - + coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto delay: "step" "step_down" if: key: wasdown f any: all: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + ;; ;; + all: not: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + ;; \ ;; + coll: all no ;; \*/* ;; + - ;; /*\*/* ;; ( ) - + - ;; */*\* then: move: 1 0 rot: -1 goto delay: "step_down" "forced_jump_up" if: key: wasdown f coll: any yes ;; + ;; / ;; ( ) then: move: 1 0 rot: 1 goto immediate: "start_jump" "forced_jump" if: key: wasdown f coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" $SET_BOOL WATER $SET_STR RGRAPH_NS "water_" import "anim/_string.fus" # Expected variables: # RGRAPH_NS (str): e.g. "", "ability_" # ABILITY (bool) # MINIMAP (bool) $SET_STR NS "spider_" import "anim/_spider_vars.fus" $UNSET NS collmap "hitbox": ;; . . ;; *\*/* ;; . -(+)- . ;; */*\* ;; . . # The "cooldown" hitbox is for after a door is used by a body, the # door closes until all bodies are outside this hitbox. collmap "cooldown": ;; + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + - + - + - + - + - + ;; /*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\ ;; + - + - + - + - + -(+)- + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + - + ;; \*/*\*/*\*/*\*/*\*/*\*/ ;; + - + - + - + - + - + vars: "oneway": F "location": null "map": null "anim": null "state": null "set_yourbool": null "set_mapbool": null "set_globalbool": null "set_mapvar.name": null "set_mapvar.value": null "set_globalvar.name": null "set_globalvar.value": null state "init": $IF ABILITY: if: exists myvar("set_yourbool") then: # E.g. sets myvar("is_spikeyspider"): T, which kicks off the # "update_vars" proc from anim/_spider_vars.fus, which sets # up various labels, so that our rgraph looks like a spider # with the associated ability!.. set myvar(myvar("set_yourbool")): T call: "update_vars" continue if: any: not: exists myvar("key") expr: mapvar(myvar("key")) then: goto immediate: "open" if: then: goto immediate: "closed" state "closed": rgraph: "doorframe" hitbox: collmap("hitbox") if: not: expr: myvar("oneway") any: not: exists myvar("key") expr: mapvar(myvar("key")) not: coll: bodies("touch") any yes collmap("cooldown") then: goto: "open" state "open": rgraph: $PREFIX RGRAPH_NS "door" hitbox: collmap("hitbox") on "enter_door": # me: door # you: a body which just entered this door if: expr: yourvar(".safe") # A body can't use a minimap-door unless the body # is controlled by a player $IF MINIMAP: as you: is_player() then: # Relocate whatever entered the door as you: relocate: yourvar("location") yourvar("map") yourvar("anim") yourvar("state") # Set a boolean variable and call the "update_vars" proc # of the body which touched us. # NOTE: this is a bit of a hack... the "spider" body has an # "update_vars" proc, which it uses to set up its labels based # on certain vars, e.g. "is_rollerspider". # The idea is that some doors can set such vars of the spider, # then run the "update_vars" proc so that its labels are # recalculated. # TL;DR this is how a door can turn you into e.g. a rollerspider. if: exists myvar("set_yourbool") then: as you: set myvar(yourvar("set_yourbool")): T call: "update_vars" $IF MINIMAP: show_minimap() if: exists myvar("set_mapvar.name") then: set mapvar(myvar("set_mapvar.name")): myvar("set_mapvar.value") if: exists myvar("set_mapbool") then: set mapvar(myvar("set_mapbool")): T if: exists myvar("set_globalvar.name") then: set globalvar(myvar("set_globalvar.name")): myvar("set_globalvar.value") if: exists myvar("set_globalbool") then: set globalvar(myvar("set_globalbool")): T goto: "closed" if: exists myvar("key") not: expr: mapvar(myvar("key")) then: goto: "closed" collmap "hitbox": ;; . . ;; *\*/* ;; . -(+)- . ;; */*\* ;; . . import "anim/_hotspot.fus" # Expected to be imported by "anim/_spider.fus" # Expected vars: # NS (str), e.g. "spider_" proc "crawl_crush": if: expr: myvar("is_spikeyspider") then: goto delay: "crawl_shielding" else: goto: "dead" state "crawling": rgraph: $PREFIX NS "crawling" hitbox: collmap("stand") # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl" state "uncrawling": rgraph: $PREFIX NS "uncrawling" hitbox: collmap("stand") "default" if() then: goto: "stand" state "crawling_looking_up": rgraph: $PREFIX NS "crawling_looking_up" hitbox: collmap("stand") # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_looking_up_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl_looking_up" state "uncrawling_looking_up": rgraph: $PREFIX NS "uncrawling_looking_up" hitbox: collmap("stand") "default" if() then: goto: "looking_up" state "crawl_looking_up": rgraph: $PREFIX NS "crawl_looking_up" hitbox: collmap("crawl") on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_looking_up_spit" import "anim/_spider_crawl.state.fus" "uncrawl" if: any: key: not isdown d coll: all no ;; (.)- . coll: all no ;; *\*/* ;; - + - ;; */ \* ;; ( ) then: goto delay: "uncrawling_looking_up" "unlook" if: any: key: wasdown f key: wasdown b key: not isdown x then: goto delay: "crawl_unlook_up" state "crawl_spit": rgraph: $PREFIX NS "crawl_spit" hitbox: collmap("crawl") on "crush": call: "crawl_crush" "default" if() then: goto: "crawl" state "crawl_looking_up_spit": rgraph: $PREFIX NS "crawl_looking_up_spit" hitbox: collmap("crawl") on "crush": call: "crawl_crush" "default" if() then: goto: "crawl_looking_up" state "crawl": rgraph: $PREFIX NS "crawl" hitbox: collmap("crawl") on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "uncrawl" if: any: key: not isdown d coll: all no ;; (.)- . coll: all no ;; *\*/* ;; - + - ;; */ \* ;; ( ) then: goto delay: "uncrawling" # Crawling (stepping) import "anim/_walker_crawl.state.fus" "roll_over_gap" if: expr: myvar("is_rollerspider") key: wasdown f coll: all no ;; \* ;; (.) . then: goto: "roller_stand" move: 1 0 rot: 1 delay: $GET_INT ROLLER_STAND_DELAY "roll_into_corner" if: expr: myvar("is_rollerspider") key: wasdown f coll: all yes ;; + ;; \ ;; (.) + then: # TODO: use a different anim, one which shows you # rotating in place, as opposed to this one which # in this case shows you kind of... teleporting # backwards, and then stepping forwards. goto delay: "crawl_step" move: 1 0 rot: 2 "turn" if: key: wasdown b key: not isdown f then: move: 1 0 turn goto: "crawl_turn" delay: 2 "look_up" if: expr: myvar("is_aimerspider") key: not isdown f key: wasdown x then: goto: "crawl_look_up" state "crawl_look_up": rgraph: $PREFIX NS "crawl_look_up" hitbox: collmap("crawl") on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_looking_up_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl_looking_up" state "crawl_unlook_up": rgraph: $PREFIX NS "crawl_unlook_up" hitbox: collmap("crawl") on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_looking_up_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl" state "crawl_step_down": rgraph: $PREFIX NS "crawl_step" hitbox: ;; . . ;; *\*/* ;; . -(.) . on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl" state "crawl_step": # If you make changes to this, you'll probably want to make same # changes to crawl_turn rgraph: $PREFIX NS "crawl_step" hitbox: ;; . . ;; */* ;; (.) . on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl" state "crawl_turn": # Like crawl_step, but without the extended hitbox # (so you can turn around in-place while crouching, without exposing yourself # to being crushed) rgraph: $PREFIX NS "crawl_turn" hitbox: collmap("crawl") on "crush": call: "crawl_crush" # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto immediate: "crawl_step" state "crawl_shielding": # This happens when we are crushed while crawling & spikey rgraph: $PREFIX NS "crawl_shielding" hitbox: collmap("crawl") on "crush": # Do nothing # Don't buffer actions (spitting, etc) out of shield?.. "default" if() then: goto: "crawl" state "crawl_flip": rgraph: $PREFIX NS "crawl_flip" hitbox: collmap("crawl") # Actions (spitting, etc) $SET_STR CRAWL_SPIT "crawl_spit" import "anim/_spider_crawl.state.fus" "default" if() then: goto: "crawl" collmsgs: "crush" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "death_" import "anim/_flier.fus" $SET_INT DELAY 2 state "stand": rgraph: "rocket" unsafe flying if: key: wasdown u then: move: 1 0 rot: 1 goto delay: "turn_up" if: key: wasdown d then: move: 1 0 rot: -1 goto delay: "turn_down" if: key: wasdown f then: move: 1 0 goto delay: "forward" state "forward": rgraph: "rocket_forward" unsafe flying if() then: goto: "stand" state "turn_up": rgraph: "rocket_turn_up" unsafe flying if() then: goto: "stand" state "turn_down": rgraph: "rocket_turn_down" unsafe flying if() then: goto: "stand" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "" import "anim/_bird.fus" # Expected variables: # LOOK_SUFFIX (str), one of "_l", "", "_d" state $SUFFIX LOOK_SUFFIX "looking": rgraph: $SUFFIX LOOK_SUFFIX "eye_looking" hitbox: collmap("hitbox") if() then: goto: $SUFFIX LOOK_SUFFIX "look" state $SUFFIX LOOK_SUFFIX "unlooking": rgraph: $SUFFIX LOOK_SUFFIX "eye_unlooking" hitbox: collmap("hitbox") if() then: goto: "open" state $SUFFIX LOOK_SUFFIX "look": rgraph: $SUFFIX LOOK_SUFFIX "eye_look" hitbox: collmap("hitbox") if: any: all: exists myvar("key") not: expr: mapvar(myvar("key")) all: exists myvar("antikey") expr: mapvar(myvar("antikey")) not: coll: bodies(myvar("key_anim")) any yes collmap($SUFFIX LOOK_SUFFIX "looking") then: goto delay: $SUFFIX LOOK_SUFFIX "unlooking" # Expected to be imported by "anim/_spider.fus" # Expected vars: # NS (str), e.g. "spider_" vars: nosave "bubble_toggle": F state "swim_spit": rgraph: $PREFIX NS "swim_spit" hitbox: collmap("stand") unsafe "default" if() then: goto: "swim" state "swim_jump": # NOTE: the only goto: "swim_jump" is in "start_jump", which checks # whether we're in water, and does goto: "jump" or goto: "swim_jump" # accordingly. # Therefore, if we're in "swim_jump", then we can safely assume we're in # water without checking. rgraph: $PREFIX NS "swim_jump" hitbox: collmap("stand") unsafe "spawn_bubbles" if: then: if: expr: myvar("bubble_toggle") then: spawn: "anim/bubbles.fus" "bubbles" (0 0) 0 f set myvar("bubble_toggle"): F else: set myvar("bubble_toggle"): T continue "land_up" if: any: key: isdown f key: isdown u key: isdown d any: all: expr: myvar("is_stickyspider") coll: all yes ;; + ;; ;; ( ) + all: not: expr: myvar("is_stickyspider") coll: all yes ;; + ;; / ;; ( ) + then: move: 1 0 rot: 1 goto delay: "step" "swim_up" if: any: key: isdown f key: isdown u key: isdown d coll: any yes ;; + ;; / ;; ( ) coll: all no ;; *\*/* ;; - + - ;; \* ;; . ;; ;; ( ) then: move: 2 1 rot: 1 goto immediate: "start_jump" "swim_down" if: any: key: isdown f key: isdown u key: isdown d coll: any yes ;; \ ;; + ;; ;; ( ) coll: all no ;; ;; /* ;; ( )- + - ;; */*\* then: move: 0 0 rot: -1 goto immediate: "start_jump" "swim_forward" if: any: key: isdown f key: isdown u key: isdown d coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" "default" if() then: goto immediate: "swim" state "swim": rgraph: $PREFIX NS "swim" hitbox: collmap("stand") unsafe "always" if: then: set myvar("bubble_toggle"): T continue "spit" if: key: wentdown y then: call: "swim_spit" "land_up" if: any: key: isdown f key: isdown u key: isdown d any: all: expr: myvar("is_stickyspider") coll: all yes ;; + ;; ;; ( ) + all: not: expr: myvar("is_stickyspider") coll: all yes ;; + ;; / ;; ( ) + then: move: 1 0 rot: 1 goto delay: "step" "swim_up" if: any: key: isdown f key: isdown u key: isdown d any: key: isdown u coll: any yes ;; + ;; / ;; ( ) coll: all no ;; *\*/* ;; - + - ;; \* ;; . ;; ;; ( ) then: move: 2 1 rot: 1 goto immediate: "start_jump" "swim_down" if: any: key: isdown f key: isdown u key: isdown d any: key: isdown d coll: any yes ;; \ ;; + ;; ;; ( ) coll: all no ;; ;; /* ;; ( )- + - ;; */*\* then: move: 0 0 rot: -1 goto immediate: "start_jump" "swim_forward" if: any: key: isdown f key: isdown u key: isdown d coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" "turn" if: key: isdown b then: move: 1 0 turn delay: 2 "land" if: any: all: expr: myvar("is_stickyspider") coll: all yes ;; (+) + all: not: expr: myvar("is_stickyspider") coll: all yes ;; (+)- + then: goto: "stand" delay: 2 "jump_up" if: expr: myvar("is_aimerspider") key: wasdown x key: wasdown u coll: all no ;; *\*/* ;; - + - ;; \* ;; ;; ;; ( ) then: move: 1 0 rot: 1 goto immediate: "start_jump" "jump" if: key: wasdown u coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" $SET_INT MOVE_DELAY 2 state "stand": rgraph: $PREFIX ANIM_NS "stand" if: key: isdown f then: move: 1 0 goto: "stand" delay: $GET_INT MOVE_DELAY if: key: isdown b then: move: 1 0 turn goto: "stand" delay: $GET_INT MOVE_DELAY if: key: isdown u then: move: 1 0 rot: 1 goto: "stand" delay: $GET_INT MOVE_DELAY if: key: isdown d then: rot: -1 move: -1 0 goto: "stand" delay: $GET_INT MOVE_DELAY collmsgs: "carryable" vars: # For use with handlers for collmsg "carryable" "carryable": "food" "respawn_counter": null "carryable_rgraph": "food_carried" $SET_STR RGRAPH_STAND "food" $SET_STR RGRAPH_CROUCH "food_crouch" $SET_BOOL NO_COLLECT_ON_SPIT $SET_BOOL NO_COLLECT_ON_TOUCH $SET_INT RESPAWN_TIME 400 import "anim/_coin.fus" # Expected vars: # * RGRAPH_PREFIX (str) e.g. "switch_", "switch_oneway_" # * ONEWAY (bool) # Expected vars at runtime: # * key (str) $SET_INT DELAY 2 collmap "hitbox": ;; + ;; * ;; (.)- . state "init": if: expr: mapvar(myvar("key")) then: goto immediate: "switch_on" if: then: goto immediate: "switch_off" state "switch_off": rgraph: $PREFIX RGRAPH_PREFIX "off" collmsgs: "switch" hitbox: collmap("hitbox") on "spit": set mapvar(myvar("key")): T goto: "switching_on" delay: $GET_INT DELAY state "switching_on": rgraph: $PREFIX RGRAPH_PREFIX "on" collmsgs: "switch" hitbox: collmap("hitbox") if: then: goto: "switch_on" state "switch_on": rgraph: $PREFIX RGRAPH_PREFIX "on" collmsgs: "switch" hitbox: collmap("hitbox") $IF !ONEWAY: on "spit": set mapvar(myvar("key")): F goto: "switching_off" delay: $GET_INT DELAY state "switching_off": rgraph: $PREFIX RGRAPH_PREFIX "off" collmsgs: "switch" hitbox: collmap("hitbox") if: then: goto: "switch_off" # Expected vars: # ANIM_NS (str), e.g. "flier_", "" # RGRAPH_NS (str), e.g. "flierspider_", "" #$SET_BOOL ONLY_STICK_IF_NOT_SHIFT state $PREFIX ANIM_NS "hover": rgraph: $PREFIX RGRAPH_NS "flier" unsafe flying hitbox: ;; *\*/* ;; -(+)- ;; */*\* ############ # ROTATE B # ############ $IF SPIDER: if: key: wasdown b key: not isdown f $IF ONLY_STICK_IF_NOT_SHIFT: key: not isdown x coll: all yes ;; . - . ;; ;; ( ) then: move: 0 1 turn rot: 3 goto: "crawl" delay: 2 if: key: wasdown b key: not isdown f coll: all no ;; *\*/* ;; - + - ;; \* ;; ( ) then: rot: 1 move: 1 0 goto: $PREFIX ANIM_NS "fly" delay: 1 if: key: wasdown b key: not isdown f coll: all no ;; \*/* ;; ( ) + - ;; /*\* then: move: 1 0 rot: 1 goto: $PREFIX ANIM_NS "fly" delay: 1 if: key: wasdown b key: not isdown f then: rot: 1 goto: $PREFIX ANIM_NS "fly" delay: 1 ############ # ROTATE F # ############ $IF SPIDER: if: key: wasdown f key: not isdown b $IF ONLY_STICK_IF_NOT_SHIFT: key: not isdown x coll: all yes ;; ( ) ;; ;; . - . then: move: -1 -1 goto: "crawl" delay: 2 if: key: wasdown f key: not isdown b coll: all no ;; ( ) ;; /* ;; - + - ;; */*\* then: rot: -1 move: 1 0 goto: $PREFIX ANIM_NS "fly" delay: 1 if: key: wasdown f key: not isdown b coll: all no ;; \*/* ;; ( ) + - ;; /*\* then: move: 1 0 rot: -1 goto: $PREFIX ANIM_NS "fly" delay: 1 if: key: wasdown f key: not isdown b then: rot: -1 goto: $PREFIX ANIM_NS "fly" delay: 1 ############ # STRAIGHT # ############ $IF SPIDER: if: key: wasdown u $IF ONLY_STICK_IF_NOT_SHIFT: key: not isdown x coll: all yes ;; ( ) . ;; / coll: all no ;; \ ;; ( ) . then: move: 0 -1 rot: 1 goto: "crawl" delay: 2 if: key: wasdown u $IF ONLY_STICK_IF_NOT_SHIFT: key: not isdown x coll: all yes ;; \ ;; ( ) . coll: all no ;; ( ) . ;; / then: move: 1 1 rot: 2 turn goto: "crawl" delay: 2 if: key: wasdown u coll: all no ;; \*/* ;; ( ) + - ;; /*\* then: move: 1 0 goto: $PREFIX ANIM_NS "fly" delay: 0 state $PREFIX ANIM_NS "fly": rgraph: $PREFIX RGRAPH_NS "flier_fly" unsafe flying hitbox: ;; *\*/* ;; -(+)- ;; */*\* # DOESN'T WORK BECAUSE NO WAY TO KNOW WHETHER WE SHOULD TURN OR NOT: #$IF SPIDER: # if: # coll: water any yes # ;; . . # ;; *\*/* # ;; . -(+)- . # ;; */*\* # ;; . . # then: # move: -1 -1 # goto: "swim_jump" # delay: 4 if: then: goto: $PREFIX ANIM_NS "hover" $IF !NO_COLLECT_ON_SPIT: on "spit": goto immediate: "_collected" $IF !NO_COLLECT_ON_TOUCH: on "touch": goto immediate: "_collected" proc "while_collected": # What we do every frame after we have been collected # (Basically, wait to potentially respawn) # Respawn based on a mapvar if: exists myvar("respawn_counter") then: if: expr: <= mapvar(myvar("respawn_counter")) 0 then: goto immediate: "init" # Respawn based on a timer if: exists myvar("respawn_in") then: if: expr: <= myvar("respawn_in") 0 then: goto immediate: "init" else: dec myvar("respawn_in") # Default anim: init state "init": if: exists myvar("collected_key") expr: mapvar(myvar("collected_key")) then: goto: "collected" if() then: if: any: not: exists myvar("key") expr: mapvar(myvar("key")) not: exists myvar("antikey") expr: mapvar(myvar("antikey")) then: goto immediate: "_appear" else: # Do nothing; so, our state will remain "init", # so we will be invisible, and each frame we will # retry all these checks. state "_appear": if: exists myvar("appear") expr: myvar("appear") then: if: exists myvar("crouch") expr: myvar("crouch") then: goto delay: "appear_crouch" else: goto delay: "appear" if() then: if: exists myvar("crouch") expr: myvar("crouch") then: goto immediate: "_crouch" else: goto immediate: "_stand" state "_collected": if() then: if: exists myvar("collected_key") then: if: exists myvar("num_key") then: dec mapvar(myvar("num_key")) if: expr: <= mapvar(myvar("num_key")) 0 then: set mapvar(myvar("collected_key")): T else: set mapvar(myvar("collected_key")): T if: exists myvar("respawn_time") then: set myvar("respawn_in"): myvar("respawn_time") $IF RESPAWN_TIME: else: set myvar("respawn_in"): $GET_INT RESPAWN_TIME goto: "collected" $SET_STR RGRAPH_NS "eye_" $UNSET_BOOL SPIKEY $SET_BOOL EYE import "anim/_spit.fus" $SET_STR RGRAPH_NS "spikey_" $SET_BOOL SPIKEY $UNSET_BOOL EYE import "anim/_spit.fus" on "crush": goto: "dead" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "water_" $SET_BOOL WATER_ROLLER import "anim/_roller.fus" state "dead": rgraph: "dead_cycle" if() then: die $SET_STR RGRAPH_PREFIX "switch_" $UNSET_BOOL ONEWAY import "anim/_switch.fus" $SET_STR RGRAPH_STAND "coin" $SET_STR RGRAPH_CROUCH "coin_crouch" import "anim/_coin.fus" collmsgs: "crush" state "stand": rgraph: "big_roller" hitbox: ;; . ;; * ;; . - . ;; *\*/* ;; ( ) . . on "spikeyspit": goto: "turn" if: # Grabbing key: wasdown u coll: all yes ;; . . + ;; ;; . . . ;; ;; ( ) . . coll: all no ;; . . . ;; \*/*\* ;; . + - . ;; \* ;; ( ) . . then: move: 4 2 rot: 3 goto: "grab" delay: 1 if: # Rolling forward (not holding d) key: not isdown d key: not isdown b key: wasdown f coll: all yes ;; ( ) . + then: move: 2 0 rot: 2 delay: 1 if: # Spinning around forward (possibly holding d) key: not isdown b key: wasdown f coll: all no ;; ( )- + - ;; */*\* ;; - then: rot: -1 delay: 1 if: # Rolling forward (possibly holding d) key: not isdown b key: wasdown f coll: all yes ;; ( ) . + then: move: 2 0 rot: 2 delay: 1 if: key: not isdown f key: wasdown b then: turn rot: 2 delay: 1 state "turn": # When bumped, turn around if: then: confused: toggle goto: "stand" state "grab": rgraph: "big_roller_grab" hitbox: ;; . . . ;; *\*/*\* ;; . - + - . ;; *\*/*\* ;; ( ) . . if: key: not isdown u then: goto: "stand" delay: 1 "crawl_up" if: key: wasdown f coll: all no ;; \* ;; ( ) coll: all yes ;; + ;; / ;; ( ) + then: move: 1 0 rot: 1 goto: "crawl_step" delay: 2 "crawl_forward" if: key: wasdown f coll: all yes ;; ( ) + - + coll: all no ;; \*/* ;; (.) . then: move: 1 0 goto: "crawl_step" delay: 2 "crawl_down" if: key: wasdown f coll: all yes ;; ( ) + ;; \ ;; + coll: all no ;; \*/* ;; (.) . - ;; * then: move: 1 0 rot: -1 goto: "crawl_step_down" delay: 2 $SET_STR RGRAPH_NS "ability_" $SET_BOOL ABILITY $UNSET_BOOL MINIMAP import "anim/_door.fus" # Expected vars: # ANIM_NS (str), e.g. "hexroller_", "" # RGRAPH_NS (str), e.g. "hexrollerspider_", "" $SET_STR ANIM_NS "" $SET_STR RGRAPH_NS "" $SET_BOOL INERT $SET_INT DELAY 2 on "spit": if: expr: != myvar(".turn") yourvar(".turn") then: rot: -1 turn delay: $GET_INT DELAY set myvar("speed"): 7 import "anim/_hexroller.fus" # Expected vars: # ANIM_NS (str), e.g. "hexroller_", "" # RGRAPH_NS (str), e.g. "hexrollerspider_", "" # R0, R1, R4, R5 (str), e.g. "", "_R1", ..., "_R5" state $SUFFIX R0 $PREFIX ANIM_NS "stand": rgraph: $SUFFIX R0 $PREFIX RGRAPH_NS "hexroller" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . $IF INERT: if() then: set myvar("f"): F continue if: expr: > myvar("speed") 0 then: dec myvar("speed") set myvar("f"): T continue $IF !INERT: if() then: set myvar("u"): F set myvar("d"): F set myvar("f"): F set myvar("b"): F if: key: wasdown u then: set myvar("u"): T if: key: wasdown d then: set myvar("d"): T if: key: wasdown f then: set myvar("f"): T if: key: wasdown b then: set myvar("b"): T continue if: expr: myvar("u") not: expr: myvar("b") expr: myvar("f") coll: any yes ;; + ;; ;; . ;; ;; ( ) . then: move: 2 2 rot: 2 goto: $SUFFIX R3 $PREFIX ANIM_NS "stand" delay: $GET_INT DELAY if: not: expr: myvar("d") not: expr: myvar("b") expr: myvar("f") coll: any yes ;; + ;; ;; ( ) . then: move: 2 1 rot: 2 goto: $SUFFIX R4 $PREFIX ANIM_NS "stand" if: not: expr: myvar("b") expr: myvar("f") coll: any yes ;; ( ) + then: move: 1 0 rot: 1 goto: $SUFFIX R5 $PREFIX ANIM_NS "stand" if: not: expr: myvar("b") expr: myvar("f") coll: all no ;; . ;; /* ;; ( )- + - . ;; */*\* ;; . . then: rot: -1 delay: $GET_INT DELAY if: not: expr: myvar("f") expr: myvar("b") then: rot: -1 turn delay: $GET_INT DELAY $SET_STR RGRAPH_PREFIX "switch_oneway_" $SET_BOOL ONEWAY import "anim/_switch.fus" state "stand": rgraph: $PREFIX NS "stand" hitbox: collmap("stand") "always" if: then: set myvar("bubble_toggle"): T continue # Crawling, turning import "anim/_walker_stand.state.fus" # Stepping and jumping import "anim/_walker_jump.state.fus" import "anim/_walker_step.state.fus" state "step_down": rgraph: $PREFIX NS "step" hitbox: ;; . . . ;; *\*/*\*/* ;; . - + - + - . ;; */*\*/*\* ;; . (.) . # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "step": rgraph: $PREFIX NS "step" hitbox: collmap("stand") # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" state "step_up": # NOTE: for spider, states "step" and "step_up" are identical. rgraph: $PREFIX NS "step" hitbox: collmap("stand") # Crawling, turning, jumping import "anim/_walker_stand.state.fus" import "anim/_walker_jump.state.fus" "default" if() then: goto: "stand" # Expected vars: # NS (str), e.g. "spider_" # EYESPIDER (bool) # NOTE: make sure "stand" is the first anim, so any imports # should go below it # So we know we're not just a "spider-like" thing, e.g. coin_beast $SET_BOOL SPIDER # Should match the delays in anim/_roller.fus $SET_INT ROLLER_STAND_DELAY 1 import "anim/_spider_vars.fus" collmsgs: $IF !EYESPIDER: "touch" $IF !EYESPIDER: "enter_door" on "crush": goto: "dead" $IF !EYESPIDER: on "carryable": # "me" is a spider, "you" is a carryable thing (e.g. coin, food) if: not: exists myvar("carrying") then: # Transfer some vars from carryable thing to the spider who # will now be "carrying it" set myvar("carrying"): yourvar("carryable") set myvar("carrying_respawn_counter"): yourvar("respawn_counter") set myvar("label:carrying"): yourvar("carryable_rgraph") # Increment a var tracking how many of this thing are # being carried if: exists myvar("carrying_respawn_counter") then: inc mapvar(myvar("carrying_respawn_counter")) # When a thing is carried, it is "collected" as you: goto immediate: "_collected" proc onmapchange "mapchange": # Decrement a mapvar tracking how many of this thing are # being carried # (NOTE: this logic should match that for when spit "dies") if: exists myvar("carrying_respawn_counter") then: dec mapvar(myvar("carrying_respawn_counter")) # Unset "carrying" and related vars call: "_unset_carrying" proc "_unset_carrying": # Unsets "carrying" and related vars set myvar("carrying"): null set myvar("label:carrying"): null proc "_spawn_spit": # "me" is spider, "you" is spider's newly-spawned spit if: exists myvar("carrying") then: # Transfer the thing we're carrying over to our spit # Set spit's "carrying" to spider's "carrying" as you: set myvar("carrying"): yourvar("carrying") set myvar("carrying_respawn_counter"): yourvar("carrying_respawn_counter") set myvar("label:carrying"): yourvar("label:carrying") # Unset "carrying" and related vars call: "_unset_carrying" proc "spit": spawn: myvar("spit_anim") "fly" (0 0) 0 f do: call: "_spawn_spit" goto delay: "spit" proc "looking_up_spit": spawn: myvar("spit_anim") "fly" (1 0) 1 f do: call: "_spawn_spit" goto delay: "looking_up_spit" proc "crawl_spit": spawn: myvar("spit_anim") "crouch_fly" (0 0) 0 f do: call: "_spawn_spit" goto delay: "crawl_spit" proc "crawl_looking_up_spit": spawn: myvar("spit_anim") "crouch_fly" (1 0) 1 f do: call: "_spawn_spit" goto delay: "crawl_looking_up_spit" proc "swim_spit": spawn: myvar("spit_anim") "fly" (0 0) 0 f do: call: "_spawn_spit" goto delay: "swim_spit" collmap "stand": ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . collmap "crawl": ;; . ;; * ;; (.) . import "anim/_spider_stand.fus" import "anim/_spider_jump.fus" state "look_up": rgraph: $PREFIX NS "look_up" hitbox: collmap("stand") "default" if() then: goto: "looking_up" state "unlook_up": rgraph: $PREFIX NS "unlook_up" hitbox: collmap("stand") "default" if() then: goto: "stand" state "looking_up": rgraph: $PREFIX NS "looking_up" hitbox: collmap("stand") "spit" if: key: wentdown y then: call: "looking_up_spit" "jump" if: key: wasdown u coll: all no ;; *\*/* ;; - + - ;; \* ;; ;; ;; ( ) then: move: 1 0 rot: 1 goto immediate: "start_jump" "unlook_for_step" if: any: key: wasdown f key: wasdown b then: goto delay: "unlook_up" "crawl" if: key: wasdown d coll: all yes # Can only crawl when there's an edge under you. # This is significant for stickyspider. ;; (.)- . then: goto delay: "crawling_looking_up" "unlook" if: key: not isdown x then: goto delay: "unlook_up" state "spit": rgraph: $PREFIX NS "spit" hitbox: collmap("stand") "default" if() then: goto: "stand" state "looking_up_spit": rgraph: $PREFIX NS "looking_up_spit" hitbox: collmap("stand") "default" if() then: goto: "looking_up" state "turn": rgraph: $PREFIX NS "turn" hitbox: collmap("stand") "jump" if: key: wasdown u coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" "default" if() then: goto immediate: "step" state "sleep": rgraph: $PREFIX NS "sleep" hitbox: collmap("crawl") "unsleep" if: any: key: wasdown u key: wasdown d key: wasdown l key: wasdown r then: goto: "crawl" $IF EYESPIDER: state "eye_closing": rgraph: $PREFIX NS "eye_closing" hitbox: collmap("stand") "default" if() then: goto: "eye_closed" state "eye_unclosing": rgraph: $PREFIX NS "eye_unclosing" hitbox: collmap("stand") "default" if() then: goto: "stand" state "eye_closed": rgraph: $PREFIX NS "eye_closed" hitbox: collmap("stand") "unclose_eye" if: key: not isdown x then: goto delay: "eye_unclosing" state "mostly_dead": rgraph: "dead_cycle" unsafe "default" if() then: die mostly state "dead": rgraph: "dead_cycle" unsafe "default" if() then: die import "anim/_spider_crawl.fus" import "anim/_spider_swim.fus" # Expected collmaps: # * "hitbox" # Expected vars at runtime: # * key (str) vars: "value": T state "init": if: any: all: exists myvar("key") expr: == mapvar(myvar("key")) myvar("value") all: exists myvar("counter") expr: mapvar(myvar("counter")) then: goto immediate: "touched" if: then: goto immediate: "waiting" state "waiting": rgraph: "hotspot_waiting" hitbox: collmap("hitbox") on "touch": if: any: not: exists myvar("need_key") expr: mapvar(myvar("need_key")) then: if: exists myvar("key") then: set mapvar(myvar("key")): myvar("value") if: exists myvar("counter") then: inc mapvar(myvar("counter")) if: exists myvar("max_cooldown") then: set myvar("cooldown"): myvar("max_cooldown") goto: "touched" state "touched": rgraph: "hotspot_touched" hitbox: collmap("hitbox") on "touch": # As long as we're being touched, keep our cooldown at max if: exists myvar("max_cooldown") then: set myvar("cooldown"): myvar("max_cooldown") if: exists myvar("cooldown") then: dec myvar("cooldown") if: expr: <= myvar("cooldown") 0 then: if: exists myvar("key") then: set mapvar(myvar("key")): F if: exists myvar("counter") then: dec mapvar(myvar("counter")) goto: "waiting" "land_up" if: any: all: expr: myvar("is_stickyspider") coll: all yes ;; + ;; ;; ( ) + all: not: expr: myvar("is_stickyspider") coll: all yes ;; + ;; / ;; ( ) + then: move: 1 0 rot: 1 goto delay: "step_up" "forced_jump_up" if: coll: all yes ;; ( ) + coll: any yes ;; + ;; / ;; ( ) then: move: 1 0 rot: 1 goto immediate: "start_jump" "land_forward" if: key: not isdown u coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) any: all: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + + all: not: expr: myvar("is_stickyspider") coll: all yes ;; ( ) + - + then: move: 1 0 goto delay: "step" "continue_jump" if: coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 goto immediate: "start_jump" "jump_crash" if() then: goto delay: "mostly_dead" state "stand_r0": rgraph: "bubblecar_r0" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . . - + - . . ;; *\*/*\*/*\*/*\*/* ;; . . - + - + - + - + - . . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + -(+)- + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . . - + - + - + - + - . . ;; */*\*/*\*/*\*/*\* ;; . . - + - . . ;; */*\* ;; . . # Moving towards the upper-right! if: key: wasdown b then: turn rot: -1 goto: "stand_r2" delay: 4 if: key: wasdown f coll: any yes ;; . . ;; ;; . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (.) . . . . ;; ;; . . . . . . . . + ;; / ;; . . . . . . . . + - + ;; / ;; . . . . . . + - + ;; / ;; . . . + - + ;; ;; . . coll: all no ;; . . ;; *\*/* ;; . . - + - . . ;; \*/*\*/*\*/* ;; . . . + - + - + - . . ;; \*/*\*/*\*/ ;; . . . . . . + - + - + - . ;; \*/*\* ;; . . . . . . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . (.) . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . ;; ;; . . then: move: 2 1 goto: "stand_r3" delay: 4 if: key: wasdown f then: rot: -1 goto: "stand_r2" delay: 4 state "stand_r1": rgraph: "bubblecar_r1" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . . - + - . . ;; *\*/*\*/*\*/*\*/* ;; . . - + - + - + - + - . . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + -(+)- + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . . - + - + - + - + - . . ;; */*\*/*\*/*\*/*\* ;; . . - + - . . ;; */*\* ;; . . # Moving towards the upper-right! if: key: wasdown b then: turn rot: -1 goto: "stand_r1" delay: 4 if: key: wasdown f coll: any yes ;; . . ;; ;; . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (.) . . . . ;; ;; . . . . . . . . + ;; / ;; . . . . . . . . + - + ;; / ;; . . . . . . + - + ;; / ;; . . . + - + ;; ;; . . coll: all no ;; . . ;; *\*/* ;; . . - + - . . ;; \*/*\*/*\*/* ;; . . . + - + - + - . . ;; \*/*\*/*\*/ ;; . . . . . . + - + - + - . ;; \*/*\* ;; . . . . . . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . (.) . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . ;; ;; . . then: move: 2 1 goto: "stand_r0" delay: 4 if: key: wasdown f then: rot: -1 goto: "stand_r3" delay: 4 state "stand_r2": rgraph: "bubblecar_r2" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . . - + - . . ;; *\*/*\*/*\*/*\*/* ;; . . - + - + - + - + - . . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + -(+)- + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . . - + - + - + - + - . . ;; */*\*/*\*/*\*/*\* ;; . . - + - . . ;; */*\* ;; . . # Moving towards the upper-right! if: key: wasdown b then: turn rot: -1 goto: "stand_r0" delay: 4 if: key: wasdown f coll: any yes ;; . . ;; ;; . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (.) . . . . ;; ;; . . . . . . . . + ;; / ;; . . . . . . . . + - + ;; / ;; . . . . . . + - + ;; / ;; . . . + - + ;; ;; . . coll: all no ;; . . ;; *\*/* ;; . . - + - . . ;; \*/*\*/*\*/* ;; . . . + - + - + - . . ;; \*/*\*/*\*/ ;; . . . . . . + - + - + - . ;; \*/*\* ;; . . . . . . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . (.) . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . ;; ;; . . then: move: 2 1 goto: "stand_r1" delay: 4 if: key: wasdown f then: rot: -1 goto: "stand_r0" delay: 4 state "stand_r3": rgraph: "bubblecar_r3" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . . - + - . . ;; *\*/*\*/*\*/*\*/* ;; . . - + - + - + - + - . . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + -(+)- + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . - + - + - + - + - + - + - . ;; *\*/*\*/*\*/*\*/*\*/*\*/*\*/* ;; . - + - + - + - + - + - + - + - . ;; */*\*/*\*/*\*/*\*/*\*/*\*/*\* ;; . . - + - + - + - + - . . ;; */*\*/*\*/*\*/*\* ;; . . - + - . . ;; */*\* ;; . . # Moving towards the upper-right! if: key: wasdown b then: turn rot: -1 goto: "stand_r3" delay: 4 if: key: wasdown f coll: any yes ;; . . ;; ;; . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . (.) . . . . ;; ;; . . . . . . . . + ;; / ;; . . . . . . . . + - + ;; / ;; . . . . . . + - + ;; / ;; . . . + - + ;; ;; . . coll: all no ;; . . ;; *\*/* ;; . . - + - . . ;; \*/*\*/*\*/* ;; . . . + - + - + - . . ;; \*/*\*/*\*/ ;; . . . . . . + - + - + - . ;; \*/*\* ;; . . . . . . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . (.) . . . + - . ;; /*\*/* ;; . . . . . . . + - + - . ;; \*/*\* ;; . . . . . . . . . . ;; ;; . . . . . . . . ;; ;; . . . . . ;; ;; . . then: move: 2 1 goto: "stand_r2" delay: 4 if: key: wasdown f then: rot: -1 goto: "stand_r1" delay: 4 # Expected variables: # RGRAPH_NS (str): e.g. "spiky_", "" $SET_INT MAX_AGE 100 vars: nosave "carrying": null nosave "carrying_respawn_counter": null nosave label "label:carrying": null proc "on_collide": # me: spit # you: thing we collided with if: exists myvar("carrying") then: # This spit is carrying something # If we hit something which accepts what we're carrying, # then transfer it over if: exists yourvar("accept_carryable") expr: == yourvar("accept_carryable") myvar("carrying") then: as you: call: "accept_carryable" call: "on_death" proc "on_death": if: exists myvar("carrying") then: # This spit is carrying something # Decrement a mapvar tracking how many of this thing are # being carried if: exists myvar("carrying_respawn_counter") then: dec mapvar(myvar("carrying_respawn_counter")) # We're no longer carrying anything set myvar("carrying"): null state "fly": rgraph: $PREFIX RGRAPH_NS "spit_fly" collmsgs: "spit" $IF SPIKEY("spikeyspit") hitbox: ;; . . ;; *\*/ ;; . - + . ;; ;; (.) . on "crush": call: "on_collide" goto delay: "dead" on "solid": call: "on_collide" goto delay: "dead" on "switch": call: "on_collide" goto delay: "dead" if: then: inc myvar("age") continue if: any: expr: > myvar("age") $GET_INT MAX_AGE coll: any yes ;; . . ;; *\* ;; . . . ;; ;; ( ) . then: call: "on_death" goto delay: "dead" if: coll: all yes ;; . . ;; / ;; . . . ;; ;; ( ) . then: move: 2 1 rot: 1 goto delay: "fly" if() then: move: 1 0 goto delay: "fly" state "crouch_fly": rgraph: $PREFIX RGRAPH_NS "spit_crouch_fly" collmsgs: "spit" $IF SPIKEY("spikeyspit") hitbox: ;; . . ;; */*\ ;; (.) . . on "crush": call: "on_collide" goto delay: "crouch_dead" on "solid": call: "on_collide" goto delay: "crouch_dead" on "switch": call: "on_collide" goto delay: "crouch_dead" if: then: inc myvar("age") continue if: any: expr: > myvar("age") $GET_INT MAX_AGE coll: any yes ;; . . ;; *\* ;; ( ) . then: call: "on_death" goto delay: "crouch_dead" if: coll: all yes ;; . . ;; / ;; ( ) . then: move: 1 0 rot: 1 goto delay: "crouch_fly" if() then: move: 1 0 goto delay: "crouch_fly" state "dead": rgraph: "dead_once" if() then: remove state "crouch_dead": rgraph: "dead_once_crouch" if() then: remove state "bubbles": rgraph: "bubbles" if: then: remove # Expected variables: # ANIM_NS (str), e.g. "bird_", "" # RGRAPH_NS (str): e.g. "spider_", "" #$SET_BOOL CRAWL_MOVE $SET_INT TURN_DELAY 1 $SET_INT FLY_DELAY 2 on "spikeyspit": goto: $PREFIX ANIM_NS "turn" delay: $GET_INT TURN_DELAY state $PREFIX ANIM_NS "stand": rgraph: $PREFIX RGRAPH_NS "bird_stand" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if: key: wasdown u then: goto: $PREFIX ANIM_NS "stand_wings" if: key: wasdown d then: goto: $PREFIX ANIM_NS "crawl_arrive" delay: 1 if: key: wasdown f then: goto: $PREFIX ANIM_NS "step" delay: 1 if: key: wasdown b then: goto: $PREFIX ANIM_NS "turn" delay: $GET_INT TURN_DELAY state $PREFIX ANIM_NS "turn": rgraph: $PREFIX RGRAPH_NS "bird_turn" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: move: 1 0 turn goto: $PREFIX ANIM_NS "turn_arrive" delay: 1 state $PREFIX ANIM_NS "step": rgraph: $PREFIX RGRAPH_NS "bird_step" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if: # Turned off for now (with false)... I think I prefer it so # tapping f attempts a full step. false key: not isdown f then: goto: $PREFIX ANIM_NS "step_rev" delay: 2 if: coll: all yes ;; + ;; ;; . + ;; ;; ( ) . coll: all no ;; . . ;; *\*/* ;; . + - . - . ;; \*/*\* ;; . . . . ;; ;; (.) . then: move: 3 1 rot: 1 goto: $PREFIX ANIM_NS "step_rot_up_arrive" delay: 2 if: coll: all yes ;; ( ) . ;; ;; + + coll: all no ;; . . ;; /*\*/* ;; + - + - . ;; \*/*\* ;; + - . ;; /*\*/* ;; ( ) . - + - . ;; */*\* ;; . . then: move: 1 -1 goto: $PREFIX ANIM_NS "step_down_arrive" delay: 2 if: coll: all yes ;; + + ;; ;; ( ) . coll: all no ;; . . ;; *\*/* ;; . - + - . ;; \*/*\* ;; + - . ;; /*\*/* ;; + - + - . ;; \*/*\* ;; . . ;; ;; ( ) . then: move: 2 1 goto: $PREFIX ANIM_NS "step_up_arrive" delay: 2 if: coll: all yes ;; ( ) + ;; ;; + coll: all no ;; . . ;; /*\*/* ;; + - + - . . ;; \*/*\*/*\*/* ;; + - + - + - . ;; /*\*/*\*/*\* ;; ( ) . - + - . . ;; */*\* ;; . . then: move: 1 0 rot: -1 goto: $PREFIX ANIM_NS "step_rot_down_arrive" delay: 2 if: coll: all yes ;; ( ) + + coll: all no ;; . . . ;; \*/* ;; . . + - . ;; /*\* ;; . + - + ;; \*/* ;; . . + - . ;; /*\* ;; (.) . . then: move: 1 0 goto: $PREFIX ANIM_NS "step_arrive" delay: 2 if() then: goto: $PREFIX ANIM_NS "step_rev" delay: 2 state $PREFIX ANIM_NS "turn_arrive": rgraph: $PREFIX RGRAPH_NS "bird_turn_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_rev": rgraph: $PREFIX RGRAPH_NS "bird_step_rev" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_rot_up_arrive": rgraph: $PREFIX RGRAPH_NS "bird_step_rot_up_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_arrive": rgraph: $PREFIX RGRAPH_NS "bird_step_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_down_arrive": rgraph: $PREFIX RGRAPH_NS "bird_step_down_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_up_arrive": rgraph: $PREFIX RGRAPH_NS "bird_step_up_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "step_rot_down_arrive": rgraph: $PREFIX RGRAPH_NS "bird_step_rot_down_arrive" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand" state $PREFIX ANIM_NS "crawl_arrive": rgraph: $PREFIX RGRAPH_NS "bird_crawl_arrive" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if: then: goto: $PREFIX ANIM_NS "crawl" state $PREFIX ANIM_NS "crawl": rgraph: $PREFIX RGRAPH_NS "bird_crawl" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . $IF SPIDER: if: key: not isdown x coll: all yes ;; (+)- + then: goto: "crawl" if: key: not isdown d coll: all no ;; . . ;; *\*/* ;; . - + - . ;; */ \* ;; . - . ;; ;; . . . ;; ;; ( ) . then: delay: 1 goto: $PREFIX ANIM_NS "crawl_stand" $IF CRAWL_MOVE: if: key: wasdown f coll: all yes ;; + ;; ;; ( ) + then: move: 1 0 rot: 1 delay: 2 if: key: wasdown f coll: all yes ;; ( ) + + coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: move: 1 0 delay: 2 if: key: wasdown f coll: all yes ;; ( ) + ;; ;; + coll: all no ;; \*/* ;; + - ;; /*\*/* ;; ( ) - + - ;; */*\* then: move: 1 0 rot: -1 delay: 2 if: key: wasdown b then: goto: $PREFIX ANIM_NS "crawl_turn" delay: $GET_INT TURN_DELAY state $PREFIX ANIM_NS "crawl_turn": rgraph: $PREFIX RGRAPH_NS "bird_crawl_turn" hitbox: ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: move: 1 0 turn goto: $PREFIX ANIM_NS "crawl_turn_arrive" delay: 1 state $PREFIX ANIM_NS "crawl_turn_arrive": rgraph: $PREFIX RGRAPH_NS "bird_crawl_turn_arrive" hitbox: ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "crawl" state $PREFIX ANIM_NS "crawl_stand": rgraph: $PREFIX RGRAPH_NS "bird_crawl_stand" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if: then: goto: $PREFIX ANIM_NS "stand" #################### # WINGS AND FLYING # #################### state $PREFIX ANIM_NS "stand_wings": rgraph: $PREFIX RGRAPH_NS "bird_stand_wings" if: key: not isdown u then: goto: $PREFIX ANIM_NS "stand" if: key: wasdown f then: goto: $PREFIX ANIM_NS "fly" move: 1 0 delay: $GET_INT FLY_DELAY if: key: wasdown b then: goto: $PREFIX ANIM_NS "turn_wings" delay: $GET_INT TURN_DELAY state $PREFIX ANIM_NS "turn_wings": rgraph: $PREFIX RGRAPH_NS "bird_turn_wings" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: move: 1 0 turn goto: $PREFIX ANIM_NS "turn_arrive_wings" delay: 1 state $PREFIX ANIM_NS "turn_arrive_wings": rgraph: $PREFIX RGRAPH_NS "bird_turn_arrive_wings" collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . if() then: goto: $PREFIX ANIM_NS "stand_wings" state $PREFIX ANIM_NS "fly": rgraph: $PREFIX RGRAPH_NS "bird_fly" unsafe flying collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . . ;; ;; . . . ;; ;; (.) . if() then: goto: $PREFIX ANIM_NS "flying" state $PREFIX ANIM_NS "flying": rgraph: $PREFIX RGRAPH_NS "bird_flying" unsafe flying collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; (.)- . if: key: wentdown u then: rot: 1 continue if: key: wentdown d then: rot: -1 continue if: key: not isdown u coll: all yes ;; . . ;; ;; . . . ;; ;; (+) + coll: all no ;; . - . ;; *\*/* ;; . - + - . ;; */*\* ;; (.) . then: goto: $PREFIX ANIM_NS "stand_wings" if: key: wasdown f then: goto: $PREFIX ANIM_NS "fly" move: 1 0 delay: $GET_INT FLY_DELAY if: key: wasdown b then: goto: $PREFIX ANIM_NS "turn_flying" delay: $GET_INT TURN_DELAY state $PREFIX ANIM_NS "turn_flying": rgraph: $PREFIX RGRAPH_NS "bird_turn_flying" unsafe flying collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . . ;; ;; . . . ;; ;; (.) . if() then: move: 1 0 turn goto: $PREFIX ANIM_NS "turn_arrive_flying" delay: 1 state $PREFIX ANIM_NS "turn_arrive_flying": rgraph: $PREFIX RGRAPH_NS "bird_turn_arrive_flying" unsafe flying collmsgs: "crush" hitbox: ;; . . ;; *\*/* ;; . - + - . ;; */*\* ;; . . ;; ;; . . . ;; ;; (.) . if() then: goto: $PREFIX ANIM_NS "flying" state "start_jump": unsafe "fly" if: expr: myvar("is_flierspider") key: wasdown x coll: all no ;; \*/* ;; + - ;; /*\* ;; ( ) then: goto: "flier_fly" move: 2 1 delay: 2 "swim" if: coll: water any yes collmap("stand") then: goto delay: "swim_jump" "default" if() then: goto delay: "jump" state "jump": # NOTE: the only `goto: "jump"` is in "start_jump", which checks whether # we're in water, and does `goto: jump` or `goto: "swim_jump"` # accordingly. # Therefore, if we're in "jump", then we can safely assume we're not in # water without checking. unsafe rgraph: $PREFIX NS "jump" hitbox: collmap("stand") "spawn_string" if: then: spawn: "anim/string.fus" "string_appear" (0 0) 0 f continue # Landing, jumping, crashing import "anim/_walker_jumping.state.fus" import "anim/_coin.behaviour.fus" state "_crouch": if() then: goto: "crouch" state "_stand": if() then: goto: "stand" state "appear": rgraph: "dead_once_centered_reversed" if() then: goto: "stand" state "appear_crouch": rgraph: "dead_once_crouch_reversed" if() then: goto: "crouch" state "stand": rgraph: $GET_STR RGRAPH_STAND hitbox: ;; (+) state "crouch": rgraph: $GET_STR RGRAPH_CROUCH hitbox: ;; . ;; * ;; (.) . state "collected": rgraph: "dead_once_centered" if() then: goto immediate: "collected_wait" state "collected_wait": # Like "collected", but with no rgraph, so we don't show up as # a target on the minimap! if() then: # Do whatever it is coin-like things do while they've been collected... call: "while_collected" continue $SET_STR RGRAPH_NS "" $UNSET_BOOL ABILITY $UNSET_BOOL MINIMAP import "anim/_door.fus"