Fix map coastal-water bleed-through and border lines (v0.10.0) #24
@@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
All notable changes to **History** are listed here, newest first.
|
All notable changes to **History** are listed here, newest first.
|
||||||
|
|
||||||
|
## v0.10.0 — 2026-10-11 21:25
|
||||||
|
- **Fix world map style (#2)** — made the choropleth fill fully opaque (`fill-opacity` 0.85 → 1.0) and darkened the Natural Earth terrain raster (`raster-opacity` 0.5 → 0.15), so the raster's flat water tint and fine 1:10m coastline no longer bleed through countries and compete with the borders.
|
||||||
|
- **Strengthened country border lines** — border width 0.7 → 1.25, and the per-region stroke alphas raised (owned 0.10 → 0.30, unowned 0.06 → 0.14) so the vector borders read clearly as the dominant edge, with owned regions still more prominent than unowned ones.
|
||||||
|
- Fixes #2.
|
||||||
|
|
||||||
## v0.9.0 — 2026-10-11 20:57
|
## v0.9.0 — 2026-10-11 20:57
|
||||||
- **Reduced turn latency (prompt-level):** capped `recentEvents` in the turn prompt from the last 10 to the last 5 events, and added a HARD CONSTRAINT asking the reasoning model to keep its internal analysis brief before emitting the JSON. This shortens the chain-of-thought (the 170–223s turn driver) and lowers the risk of exhausting the 4000-token output budget before the answer (the original 502 failure mode). Reasoning stays enabled (`reasoning_effort: low`); the deterministic stub, the `TurnResult` contract, `max_tokens`, and `reasoning_effort` are all unchanged.
|
- **Reduced turn latency (prompt-level):** capped `recentEvents` in the turn prompt from the last 10 to the last 5 events, and added a HARD CONSTRAINT asking the reasoning model to keep its internal analysis brief before emitting the JSON. This shortens the chain-of-thought (the 170–223s turn driver) and lowers the risk of exhausting the 4000-token output budget before the answer (the original 502 failure mode). Reasoning stays enabled (`reasoning_effort: low`); the deterministic stub, the `TurnResult` contract, `max_tokens`, and `reasoning_effort` are all unchanged.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "history",
|
"name": "history",
|
||||||
"version": "0.9.0",
|
"version": "0.10.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "AI-driven alternate-history simulator — the LLM is the world engine (Pax Historia style).",
|
"description": "AI-driven alternate-history simulator — the LLM is the world engine (Pax Historia style).",
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ const INLINE_STYLE: maplibregl.StyleSpecification = {
|
|||||||
type: 'raster',
|
type: 'raster',
|
||||||
source: 'terrain',
|
source: 'terrain',
|
||||||
paint: {
|
paint: {
|
||||||
'raster-opacity': 0.5,
|
'raster-opacity': 0.15,
|
||||||
'raster-brightness-max': 0.8,
|
'raster-brightness-max': 0.8,
|
||||||
'raster-fade-duration': 200,
|
'raster-fade-duration': 200,
|
||||||
},
|
},
|
||||||
@@ -124,11 +124,11 @@ function applyRegions(geo: FeatureCollection, regions: RegionMap, playerNationId
|
|||||||
f.properties.fill = r.color;
|
f.properties.fill = r.color;
|
||||||
f.properties.owner = r.owner;
|
f.properties.owner = r.owner;
|
||||||
f.properties.ownerId = r.ownerId;
|
f.properties.ownerId = r.ownerId;
|
||||||
f.properties.stroke = 'rgba(255,255,255,0.10)';
|
f.properties.stroke = 'rgba(255,255,255,0.30)';
|
||||||
f.properties.isPlayer = r.ownerId === playerNationId ? 1 : 0;
|
f.properties.isPlayer = r.ownerId === playerNationId ? 1 : 0;
|
||||||
} else {
|
} else {
|
||||||
f.properties.fill = 'rgba(148,163,184,0.05)';
|
f.properties.fill = 'rgba(148,163,184,0.05)';
|
||||||
f.properties.stroke = 'rgba(255,255,255,0.06)';
|
f.properties.stroke = 'rgba(255,255,255,0.14)';
|
||||||
f.properties.owner = '';
|
f.properties.owner = '';
|
||||||
f.properties.ownerId = '';
|
f.properties.ownerId = '';
|
||||||
f.properties.isPlayer = 0;
|
f.properties.isPlayer = 0;
|
||||||
@@ -411,7 +411,7 @@ export default function WorldMap({
|
|||||||
id: FILL_LAYER,
|
id: FILL_LAYER,
|
||||||
type: 'fill',
|
type: 'fill',
|
||||||
source: COUNTRIES_SOURCE,
|
source: COUNTRIES_SOURCE,
|
||||||
paint: { 'fill-color': ['get', 'fill'], 'fill-opacity': 0.85 },
|
paint: { 'fill-color': ['get', 'fill'], 'fill-opacity': 1.0 },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (!map.getLayer(LINE_LAYER)) {
|
if (!map.getLayer(LINE_LAYER)) {
|
||||||
@@ -419,7 +419,7 @@ export default function WorldMap({
|
|||||||
id: LINE_LAYER,
|
id: LINE_LAYER,
|
||||||
type: 'line',
|
type: 'line',
|
||||||
source: COUNTRIES_SOURCE,
|
source: COUNTRIES_SOURCE,
|
||||||
paint: { 'line-color': ['get', 'stroke'], 'line-width': 0.7, 'line-opacity': 0.95 },
|
paint: { 'line-color': ['get', 'stroke'], 'line-width': 1.25, 'line-opacity': 0.95 },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// NOTE: layers are added in bottom→top order (each appends on top). The
|
// NOTE: layers are added in bottom→top order (each appends on top). The
|
||||||
|
|||||||
Reference in New Issue
Block a user