create-debuff 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,eAAO,MAAM,OAAO;aAClB,IAAI,EAAE,SAAS;aACf,QAAQ,EAAE,SAAS;aACnB,GAAG,EAAE,SAAS;aACd,GAAG,EAAE,SAAS;aACd,IAAI,EAAE,SAAS;aACf,KAAK,EAAE,SAAS;aAChB,MAAM,EAAE,SAAS;aACjB,GAAG,EAAE,SAAS;CACN,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,OAAO,CAAC;AAEhD,+DAA+D;AAC/D,eAAO,MAAM,IAAI;IAAK,GAAG;IAAgB,GAAG;CAAqB,CAAC;AAkBlE,sCAAsC;AACtC,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,eAAO,MAAM,IAAI,SAAU,MAAM,WAAwB,CAAC;AAC1D,eAAO,MAAM,GAAG,SAAU,MAAM,WAAuB,CAAC;AACxD,eAAO,MAAM,IAAI,SAAU,MAAM,WAAwB,CAAC;AAC1D,eAAO,MAAM,KAAK,SAAU,MAAM,WAAyB,CAAC;AAC5D,eAAO,MAAM,MAAM,SAAU,MAAM,WAA0B,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,KAAK,CAAC,IAAI,SAAa,GAAG,MAAM,CAK/C;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAc7C;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,GAAE,IAAa,GAAG,MAAM,EAAE,CAmBlD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAI1D"}
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,eAAO,MAAM,OAAO;aAClB,IAAI,EAAE,SAAS;aACf,QAAQ,EAAE,SAAS;aACnB,GAAG,EAAE,SAAS;aACd,GAAG,EAAE,SAAS;aACd,IAAI,EAAE,SAAS;aACf,KAAK,EAAE,SAAS;aAChB,MAAM,EAAE,SAAS;aACjB,GAAG,EAAE,SAAS;CACN,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,OAAO,CAAC;AAEhD,+DAA+D;AAC/D,eAAO,MAAM,IAAI;IAAK,GAAG;IAAgB,GAAG;CAAqB,CAAC;AAkBlE,sCAAsC;AACtC,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,eAAO,MAAM,IAAI,SAAU,MAAM,WAAwB,CAAC;AAC1D,eAAO,MAAM,GAAG,SAAU,MAAM,WAAuB,CAAC;AACxD,eAAO,MAAM,IAAI,SAAU,MAAM,WAAwB,CAAC;AAC1D,eAAO,MAAM,KAAK,SAAU,MAAM,WAAyB,CAAC;AAC5D,eAAO,MAAM,MAAM,SAAU,MAAM,WAA0B,CAAC;AAE9D,gDAAgD;AAChD,wBAAgB,KAAK,CAAC,IAAI,SAAa,GAAG,MAAM,CAK/C;AAED,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAe7C;;;GAGG;AACH,wBAAgB,IAAI,CAAC,IAAI,GAAE,IAAa,GAAG,MAAM,EAAE,CAmBlD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAI1D"}
package/dist/brand.js CHANGED
@@ -49,15 +49,16 @@ export function badge(text = " debuff ") {
49
49
  return `\x1b[48;2;${r};${g};${b}m${pc.black(pc.bold(text))}\x1b[49m`;
50
50
  }
51
51
  /**
52
- * buff, the debuff mascot, as pixel art. Each string is a pixel row:
53
- * L lime, H highlight, K ink, R red (oops), . transparent.
52
+ * buff, the debuff mascot, as pixel art in the squish style: one flat lime, dot eyes, stubby feet.
53
+ * Each string is a pixel row: L lime, K ink, R red (oops), . transparent. When things go well buff is
54
+ * squashed, a row shorter with its feet spread, as if it just landed a hop.
54
55
  */
55
56
  const BUFF = {
56
- idle: [".LLLLLL.", "LHHHHHHL", "LLKLLKLL", "LLKLLKLL", "LLLLLLLL", ".LLLLLL."],
57
- happy: [".LLLLLL.", "LHHHHHHL", "LKLKKLKL", "LLLLLLLL", "LLKKKKLL", ".LLLLLL."],
58
- oops: [".LLLLLL.", "LHHHHHHL", "LRLLLLRL", "LLRLLRLL", "LLLKKLLL", ".LLLLLL."],
57
+ idle: [".LLLLLL.", "LLLLLLLL", "LLKLLKLL", "LLLLLLLL", "LLLLLLLL", ".LL..LL."],
58
+ happy: ["........", "LLLLLLLL", "LLKLLKLL", "LLLLLLLL", "LLLLLLLL", "LL....LL"],
59
+ oops: [".LLLLLL.", "LLLLLLLL", "LRLLLLRL", "LLRLLRLL", "LLLLLLLL", ".LL..LL."],
59
60
  };
60
- const PIXEL = { L: PALETTE.lime, H: PALETTE.limeSoft, K: PALETTE.ink, R: PALETTE.red };
61
+ const PIXEL = { L: PALETTE.lime, K: PALETTE.ink, R: PALETTE.red };
61
62
  /**
62
63
  * buff rendered with half-block characters: two pixel rows per text line (3 lines tall).
63
64
  * Returns no lines when the terminal can't show 24-bit colour, so callers can just skip it.
package/dist/brand.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,4FAA4F;AAC5F,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,SAAS;IACnB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;CACN,CAAC;AAIX,+DAA+D;AAC/D,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAElE,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC;AAClC,MAAM,SAAS,GACb,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC;AAE3I,qDAAqD;AACrD,MAAM,KAAK,GAAgD;IACzD,IAAI,EAAE,EAAE,CAAC,KAAK;IACd,QAAQ,EAAE,EAAE,CAAC,WAAW;IACxB,GAAG,EAAE,EAAE,CAAC,KAAK;IACb,GAAG,EAAE,EAAE,CAAC,IAAI;IACZ,IAAI,EAAE,EAAE,CAAC,OAAO;IAChB,KAAK,EAAE,EAAE,CAAC,MAAM;IAChB,MAAM,EAAE,EAAE,CAAC,IAAI;IACf,GAAG,EAAE,EAAE,CAAC,GAAG;CACZ,CAAC;AAEF,sCAAsC;AACtC,MAAM,UAAU,KAAK,CAAC,IAAkB,EAAE,IAAY;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE9D,gDAAgD;AAChD,MAAM,UAAU,KAAK,CAAC,IAAI,GAAG,UAAU;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;AACvE,CAAC;AAID;;;GAGG;AACH,MAAM,IAAI,GAA2B;IACnC,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IAC9E,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC;CAC/E,CAAC;AAEF,MAAM,KAAK,GAAuC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;AAE3H;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,IAAI,GAAS,MAAM;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;gBAAE,IAAI,IAAI,GAAG,CAAC;iBACrB,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;iBAC/C,IAAI,CAAC;gBAAE,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;iBAClC,IAAI,CAAC;gBAAE,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACzC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,IAAU,EAAE,KAAe;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,GAAG,CAAC,GAAW;IACtB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;AACpD,CAAC;AACD,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,EAAE;IACzB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC,CAAC;AACF,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,EAAE;IACzB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,2GAA2G;IAC3G,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAczD,CAAC"}
1
+ {"version":3,"file":"official.d.ts","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,2GAA2G;IAC3G,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAqBzD,CAAC"}
package/dist/official.js CHANGED
@@ -11,5 +11,11 @@ export const OFFICIAL_TEMPLATES = [
11
11
  description: "Top-down action-adventure: screen-by-screen scrolling, sword combat, hearts, enemies, a key and locked door, a small dungeon",
12
12
  source: "github:debuffjp/debuff/templates/mossfell",
13
13
  },
14
+ {
15
+ id: "squish",
16
+ title: "Squish",
17
+ description: "Squishy match-3 for touch and mouse: swap jelly blobs, cascades and combos, squash-and-stretch juice, drawn in code with no art files",
18
+ source: "github:debuffjp/debuff/templates/squish",
19
+ },
14
20
  ];
15
21
  //# sourceMappingURL=official.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"official.js","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,+FAA+F;QAC5G,MAAM,EAAE,6CAA6C;KACtD;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,8HAA8H;QAChI,MAAM,EAAE,2CAA2C;KACpD;CACF,CAAC"}
1
+ {"version":3,"file":"official.js","sourceRoot":"","sources":["../src/official.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,+FAA+F;QAC5G,MAAM,EAAE,6CAA6C;KACtD;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,8HAA8H;QAChI,MAAM,EAAE,2CAA2C;KACpD;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,uIAAuI;QACzI,MAAM,EAAE,yCAAyC;KAClD;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-debuff",
3
- "version": "0.7.1",
3
+ "version": "0.9.0",
4
4
  "description": "Scaffold a new debuff game: npm create debuff",
5
5
  "keywords": [
6
6
  "game",
@@ -1,3 +1,4 @@
1
1
  node_modules/
2
2
  dist/
3
3
  .debuff/
4
+ ship/
@@ -10,15 +10,15 @@
10
10
  "test": "debuff test && debuff scenario"
11
11
  },
12
12
  "dependencies": {
13
- "@debuffjp/audio": "0.7.1",
14
- "@debuffjp/core": "0.7.1",
15
- "@debuffjp/input": "0.7.1",
16
- "@debuffjp/juice": "0.7.1"
13
+ "@debuffjp/audio": "0.9.0",
14
+ "@debuffjp/core": "0.9.0",
15
+ "@debuffjp/input": "0.9.0",
16
+ "@debuffjp/juice": "0.9.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@debuffjp/cli": "0.7.1",
19
+ "@debuffjp/cli": "0.9.0",
20
20
  "typescript": "^7.0.2",
21
- "@debuffjp/dev": "0.7.1",
22
- "keiko": "0.4.1"
21
+ "@debuffjp/dev": "0.9.0",
22
+ "keiko": "0.5.0"
23
23
  }
24
24
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "../node_modules/@debuffjp/cli/schema/scenario.schema.json",
3
+ "steps": [{ "wait": 20 }, { "press": "ArrowRight" }, { "flashes": 180 }, { "release": "ArrowRight" }]
4
+ }
@@ -1,5 +1,5 @@
1
1
  import { Audio } from "@debuffjp/audio";
2
- import { approach, clamp, Game, lerp, type Scene, Storage } from "@debuffjp/core";
2
+ import { approach, clamp, type Draw, Game, lerp, type Scene, Storage } from "@debuffjp/core";
3
3
  import { devOverlay, devTools } from "@debuffjp/dev";
4
4
  import { Input } from "@debuffjp/input";
5
5
  import { Particles, squash, Tweens } from "@debuffjp/juice";
@@ -28,7 +28,24 @@ const tuning = game.params.define("player", {
28
28
  });
29
29
 
30
30
  // prevX is where buff was a step ago: render blends toward x so motion stays smooth on fast displays.
31
- const player = { x: 160, prevX: 160, y: 120, vx: 0, scaleX: 1, scaleY: 1 };
31
+ // hop is how high buff is off the floor, for the little jump on each pop.
32
+ const player = { x: 160, prevX: 160, y: 132, vx: 0, scaleX: 1, scaleY: 1, hop: 0 };
33
+
34
+ const INK = "#11140d";
35
+ const LIME = "#cffb2d";
36
+
37
+ /** A rectangle with round corners, from rects and circles. */
38
+ function roundRect(draw: Draw, x: number, y: number, w: number, h: number, r: number, colour: string) {
39
+ draw.rect(x + r, y, w - 2 * r, h, colour);
40
+ draw.rect(x, y + r, w, h - 2 * r, colour);
41
+ for (const [cx, cy] of [
42
+ [x + r, y + r],
43
+ [x + w - r, y + r],
44
+ [x + r, y + h - r],
45
+ [x + w - r, y + h - r],
46
+ ] as const)
47
+ draw.circle(cx, cy, r, colour);
48
+ }
32
49
 
33
50
  const play: Scene = {
34
51
  id: "play",
@@ -43,26 +60,56 @@ const play: Scene = {
43
60
  if (input.pressed("pop")) {
44
61
  save.set("pops", save.get("pops") + 1);
45
62
  squash(tweens, player, 0.35);
46
- particles.emit({ x: player.x, y: player.y - 8, count: 16, colors: ["#cffb2d", "#f3fecb"], gravity: 200 });
63
+ // A little hop: up fast, down with a bounce. squash() only touches scale, so both play together.
64
+ tweens.to(
65
+ player,
66
+ { hop: 14 },
67
+ { duration: 0.12, ease: "outQuad", onComplete: () => tweens.to(player, { hop: 0 }, { duration: 0.3, ease: "outBounce" }) },
68
+ );
69
+ particles.emit({
70
+ x: player.x,
71
+ y: player.y - 14,
72
+ count: 16,
73
+ colors: [LIME, "#38bdf8", "#f472b6"],
74
+ shape: "circle",
75
+ size: [3, 6],
76
+ gravity: 300,
77
+ });
47
78
  game.camera.shake(0.3);
48
79
  audio.synth({ freq: 660, freqEnd: 220, decay: 0.15 });
49
80
  }
81
+ // Idle jiggle: buff breathes a little while nothing else is squashing it.
82
+ if (!tweens.has(player, "scaleX") && !game.reducedMotion) {
83
+ const s = Math.sin(game.clock.time * 3) * 0.04;
84
+ player.scaleX = 1 + s;
85
+ player.scaleY = 1 - s;
86
+ }
50
87
  tweens.update(dt);
51
88
  particles.update(dt);
52
89
  },
53
90
 
54
91
  render(draw, alpha) {
55
92
  draw.withCamera(game.camera, () => {
56
- // buff, the debuff mascot: a lime block with eyes, squashing from its feet.
93
+ // The floor: a soft rounded slab.
94
+ roundRect(draw, 6, player.y, game.width - 12, 30, 10, "#1b2014");
95
+
96
+ // buff, the debuff mascot: a flat jelly block with pill eyes, squashing and stretching from its feet.
57
97
  draw.push();
58
- draw.translate(lerp(player.prevX, player.x, alpha), player.y);
98
+ draw.translate(lerp(player.prevX, player.x, alpha), player.y - player.hop);
59
99
  draw.scale(player.scaleX, player.scaleY);
60
- draw.rect(-8, -16, 16, 16, "#cffb2d");
61
- draw.rect(-5, -12, 3, 4, "#11140d");
62
- draw.rect(2, -12, 3, 4, "#11140d");
100
+ roundRect(draw, -11, -4, 8, 5, 2.5, LIME); // feet
101
+ roundRect(draw, 3, -4, 8, 5, 2.5, LIME);
102
+ roundRect(draw, -14, -27, 28, 25, 9, LIME);
103
+ roundRect(draw, -8, -20, 5, 8, 2.5, INK); // pill eyes, like the brand buff
104
+ roundRect(draw, 3, -20, 5, 8, 2.5, INK);
63
105
  draw.pop();
64
106
  particles.draw(draw);
65
107
  });
108
+ // debuff sans, the built-in pixel font, at 2x.
109
+ draw.push();
110
+ draw.scale(2);
111
+ draw.text(`pops ${save.get("pops")}`, 6, 5, { color: "#d3dcc2" });
112
+ draw.pop();
66
113
  },
67
114
 
68
115
  // Snapshot for scenarios and agents (dev only).