# 文件结构 ## 系统实现 - `system/`:系统实现。 - `combat/`:管理一次战斗内的战斗状态、流程、触发。 - `progress/`:管理一次冒险的进度。 - `map/`:管理地图生成。 - `grid-inventory/`:管理背包状态。 - `deck/`:管理卡组状态。 ## 数据 - `data/`:所有的数据文件 - `desert/`:游戏的测试模组,沙漠区域的内容。 - `card.csv`:所有的卡牌定义。 - `effect.csv`:所有的效应定义。 - `encounter.csv`:所有的遭遇定义。 - `enemy.csv`:所有的敌人和意图定义。 - `item.csv`:所有的玩家物品定义。 - `dialogues/`:yarn对话项目目录 - `dialogues.yarnproject`:yarn对话项目入口 - `**.yarn`:具体的yarn对话文件,代码不关心 - `index.ts`:统一导出所有的数据。 - `trigger.ts`:额外的触发器脚本,用于实现测试模组中涉及的效果。 ## 开发流程 ### SRD / 系统设计 首先编写srd文档。srd文档描述游戏系统和规则,并提供少量内联的基础游戏数据。 SRD是系统实现的基础,系统实现只能基于SRD,不能依赖具体的游戏内容。 ### Setting / 环境设定 使用SRD提供的特性来设计环境内容: - 效应:效应在技术上不依赖其他类型内容,可以首先确定。但在创意上可能不会直接设计效应,而是从若干创意中提取共性,并创建一个效应来作为主题。 - 卡牌:部分效应会创建卡牌或修改卡牌。在设计时需要注意。 - 敌人和意图:结合效应与主题表达设计敌人。通常需要为每个敌人设计独特的效应。 - 玩家物品:结合效应与主题表达设计物品。常见物品的效应容易找到替代,不常见物品则有特殊的效应。