@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。 。 。 .