clone

a browser grid puzzle game where you push words around to rewrite the rules of each level

main
miau-is-true / mods / word-lab.cjs
word-lab.cjs 3.3K
1// A second curated pack for the MVP engine. The levels isolate AND control,2// noun transformation, and editing one property out of a multi-property rule.3const { word, object, level } = require('@miau/engine');45module.exports = {6 manifest: {7 id: 'word-lab',8 name: 'Word Lab',9 version: '1.0.0',10 engine: 1,11 rules: 2,12 author: 'Miau engine team',13 description: 'Three compact experiments in shared control, transformation, and rule precedence.',14 },15 vocabulary: ['MIAU', 'ROCK', 'FLAG', 'WALL', 'GEM'],16 palette: {17 MIAU: '🐈',18 ROCK: '🪨',19 FLAG: '🚩',20 WALL: '🧱',21 GEM: '💎',22 },23 levels: [24 level(10, 5, [25 // Two nouns share control. MIAU is stopped while ROCK can reach FLAG.26 word('MIAU', 0, 0, 'shared-miau'), word('AND', 1, 0, 'shared-and'),27 word('ROCK', 2, 0, 'shared-rock'), word('IS', 3, 0, 'shared-is'),28 word('YOU', 4, 0, 'shared-you'),29 word('FLAG', 6, 0, 'shared-flag'), word('IS', 7, 0, 'shared-flag-is'),30 word('WIN', 8, 0, 'shared-win'),31 word('WALL', 6, 1, 'shared-wall'), word('IS', 7, 1, 'shared-wall-is'),32 word('STOP', 8, 1, 'shared-stop'),33 object('MIAU', 1, 2, 'shared-player'), object('WALL', 2, 2, 'shared-barrier'),34 object('ROCK', 5, 2, 'shared-rock-object'), object('FLAG', 8, 2, 'shared-flag-object'),35 ], {36 id: 'shared-control',37 title: 'Shared control',38 hint: 'The wall traps MIAU. Read the AND sentence and move the other YOU to FLAG.',39 category: 'required',40 introduces: ['AND'],41 }),4243 level(9, 3, [44 // ROCK becomes GEM at reset, then GEM IS YOU gives the transformed noun control.45 word('ROCK', 0, 0, 'change-rock'), word('IS', 1, 0, 'change-rock-is'),46 word('GEM', 2, 0, 'change-gem'),47 word('GEM', 4, 0, 'change-gem-subject'), word('IS', 5, 0, 'change-gem-is'),48 word('YOU', 6, 0, 'change-you'),49 word('FLAG', 0, 1, 'change-flag'), word('IS', 1, 1, 'change-flag-is'),50 word('WIN', 2, 1, 'change-win'),51 object('ROCK', 1, 2, 'change-rock-object'), object('FLAG', 7, 2, 'change-flag-object'),52 ], {53 id: 'change-what-you-are',54 title: 'Change what you are',55 hint: 'ROCK changes into GEM. Follow the new noun to the flag.',56 category: 'required',57 introduces: ['GEM'],58 }),5960 level(10, 5, [61 // ROCK carries PUSH and STOP at once. The level's direct route lets62 // PUSH move the rock through its STOP property into FLAG.63 word('MIAU', 0, 0, 'cargo-miau'), word('IS', 1, 0, 'cargo-miau-is'),64 word('YOU', 2, 0, 'cargo-you'),65 word('FLAG', 6, 0, 'cargo-flag'), word('IS', 7, 0, 'cargo-flag-is'),66 word('WIN', 8, 0, 'cargo-win'),67 word('ROCK', 1, 1, 'cargo-rock'), word('IS', 2, 1, 'cargo-rock-is'),68 word('PUSH', 3, 1, 'cargo-push'), word('AND', 4, 1, 'cargo-and'),69 word('STOP', 5, 1, 'cargo-stop'),70 object('MIAU', 1, 3, 'cargo-player'), object('ROCK', 6, 3, 'cargo-rock-object'),71 object('FLAG', 8, 3, 'cargo-flag-object'),72 ], {73 id: 'rules-are-cargo',74 title: 'Push beats stop',75 hint: 'ROCK is STOP and PUSH at once. Which one wins when you walk into it?',76 category: 'challenge',77 introduces: ['PUSH', 'STOP'],78 allowBypass: true,79 allowHandsOff: true,80 }),81 ],82};