Phase 1 of turning the game into the company landing page. - Add src/config/company.js with name, tagline, contact, about and the product line, plus a brand palette built around #00a693 (contrast checked); placeholders are marked TODO(company). - Add src/config/assets.js listing every loaded file with its expected format; placeholders are marked TODO(asset). - Move all Persian interface text, dialogue, missions and scenery text into src/i18n/fa.js; components and game code read from it. - Expose the palette as CSS variables (--color-primary and shades) and Tailwind colours, and use it for 3D materials and map drawings. - Fix the arrival line that still called the manager's car a white pickup. - Add tests that block hard-coded Persian text and low-contrast colours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
729 B
React
20 lines
729 B
React
import { GameNode } from '@/components/shared/GameNode.jsx';
|
|
import { ViewLists } from './ViewLists.jsx';
|
|
import { strings } from '@/i18n/fa.js';
|
|
/** @typedef {{nodes:object,actions:object}} MissionListProps */
|
|
/** Presents the MissionList using the current interface snapshot. */
|
|
export function MissionList({ nodes, actions }) {
|
|
return (
|
|
<GameNode as="aside" id="objectives" model={nodes['objectives']}>
|
|
<h2>{strings.status.missions}</h2>
|
|
<GameNode as="ol" id="mission-list" model={nodes['mission-list']}>
|
|
<ViewLists
|
|
id="mission-list"
|
|
model={nodes['mission-list']}
|
|
onAction={(name, value) => actions.emit(name, value)}
|
|
/>
|
|
</GameNode>
|
|
</GameNode>
|
|
);
|
|
}
|