UNPKG

puzzlescript

Version:

Play PuzzleScript games in your terminal!

1,400 lines (1,143 loc) 37.5 kB
title BABA IS YOU demake author @pyjamads homepage www.puzzlescript.net (debug) noaction (zoomscreen 16x16) ======== OBJECTS ======== Background darkbrown 00000 00000 00000 00000 00000 Grass green .0..0 .0..0 0.0.. .0..0 0..0. Tile darkblue black ..0.. .000. 00000 .000. ..0.. Tree brown green .111. 11111 1.0.1 ..0.. .000. (Objects and thier corresponding Texts) (Baba) Baba White .000. 000.0 00000 .000. .0.0. Babatext #fc3468 .00.. .0.0. .00.. .0.0. .00.. ((Keke) Keke Red .00.. .0.0. 00000 .0.0. .0.0. Keketext Red .0.0. .0.0. .00.. .0.0. .0.0.) (Skull) Skull Red .000. 0.0.0 00000 .0.0. .000. Skulltext Red .000. .0... .000. ...0. .000. (Wall) Wall darkblue darkgray 00010 11111 01000 11111 00010 Walltext darkgray 0...0 0...0 0.0.0 0.0.0 .0.0. (Water) Water Blue darkgray 10010 00000 10000 00001 10100 Watertext Blue 0...0 0...0 0.0.0 0.0.0 .0.0. (Rock) Rock orange yellow .010. 01000 00101 01010 .000. Rocktext Brown .00.. .0.0. .00.. .0.0. .0.0. ((Door) Door brown gray yellow .000. 00000 00110 00020 00000 Doortext darkbrown .00.. .0.0. .0.0. .0.0. .00..) (Flag) Flag yellow ..00. ..000 ..0.. ..0.. .000. Flagtext yellow .000. .0... .000. .0... .0... ((Key) Key yellow ..... .0... 0.000 .0..0 ..... Keytext yellow .0.0. .0.0. .00.. .0.0. .0.0.) (Operators: is, and, [on, has, not]) (is) is White 0.00. 0.0.. 0.00. 0..0. 0.00. ((and) and White ..0.. ..0.. 00000 ..0.. ..0..) (Properties: You, Push, Stop, Win, Sink, Defeat, Pull, Shut, Open [Tele, Melt]) You black #fc3468 10101 10101 10101 10101 10001 Push black Brown 10011 10101 10011 10111 10111 Stop black Green 10001 10111 10001 11101 10001 Sink black Blue 10001 10111 10001 11101 10001 WinCondition black yellow 01110 01110 01010 01010 10101 Defeat black Red 10011 10101 10101 10101 10011 (Pull black orange 10011 10101 10011 10111 10111 Shut black brown 10001 10111 10001 11101 10001 Open black Yellow 11011 10101 10101 10101 11011) (Temporary Rule Placeholders, used to check if rules exist somewhere on the screen) (Rock) RockIsPush transparent RockIsYou transparent RockIsWin transparent RockIsStop transparent RockIsSink transparent RockIsPull transparent RockIsDefeat transparent RockIsOpen transparent RockIsShut transparent (Wall) WallIsPush transparent WallIsYou transparent WallIsWin transparent WallIsStop transparent WallIsSink transparent WallIsPull transparent WallIsDefeat transparent WallIsOpen transparent WallIsShut transparent (Flag) FlagIsPush transparent FlagIsYou transparent FlagIsWin transparent FlagIsStop transparent FlagIsSink transparent FlagIsPull transparent FlagIsDefeat transparent FlagIsOpen transparent FlagIsShut transparent (Baba) BabaIsPush transparent BabaIsYou transparent BabaIsWin transparent BabaIsStop transparent BabaIsSink transparent BabaIsPull transparent BabaIsDefeat transparent BabaIsOpen transparent BabaIsShut transparent (Water) WaterIsPush transparent WaterIsYou transparent WaterIsWin transparent WaterIsStop transparent WaterIsSink transparent WaterIsPull transparent WaterIsDefeat transparent WaterIsOpen transparent WaterIsShut transparent ((Keke) KekeIsPush transparent KekeIsYou transparent KekeIsWin transparent KekeIsStop transparent KekeIsSink transparent KekeIsPull transparent KekeIsDefeat transparent KekeIsOpen transparent KekeIsShut transparent (Key) KeyIsPush transparent KeyIsYou transparent KeyIsWin transparent KeyIsStop transparent KeyIsSink transparent KeyIsPull transparent KeyIsDefeat transparent KeyIsOpen transparent KeyIsShut transparent (Door) DoorIsPush transparent DoorIsYou transparent DoorIsWin transparent DoorIsStop transparent DoorIsSink transparent DoorIsPull transparent DoorIsDefeat transparent DoorIsOpen transparent DoorIsShut transparent) (Skull) SkullIsPush transparent SkullIsYou transparent SkullIsWin transparent SkullIsStop transparent SkullIsSink transparent SkullIsPull transparent SkullIsDefeat transparent SkullIsOpen transparent SkullIsShut transparent (Invisible Player Input Handler) player transparent (Movement killer, alternative to rigidbody handling) MovementKiller transparent ======= LEGEND ======= (Player :HACK:: for taking input without an actual Player) . = Background and player (*** Objects & Texts ***) (Unused Background Elements) g = Grass t = Tile 1 = Tree BackgroundElements = g or t or 1 (Wall) # = Wall Ŵ = Walltext (Wall) ~ = Water ω = Watertext (Baba) B = Baba Ɓ = Babatext (Keke) (K = Keke ĸ = Keketext) (Key) (¬ = Key Ķ = Keytext) (Skull) ౚ = Skull Ș = Skulltext (Door) (Ƞ = Door Đ = Doortext) (Flag) F = Flag Ƒ = flagtext (Rock) R = Rock Ř = Rocktext (************************) (************************) (****** Operators ******) i = is (a = and) (****** Properties ******) W = WinCondition P = Push Y = You S = Stop Ş = Sink D = Defeat (Ƨ = Shut O = Open Ƥ = Pull) (****** Collections ******) Object = Baba or Wall or Rock or Flag or Water or Skull (or Door or Key or Keke) Operand = Flagtext or Rocktext or Walltext or Babatext or Watertext or Skulltext (or Doortext or Keketext or Keytext) Operator = is (or and) Property = WinCondition or Push or You or Stop or Sink or Defeat (or Shut or Open or Pull) Text = Operand or Operator or Property Movable = Text or Object (****** Rules ******) WallRules = WallIsPush or WallIsYou or WallIsWin or WallIsStop or WallIsSink or WallIsPull or WallIsDefeat or WallIsOpen or WallIsShut RockRules = RockIsPush or RockIsYou or RockIsWin or RockIsStop or RockIsSink or RockIsPull or RockIsDefeat or RockIsOpen or RockIsShut FlagRules = FlagIsPush or FlagIsYou or FlagIsWin or FlagIsStop or FlagIsSink or FlagIsPull or FlagIsDefeat or FlagIsOpen or FlagIsShut BabaRules = BabaIsPush or BabaIsYou or BabaIsWin or BabaIsStop or BabaIsSink or BabaIsPull or BabaIsDefeat or BabaIsOpen or BabaIsShut WaterRules = WaterIsPush or WaterIsYou or WaterIsWin or WaterIsStop or WaterIsSink or WaterIsPull or WaterIsDefeat or WaterIsOpen or WaterIsShut (KekeRules = KekeIsPush or KekeIsYou or KekeIsWin or KekeIsStop or KekeIsSink or KekeIsPull or KekeIsDefeat or KekeIsOpen or KekeIsShut KeyRules = KeyIsPush or KeyIsYou or KeyIsWin or KeyIsStop or KeyIsSink or KeyIsPull or KeyIsDefeat or KeyIsOpen or KeyIsShut DoorRules = DoorIsPush or DoorIsYou or DoorIsWin or DoorIsStop or DoorIsSink or DoorIsPull or DoorIsDefeat or DoorIsOpen or DoorIsShut) SkullRules = SkullIsPush or SkullIsYou or SkullIsWin or SkullIsStop or SkullIsSink or SkullIsPull or SkullIsDefeat or SkullIsOpen or SkullIsShut (Placeholder for nicer collision layer) RulePlaceholders = WallRules or RockRules or BabaRules or FlagRules or WaterRules or SkullRules or MovementKiller (KekeRules or KeyRules or DoorRules or) ======= SOUNDS ======= Object MOVE 71305507 sfx0 22262508 sfx1 89546704 EndLevel 76428703 ================ COLLISIONLAYERS ================ Player MovementKiller Background BackgroundElements (Objects and draw order) Water Wall (Door) Rock Skull Flag (Key) (Keke) Baba (Texts all collide!) Text (Temp Rule Placeholders) (These have to be on seperate layers to allow multiple rules to be spawned ) (RulePlaceholders) (Baba) BabaIsPush BabaIsYou BabaIsWin BabaIsStop BabaIsSink BabaIsPull BabaIsDefeat BabaIsOpen BabaIsShut (Rock) RockIsPush RockIsYou RockIsWin RockIsStop RockIsSink RockIsPull RockIsDefeat RockIsOpen RockIsShut (Wall) WallIsPush WallIsYou WallIsWin WallIsStop WallIsSink WallIsPull WallIsDefeat WallIsOpen WallIsShut (Water) WaterIsPush WaterIsYou WaterIsWin WaterIsStop WaterIsSink WaterIsPull WaterIsDefeat WaterIsOpen WaterIsShut (Flag) FlagIsPush FlagIsYou FlagIsWin FlagIsStop FlagIsSink FlagIsPull FlagIsDefeat FlagIsOpen FlagIsShut (Skull) SkullIsPush SkullIsYou SkullIsWin SkullIsStop SkullIsSink SkullIsPull SkullIsDefeat SkullIsOpen SkullIsShut (These should be expanded if/when they get implemented in the rules) (KekeRules DoorRules KeyRules) ====== RULES ====== (Detect Temp Movement Rules Rules) (HORIZONTAL) (You) right [Rocktext no RockIsYou | is | You] -> [Rocktext RockIsYou | is | You] right [Flagtext no FlagIsYou | is | You] -> [Flagtext FlagIsYou | is | You] right [Walltext no WallIsYou | is | You] -> [Walltext WallIsYou | is | You] right [Babatext no BabaIsYou | is | You] -> [Babatext BabaIsYou | is | You] right [Watertext no WaterIsYou | is | You] -> [Watertext WaterIsYou | is | You] right [Skulltext no SkullIsYou | is | You] -> [Skulltext SkullIsYou | is | You] (Push) right [Rocktext no RockIsPush | is | Push] -> [Rocktext RockIsPush | is | Push] right [Flagtext no FlagIsPush | is | Push] -> [Flagtext FlagIsPush | is | Push] right [Walltext no WallIsPush | is | Push] -> [Walltext WallIsPush | is | Push] right [Babatext no BabaIsPush | is | Push] -> [Babatext BabaIsPush | is | Push] right [Watertext no WaterIsPush | is | Push] -> [Watertext WaterIsPush | is | Push] right [Skulltext no SkullIsPush | is | Push] -> [Skulltext SkullIsPush | is | Push] (Stop) right [Rocktext no RockIsStop | is | Stop] -> [Rocktext RockIsStop | is | Stop] right [Flagtext no FlagIsStop | is | Stop] -> [Flagtext FlagIsStop | is | Stop] right [Walltext no WallIsStop | is | Stop] -> [Walltext WallIsStop | is | Stop] right [Babatext no BabaIsStop | is | Stop] -> [Babatext BabaIsStop | is | Stop] right [Watertext no WaterIsStop | is | Stop] -> [Watertext WaterIsStop | is | Stop] right [Skulltext no SkullIsStop | is | Stop] -> [Skulltext SkullIsStop | is | Stop] (VETICAL) (You) down [Rocktext no RockIsYou | is | You] -> [Rocktext RockIsYou | is | You] down [Flagtext no FlagIsYou | is | You] -> [Flagtext FlagIsYou | is | You] down [Walltext no WallIsYou | is | You] -> [Walltext WallIsYou | is | You] down [Babatext no BabaIsYou | is | You] -> [Babatext BabaIsYou | is | You] down [Watertext no WaterIsYou | is | You] -> [Watertext WaterIsYou | is | You] down [Skulltext no SkullIsYou | is | You] -> [Skulltext SkullIsYou | is | You] (Push) down [Rocktext no RockIsPush | is | Push] -> [Rocktext RockIsPush | is | Push] down [Flagtext no FlagIsPush | is | Push] -> [Flagtext FlagIsPush | is | Push] down [Walltext no WallIsPush | is | Push] -> [Walltext WallIsPush | is | Push] down [Babatext no BabaIsPush | is | Push] -> [Babatext BabaIsPush | is | Push] down [Watertext no WaterIsPush | is | Push] -> [Watertext WaterIsPush | is | Push] down [Skulltext no SkullIsPush | is | Push] -> [Skulltext SkullIsPush | is | Push] (Stop) down [Rocktext no RockIsStop | is | Stop] -> [Rocktext RockIsStop | is | Stop] down [Flagtext no FlagIsStop | is | Stop] -> [Flagtext FlagIsStop | is | Stop] down [Walltext no WallIsStop | is | Stop] -> [Walltext WallIsStop | is | Stop] down [Babatext no BabaIsStop | is | Stop] -> [Babatext BabaIsStop | is | Stop] down [Watertext no WaterIsStop | is | Stop] -> [Watertext WaterIsStop | is | Stop] down [Skulltext no SkullIsStop | is | Stop] -> [Skulltext SkullIsStop | is | Stop] (Apply Stop rules, by creating a MovementKiller) [Wall ] [WallIsStop] -> [ Wall MovementKiller ] [WallIsStop] [Rock ] [RockIsStop] -> [ Rock MovementKiller ] [RockIsStop] [Flag ] [FlagIsStop] -> [ Flag MovementKiller ] [FlagIsStop] [Baba ] [BabaIsStop] -> [ Baba MovementKiller ] [BabaIsStop] [Water ] [WaterIsStop] -> [ Water MovementKiller ] [WaterIsStop] [Skull ] [SkullIsStop] -> [ Skull MovementKiller] [SkullIsStop] (Apply you rules) (NOTE THAT THIS RIGID BEHAVIOR MESSES SLIGHTLY WITH CONTROLLING MULTIPLE CHARACTERS) (First transfer movement to objects you control) [ > player ][Baba][BabaIsYou] -> [ player ][ > Baba][BabaIsYou] +[ > player ][Wall][WallIsYou] -> [ player ][ > Wall][WallIsYou] +[ > player ][Rock][RockIsYou] -> [ player ][ > Rock][RockIsYou] +[ > player ][Flag][FlagIsYou] -> [ player ][ > Flag][FlagIsYou] +[ > player ][Water][WaterIsYou] -> [ player ][ > Water][WaterIsYou] +[ > player ][Skull][SkullIsYou] -> [ player ][ > Skull][SkullIsYou] (Re-apply movement to all things you control) +[ > Baba ][Baba][BabaIsYou] -> [ > Baba ][ > Baba][BabaIsYou] +[ > Wall ][Wall][WallIsYou] -> [ > Wall ][ > Wall][WallIsYou] +[ > Rock ][Rock][RockIsYou] -> [ > Rock ][ > Rock][RockIsYou] +[ > Flag ][Flag][FlagIsYou] -> [ > Flag ][ > Flag][FlagIsYou] +[ > Water ][Water][WaterIsYou] -> [ > Water ][ > Water][WaterIsYou] +[ > Skull ][Skull][SkullIsYou] -> [ > Skull ][ > Skull][SkullIsYou] (Apply Push rules) +rigid[ > Movable | Baba ] [BabaIsPush] -> [ > Movable | > Baba ] [BabaIsPush] +rigid[ > Movable | Wall ] [WallIsPush] -> [ > Movable | > Wall ] [WallIsPush] +rigid[ > Movable | Flag ] [FlagIsPush] -> [ > Movable | > Flag ] [FlagIsPush] +rigid[ > Movable | Rock ] [RockIsPush] -> [ > Movable | > Rock ] [RockIsPush] +rigid[ > Movable | Water ] [WaterIsPush] -> [ > Movable | > Water ] [WaterIsPush] +rigid[ > Movable | Skull ] [SkullIsPush] -> [ > Movable | > Skull ] [SkullIsPush] (Text is always push (at least until implementing not), so any object will push it) +rigid[ > Movable | Text ] -> [ > Movable | > Text ] (Stop all movement backwards from MovementKiller) startloop [ > Movable | Movable MovementKiller ] -> [ Movable MovementKiller | Movable MovementKiller ] endloop (Remove Temp Movement Rules) [RulePlaceholders] -> [] (************************) (WE DETECT WIN AND OTHER ACTION CONDITIONS IN LATE UPDATE) (************************) (Transformation, TODO: disable these with BabaIsBaba or similar rule) (Horizontal) (Rock into stuff) late right [Rocktext | is | Babatext][Rock] -> [Rocktext | is | Babatext][Baba] late right [Rocktext | is | Walltext][Rock] -> [Rocktext | is | Walltext][Wall] late right [Rocktext | is | Flagtext][Rock] -> [Rocktext | is | Flagtext][Flag] late right [Rocktext | is | Watertext][Rock] -> [Rocktext | is | Watertext][Water] late right [Rocktext | is | Skulltext][Rock] -> [Rocktext | is | Skulltext][Skull] (BabaIntoStuff) late right [Babatext | is | Rocktext][Baba] -> [Babatext | is | Rocktext][Rock] late right [Babatext | is | Walltext][Baba] -> [Babatext | is | Walltext][Wall] late right [Babatext | is | Flagtext][Baba] -> [Babatext | is | Flagtext][Flag] late right [Babatext | is | Watertext][Baba] -> [Babatext | is | Watertext][Water] late right [Babatext | is | Skulltext][Baba] -> [Babatext | is | Skulltext][Skull] (WallIntoStuff) late right [Walltext | is | Rocktext][Wall] -> [Walltext | is | Rocktext][Rock] late right [Walltext | is | Babatext][Wall] -> [Walltext | is | Babatext][Baba] late right [Walltext | is | Flagtext][Wall] -> [Walltext | is | Flagtext][Flag] late right [Walltext | is | Watertext][Wall] -> [Walltext | is | Watertext][Water] late right [Walltext | is | Skulltext][Wall] -> [Walltext | is | Skulltext][Skull] (FlagIntoStuff) late right [Flagtext | is | Rocktext][Flag] -> [Flagtext | is | Rocktext][Rock] late right [Flagtext | is | Babatext][Flag] -> [Flagtext | is | Babatext][Baba] late right [Flagtext | is | Walltext][Flag] -> [Flagtext | is | Walltext][Wall] late right [Flagtext | is | Watertext][Flag] -> [Flagtext | is | Watertext][Water] late right [Flagtext | is | Skulltext][Flag] -> [Flagtext | is | Skulltext][Skull] (WaterIntoStuff) late right [Watertext | is | Rocktext][Water] -> [Watertext | is | Rocktext][Rock] late right [Watertext | is | Babatext][Water] -> [Watertext | is | Babatext][Baba] late right [Watertext | is | Walltext][Water] -> [Watertext | is | Walltext][Wall] late right [Watertext | is | Flagtext][Water] -> [Watertext | is | Flagtext][Flag] late right [Watertext | is | Skulltext][Water] -> [Watertext | is | Skulltext][Skull] (SkullIntoStuff) late right [Skulltext | is | Rocktext][Skull] -> [Skulltext | is | Rocktext][Rock] late right [Skulltext | is | Babatext][Skull] -> [Skulltext | is | Babatext][Baba] late right [Skulltext | is | Walltext][Skull] -> [Skulltext | is | Walltext][Wall] late right [Skulltext | is | Flagtext][Skull] -> [Skulltext | is | Flagtext][Flag] late right [Skulltext | is | Watertext][Skull] -> [Skulltext | is | Watertext][Water] (Vertical) (Rock into stuff) late down [Rocktext | is | Babatext][Rock] -> [Rocktext | is | Babatext][Baba] late down [Rocktext | is | Walltext][Rock] -> [Rocktext | is | Walltext][Wall] late down [Rocktext | is | Flagtext][Rock] -> [Rocktext | is | Flagtext][Flag] late down [Rocktext | is | Watertext][Rock] -> [Rocktext | is | Watertext][Water] late down [Rocktext | is | Skulltext][Rock] -> [Rocktext | is | Skulltext][Skull] (BabaIntoStuff) late down [Babatext | is | Rocktext][Baba] -> [Babatext | is | Rocktext][Rock] late down [Babatext | is | Walltext][Baba] -> [Babatext | is | Walltext][Wall] late down [Babatext | is | Flagtext][Baba] -> [Babatext | is | Flagtext][Flag] late down [Babatext | is | Watertext][Baba] -> [Babatext | is | Watertext][Water] late down [Babatext | is | Skulltext][Baba] -> [Babatext | is | Skulltext][Skull] (WallIntoStuff) late down [Walltext | is | Rocktext][Wall] -> [Walltext | is | Rocktext][Rock] late down [Walltext | is | Babatext][Wall] -> [Walltext | is | Babatext][Baba] late down [Walltext | is | Flagtext][Wall] -> [Walltext | is | Flagtext][Flag] late down [Walltext | is | Watertext][Wall] -> [Walltext | is | Watertext][Water] late down [Walltext | is | Skulltext][Wall] -> [Walltext | is | Skulltext][Skull] (FlagIntoStuff) late down [Flagtext | is | Rocktext][Flag] -> [Flagtext | is | Rocktext][Rock] late down [Flagtext | is | Babatext][Flag] -> [Flagtext | is | Babatext][Baba] late down [Flagtext | is | Walltext][Flag] -> [Flagtext | is | Walltext][Wall] late down [Flagtext | is | Watertext][Flag] -> [Flagtext | is | Watertext][Water] late down [Flagtext | is | Skulltext][Flag] -> [Flagtext | is | Skulltext][Skull] (WaterIntoStuff) late down [Watertext | is | Rocktext][Water] -> [Watertext | is | Rocktext][Rock] late down [Watertext | is | Babatext][Water] -> [Watertext | is | Babatext][Baba] late down [Watertext | is | Walltext][Water] -> [Watertext | is | Walltext][Wall] late down [Watertext | is | Flagtext][Water] -> [Watertext | is | Flagtext][Flag] late down [Watertext | is | Skulltext][Water] -> [Watertext | is | Skulltext][Skull] (SkullIntoStuff) late down [Skulltext | is | Rocktext][Skull] -> [Skulltext | is | Rocktext][Rock] late down [Skulltext | is | Babatext][Skull] -> [Skulltext | is | Babatext][Baba] late down [Skulltext | is | Walltext][Skull] -> [Skulltext | is | Walltext][Wall] late down [Skulltext | is | Flagtext][Skull] -> [Skulltext | is | Flagtext][Flag] late down [Skulltext | is | Watertext][Skull] -> [Skulltext | is | Watertext][Water] (Detect Temp Win and other Action Conditions) (HORIZONTAL) (You) late right [Rocktext no RockIsYou | is | You] -> [Rocktext RockIsYou | is | You] late right [Flagtext no FlagIsYou | is | You] -> [Flagtext FlagIsYou | is | You] late right [Walltext no WallIsYou | is | You] -> [Walltext WallIsYou | is | You] late right [Babatext no BabaIsYou | is | You] -> [Babatext BabaIsYou | is | You] late right [Watertext no WaterIsYou | is | You] -> [Watertext WaterIsYou | is | You] late right [Skulltext no SkullIsYou | is | You] -> [Skulltext SkullIsYou | is | You] (WinCondition) late right [Rocktext no RockIsWin | is | WinCondition] -> [Rocktext RockIsWin | is | WinCondition] late right [Flagtext no FlagIsWin | is | WinCondition] -> [Flagtext FlagIsWin | is | WinCondition] late right [Walltext no WallIsWin | is | WinCondition] -> [Walltext WallIsWin | is | WinCondition] late right [Babatext no BabaIsWin | is | WinCondition] -> [Babatext BabaIsWin | is | WinCondition] late right [Watertext no WaterIsWin | is | WinCondition] -> [Watertext WaterIsWin | is | WinCondition] late right [Skulltext no SkullIsWin | is | WinCondition] -> [Skulltext SkullIsWin | is | WinCondition] (Sink) late right [Rocktext no RockIsSink | is | Sink] -> [Rocktext RockIsSink | is | Sink] late right [Flagtext no FlagIsSink | is | Sink] -> [Flagtext FlagIsSink | is | Sink] late right [Walltext no WallIsSink | is | Sink] -> [Walltext WallIsSink | is | Sink] late right [Babatext no BabaIsSink | is | Sink] -> [Babatext BabaIsSink | is | Sink] late right [Watertext no WaterIsSink | is | Sink] -> [Watertext WaterIsSink | is | Sink] late right [Skulltext no SkullIsSink | is | Sink] -> [Skulltext SkullIsSink | is | Sink] (Defeat) late right [Rocktext no RockIsDefeat | is | Defeat] -> [Rocktext RockIsDefeat | is | Defeat] late right [Flagtext no FlagIsDefeat | is | Defeat] -> [Flagtext FlagIsDefeat | is | Defeat] late right [Walltext no WallIsDefeat | is | Defeat] -> [Walltext WallIsDefeat | is | Defeat] late right [Babatext no BabaIsDefeat | is | Defeat] -> [Babatext BabaIsDefeat | is | Defeat] late right [Watertext no WaterIsDefeat | is | Defeat] -> [Watertext WaterIsDefeat | is | Defeat] late right [Skulltext no SkullIsDefeat | is | Defeat] -> [Skulltext SkullIsDefeat | is | Defeat] (vertical) (You) late down [Rocktext no RockIsYou | is | You] -> [Rocktext RockIsYou | is | You] late down [Flagtext no FlagIsYou | is | You] -> [Flagtext FlagIsYou | is | You] late down [Walltext no WallIsYou | is | You] -> [Walltext WallIsYou | is | You] late down [Babatext no BabaIsYou | is | You] -> [Babatext BabaIsYou | is | You] late down [Watertext no WaterIsYou | is | You] -> [Watertext WaterIsYou | is | You] late down [Skulltext no SkullIsYou | is | You] -> [Skulltext SkullIsYou | is | You] (WinCondition) late down [Rocktext no RockIsWin | is | WinCondition] -> [Rocktext RockIsWin | is | WinCondition] late down [Flagtext no FlagIsWin | is | WinCondition] -> [Flagtext FlagIsWin | is | WinCondition] late down [Walltext no WallIsWin | is | WinCondition] -> [Walltext WallIsWin | is | WinCondition] late down [Babatext no BabaIsWin | is | WinCondition] -> [Babatext BabaIsWin | is | WinCondition] late down [Watertext no WaterIsWin | is | WinCondition] -> [Watertext WaterIsWin | is | WinCondition] late down [Skulltext no SkullIsWin | is | WinCondition] -> [Skulltext SkullIsWin | is | WinCondition] (Sink) late down [Rocktext no RockIsSink | is | Sink] -> [Rocktext RockIsSink | is | Sink] late down [Flagtext no FlagIsSink | is | Sink] -> [Flagtext FlagIsSink | is | Sink] late down [Walltext no WallIsSink | is | Sink] -> [Walltext WallIsSink | is | Sink] late down [Babatext no BabaIsSink | is | Sink] -> [Babatext BabaIsSink | is | Sink] late down [Watertext no WaterIsSink | is | Sink] -> [Watertext WaterIsSink | is | Sink] late down [Skulltext no SkullIsSink | is | Sink] -> [Skulltext SkullIsSink | is | Sink] (Defeat) late down [Rocktext no RockIsDefeat | is | Defeat] -> [Rocktext RockIsDefeat | is | Defeat] late down [Flagtext no FlagIsDefeat | is | Defeat] -> [Flagtext FlagIsDefeat | is | Defeat] late down [Walltext no WallIsDefeat | is | Defeat] -> [Walltext WallIsDefeat | is | Defeat] late down [Babatext no BabaIsDefeat | is | Defeat] -> [Babatext BabaIsDefeat | is | Defeat] late down [Watertext no WaterIsDefeat | is | Defeat] -> [Watertext WaterIsDefeat | is | Defeat] late down [Skulltext no SkullIsDefeat | is | Defeat] -> [Skulltext SkullIsDefeat | is | Defeat] (Apply Action Rules) (Apply Sink Rule! ARGH Can't do: late [ Movable Wall ] [WallIsSink] -> [ ] [WallIsSink] :[ ) (MISSING Interaction with Grass, Tree and Tile, but I won't bother because of the above issue) (Wall) late [WallIsSink][Wall Text] -> [WallIsSink][]sfx1 late [WallIsSink][Wall Baba] -> [WallIsSink][]sfx1 late [WallIsSink][Wall Rock] -> [WallIsSink][]sfx1 late [WallIsSink][Wall Flag] -> [WallIsSink][]sfx1 late [WallIsSink][Wall Water] -> [WallIsSink][]sfx1 late [WallIsSink][Wall Skull] -> [WallIsSink][]sfx1 (Water) late [WaterIsSink][Water Text] -> [WaterIsSink][]sfx1 late [WaterIsSink][Water Baba] -> [WaterIsSink][]sfx1 late [WaterIsSink][Water Rock] -> [WaterIsSink][]sfx1 late [WaterIsSink][Water Flag] -> [WaterIsSink][]sfx1 late [WaterIsSink][Water Wall] -> [WaterIsSink][]sfx1 late [WaterIsSink][Water Skull] -> [WaterIsSink][]sfx1 (Baba) late [BabaIsSink][Baba Text] -> [BabaIsSink][]sfx1 late [BabaIsSink][Baba Rock] -> [BabaIsSink][]sfx1 late [BabaIsSink][Baba Flag] -> [BabaIsSink][]sfx1 late [BabaIsSink][Baba Wall] -> [BabaIsSink][]sfx1 late [BabaIsSink][Baba Water] -> [BabaIsSink][]sfx1 late [BabaIsSink][Baba Skull] -> [BabaIsSink][]sfx1 (Rock) late [RockIsSink][Rock Text ] -> [RockIsSink][]sfx1 late [RockIsSink][Rock Baba ] -> [RockIsSink][]sfx1 late [RockIsSink][Rock Flag ] -> [RockIsSink][]sfx1 late [RockIsSink][Rock Wall ] -> [RockIsSink][]sfx1 late [RockIsSink][Rock Water ] -> [RockIsSink][]sfx1 late [RockIsSink][Rock Skull ] -> [RockIsSink][]sfx1 (Flag) late [FlagIsSink][Flag Text] -> [FlagIsSink][]sfx1 late [FlagIsSink][Flag Baba] -> [FlagIsSink][]sfx1 late [FlagIsSink][Flag Rock] -> [FlagIsSink][]sfx1 late [FlagIsSink][Flag Wall] -> [FlagIsSink][]sfx1 late [FlagIsSink][Flag Water] -> [FlagIsSink][]sfx1 late [FlagIsSink][Flag Skull] -> [FlagIsSink][]sfx1 (Skull) late [SkullIsSink][Skull Text] -> [SkullIsSink][]sfx1 late [SkullIsSink][Skull Baba] -> [SkullIsSink][]sfx1 late [SkullIsSink][Skull Rock] -> [SkullIsSink][]sfx1 late [SkullIsSink][Skull Wall] -> [SkullIsSink][]sfx1 late [SkullIsSink][Skull Water] -> [SkullIsSink][]sfx1 late [SkullIsSink][Skull Flag] -> [SkullIsSink][]sfx1 (Apply Defeat Rule! ARGH Can't do: late [SkullIsDefeat][ Skull Movable] -> [SkullIsDefeat][] :[ ) (Wall) late [WallIsDefeat][BabaIsYou][Wall Baba] -> [WallIsDefeat][BabaIsYou][Wall] sfx0 late [WallIsDefeat][RockIsYou][Wall Rock] -> [WallIsDefeat][RockIsYou][Wall] sfx0 late [WallIsDefeat][FlagIsYou][Wall Flag] -> [WallIsDefeat][FlagIsYou][Wall] sfx0 late [WallIsDefeat][WaterIsYou][Wall Water] -> [WallIsDefeat][WaterIsYou][Wall] sfx0 late [WallIsDefeat][SkullIsYou][Wall Skull] -> [WallIsDefeat][SkullIsYou][Wall] sfx0 (Water) late [WaterIsDefeat][BabaIsYou][Water Baba] -> [WaterIsDefeat][BabaIsYou][Water]sfx0 late [WaterIsDefeat][RockIsYou][Water Rock] -> [WaterIsDefeat][RockIsYou][Water]sfx0 late [WaterIsDefeat][FlagIsYou][Water Flag] -> [WaterIsDefeat][FlagIsYou][Water]sfx0 late [WaterIsDefeat][WallIsYou][Water Wall] -> [WaterIsDefeat][WallIsYou][Water]sfx0 late [WaterIsDefeat][SkullIsYou][Water Skull] -> [WaterIsDefeat][SkullIsYou][Water]sfx0 (Baba) late [BabaIsDefeat][RockIsYou][Baba Rock] -> [BabaIsDefeat][RockIsYou][Baba]sfx0 late [BabaIsDefeat][FlagIsYou][Baba Flag] -> [BabaIsDefeat][FlagIsYou][Baba]sfx0 late [BabaIsDefeat][WallIsYou][Baba Wall] -> [BabaIsDefeat][WallIsYou][Baba]sfx0 late [BabaIsDefeat][WaterIsYou][Baba Water] -> [BabaIsDefeat][WaterIsYou][Baba]sfx0 late [BabaIsDefeat][SkullIsYou][Baba Skull] -> [BabaIsDefeat][SkullIsYou][Baba]sfx0 (Rock) late [RockIsDefeat][BabaIsYou][Rock Baba ] -> [RockIsDefeat][BabaIsYou][Rock]sfx0 late [RockIsDefeat][FlagIsYou][Rock Flag ] -> [RockIsDefeat][FlagIsYou][Rock]sfx0 late [RockIsDefeat][WallIsYou][Rock Wall ] -> [RockIsDefeat][WallIsYou][Rock]sfx0 late [RockIsDefeat][WaterIsYou][Rock Water ] -> [RockIsDefeat][WaterIsYou][Rock]sfx0 late [RockIsDefeat][SkullIsYou][Rock Skull ] -> [RockIsDefeat][SkullIsYou][Rock]sfx0 (Flag) late [FlagIsDefeat][BabaIsYou][Flag Baba] -> [FlagIsDefeat][BabaIsYou][Flag]sfx0 late [FlagIsDefeat][RockIsYou][Flag Rock] -> [FlagIsDefeat][RockIsYou][Flag]sfx0 late [FlagIsDefeat][WallIsYou][Flag Wall] -> [FlagIsDefeat][WallIsYou][Flag]sfx0 late [FlagIsDefeat][WaterIsYou][Flag Water] -> [FlagIsDefeat][WaterIsYou][Flag]sfx0 late [FlagIsDefeat][SkullIsYou][Flag Skull] -> [FlagIsDefeat][SkullIsYou][Flag]sfx0 (Skull) late [SkullIsDefeat][BabaIsYou][Skull Baba] -> [SkullIsDefeat][BabaIsYou][Skull]sfx0 late [SkullIsDefeat][RockIsYou][Skull Rock] -> [SkullIsDefeat][RockIsYou][Skull]sfx0 late [SkullIsDefeat][WallIsYou][Skull Wall] -> [SkullIsDefeat][WallIsYou][Skull]sfx0 late [SkullIsDefeat][WaterIsYou][Skull Water] -> [SkullIsDefeat][WaterIsYou][Skull]sfx0 late [SkullIsDefeat][FlagIsYou][Skull Flag] -> [SkullIsDefeat][FlagIsYou][Skull]sfx0 (Apply WinCondition rules) (First simple self win rules) late [RockIsWin][RockIsYou] -> [RockIsWin][RockIsYou] win late [FlagIsWin][FlagIsYou] -> [FlagIsWin][FlagIsYou] win late [WallIsWin][WallIsYou] -> [WallIsWin][WallIsYou] win late [BabaIsWin][BabaIsYou] -> [BabaIsWin][BabaIsYou] win late [WaterIsWin][WaterIsYou] -> [WaterIsWin][WaterIsYou] win late [SkullIsWin][SkullIsYou] -> [SkullIsWin][SkullIsYou] win (Then overlapping objects rules) (Flag is win) late [FlagIsWin][BabaIsYou][Flag Baba] -> [FlagIsWin][BabaIsYou][Flag Baba] win late [FlagIsWin][RockIsYou][Flag Rock] -> [FlagIsWin][RockIsYou][Flag Rock] win late [FlagIsWin][WallIsYou][Flag Wall] -> [FlagIsWin][WallIsYou][Flag Wall] win late [FlagIsWin][WaterIsYou][Flag Water] -> [FlagIsWin][WaterIsYou][Flag water] win late [FlagIsWin][SkullIsYou][Flag Skull] -> [FlagIsWin][SkullIsYou][Flag skull] win (Rock is win) late [RockIsWin][BabaIsYou][Rock Baba] -> [RockIsWin][BabaIsYou][Rock Baba] win late [RockIsWin][FlagIsYou][Rock Flag] -> [RockIsWin][FlagIsYou][Rock Flag] win late [RockIsWin][WallIsYou][Rock Wall] -> [RockIsWin][WallIsYou][Rock Wall] win late [RockIsWin][WaterIsYou][Rock Water] -> [RockIsWin][WaterIsYou][Rock water] win late [RockIsWin][SkullIsYou][Rock Skull] -> [RockIsWin][SkullIsYou][Rock skull] win (Wall is win) late [WallIsWin][BabaIsYou][Wall Baba] -> [WallIsWin][BabaIsYou][Wall Baba] win late [WallIsWin][FlagIsYou][Wall Flag] -> [WallIsWin][FlagIsYou][Wall Flag] win late [WallIsWin][RockIsYou][Wall Rock] -> [WallIsWin][RockIsYou][Wall Rock] win late [WallIsWin][WaterIsYou][Wall Water] -> [WallIsWin][WaterIsYou][Wall water] win late [WallIsWin][SkullIsYou][Wall Skull] -> [WallIsWin][SkullIsYou][Wall skull] win (Baba is win) late [BabaIsWin][WallIsYou][Baba Wall] -> [BabaIsWin][WallIsYou][Baba Wall] win late [BabaIsWin][FlagIsYou][Baba Flag] -> [BabaIsWin][FlagIsYou][Baba Flag] win late [BabaIsWin][RockIsYou][Baba Rock] -> [BabaIsWin][RockIsYou][Baba Rock] win late [BabaIsWin][WaterIsYou][Baba Water] -> [BabaIsWin][WaterIsYou][Baba water] win late [BabaIsWin][SkullIsYou][Baba Skull] -> [BabaIsWin][SkullIsYou][baba skull] win (Water is win) late [WaterIsWin][WallIsYou][Water Wall] -> [WaterIsWin][WallIsYou][Water Wall] win late [WaterIsWin][FlagIsYou][Water Flag] -> [WaterIsWin][FlagIsYou][Water Flag] win late [WaterIsWin][RockIsYou][Water Rock] -> [WaterIsWin][RockIsYou][Water Rock] win late [WaterIsWin][BabaIsYou][Water Baba] -> [WaterIsWin][BabaIsYou][Water Baba] win late [WaterIsWin][SkullIsYou][Water Skull] -> [WaterIsWin][SkullIsYou][Water skull] win (Skull is win) late [SkullIsWin][WallIsYou][Skull Wall] -> [SkullIsWin][WallIsYou][Skull Wall] win late [SkullIsWin][FlagIsYou][Skull Flag] -> [SkullIsWin][FlagIsYou][Skull Flag] win late [SkullIsWin][RockIsYou][Skull Rock] -> [SkullIsWin][RockIsYou][Skull Rock] win late [SkullIsWin][BabaIsYou][Skull Baba] -> [SkullIsWin][BabaIsYou][Skull Baba] win late [SkullIsWin][WaterIsYou][Skull Water] -> [SkullIsWin][WaterIsYou][Skull Water] win (Remove Temp WinCondition) [RulePlaceholders] -> [] ============== WINCONDITIONS ============== (Win conditions are calculated during the late rule execution phase) ======= LEVELS ======= message BABA IS YOU (DEMAKE) ................. .ƁiY.........ƑiW. ................. ....#########.... ........R........ ....B...R...F.... ........R........ ....#########.... ................. .ŴiS.........ŘiP. ................. message WHERE DO I GO? ................................... .......g........................... ...........#############........... ...........#...........#........g.. ...........#..i........#........... ...........#...........#........... ...........#.......W...#.g......... ......######...........#..g........ .g....#ttttt...........#........... ......#tƑttt...F.......#.....g..... ..g...#ttttt...........#........... ......##################........... ...........#...........#........... .......Ɓ...#.Ŵ.........#........... .......i...#.i.....B...#.......g... .......Y...#.S.........#......gg... ...........#...........#........... ...........#############.....g..... ..g................................ ................................... message NOW WHAT IS THIS? ................................... .......t........................... ...........FFFFFFFFFFFFF........... ...........F...........F........t.. ...........F..i........F........... ...........F...........F........... ...........F.......W...F.t......... ......FFFFFF...........F..t........ .t....Fggggg...........F........... ......FgƁggg...........F.....t..... ..t...Fggggg...........F........... ......FFFFFFFFFFFFFFFFFF........... ...........F...........F........... .......Ŵ...F.Ƒ.........F........... .......i...F.i.....#...F.......t... .......Y...F.S.........F......tt... ...........F...........F........... ...........FFFFFFFFFFFFF.....t..... ..t................................ ................................... message OUT OF REACH ƁŴ#................................ ii#....g...................g....... YS#........#############........... ###........#ttttttttttt#........g.. ..........ω#ttBtttttRtt#........... ..........i#ttttttttttt#........... ..........Ş#ttttttttRtt#.g......... ......######~~~~############....... .g....#.........#..........#....g.. ......#.........#..........#....... ..g...#.........#....ŘiP...#....... ......#.........#..........#....... ......#.........#..........#....... ......#~~~~...#............#....... ......#~~~~.....#..........#...g... ......#~~~~.....#....ƑiW...#..gg... ......#F~~~.....#..........#....... ......######################.g..... ..g................................ ................................... message STILL OUT OF REACH ƑiW......................... ƁiY.............ౚౚౚౚౚౚౚౚౚ... ................ౚ.Ș.....ౚ... ................ౚ.i.....ౚ... ................ౚ.D...F.ౚ... ..ŘiP...........ౚ.......ౚ... ................ౚౚౚౚౚౚౚౚౚ... .....ౚ.ౚ.................... .....ౚRౚ.................... ...ౚౚౚRౚౚౚ.................. ...ౚ..R..ౚ.................. ...ౚ.....ౚ.................. ...ౚ.....ౚ.................. ...ౚ..B..ౚ.................. ...ౚ.....ౚ.................. message DEEP RIVER (aka VOLCANO, Hot/Melt not implemented) ŴiS~~.#.....#...#.........~~~~~~.. ~~~~..#.......B.#........~~~~~.... ~~....#.....#...#.......~~~~~..... ~.....#.ƁiY.#####......~~~~~~..... ......##...##..........~~~~~...... ......#.....R.........~~~~~~...... ......#######........~~~~~~....... ......#Ř#...........~~~~~~........ .......i...........~~~~~~......... .......P..........~~~~~~.......... ............ω....~~~~~~........... ................~~~~~~......F..... .......#ωiŞ#...~~~~~~............~ .......#ƑiD#..~~~~~~.....ƑiW....~~ .......#####.~~~~~~............~~~ message OFF LIMITS ŘiS.R.......ౚ..................... ....R.......ౚ..................... ȘiD.R.....##ౚ########............. ....R.....#.ౚ..#....#............. ƑiW.R.....#.ౚ.....F.#............. ....R.#####.ౚ..#....#............. RRRRR.#...#.ౚ..######............. ......#.B...ౚ..#.................. ......#...#.ౚ###.................. ......#####.ౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚౚ ..........#....#.................. ..........#.ŴiS#.................. .......Ɓ..#....#.................. .......i..######.................. .......y.......................... .................................. message ROCK WORLD (Grass World) ............................. .......################...... .......#....R.........#...... .......#.ƁiY........F.#...... .......#R.......R.....#...... .......#.........R.R..#.....Ř .......#...B...R..R.RR#.....i .......#R......R.Ƒ.W..#.....S .......#.R.....R..R...#...... .......#....R...R.....#...... .......################...... ............................. ............................. message BRICK WALL ...g............. .............g... ..gttttt...g..... .g.tƁiYt...###### ...ttttt...#...#Ŵ .B.ttttt...#.F.#i ...ttttt...#...#S ...tƑiWt...###### ...ttttt......... .............g... ....g............ message Watery Grave (by @pyjamads) ....................... ...................~~~~ ..ƁiY.........ౚౚౚౚౚ~șωŵ ..............ౚƒiWౚ~iii ..............ౚౚౚౚౚ~DşS ...................~~~~ ....................... .######.....r.......... ##....#.##............. #..řiPR..#............. #.B...#.##.........B... ##....#....~~~......... .#####....~~~~~........ ..........~~F~~........ ..........~~~~~........ ...........~~~......... ....................... (HAVEN'T Implemented Key/Door + Open/Shut fully message LOCK ........................#ĐiS#.g... ......#####....g........#####..g.. ......#ƁiY#.............#ĐiƧ#...g. .g....#####............#######.... ......#ŴiS#............#.....#.... ......#######...tttttttȠ..Ř..#.... ...g..#.....#...tR.¬...#.....#.... ......#.¬.B.Ƞtttt......###Ƞ###.... ......#.....#...t......#....#..... ......#######...t......#..F.#..... ................t......##...#..... .1........ĶiO...t.......#ƑiW#..... ..........i.....tttt....#####..... ..1..g....P........t.............. ....g..............t.............. ) message THANK YOU FOR PLAYING! GO BUY BABA IS YOU!