# 钓鱼玩法设计 状态:核心规则已确认,待实现 本文记录已经确认的鱼种、鱼竿、鱼饵、抽卡、货币、存放和插件归属规则。 --- # 一、命令 ## 已实现 ```text /注册 /签到 /账号背包 /兑换钓鱼币 <金币数量> /钓鱼 兑换金币 <钓鱼币数量> /钓鱼 抽卡 /钓鱼 十连 /钓鱼 卡池 /钓鱼 道具库 /钓鱼 查看鱼竿 /钓鱼 更换鱼竿 <鱼竿名> /钓鱼 抛竿 [鱼饵名] /钓鱼 收竿 /钓鱼 鱼仓 /钓鱼 卖鱼 编号 /help /帮助 ``` ## 计划实现 ```text /钓鱼 抽卡记录 ``` ## 待定命令 ```text /钓鱼 卖鱼竿 ``` ## 命令约定 钓鱼子命令统一使用: ```text /钓鱼 命令 参数 ``` 例外: ```text /兑换钓鱼币 数量 ``` 这是顶级兑换入口,不放入 `/钓鱼` 子命令。 --- # 二、货币与兑换 每个群的玩家钱包有两个余额: ```text 金币 平台通用货币,签到等产出 钓鱼币 钓鱼玩法货币,卖鱼和特殊物品产出 ``` 固定汇率: ```text 10 钓鱼币 = 1 金币 ``` 双向兑换,无手续费。 ## 兑换命令 ```text /兑换钓鱼币 数量 金币换钓鱼币 /钓鱼 兑换金币 数量 钓鱼币换金币 ``` 规则: ```text 数量必须是正整数 金币换钓鱼币时,金币不足则拒绝 钓鱼币换金币时,按可兑换的最大数量向下取整 实际消耗的钓鱼币数量一定是 10 的倍数 余额不能为负 一次兑换写入两条钱包流水 兑换必须幂等 ``` 示例: ```text 有 25 钓鱼币,/钓鱼 兑换金币 25 → 消耗 20 钓鱼币,获得 2 金币,剩 5 有 17 钓鱼币,/钓鱼 兑换金币 25 → 消耗 10 钓鱼币,获得 1 金币,剩 7 ``` 钱包结构: ```text wallet.gold wallet.fishingCoins ``` 所有金币和钓鱼币变动都通过 Wallet 入账。 --- # 三、鱼类 五个等级,每级四种,共二十种。 ## Lv.1 ```text 鲫鱼 白条 泥鳅 小鲤鱼 ``` ## Lv.2 ```text 鲈鱼 鳊鱼 黄颡鱼 草鱼 ``` ## Lv.3 ```text 鳜鱼 黑鱼 青鱼 锦鲤 ``` ## Lv.4 ```text 金鳞鲤 月影鳜 赤鳍鲟 云纹鳗 ``` ## Lv.5 ```text 龙鳞锦鲤 星河鳜 太虚鲲 琉璃龙鱼 ``` --- # 四、鱼类计价 鱼按重量和单价共同计价。 同一种鱼,重量越大,`pricePerKg` 越高,最终价值同时受到重量和单价放大。 ## 公式 ```text ratio = clamp((weightKg - minKg) / (maxKg - minKg), 0, 1) pricePerKg = round( basePricePerKg * (1 + ratio * weightPriceBonus) ) value = round(weightKg * pricePerKg) ``` ## 重量上浮上限 | 等级 | weightPriceBonus | |---|---:| | Lv.1 | 15% | | Lv.2 | 20% | | Lv.3 | 25% | | Lv.4 | 35% | | Lv.5 | 50% | ## 鱼种价格与重量 重量在区间内均匀分布,期望值按均匀分布估算。 | 等级 | 鱼种 | 重量范围(kg) | basePricePerKg | 单价上限 | 期望价值 | |---|---|---|---:|---:|---:| | Lv.1 | 鲫鱼 | 0.15–1.00 | 11 | 13 | 6.9 | | Lv.1 | 白条 | 0.05–0.30 | 13 | 15 | 2.5 | | Lv.1 | 泥鳅 | 0.05–0.20 | 12 | 14 | 1.6 | | Lv.1 | 小鲤鱼 | 0.30–1.50 | 10 | 12 | 9.8 | | Lv.2 | 鲈鱼 | 0.40–3.00 | 22 | 26 | 42.1 | | Lv.2 | 鳊鱼 | 0.30–2.50 | 19 | 23 | 30.0 | | Lv.2 | 黄颡鱼 | 0.10–1.20 | 24 | 29 | 17.6 | | Lv.2 | 草鱼 | 1.00–6.00 | 17 | 20 | 66.9 | | Lv.3 | 鳜鱼 | 0.80–5.00 | 17 | 21 | 57.0 | | Lv.3 | 黑鱼 | 1.00–7.00 | 15 | 19 | 69.4 | | Lv.3 | 青鱼 | 2.00–12.00 | 13 | 16 | 105.1 | | Lv.3 | 锦鲤 | 0.50–8.00 | 19 | 24 | 93.8 | | Lv.4 | 金鳞鲤 | 2.00–15.00 | 13 | 18 | 134.8 | | Lv.4 | 月影鳜 | 1.50–10.00 | 15 | 20 | 105.1 | | Lv.4 | 赤鳍鲟 | 5.00–30.00 | 11 | 15 | 234.2 | | Lv.4 | 云纹鳗 | 2.00–12.00 | 14 | 19 | 119.2 | | Lv.5 | 龙鳞锦鲤 | 3.00–20.00 | 11 | 16 | 165.9 | | Lv.5 | 星河鳜 | 2.00–15.00 | 13 | 20 | 145.2 | | Lv.5 | 太虚鲲 | 20.00–100.00 | 9 | 14 | 705.0 | | Lv.5 | 琉璃龙鱼 | 5.00–25.00 | 12 | 18 | 235.0 | ## 等级期望 | 等级 | 平均期望价值 | 单鱼期望范围 | |---|---:|---:| | Lv.1 | 5.2 | 1.6–9.8 | | Lv.2 | 39.1 | 17.6–66.9 | | Lv.3 | 81.3 | 57.0–105.1 | | Lv.4 | 148.3 | 105.1–234.2 | | Lv.5 | 312.8 | 145.2–705.0 | 等级越高,期望价值越高。 重量上限不严格随等级递增: ```text Lv.4 赤鳍鲟 30kg Lv.5 龙鳞锦鲤 20kg Lv.5 星河鳜 15kg Lv.5 琉璃龙鱼 25kg Lv.5 太虚鲲 100kg ``` ## 鱼获数据 每条鱼获保存: ```text kind fishId name tier weightKg basePricePerKg pricePerKg value ``` 展示格式: ```text 鱼名 + 重量 + pricePerKg 钓鱼币/kg + 本次估值 ``` --- # 五、鱼竿 三个等级共九把,另有五把传奇鱼竿。 ```text Lv.1 3 把 Lv.2 3 把 Lv.3 3 把 Legendary 5 把 ``` 等级鱼竿只有鱼稀有度概率组,没有特殊效果。 传奇鱼竿拥有概率组和致敬特殊效果。 ## 概率组 装备鱼竿后,概率组由两部分组成: ```text 五档鱼稀有度权重 specialRate 特殊物品概率 ``` 先判定 specialRate: ```text 触发特殊物品 → 从特殊物品池抽取 未触发 → 用鱼档权重抽鱼 ``` 鱼档权重依次对应: ```text Lv.1 鱼 / Lv.2 鱼 / Lv.3 鱼 / Lv.4 鱼 / Lv.5 鱼 ``` 鱼档权重是**未触发特殊物品时的条件权重**,五档合计 100。 最终整体概率: ```text P(特殊物品) = specialRate P(鱼 i) = (1 - specialRate) * fishWeight[i] / sum(fishWeight) ``` 五档鱼概率与特殊物品概率合计: ```text specialRate + (1 - specialRate) * 100% = 100% ``` 鱼档权重不会被 specialRate 再次压缩。 ### Lv.1 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 竹制手竿 | 60 | 30 | 8 | 2 | 0 | | 玻璃钢手竿 | 58 | 31 | 8 | 3 | 0 | | 玻璃钢海竿 | 62 | 28 | 8 | 2 | 0 | ### Lv.2 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 碳素手竿 | 35 | 35 | 20 | 8 | 2 | | 碳素矶竿 | 30 | 38 | 22 | 8 | 2 | | 碳素路亚竿 | 40 | 32 | 18 | 8 | 2 | ### Lv.3 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 高碳素手竿 | 13 | 25 | 32 | 20 | 10 | | 高碳素路亚竿 | 10 | 23 | 33 | 22 | 12 | | 高碳素远投竿 | 15 | 25 | 31 | 19 | 10 | 同级三把分布不同,但期望接近。 ### 鱼竿特殊物品概率 特殊物品概率不随鱼竿等级上升。 所有鱼竿统一: ```text specialRate = 3.0% ``` | 鱼竿 | 等级 | specialRate | |---|---|---:| | 竹制手竿 | Lv.1 | 3.0% | | 玻璃钢手竿 | Lv.1 | 3.0% | | 玻璃钢海竿 | Lv.1 | 3.0% | | 碳素手竿 | Lv.2 | 3.0% | | 碳素矶竿 | Lv.2 | 3.0% | | 碳素路亚竿 | Lv.2 | 3.0% | | 高碳素手竿 | Lv.3 | 3.0% | | 高碳素路亚竿 | Lv.3 | 3.0% | | 高碳素远投竿 | Lv.3 | 3.0% | | 太公竿 | Legendary | 3.0% | | 子陵竿 | Legendary | 3.0% | | 沃尔顿竿 | Legendary | 3.0% | | 格雷竿 | Legendary | 3.0% | | 海明威竿 | Legendary | 3.0% | 按当前鱼价计算,单次钓鱼鱼获期望约为(不含特殊物品): | 等级 | 单次期望 | |---|---:| | Lv.1 | 23.6–26.1 | | Lv.2 | 47.3–52.4 | | Lv.3 | 95.2–106.5 | | Legendary | 143.2–172.5 | ## 传奇鱼竿 | 名称 | 致敬人物 | 概率组 | 特殊效果 | |---|---|---|---| | 太公竿 | 姜太公 | 3 / 14 / 30 / 32 / 21 | 每日第一次钓鱼不消耗鱼饵,并随机获得一种传奇鱼饵效果 | | 子陵竿 | 严子陵 | 2 / 12 / 30 / 34 / 22 | 全天鱼获重量 +15% | | 沃尔顿竿 | 艾萨克·沃尔顿 | 2 / 13 / 31 / 33 / 21 | 每日第一次钓鱼的那条鱼重量翻倍 | | 格雷竿 | 赞恩·格雷 | 1 / 10 / 28 / 36 / 25 | 每次钓鱼保底 Lv.3+ 鱼 | | 海明威竿 | 欧内斯特·海明威 | 1 / 7 / 24 / 38 / 30 | 每 20 次钓鱼,本次保底 Lv.5 鱼 | 致敬关系: ```text 太公竿 姜太公钓鱼,愿者上钩 子陵竿 严子陵富春江垂钓 沃尔顿竿 《钓客清话》作者 格雷竿 大物钓手 海明威竿 《老人与海》 ``` ## 鱼竿出售价格 | 鱼竿 | 等级 | 售价 | |---|---|---:| | 竹制手竿 | Lv.1 | 3 | | 玻璃钢手竿 | Lv.1 | 4 | | 玻璃钢海竿 | Lv.1 | 3 | | 碳素手竿 | Lv.2 | 7 | | 碳素矶竿 | Lv.2 | 8 | | 碳素路亚竿 | Lv.2 | 7 | | 高碳素手竿 | Lv.3 | 15 | | 高碳素路亚竿 | Lv.3 | 18 | | 高碳素远投竿 | Lv.3 | 16 | | 太公竿 | Legendary | 100 | | 子陵竿 | Legendary | 120 | | 沃尔顿竿 | Legendary | 110 | | 格雷竿 | Legendary | 140 | | 海明威竿 | Legendary | 160 | 规则: ```text 已拥有的鱼竿可以按售价出售 装备中的鱼竿不能出售 重复鱼竿自动按售价出售 出售后从钓鱼道具库移除 ``` 卖竿期望: ```text 假设所有抽到的鱼竿都出售 每抽平均约 2.16 钓鱼币 每十连平均约 21.6 钓鱼币 十连成本 90,卖竿期望约为 24% ``` 不会形成卖竿永动机。 ## 钓鱼流程 ```text /钓鱼 抛竿 [鱼饵名] /钓鱼 收竿 ``` 规则: ```text 不写鱼饵名时,从仓库随机消耗一种鱼饵 仓库没有鱼饵时抛竿失败 太公竿每日第一次可以无饵抛竿 抛竿成功后进入等待 收竿时结算当前鱼 等待 5 分钟 ``` 收竿结算包含: ```text 3% 特殊物品 鱼竿概率组 普通鱼饵系数 传奇鱼竿/鱼饵效果 重量/单价/价值 写入鱼仓或道具库 ``` ## 鱼竿命令 ```text /钓鱼 查看鱼竿 /钓鱼 更换鱼竿 鱼竿名 ``` 查看当前装备鱼竿,返回程序化图片。 更换规则: ```text 只能换成已拥有的鱼竿 鱼竿名必须匹配 装备中的鱼竿不可重复更换 更换成功后立即生效 ``` ## 鱼竿池 ```text Lv.1 3 把 Lv.2 3 把 Lv.3 3 把 Legendary 5 把 ``` 同稀有度内平均分配。 150 抽传奇保底从五把传奇鱼竿中抽取。 --- # 六、鱼饵 鱼饵是消耗品,只在本次钓鱼生效。 玩家同一时间选择一种鱼饵。 鱼竿负责持久概率组,鱼饵负责单次修正。 ## 普通鱼饵 Lv.1–Lv.3 每级 3 种,共 9 种。 普通鱼饵只修正五档鱼权重,不修正 specialRate。 ```text raw[tier] = rodWeight[tier] * baitCoefficient[tier] total = sum(raw) probability[tier] = raw[tier] / total ``` 归一化只在鱼档内部进行,最终五档鱼概率合计 100%。 specialRate 保持鱼竿上的原值不变。 抽卡顺序: ```text 1. 先按 specialRate 判定特殊物品 2. 未触发时,再用修正后的五档鱼权重抽鱼 ``` 鱼饵只改变「未触发特殊物品时」的五档鱼条件分布: ```text P(特殊物品) = rod.specialRate P(鱼 i) = (1 - rod.specialRate) * baitAdjustedWeight[i] ``` 所以鱼饵不会改变特殊物品的总概率,整体仍然归一化到 100%。 ### Lv.1 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 面团饵 | 1.06 | 1.02 | 0.98 | 0.97 | 0.97 | | 红虫饵 | 0.98 | 1.06 | 1.02 | 0.97 | 0.97 | | 酒米饵 | 0.98 | 1.00 | 1.06 | 1.00 | 0.97 | ### Lv.2 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 虾粉饵 | 1.00 | 1.10 | 1.03 | 0.96 | 0.94 | | 玉米饵 | 0.93 | 1.04 | 1.10 | 1.00 | 0.94 | | 虫浆饵 | 0.88 | 0.98 | 1.10 | 1.08 | 0.96 | ### Lv.3 | 名称 | Lv.1 | Lv.2 | Lv.3 | Lv.4 | Lv.5 | |---|---:|---:|---:|---:|---:| | 秘制腥饵 | 0.88 | 1.00 | 1.18 | 1.10 | 0.94 | | 金虫饵 | 0.78 | 0.92 | 1.16 | 1.22 | 1.00 | | 古窖饵 | 0.70 | 0.86 | 1.08 | 1.30 | 1.08 | 同级分布不同,整体期望接近。 ## 传奇鱼饵 传奇鱼饵不修改鱼竿概率组、不提供鱼竿保底、不修改重量。 | 名称 | 致敬对象 | 单次效果 | |---|---|---| | 拉帕拉原版浮水米诺 | Rapala Original Floater,1936,芬兰 | 本次鱼获复制一份,重量和估值相同,一起进入鱼仓 | | 梅普斯旋转亮片 | Mepps Aglia,1938,法国 | 本次鱼上钩速度 +50% | | 达德维尔红白汤匙 | Dardevle,1906,美国 | 本次额外获得一个特殊物品 | | 亚当斯干蝇 | Adams Dry Fly,1922,美国 | 本次上鱼等级 +1,最高 Lv.5;使用后随机获得一个其他传奇鱼饵 | | 皇家教练羽饵 | Royal Coachman,1878,美国 | 本次鱼获价值 +50% | 太公竿随机获得其中一种传奇鱼饵效果。 亚当斯干蝇的等级 +1 在鱼竿概率和保底结算后应用。 --- # 七、抽卡券 两种钓鱼模块消耗品: ```text 钓鱼单抽券 钓鱼十连券 ``` 规则: ```text 不是货币 不能出售 不能兑换钓鱼币 不进入鱼仓 进入钓鱼道具库 使用后数量减一 ``` 使用优先级: ```text /钓鱼 抽卡 1. 1 张单抽券 2. 10 钓鱼币 /钓鱼 十连 1. 1 张十连券 2. 单抽券补次数 3. 剩余次数用钓鱼币补齐 ``` 十连券不能用于单抽。 单抽券可以用于十连。 资源不足以覆盖整次抽卡时,直接失败,不扣资源。 用券抽卡同样累计保底。 获取方式: ```text 钓鱼特殊物品掉落 其他活动/奖励待定 ``` --- # 八、抽卡池 鱼饵和鱼竿混池。 ## 消耗 ```text 单抽 10 钓鱼币 十连 90 钓鱼币 ``` 有对应抽卡券时优先用券。 ## 基础概率 ```text 鱼饵 Lv.1 37.5% 鱼饵 Lv.2 30.0% 鱼饵 Lv.3 20.0% 传奇鱼饵 2.5% 鱼竿 Lv.1 5.0% 鱼竿 Lv.2 2.857% 鱼竿 Lv.3 1.786% 传奇鱼竿 0.357% ``` 合计 100%。 ```text 鱼竿整体 10% 鱼饵整体 90% ``` ## 当期 UP ```text 传奇鱼竿 UP:太公竿 传奇鱼饵 UP:拉帕拉原版浮水米诺 ``` 传奇鱼竿内部: ```text 太公竿 50% 其余四把传奇鱼竿均分另外 50% ``` 传奇鱼饵内部: ```text 拉帕拉原版浮水米诺 50% 其余四种传奇鱼饵均分另外 50% ``` 150 抽传奇鱼竿保底和 60 抽传奇鱼饵保底也使用该 UP 权重。 UP 物品的单个基础出率: ```text 太公竿 0.1785% 拉帕拉原版浮水米诺 1.25% ``` 其他传奇鱼竿单个出率: ```text 0.0446% ``` 其他传奇鱼饵单个出率: ```text 0.3125% ``` 同稀有度非传奇物品在稀有度内部平均分配。 ## 保底 每个玩家在每个群独立记录保底。 ```text 每 10 抽 保底一个 Lv.1 或 Lv.2 鱼竿 每 50 抽 保底一个 Lv.3 鱼竿 每 60 抽 保底一个传奇鱼饵 每 150 抽 保底一个传奇鱼竿 ``` 计数: ```text rodPity lv3RodPity legendaryBaitPity legendaryRodPity ``` 四项每次抽卡都增加,互相独立。 ## 优先级 同一抽只出一个物品。 ```text 传奇鱼竿 > Lv.3 鱼竿 > 传奇鱼饵 > Lv.1/Lv.2 鱼竿 ``` 未触发的其他保底保留,可以下一抽继续触发。 ## 重置 保底触发时只重置触发的那一类。 自然抽中按物品重置对应保底: ```text 任意鱼竿 重置 rodPity Lv.3 或传奇鱼竿 重置 lv3RodPity 传奇鱼竿 重置 legendaryRodPity 传奇鱼饵 重置 legendaryBaitPity ``` 10 抽保底只从 Lv.1/Lv.2 鱼竿中抽取,按这两级基础权重重新归一化。 ## 玩家级串行 同一名玩家的抽卡和十连必须串行。 ```text 抽卡开始 → 占用该玩家的抽卡锁 → 扣款/扣券、抽卡、写保底、生成图片 → 释放锁 ``` 锁持有到图片生成完成。 锁被占用时,再次抽卡直接回复: ```text 正在抽卡,请稍等待。 ``` 不进入队列,不扣资源。 ## 结果图 `/钓鱼 抽卡` 和 `/钓鱼 十连` 优先返回程序化生成的 1080×1440 PNG 结果图。 ```text SVG 结果卡 → sips 转 PNG → Koishi 发送图片 ``` 图片渲染失败时回退文字结果。 ## 十连 十连是十次独立抽卡,按顺序逐次计算保底。 ## 重复鱼竿 已经拥有的鱼竿再次抽到时,按该鱼竿售价自动出售为钓鱼币。 回收写入钱包流水: ```text reason: duplicate_rod_sale ``` 鱼饵重复时正常堆叠。 扣款/扣券、发奖、重复回收、保底更新必须在同一事务中完成。 ## 概率与保底展示 `/钓鱼 卡池` 展示基础概率和当前保底进度。 示例: ```text 钓鱼卡池 消耗 单抽 10 钓鱼币 十连 90 钓鱼币 基础概率 鱼饵 Lv.1 37.5% 鱼饵 Lv.2 30.0% 鱼饵 Lv.3 20.0% 传奇鱼饵 2.5% 鱼竿 Lv.1 5.0% 鱼竿 Lv.2 2.857% 鱼竿 Lv.3 1.786% 传奇鱼竿 0.357% 保底进度 Lv.1/Lv.2 鱼竿 3/10 Lv.3 鱼竿 12/50 传奇鱼饵 20/60 传奇鱼竿 45/150 ``` 每次抽卡结果末尾附带当前保底进度。 自然抽中重置后展示值同步更新。 ## 抽卡记录 `/钓鱼 抽卡记录` 展示最近 50 抽。 字段: ```text at drawNo source coin / singleTicket / tenTicket itemId itemName kind fishRod / bait / ticket / special rarity pityTriggered duplicateSold ``` 记录位置: ```text fishing.gacha.history ``` 规则: ```text 每个玩家每个群最多保留 50 条 单抽追加 1 条 十连追加 10 条 用券抽卡同样记录 不写入账号背包 ``` --- # 九、存放与归属 ## 账号背包 属于共享账号模块,只展示账号级资产: ```text 金币 账号级物品 ``` 不展示鱼仓、钓鱼道具库、钓鱼币或钓鱼状态。 ## 鱼仓 属于 fishing 插件,只存放鱼。 每条鱼独立保存: ```text id 纯数字编号 fishId name tier weightKg basePricePerKg pricePerKg value caughtAt ``` 编号按玩家、按群递增。 鱼进入鱼仓后不会自动出售。 估值在钓到时结算,后续换鱼竿不改变已入仓鱼的价值。 卖鱼: ```text /钓鱼 鱼仓 /钓鱼 卖鱼 编号 ``` 规则: ```text 编号必须是纯数字 只能出售鱼仓中存在的编号 出售后移除该条鱼,并增加对应 value 的钓鱼币 ``` ## 钓鱼道具库 属于 fishing 插件,存放鱼竿、鱼饵和抽卡券: ```text rods: ownedRodIds equippedRodId baits: counts selectedBaitId tickets: singleTickets tenTickets ``` 规则: ```text 鱼竿按 ID 唯一持有,装备一根 鱼饵按数量堆叠,选择一种 抽卡券按数量堆叠 重复鱼竿抽卡时自动出售 鱼饵和抽卡券使用后数量减一 ``` 展示为一张纵向长图,高度随鱼竿/鱼饵数量增长。 ## 特殊物品 特殊物品不进入鱼仓。 ```text 抽卡券 进入钓鱼道具库 杂物 / 奇物 存放位置待定 ``` ## 插件边界 ```text 共享账号模块 账号背包、金币 fishing 插件 鱼仓、钓鱼道具库、钓鱼币、抽卡/保底、钓鱼状态 Koishi 插件 命令入口,不持久化游戏资产 ``` 每个小游戏在 DSH 和 Koishi 各有一个插件。 --- # 十、特殊物品 特殊物品独立于五个鱼类等级。 ```text category: special tier: null ``` 按价值层级分两类: ```text 低价值杂物 固定价格 高价值特殊物品 ├─ 高价值奇物 固定价格 └─ 抽卡券 不计价、不可出售 ``` 特殊物品内部权重: ```text 低价值杂物 70% 高价值特殊物品 30% ``` 组内均分: ```text 低价值 6 种,每种 11.6667% 高价值 7 种(5 奇物 + 2 抽卡券),每种 4.2857% ``` 特殊物品整体概率为单次钓鱼 3%,绝对概率: ```text 低价值杂物:每种 0.35% 高价值物品:每种 0.1286% ``` ## 低价值杂物 | 物品 | 固定价格 | |---|---:| | 水草团 | 1 | | 泡烂的漫画原稿 | 2 | | 生锈鱼钩 | 3 | | 便利店小票 | 5 | | 破拖鞋 | 8 | | 空易拉罐 | 10 | ## 高价值特殊物品 ### 高价值奇物 | 物品 | 固定价格 | |---|---:| | 旧城铜钱 | 100 | | 遗失的银戒指 | 250 | | 河底旧怀表 | 500 | | 古董招牌残片 | 1000 | | 密封保险箱 | 2000 | ### 抽卡券 钓鱼时可能钓到: ```text 钓鱼单抽券 钓鱼十连券 ``` 数据结构: ```json { "kind": "ticket", "itemId": "single_ticket", "name": "钓鱼单抽券", "ticketType": "single", "valueTier": "high", "count": 1 } ``` 规则: ```text 不是鱼 不参与等级 属于高价值特殊物品 没有固定价格 不能出售 进入钓鱼道具库 ``` 杂物/奇物按固定价格卖出获得钓鱼币。 特殊物品池内权重已定;杂物/奇物存放位置待定。 --- # 十一、玩家归属 钓鱼数据按群隔离。 ```text 同一个 QQ 在不同群拥有独立的鱼仓、钓鱼道具库、钓鱼币和保底进度。 ``` 金币归共享账号模块。 --- # 十二、资产 已生成 20 张透明底鱼 sprite、14 张鱼竿图标、14 张鱼饵图标、13 张道具图标、18 张边框和 1 张钓鱼币图标。 ```text assets/fish/fish_t{tier}_{index}_{id}.png ``` 示例: ```text fish_t1_01_crucian.png fish_t3_04_koi.png fish_t5_04_glazed_dragonfish.png ``` 鱼竿和鱼饵: ```text rod_t{tier}_{index}_{id}.png bait_t{tier}_{index}_{id}.png ``` 普通鱼竿/鱼饵使用 `t1`–`t3`,传奇统一使用 `t4`。 边框: ```text frame_fish_t{tier}.png frame_gear_t{tier}.png frame_rod_t4_{index}_{id}.png frame_bait_t4_{index}_{id}.png ``` - 鱼 5 个等级各 1 张 - 鱼竿/鱼饵 Lv.1–Lv.3 共用 3 张等级边框 - 传奇鱼竿 5 张专属边框 - 传奇鱼饵 5 张专属边框 货币: ```text coin_t0_{index}_{id}.png ``` 无等级道具(含特殊物品): ```text item_t0_{index}_{id}.png ``` `t0` 表示不分等级。 规格: ```text 128 × 128 PNG RGBA 透明背景 ``` --- # 十三、待定 ```text 默认鱼稀有度权重 特殊物品池内权重 杂物与奇物存放位置 钓鱼基础冷却 鱼饵获取方式与购买价格 /钓鱼 卖鱼 /钓鱼 卖鱼竿 ```