diff --git a/content/QWEN.md b/content/QWEN.md index fe78390..f26f97c 100644 --- a/content/QWEN.md +++ b/content/QWEN.md @@ -1,6 +1,7 @@ # 要求 编写ttrpg冒险。冒险将要使用./system.md描述的规则运行。 +若为yarn spinner编写,参考./yarn-spinner.md的内容。 每个冒险应该包含以下要素: @@ -59,6 +60,10 @@ - 路径与环境:描述连接地点的路径特征及旅行中的风险。 - 地点标注:明确主线遭遇(M1-M6)和支线遭遇(S1-S6)所在的地理位置。 +设计多种路径连接地点,以允许玩家在探索中有选择的空间。 + +为路径设计多种特性,如隐藏、上锁、单向、经过之后坍塌等,以允许探索时有多样的体验。 + 使用`mermaid`语法绘制地图,并插入冒险文件中。 ## 遭遇的设计 diff --git a/content/yarn-spinner.md b/content/yarn-spinner.md new file mode 100644 index 0000000..69a41eb --- /dev/null +++ b/content/yarn-spinner.md @@ -0,0 +1,79 @@ +# Yarn Spinner 编写 + +Yarn Spinner是一种文字冒险文本格式,可用于描述ttrpg冒险。 + +不要使用`markdown`格式语法,如标题,加粗等。只使用纯文本描述冒险内容。 + +## 基本结构 + +每个`主线`和`支线`遭遇使用一个`节点`来描述。然后,为每个遭遇里的每个交互创建一个`节点`。 + +```yarn-spinner +title: 节点名称 +--- +描述文本 +角色: 角色台词 +-> 选项描述1 + <<命令1>> +-> 选项描述2 + <<命令2>> +=== +``` + +对于`随机`遭遇而言,使用多个`title`相同的节点。 +可以使用`when: `来为节点触发添加条件。 +若需要节点只触发一次,可以结合`变量`。 + +```yarn-spinner +title: 随机遭遇 +when: $villager_encountered == false +--- +村民: 森林里有一只大狼! +<> +=== +``` + +## 跳转 + +`<>`:跳转节点 +`<>`:跳转节点,并在节点执行结束后返回 +`<>`:返回`detour`跳转来源节点 + +玩家在主线/支线地点之间移动时,根据路径内容,插入`<>`来触发随机遭遇。 + +随机遭遇可以使用`<>`来返回主线。 + +## 休息与睡觉 + +在合适的地方可以休息。如果时间在晚0点到早6点之间,可以睡觉。 + +## 命令和函数 + +使用命令读写时间。不要创建变量。 +- ```<>```:时间流逝,若休息则使用`<>`。若在夜间休息则休息至第二天6点,否则休息1小时。 +- ```<>```:读取24小时制当前时间。午夜为0点。 +- ```<= 72>>```:总共流逝的时间。 + +使用以下命令操作角色属性: +- ```<>```:造成角色属性损伤。若可耐受,则使用```<>```。 +- ```<>```:解除属性创伤,并恢复角色属性损伤。 +- ```<>```:施加属性修改值,持续一定小时数。 +- ```<> ```:检定角色属性。成功返回正值代表成功进度,失败返回负值代表失败进度。 +- ```<= 3>>```:处理检定成功进度。 +- ```<>```:处理检定失败进度。 +- ```< 0>>```:如果既没有成功也没有失败,暗示玩家应该继续尝试。 + +使用以下命令操作角色物品: +- ```<>```:添加物品。 +- ```<>```:消耗物品。 +- ```<>```:检查物品。 + +## 文件分割 + +可以把遭遇拆分为多个文件。每个文件不要超过300行。 + +只要使用匹配的遭遇title就可以跳转到其他文件内的遭遇。 + +每个交互机会应当有自己的节点。若检定既没有成功也没有失败,则应当允许玩家再次尝试或者返回遭遇。 + +使用变量来存储其他世界状态。 \ No newline at end of file