|
feat(engine): условия диалогов v2 — whenVars/hasItem + чистый evalConditions
- DialogueWorld { hasItem } — предикаты мира (сумка) инъекцией; без world
hasItem-условия ложны.
- DialogueConditions: whenVars (несколько переменных, AND) и hasItem;
легаси-whenVar не тронут.
- evalConditions/hasConditions — чистые функции для квест-стадий, dry-run
и валидатора; рантайм делегирует проверку им.
- Тесты: AND по переменным, hasItem с/без world, evalConditions на чистом
GameState; доки ui-and-dialogue.md + practices.md.
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
|---|
|
|
| docs/engine/practices.md |
|---|
| docs/engine/ui-and-dialogue.md |
|---|
| packages/engine/src/dialogue/DialogueRunner.ts |
|---|
| packages/engine/src/dialogue/__tests__/DialogueRunner.test.ts |
|---|
| packages/engine/src/index.ts |
|---|