Edge cards light their targets; own casts never wrench the neck
Raising an edge-target card now makes every wall and door face breathe faint gold in the pane — the cockpit's answer to the board's edge handles — with hover still brightening the chosen face. And the director's own-magic aim gains a quarter-turn cap: a deed you aimed behind you via the keymap stays behind you, while deeds done TO you may still spin the world. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015RCWSTnb1KYTPyL4GmhGnF
This commit is contained in:
co-authored by
Claude Fable 5
parent
a4a871592b
commit
e2dfbd14e3
@@ -24,6 +24,7 @@
|
||||
rubble = [],
|
||||
ontarget,
|
||||
litCells = null,
|
||||
edgeSelect = false,
|
||||
}: {
|
||||
view: GameView;
|
||||
povId: string;
|
||||
@@ -45,6 +46,9 @@
|
||||
/** Squares a selected cell-target card may aim at: the pane dims the
|
||||
* ineligible ground exactly as the board dims its squares. */
|
||||
litCells?: Set<string> | null;
|
||||
/** An edge-target card is raised: every wall and door face glows
|
||||
* faintly, the pane's answer to the board's edge handles. */
|
||||
edgeSelect?: boolean;
|
||||
} = $props();
|
||||
|
||||
const FOV = Math.PI / 2.9;
|
||||
@@ -386,6 +390,12 @@
|
||||
ctx.fillStyle = `rgba(120,70,220,${haze})`;
|
||||
ctx.fillRect(col, top, 1, wallH);
|
||||
}
|
||||
if (edgeSelect && !hit.frame && (hit.kind === "wall" || hit.kind === "door") && hit.edge) {
|
||||
// The raised edge-card's invitation: faces breathe gold.
|
||||
const offer = 0.10 + 0.05 * Math.sin(time / 420 + hit.worldU * 3);
|
||||
ctx.fillStyle = `rgba(201,167,42,${Math.max(0, offer)})`;
|
||||
ctx.fillRect(col, top, 1, wallH);
|
||||
}
|
||||
}
|
||||
|
||||
// Sprites, far to near, sliced against the depth buffer.
|
||||
|
||||
Reference in New Issue
Block a user