fix(client_web): "jan de retour" location
This commit is contained in:
parent
c0409d6121
commit
874a302524
4 changed files with 74 additions and 77 deletions
|
|
@ -785,13 +785,13 @@ body {
|
||||||
.board-quarter .field.zone-petit:nth-child(even),
|
.board-quarter .field.zone-petit:nth-child(even),
|
||||||
.board-quarter .field.zone-grand:nth-child(even) { --fc: var(--field-ivory); }
|
.board-quarter .field.zone-grand:nth-child(even) { --fc: var(--field-ivory); }
|
||||||
|
|
||||||
/* Jan de retour — cooler: dark teal / silvery-green ivory */
|
/* Opponent's grand-jan — cooler: dark teal / silvery-green ivory */
|
||||||
.board-quarter .field.zone-retour:nth-child(odd) { --fc: #1e3d32; }
|
.board-quarter .field.zone-opponent:nth-child(odd) { --fc: #1e3d32; }
|
||||||
.board-quarter .field.zone-retour:nth-child(even) { --fc: #e5eadc; }
|
.board-quarter .field.zone-opponent:nth-child(even) { --fc: #e5eadc; }
|
||||||
|
|
||||||
/* Dernier jan — warmer: amber-brown / warm amber ivory */
|
/* Jan de retour — warmer: amber-brown / warm amber ivory */
|
||||||
.board-quarter .field.zone-dernier:nth-child(odd) { --fc: #6a2810; }
|
.board-quarter .field.zone-retour:nth-child(odd) { --fc: #6a2810; }
|
||||||
.board-quarter .field.zone-dernier:nth-child(even) { --fc: #f2dfa0; }
|
.board-quarter .field.zone-retour:nth-child(even) { --fc: #f2dfa0; }
|
||||||
|
|
||||||
/* ── Rest corner (§3) — before .clickable so green wins when interactive ── */
|
/* ── Rest corner (§3) — before .clickable so green wins when interactive ── */
|
||||||
.field.corner { --fc: var(--field-corner) !important; }
|
.field.corner { --fc: var(--field-corner) !important; }
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ fn field_zone_class(field_num: u8) -> &'static str {
|
||||||
match field_num {
|
match field_num {
|
||||||
1..=6 => "zone-petit",
|
1..=6 => "zone-petit",
|
||||||
7..=12 => "zone-grand",
|
7..=12 => "zone-grand",
|
||||||
13..=18 => "zone-retour",
|
13..=18 => "zone-opponent",
|
||||||
19..=24 => "zone-dernier",
|
19..=24 => "zone-retour",
|
||||||
_ => "",
|
_ => "",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -143,7 +143,6 @@ fn field_center(f: usize, is_white: bool) -> Option<(f32, f32)> {
|
||||||
Some((x, y))
|
Some((x, y))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// SVG `<g>` element drawing one arrow (shadow + gold) from `fp` to `tp`.
|
/// SVG `<g>` element drawing one arrow (shadow + gold) from `fp` to `tp`.
|
||||||
fn arrow_svg(fp: (f32, f32), tp: (f32, f32)) -> AnyView {
|
fn arrow_svg(fp: (f32, f32), tp: (f32, f32)) -> AnyView {
|
||||||
let (x1, y1) = fp;
|
let (x1, y1) = fp;
|
||||||
|
|
@ -515,7 +514,6 @@ pub fn Board(
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
let (tl, tr, bl, br) = if is_white {
|
let (tl, tr, bl, br) = if is_white {
|
||||||
(&TOP_LEFT_W, &TOP_RIGHT_W, &BOT_LEFT_W, &BOT_RIGHT_W)
|
(&TOP_LEFT_W, &TOP_RIGHT_W, &BOT_LEFT_W, &BOT_RIGHT_W)
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -524,9 +522,9 @@ pub fn Board(
|
||||||
|
|
||||||
// Zone label pairs (top-left, top-right, bot-left, bot-right) per perspective.
|
// Zone label pairs (top-left, top-right, bot-left, bot-right) per perspective.
|
||||||
let (label_tl, label_tr, label_bl, label_br) = if is_white {
|
let (label_tl, label_tr, label_bl, label_br) = if is_white {
|
||||||
("jan de retour", "dernier jan", "grand jan", "petit jan")
|
("", "jan de retour", "grand jan", "petit jan")
|
||||||
} else {
|
} else {
|
||||||
("petit jan", "grand jan", "dernier jan", "jan de retour")
|
("petit jan", "grand jan", "jan de retour", "")
|
||||||
};
|
};
|
||||||
|
|
||||||
view! {
|
view! {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ The board body between triangles becomes visible as the wood/felt surface — th
|
||||||
**Proposals**:
|
**Proposals**:
|
||||||
|
|
||||||
### 2a. Zone labels
|
### 2a. Zone labels
|
||||||
Add thin labels (`"petit jan"`, `"grand jan"`, `"jan de retour"`, `"dernier jan"`) beneath the board-row (or as a subtle strip above/below the quarter). These should use the serif font at very small size and low opacity — decorative, not noisy.
|
Add thin labels (`"petit jan"`, `"grand jan"`, `"jan de retour"`) beneath the board-row (or as a subtle strip above/below the quarter). These should use the serif font at very small size and low opacity — decorative, not noisy.
|
||||||
|
|
||||||
### 2b. Field color shift per zone
|
### 2b. Field color shift per zone
|
||||||
The physical game uses alternating colors within each quarter, but different quarters can use slightly different base hues:
|
The physical game uses alternating colors within each quarter, but different quarters can use slightly different base hues:
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
This table maps the French game terminology to the English terms used in this codebase (primarily the `store` crate). Where a code identifier exists, it is shown in `monospace`.
|
This table maps the French game terminology to the English terms used in this codebase (primarily the `store` crate). Where a code identifier exists, it is shown in `monospace`.
|
||||||
|
|
||||||
| French | English (code) | Notes |
|
| French | English (code) | Notes |
|
||||||
|---|---|---|
|
| -------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||||
| tablier | board | `Board` |
|
| tablier | board | `Board` |
|
||||||
| case / flèche | field | `Field` (1–24, 0 = exit); "flèche" (arrow) and "case" both refer to a field/point |
|
| case / flèche | field | `Field` (1–24, 0 = exit); "flèche" (arrow) and "case" both refer to a field/point |
|
||||||
| demi-case | half-field | A field occupied by exactly one checker |
|
| demi-case | half-field | A field occupied by exactly one checker |
|
||||||
|
|
@ -14,8 +14,7 @@ This table maps the French game terminology to the English terms used in this co
|
||||||
| bande de sortie | exit rail | Same rail, used as an extra field value during exit |
|
| bande de sortie | exit rail | Same rail, used as an extra field value during exit |
|
||||||
| petit jan | small jan | Fields 1–6; `is_field_in_small_jan` |
|
| petit jan | small jan | Fields 1–6; `is_field_in_small_jan` |
|
||||||
| grand jan | big jan | Fields 7–12 (White's side, opponent's near zone) |
|
| grand jan | big jan | Fields 7–12 (White's side, opponent's near zone) |
|
||||||
| jan de retour | return jan | Fields 13–18; same fields as opponent's small jan |
|
| jan de retour | return jan | Fields 19–24; same fields as opponent's small jan ; where checkers gather before exiting; `last quarter` |
|
||||||
| dernier jan / jan de retour | last jan / last quarter | Fields 19–24; where checkers gather before exiting; `last quarter` |
|
|
||||||
| table des petits jans | small jan table | The board half containing both players' small jans (fields 1–12) |
|
| table des petits jans | small jan table | The board half containing both players' small jans (fields 1–12) |
|
||||||
| table des grands jans | big jan table | The board half containing both players' big jans (fields 13–24) |
|
| table des grands jans | big jan table | The board half containing both players' big jans (fields 13–24) |
|
||||||
| plein (d'un jan) | filled (jan) | All 6 fields of a jan hold ≥ 2 checkers |
|
| plein (d'un jan) | filled (jan) | All 6 fields of a jan hold ≥ 2 checkers |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue