From 82876d47c0008e480f61e5e371ac2bc28f01c49e Mon Sep 17 00:00:00 2001 From: hypercross Date: Tue, 3 Mar 2026 13:12:45 +0800 Subject: [PATCH] feat: check function --- src/components/stores/yarnStore.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/stores/yarnStore.ts b/src/components/stores/yarnStore.ts index 3d03a7b..5e27acb 100644 --- a/src/components/stores/yarnStore.ts +++ b/src/components/stores/yarnStore.ts @@ -38,7 +38,21 @@ export function createYarnStore(element: HTMLElement, props: RunnerOptions){ const ast = parseYarn(content); const program = compile(ast); - return new YarnRunner(program, props); + const runner = new YarnRunner(program, { + functions: { + check(id: string, stat: string): number { + const statVal = runner.getVariable(stat) as number || 10; + const pass = Math.ceil(Math.random() * 20) <= statVal; + const key = `${id}_${pass ? 'pass' : 'fail'}`; + const progress = runner.getVariable(key) as number || 0; + const newProgress = progress + Math.ceil(Math.random() * 4); + runner.setVariable(key, newProgress); + return pass ? newProgress : -newProgress; + } + }, + startAt: props.startAt, + }); + return runner; } catch (error) { console.error('Failed to initialize YarnRunner:', error); return null;