formation-chess-web 0.2.0

Rules engine and text notation for Formation Chess (阵棋), a strategy board game where piece formations reshape nearby abilities
import { init, render, setStatus, hidePopup } from './ui.js';
import { getState, postAction, postNew } from './api.js';

async function main() {
    init(handleAction);

    try {
        const state = await getState();
        render(state);
    } catch (e) {
        setStatus('无法连接到服务器', true);
    }
}

async function handleAction(actionReq) {
    hidePopup();

    if (actionReq.type === 'new_game') {
        const { type, ...config } = actionReq;
        try {
            const state = await postNew(config);
            render(state);
        } catch (e) {
            setStatus(e.message, true);
        }
        return;
    }

    try {
        const response = await postAction(actionReq);
        if (response.error) {
            setStatus(response.error, true);
        }
        render(response);
    } catch (e) {
        setStatus('网络错误: ' + e.message, true);
    }
}

main();