adventure: show the party, the pets, and what you missed
Four small surfaces the game has had all along and the web has never shown. The party roster on the adventurer page is the one with a bug behind it. The board resolved an expedition by owner id, so a player seated on somebody else's run has been reading as "idle in town" while standing in a tier-4 dungeon. Seats now ride the roster detail beside the supply and threat numbers, and an opted-out player's seat is anonymised rather than dropped: a party of three rendered as a pair contradicts everything printed next to it. Pets show their levelling. They have earned XP from every won fight since that wiring was fixed and the only place a level ever appeared was a Matrix line that scrolled away. The threshold comes from the engine, in the engine's own centi-XP, because a copy of the curve here would drift the first time a band moved. "While you were away" is the one panel on the site about the reader rather than the realm. Two stamps behind it, not one: a single column would show the news, move the clock, and render an empty box over the same events on the reader's first refresh. And the story permalink names its region, which has been hardcoded empty behind a `// reserved` comment since the page shipped.
This commit is contained in:
@@ -2998,3 +2998,83 @@ html[data-room] .pete-felt {
|
||||
.realm-zone:hover { transform: none; }
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
/* W7 small surfaces: the pet XP bar and the party roster, both on the
|
||||
adventurer page. Same purge discipline as the block above — every class here
|
||||
is declared on a plain selector so Tailwind's extractor can lift its literal
|
||||
name out of this file. Nothing here is keyed to a pseudo-element. */
|
||||
|
||||
/* Pet levelling. It has been happening since the XP wiring was fixed and no
|
||||
surface has ever shown it. Deliberately a thin rail rather than a health-bar
|
||||
lookalike: a pet's progress is a nice thing to notice, not a stat to watch. */
|
||||
.pet-xp-track {
|
||||
height: 0.3rem;
|
||||
border-radius: 9999px;
|
||||
background: color-mix(in srgb, var(--ink) 10%, var(--card));
|
||||
overflow: hidden;
|
||||
}
|
||||
.pet-xp-fill {
|
||||
height: 100%;
|
||||
border-radius: 9999px;
|
||||
background: color-mix(in srgb, #3fa66a 70%, var(--ink));
|
||||
}
|
||||
/* At the cap there is nothing left to fill, and an empty track would read as
|
||||
the opposite. Fill it whole and let the label say why. */
|
||||
.pet-xp-capped {
|
||||
background: color-mix(in srgb, #c9a227 72%, var(--ink));
|
||||
}
|
||||
|
||||
/* The party roster. One row per seat, and the three kinds have to be tellable
|
||||
apart at a glance because they mean different things about the run: the
|
||||
leader owns the clock, a member is another player, the companion is hired. */
|
||||
.party-seat {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 0.6rem;
|
||||
padding: 0.45rem 0;
|
||||
border-bottom: 1px solid color-mix(in srgb, var(--ink) 7%, transparent);
|
||||
}
|
||||
.party-seat:last-child { border-bottom: 0; }
|
||||
.party-seat-role {
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.08em;
|
||||
border-radius: 9999px;
|
||||
padding: 0.15rem 0.45rem;
|
||||
color: color-mix(in srgb, var(--ink) 55%, transparent);
|
||||
background: color-mix(in srgb, var(--ink) 8%, var(--card));
|
||||
white-space: nowrap;
|
||||
}
|
||||
.party-seat-leader {
|
||||
color: color-mix(in srgb, #6d4bd8 70%, var(--ink));
|
||||
background: color-mix(in srgb, #6d4bd8 12%, var(--card));
|
||||
}
|
||||
/* An opted-out player's seat. It stays on the roster because the party size is
|
||||
load-bearing — the supply burn and the threat level printed on this same page
|
||||
felt that body — but it carries no name and no link. Italic and recessed so
|
||||
it reads as withheld rather than as missing data. */
|
||||
.party-seat-anon {
|
||||
font-style: italic;
|
||||
color: color-mix(in srgb, var(--ink) 45%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
/* "While you were away" (adventure section, signed-in owner only). Rows are
|
||||
quiet by default; the two kinds of line worth an eye — a realm first, a death
|
||||
— carry a marker. Same plain-selector purge discipline as everything above. */
|
||||
.away-line {
|
||||
padding: 0.3rem 0.55rem;
|
||||
border-radius: 0.75rem;
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
.away-line:hover {
|
||||
background: color-mix(in srgb, var(--ink) 4%, transparent);
|
||||
}
|
||||
.away-line-notable {
|
||||
border-left-color: color-mix(in srgb, #c9a227 60%, transparent);
|
||||
background: color-mix(in srgb, #c9a227 6%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user