Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

COC 7版电子角色卡

项目概述

本电子角色卡专为《克苏鲁的呼唤》第7版规则设计,提供数字化的角色管理解决方案。支持多页面数据管理、实时计算、本地存储及打印导出功能。

主要功能

核心功能

  • 角色属性管理(力量、体质、体型、敏捷等八项基本属性)
  • 动态技能系统(含子技能选择与自动计算)
  • 武器装备管理(名称、伤害值、特性)
  • 道具管理系统(80个存储位)
  • 笔记系统(双栏布局,支持六种预设分类)
  • 头像上传功能
  • 状态追踪系统(生命值、魔法值、理智值)
  • 幕间技能成长系统(D100掷骰检定、成长值计算、历史记录)

数据计算

  • 自动计算伤害加值与体格
  • 职业点数与兴趣点数实时统计与显示
  • 技能成功/困难/极难等级自动计算
  • 基于属性的衍生值计算(HP、MP、幸运等)
  • 闪避等基础技能自动关联相应属性

数据管理

  • 本地缓存自动保存
  • JSON格式导入/导出(不含头像数据)
  • 导入前预览确认:显示角色基本信息和数据概览,用户确认后才覆盖当前数据
  • 路径记忆:导出后自动记住目录,下次导入/导出对话框自动定位到该目录
  • File System Access API:支持选择保存路径(Chrome/Edge 86+),不支持的浏览器降级为传统下载
  • 多页面数据同步
  • 一键数据重置
  • 伙伴模式支持(NPC角色卡)

输出功能

  • 选择性打印(支持多页面组合)
  • 打印优化布局(A4适配)
  • 智能内容截断(打印模式)

使用指南

基本操作

  1. 填写基础信息
    在"主页面"填写调查员基本信息、属性和技能
  2. 管理装备武器
    在主页面记录武器信息(名称、伤害、特性)
  3. 管理道具
    在"道具"页记录携带物品(最多80项)
  4. 自定义技能
    在"自定义技能"页添加个性化学识
  5. 记录笔记
    在"笔记"页进行分类知识管理(支持冒险、人物、功法等预设分类)
  6. 幕间技能成长
    在"幕间成长"页使用成长点数进行技能检定

数据操作

  • 自动保存:数据实时保存至浏览器本地存储
  • 手动保存:点击悬浮按钮强制保存
  • 导入/导出
    1. 点击导出按钮打开菜单
    2. 选择"导出数据"生成JSON文件
    3. 通过"导入数据"恢复角色
  • 数据重置:一键清除当前角色数据

幕间技能成长

  1. 输入成长点数:在"幕间成长"页输入本次可用的成长点数
  2. 确认点数:点击"确认点数"按钮激活掷骰功能
  3. 选择技能:在技能列表中选择要成长的技能(支持显示默认技能和自定义技能)
  4. 掷骰检定
    • 点击"掷骰"按钮一次性消耗所有确认的点数进行多次检定
    • 系统会基于当前技能值进行D100检定,成功则增加成长值
    • 每次检定使用更新后的技能值进行后续判定
  5. 查看结果:显示每次检定的详细结果和最终技能值
  6. 历史记录:在下方查看所有成长历史,可清空记录

成长规则

  • 检定方式:D100掷骰,结果需大于当前技能值才算成功
  • 成长值:根据当前技能值决定骰子类型
    • 技能值 1-29:1d10
    • 技能值 30-49:1d8
    • 技能值 50-69:1d6
    • 技能值 70-89:1d4
    • 技能值 90+:1d3
  • 特殊规则
    • 投出100时获得双倍成长值
    • 技能值>95时,投出96-100总能成长
  • 排除技能:信用评级和克苏鲁神话不参与成长

打印指南

  1. 点击打印按钮
  2. 选择要打印的页面:
    • 主页面:基础属性与技能
    • 自定义技能:扩展技能列表
    • 道具:装备与物品清单
    • 笔记:调查记录与知识
  3. 确认打印设置:
    • 纸张尺寸:A4
    • 页边距:默认(建议≥0.5cm)
    • 缩放:100%
  4. 分页控制:主页面、自定义技能页、道具页、笔记页各自独立分页,不会重叠

技术实现

项目结构

trpg-character-sheet/
├── index.html          # 主页面
├── README.md           # 说明文档
├── css/                # 样式模块
│   ├── variables.css   # CSS变量定义
│   ├── layout.css      # 屏幕布局样式
│   ├── components.css  # 组件样式(表格、按钮、成长系统等)
│   └── print.css       # 打印样式
└── js/                 # 脚本模块
    ├── core.js         # 核心工具(DOM缓存、事件总线、角色存储)
    ├── calc.js         # 计算模块(属性计算、技能点计算)
    ├── skills.js       # 技能管理(子技能、技能行生成)
    ├── ui.js           # UI交互(模态框、编辑器)
    ├── data.js         # 数据管理(保存、加载、导入、导出)
    ├── print.js        # 打印功能
    ├── grow.js         # 幕间技能成长系统
    └── main.js         # 入口初始化

核心架构

组件 技术方案
数据存储 localStorage + JSON序列化
UI框架 纯CSS Grid/Flex布局
打印系统 CSS媒体查询 + DOM切换
导入导出 File System Access API + 降级方案
技能成长 D100掷骰模拟 + 动态成长值计算

关键特性

  • 实时计算引擎

    • 自动计算伤害加值/体格
    • 理智值(SAN)动态关联克苏鲁神话技能
    • 职业/兴趣点数实时统计
  • 幕间成长系统

    • D100掷骰检定(结果需大于当前技能值)
    • 动态成长骰子(根据技能值自动调整:1d10/1d8/1d6/1d4/1d3)
    • 支持一次性多次检定,每次基于最新技能值判定
    • 双倍成长值机制(投出100时触发)
    • 历史记录追踪
  • 打印优化

    • 与屏幕布局一致的 Grid 网格打印
    • 每页独立分页,避免重叠
    • 自定义技能页压缩行高以适配单页
    • 背景色保留(CSS打印媒体)
  • 错误处理

    • 数据完整性验证
    • 非法字符过滤
    • 空值容错处理

开发说明

依赖项

  • 现代浏览器(推荐Chrome 90+)

数据结构

{
  "basic": {
    "characterName": "角色姓名",
    "playerName": "玩家名",
    "era": "时代",
    "occupation": "职业",
    "age": "年龄",
    "gender": "性别",
    "residence": "住址",
    "birthplace": "出生地",
    "isPartner": false
  },
  "attributes": { "str": "65", "con": "99", ... },
  "status": {
    "sanity": { "current": "79", "start": "86", "max": "86" },
    "health": { "current": "19", "max": "16", "temp": "" },
    "magic": { "current": "18", "max": "17", "temp": "" }
  },
  "skills": {
    "occupationPoints": "0",
    "interestPoints": "0",
    "skillsList": [/* 技能列表 */]
  },
  "combat": {
    "damageBonus": "+1d4",
    "spiritBonus": "0",
    "build": "1",
    "armor": "1"
  },
  "weapons": [/* 武器列表 */],
  "customSkills": [/* 自定义技能 */],
  "items": [/* 道具列表 */],
  "notes": [/* 笔记条目 */],
  "version": "1.3.0"
}

注意事项

  1. 打印样式通过@media print实现,使用与屏幕一致的 Grid 网格布局(位于css/print.css
  2. 头像以 dataURL(JPEG,1024×1024,质量 0.92)内嵌在角色数据中,随导入导出一起流转
  3. 输入验证限制:
    • 数字字段仅接受0-999整数
    • 文本字段最大长度255字符
  4. File System Access API 仅在 Chrome/Edge 86+ 可用
  5. 导入时会覆盖当前所有数据,请确认后再操作

版权声明

© 2024 大胡子跑团
设计:龙王 jumper.rong@outlook.com
许可协议:CC BY-NC-SA 4.0

本作品与混沌元素(Chaosium)官方无关联,仅供爱好者交流使用

About

trpg-character-sheet

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages