create-debuff 0.8.0 → 0.9.1
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.
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +7 -6
- package/dist/brand.js.map +1 -1
- package/package.json +1 -1
- package/templates/basic/gitignore +1 -0
- package/templates/basic/package.json +7 -7
- package/templates/basic/scenarios/__baselines__/move-and-pop/popped.win32.png +0 -0
- package/templates/basic/scenarios/__baselines__/move-and-pop/settled.win32.png +0 -0
- package/templates/basic/src/main.ts +55 -8
package/dist/brand.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
53
|
-
* L lime,
|
|
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.", "
|
|
57
|
-
happy: ["
|
|
58
|
-
oops: [".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,
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
"test": "debuff test && debuff scenario"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@debuffjp/audio": "0.
|
|
14
|
-
"@debuffjp/core": "0.
|
|
15
|
-
"@debuffjp/input": "0.
|
|
16
|
-
"@debuffjp/juice": "0.
|
|
13
|
+
"@debuffjp/audio": "0.9.1",
|
|
14
|
+
"@debuffjp/core": "0.9.1",
|
|
15
|
+
"@debuffjp/input": "0.9.1",
|
|
16
|
+
"@debuffjp/juice": "0.9.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@debuffjp/cli": "0.
|
|
19
|
+
"@debuffjp/cli": "0.9.1",
|
|
20
20
|
"typescript": "^7.0.2",
|
|
21
|
-
"@debuffjp/dev": "0.
|
|
22
|
-
"keiko": "0.
|
|
21
|
+
"@debuffjp/dev": "0.9.1",
|
|
22
|
+
"keiko": "0.5.0"
|
|
23
23
|
}
|
|
24
24
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
|
61
|
-
draw
|
|
62
|
-
draw
|
|
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).
|