Merge branch 'main' into first-person-play
This commit is contained in:
@@ -342,7 +342,7 @@
|
||||
"wall-of-fire": "click a corridor line for the fire",
|
||||
"waterwall": "click a corridor line — the wave collapses at once",
|
||||
"pick-lock": "click a locked door",
|
||||
"master-key": "click a locked door",
|
||||
"master-key": "click a locked door — or Display it once and walk through every lock",
|
||||
"jam-lock": "click a door to jam its lock solid",
|
||||
"remove-lock": "click a door to strip its lock for good",
|
||||
"create-door": "click a wall for the new door",
|
||||
@@ -720,6 +720,15 @@
|
||||
dispatch({ type: "moveCreature", creatureId: selectedCreature, direction: w.from.side });
|
||||
return;
|
||||
}
|
||||
// Standing on a DIMENSIONAL WARP token: clicking the paired token
|
||||
// steps it through.
|
||||
const dw = view.dimWarps.find((d) =>
|
||||
(cellKey(d.a) === cellKey(creature.position) && cellKey(d.b) === cellKey(cell)) ||
|
||||
(cellKey(d.b) === cellKey(creature.position) && cellKey(d.a) === cellKey(cell)));
|
||||
if (dw) {
|
||||
dispatch({ type: "creatureWarpStep", creatureId: selectedCreature });
|
||||
return;
|
||||
}
|
||||
}
|
||||
selectedCreature = null;
|
||||
return;
|
||||
@@ -1256,6 +1265,7 @@
|
||||
<header class="masthead">
|
||||
<span class="mast-title">Wiz-War</span>
|
||||
<span class="mast-sub">sixth edition</span>
|
||||
<span class="mast-version" title="deployed">{__BUILD_STAMP__}</span>
|
||||
<button class="mast-leave" title="preferences" onclick={() => (prefsOpen = !prefsOpen)}>⚙ preferences</button>
|
||||
{#if local.active}
|
||||
<span class="mast-room">hotseat</span>
|
||||
@@ -1811,6 +1821,10 @@
|
||||
<span class="dot" style:background="#b3a687"></span>
|
||||
{/if}
|
||||
{p}{p === net.hostId ? " — host" : ""}{net.roomBots[p] ? ` ⚙ ${net.roomBots[p]}` : chosen === undefined ? " — choosing…" : ""}
|
||||
{#if net.you === net.hostId && p !== net.hostId}
|
||||
<button class="stamp tiny kick" title="clear this seat"
|
||||
onclick={() => net.kickSeat(p)}>✕</button>
|
||||
{/if}
|
||||
</li>
|
||||
{/each}
|
||||
</ul>
|
||||
@@ -1834,6 +1848,8 @@
|
||||
{/each}
|
||||
</div>
|
||||
{#if net.you === net.hostId}
|
||||
<button class="stamp tiny abandon" title="dissolve this room for everyone"
|
||||
onclick={() => net.abandonRoom()}>abandon room</button>
|
||||
{#if net.players.length < 6}
|
||||
<span class="bot-row">
|
||||
<span class="bot-label">⚙ seat a</span>
|
||||
@@ -2219,6 +2235,10 @@
|
||||
{#if selectedCard?.cardId === "pick-lock" || selectedCard?.cardId === "master-key"}
|
||||
<label class="inline"><input type="checkbox" bind:checked={holdDoor} /> hold the door open</label>
|
||||
{/if}
|
||||
{#if selectedCard?.cardId === "master-key" && isYourTurn &&
|
||||
!me?.displayed.some((c) => c.instanceId === selectedCard!.instanceId)}
|
||||
<button class="stamp tiny" onclick={castSelfWithNumber}>Display the key</button>
|
||||
{/if}
|
||||
{#if selectedCard?.cardId === "rotate-sector"}
|
||||
<label class="inline"><input type="checkbox" bind:checked={rotateCW} /> clockwise</label>
|
||||
<span>— click the sector</span>
|
||||
@@ -2463,6 +2483,14 @@
|
||||
text-transform: uppercase;
|
||||
color: #8d8672;
|
||||
}
|
||||
.kick { margin-left: 0.4rem; color: #a04545; }
|
||||
.abandon { margin: 0.4rem 0; color: #a04545; border-color: #a04545; }
|
||||
.mast-version {
|
||||
font-family: "Courier Prime", monospace;
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 0.06em;
|
||||
color: #6b6454;
|
||||
}
|
||||
.mast-room { margin-left: auto; font-size: 0.85rem; color: #a49c86; }
|
||||
.mast-room b { color: #e9e1cb; letter-spacing: 0.12em; }
|
||||
.mast-audience { font-size: 0.85rem; color: #a49c86; white-space: nowrap; }
|
||||
|
||||
Reference in New Issue
Block a user