@adatechnology/game-stories

中文文档
0.3.10发布于 2026/11/08MITTypeScriptES Module构建来源已验证近 30 天下载 1795

纯粹,游戏的种子故事生成器:世界创作时从人或名字池中出演的角色,故事作为数据通过旗帜和玩家的行为相交叉,编年史,人物表保存每个人的决定和故事l

中文使用文档
文档目录4 节
  1. 安装
  2. 使用量
  3. 测试区域
  4. 港口

@adatech/游戏故事

作为游戏数据的故事,纯和种子:带角色、条件、文字和变化的节拍故事;决定每个节奏的铸造 角色; 编年史; 人物表 保持一个人生活的一切; 以及 故事之间的生活模拟(人们受到伤害, 坠入爱河,有孩子,战斗,背叛,交易,被突袭并到达. 没有3.j,没有游戏内容:游戏给人,故事和游戏 并阅读编年史和床单.

它是一个字面上的港口,由两批货组成:

  • 谷地万岁 (单位:千美元)site/pages/sobreviventes/os-vivos-do-vale.html: life(), (中文(简体) ), simulate() 和事件引擎(EV, (中文(简体) ), ACTS, (中文(简体) ), fill页:1 常规。 谷地的人及其47起事件不在这里:他们是Zombiada切片(specs/001-migracao-entregas-dos-times/game-slice/stories/) (中文(简体) ).
  • 人员 (单位:千美元)site/pages/zumbis-personagens/personagens.html):工作表(点购,衍生出的价值,技能和里程碑,内存和见解). 规则本身(属性、技能、职业、特征、公式)和名称集合包含在 @adatechnology/game-characters-people; 游戏通过 names 财务报告和审定财务报表 ruleset (建议的路径; defaultStoryContent() 联 合 国 @adatechnology/game-kit-defaults 包里还有包 没有他们 核心会回到那个包, 一个被贬值的缺省 在下一个主.

黄金 game-stories-life.json (7个完整生命线按行,40个以上散列,96组玩家动作没有生命模拟,48张被单, 所有记录通过运行团队代码在 node:vm 与 tools/characters-catalog)被测试重放.

  • 常道出世为先. life.numbers.infection 实值 false 默认:外出会伤害或杀戮,没有人被咬,没有人转身. infection: true 转动球队被咬的乐队 两天后转动.
  • 所有东西都是数字和来源 (单位:千美元)LIFE_DEFAULTS, (中文(简体) ), SHEET_DEFAULTS每个文本都是表(LIFE_TEXT, (中文(简体) ), pt-BR 逐个字 en); 游戏补丁它想要的 life.numbers 财务报告和审定财务报表 life.text。 。 。 .
  • 故事交叉 根据角色:两个故事中一个有相同id的角色是一人,一个节拍读取州,旗子,行动以及每个人的事物 记得.
  • 铸造(P9):角色是被钉住的人,或符合其需要的人,或由名字集合而来的人. 它从自己的溪流中汲取,所以 生命模拟保持了团队的序列.

安装

pnpm add @adatechnology/game-stories

没有捆绑的浏览器( 全局为 GameStories:

<script src="https://unpkg.com/@adatechnology/game-stories/dist/index.global.js"></script>

使用量

import { createStoryWorld, createSheet } from '@adatechnology/game-stories'
import { getNamePools, SHEET_RULESET } from '@adatechnology/game-characters-people'   // or defaultStoryContent() of @adatechnology/game-kit-defaults

const world = createStoryWorld({ names: getNamePools('pt-BR'), ruleset: SHEET_RULESET, people, stories, life: { groups, relations, couples }, fill: 80, seed: 7, locale: 'pt-BR' })
world.act('fix_well') // a player action: the stories read it from today on
world.runTo(30)
world.chronicle.entries // every line, by day
world.states // the state of every person: ok, hurt, dead, missing, party, hostile, moved, left...
const sheet = world.sheet(world.cast('keeper')) // the same world, the same sheet
sheet.history // the stories and events the person lived
sheet.derived() // max health, stamina, load, running speed... from the ruleset

const mine = createSheet({ ruleset: SHEET_RULESET, profession: 'nurse', attributes: { agility: 6 }, traits: ['athlete'] })
mine.pool() // points left of the 14

一个故事:

{
  id: 'well',
  roles: [{ id: 'keeper', needs: { base: 'farm' }, create: true }],
  beats: [
    { id: 'well_dry', day: 10, roles: ['keeper'], variants: [{ text: [{ name: 'keeper' }, ' finds the well dry.'], flags: { well_dry: 1 } }] },
    {
      id: 'well_after', day: 14, roles: ['keeper', 'newcomer'],
      variants: [
        { when: { all: [{ action: 'fix_well' }, { living: 'newcomer' }] }, text: [{ name: 'newcomer' }, ' fixes the pump.'] },
        { text: [{ name: 'keeper' }, ' carries water from the river.'], changes: [{ role: 'keeper', state: 'hurt' }] },
      ],
    },
  ],
}

测试区域

createStoriesTestModule({ names?, ruleset?, professionName? }) (单位:千美元)stories_area,只有通用合同)放出种子,一天,生命模拟,感染层,玩家 动作和一个人的床单在板凳上,有六种情况(决定主义、铸造、正常世界、床单保持生活、点购和 两个故事交叉). 它运行了工具包的范例内容(两个小故事在一个农场和一个小镇上,标出 example) 直到游戏装入自己的游戏 (单位:千美元)module.load(content)) (中文(简体) ). examples/stories-test-area 把它装入共享测试室(sala-historias.html,带有JSON文件的按钮,例如: 和 zombiada 切片),并 examples/interactables-test-area 带着它.

港口

Histórias commo dados, deminísticas por smente: histórias de momentos com papéis, condiçes, pedaços de texto e mudanças; a quem faz (法语) cada papel; a crônica; a ficha que guarda tudo o que a pessoa viveu; e voida sorteada entre as histórias. 中国植物物种信息数据库. 维沃斯·多·瓦莱港(Os Vivos do Vale)life(), (中文(简体) ), simulate(){\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}什么? 活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 o conteúdo do vale (因为45比索 e os 47) o kid traz só um exemplo marcado (英语: example。 。 。 .

版本与发布记录

@adatechnology/game-stories 共发布 21 个版本,首次发布于 2026/10/25;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.10latest2026/11/08今天
0.3.92026/11/08今天
0.3.82026/11/071 天前
0.3.72026/11/071 天前
0.3.62026/11/071 天前
0.3.52026/11/071 天前

关于 @adatechnology/game-stories 的常见问题

@adatechnology/game-stories 是什么?

纯粹,游戏的种子故事生成器:世界创作时从人或名字池中出演的角色,故事作为数据通过旗帜和玩家的行为相交叉,编年史,人物表保存每个人的决定和故事l

如何安装 @adatechnology/game-stories?

在项目目录运行 npm install @adatechnology/game-stories,或使用 pnpm add / yarn add / bun add。

@adatechnology/game-stories 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@adatechnology/game-stories 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@adatechnology/game-stories 可以商用吗?

@adatechnology/game-stories 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@adatechnology/game-stories 的下载量有多少?

根据 npm 官方下载统计,@adatechnology/game-stories 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,795 次,日均约 60 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@adatechnology/game-stories 还在维护吗?

最新版本 0.3.10 发布于 2026/11/08(今天);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。