A laden wizard shows their burden
A carried treasure rendered nowhere in first person — the thief hauling your gold looked exactly like an innocent. The treasure now rides its carrier at chest height, drawn just in front of their card (a sort bias wins the tie), gliding along with their tweened strides and showing through warp mouths like everything else. The workshop rehearses it with ?carry=Rival. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
df20e35124
commit
846cf56ffe
@@ -38,6 +38,12 @@
|
||||
const [k, n] = spec.split("@") as [string, string?];
|
||||
view.wallDamage[k] = Number(n ?? 1) || 1;
|
||||
}
|
||||
// ?carry=Rival hands the first treasure to that wizard, for viewing
|
||||
// what a laden thief looks like.
|
||||
const carrier = q.get("carry");
|
||||
if (carrier && view.treasures[0]) {
|
||||
view.treasures[0] = { ...view.treasures[0], carriedBy: carrier, position: null };
|
||||
}
|
||||
// ?terrain=pit@3,7;thornbush@4,7 — furnish squares for the renderer
|
||||
// (and the artist) to rehearse. dimwarp@x,y opens a floor mouth.
|
||||
for (const spec of (q.get("terrain") ?? "").split(";").filter(Boolean)) {
|
||||
|
||||
@@ -387,11 +387,24 @@ export function billboards(
|
||||
});
|
||||
}
|
||||
for (const t of view.treasures) {
|
||||
if (!t.position || t.carriedBy) continue;
|
||||
const src = art(`treasure-${(view.players.find((p) => p.id === t.owner)?.colorIndex ?? 0) % 6}`, "objects");
|
||||
if (t.carriedBy) {
|
||||
// A carried treasure rides its carrier at chest height, drawn just
|
||||
// in front of them — the most important status in the game should
|
||||
// be visible on the thief's own body.
|
||||
const carrier = view.players.find((p) => p.id === t.carriedBy && p.alive);
|
||||
if (!carrier || carrier.id === povId) continue;
|
||||
const o = posOverride?.[carrier.id];
|
||||
out.push({
|
||||
x: o?.x ?? carrier.position.x + 0.5, y: o?.y ?? carrier.position.y + 0.5,
|
||||
src, scale: 0.26, rise: 0.2, bias: 0.12, label: "treasure",
|
||||
});
|
||||
continue;
|
||||
}
|
||||
if (!t.position) continue;
|
||||
out.push({
|
||||
x: t.position.x + 0.5, y: t.position.y + 0.5,
|
||||
src: art(`treasure-${(view.players.find((p) => p.id === t.owner)?.colorIndex ?? 0) % 6}`, "objects"),
|
||||
scale: 0.4, rise: 0, label: "treasure",
|
||||
src, scale: 0.4, rise: 0, label: "treasure",
|
||||
});
|
||||
}
|
||||
// The floor's furniture, standing in the room. Bushes fill the square
|
||||
|
||||
Reference in New Issue
Block a user