ythere-y/corner-fishing-idle

0

stars

231

commits

GDScript

primary language

Aug 25, 2026

updated

README

背包钓鱼手记 🎣

贴在桌面角落的一本「背包客钓鱼手记」——TA 在外面环游世界,边走边钓;你在这边,边挂机边看 TA 的旅程。Godot 4.6 · 2D。

世界观:一位刚离职/间隔年的年轻背包客(Jim 或 Ganie,由你选),背包一甩说走就走, 一路从家门口的河湾钓到深海、钓到没信号的溶洞。桌角这方小水塘,就是 TA 寄回来的「远程连线」。 玩法内核不变(自动挂机 / 收集 / 离线奖励),仅重新包装成「旅程手记」外壳。详见 docs/lore_backpacker.md

首次开局:开场故事 → 选角色

  • 新玩家启动后先看一段轻松语气的开场故事动画(逐句翻页,可跳过),讲背包客为什么出发。
  • 讲完后选这次出发的人:男生 Jim(路痴但运气好)或女生 Ganie(认路但不认输)。
  • 选完直接进入原有的「新手引导」提示页,正式开始挂机——老存档不受影响,不会被拉回来重新选。
  • 实现见 character_data.gd(新增角色数据)+ main.gd/save_system.gd/ui_panels.gd 的标注改动。

形态

  • 默认运行态是普通无边框透明覆盖窗:窗口尺寸铺满当前屏幕可用区,但不触发 macOS 系统全屏 Space;挂机画面以 80% 紧凑基准固定在右下角,背包 / 图鉴 / 任务 / 设置等复杂面板在主窗口中央以 560×520 modal 打开,不再挤占挂机区域或铺满高 DPI 屏幕;带框 modal 使用不透底背景,避免主场景穿进内容区。
  • 置顶 + 逐像素透明窗口(GL Compatibility 渲染器,无灰底)。
  • 可拖动 / 缩放:在场景空白处按住左键并移动超过 6 个物理像素后才起拖(普通点击/手抖不会挪窗),拖边角缩放;默认右下角,位置和大小存档。菜单面板可按住标题栏拖动,并用标题栏的 − / + 同步缩放全部界面。
  • 空白透明区鼠标穿透到桌面;复杂菜单在主窗口中央展开。
  • Windows 下交互/裁剪区统一由逻辑画布转换为原生客户区像素;首次启动、最小化恢复、DPI、分辨率和任务栏可用区变化后会自动重建,避免窗口进程仍在但画面被 Region 裁空。
  • 边缘羽化 shader,融进任意壁纸。

玩法

  • 自动挂机钓鱼:抛竿 → 等待 → 浮标咬钩下沉 + 涟漪 → 自动上鱼入鱼篓 → 手动卖出变现,循环往复。
  • 10 个钓点=背包客走过的 10 个旅程站点(第1站中国·家门口河湾 → 第10站斯洛文尼亚·溶洞尽头,路线:中国×4 → 菲律宾 → 马来西亚 → 新西兰 → 澳大利亚 → 冰岛 → 斯洛文尼亚),各有专属鱼池与随机事件,按累计渔获解锁;切换钓点改变鱼池、订单建议、事件与背景。地理跨度不再是 bug,是「TA 到底跑了多远」的正当理由。
  • 219 种鱼 / 6 档品阶(普通→神话),每条带生态标签(河/湖/溪/海/深/冷/夜/保护)决定出没钓点;权重抽取;体重影响价值,标「大·/巨物·」体型。缺专属图标时回退按品阶的通用鱼图标,不崩。
  • 桌面宠物 🐱:渔夫旁的小馋猫,上鱼时偶尔扒拉;2% 概率叼走鱼篓里最廉价的一条杂鱼(卖价 ≤30,珍藏/订单/锁定绝不动)当趣味事件,计入「猫税」统计与成就。
  • 活水族箱 🐠:「鱼缸」页签——把心爱渔获放进缸里(最多 8 条),缸内鱼沿正弦路径游动、按方向翻转,点鱼看它的纪录(最大体重/累计/首捕日/变体),可捞回鱼篓;鎏金/七彩变体带脉动光晕。每条 +观赏卖价加成(封顶 +5%)。最契合桌面摆件的健康非数值长线。
  • 专注奖励:窗口失焦且无操作时累计连续「专注」,满 25 / 50 分钟下一竿强制升级渔获(保底极品★★,再保底鎏金变体)。回焦有 60 秒宽限窗(快速卖鱼一趟不折进度),窗外操作折算保留 80%;每日封顶按实际兑现计(25 / 50 分钟档各占一次;仅满篓停竿等两档都攒着时合并为一次兑现),50 分钟档兑现后本段重新起算——离开越久回来越有惊喜。
  • 随机事件(数据驱动 7 种):鱼汛 / 晨雾 / 寒潮 / 顺水鱼群 / 涨潮 / 漂流木箱 / 保护鱼放流,低干扰,按钓点触发,叠加咬钩/价值/运气修正。
  • 昼夜时段(按真实时钟):黎明 / 白昼 / 黄昏 / 夜晚自然流转;金色时段(晨昏)咬钩更勤、渔获略增值,夜晚静谧但偶有大物;场景随时段轻染色,HUD 显示。零存档。
  • 星级品质:无 / 上品★ / 极品★★ / 完美★★★,价值 ×1/×1.8/×4/×8,由鱼饵决定概率。
  • 稀有变体:每条鱼独立 roll 变体(普通/斑斓/鎏金/七彩,2.5%/0.4%/0.08%——约 1/40、1/250、1/1250 竿的三层惊喜节拍),价值 ×1/2/5/12,与星级正交。图鉴按种记录已见变体——219×3=657 格收集轴,超长线护城河(Chillquarium 式)。诱饵/窝料成长线按级抬高变体出现率(vbias 分档:越稀有的花色提升越多,七彩吃满偏置),是这条收集轴的专属杠杆。彩鳞(v15,分三种):重复钓到已点亮的变体折 1 枚同档鳞(斑斓鳞/鎏金鳞/七彩鳞),在鱼种详情卡的变体墙用同档鳞定向点亮同档缺格(按品阶 3/4/5 枚一格;七彩格只认重复七彩,防低档金流刷穿最稀缺格)——把最后几格从纯赌命变成可规划目标。
  • 鱼篓背包:起始 20 格、阶梯扩容至 100 格(14 级;55 格后的 6 档 25 万→950 万,是毕业期的大额金币去向,也是签约后更大的珍品缓冲区);满篓暂停上钩(满篓兜底:自动折价兑现,留贵兑贱,珍藏不动);排序(最新/价值/品阶/重量)+ 订单鱼筛选按品阶批量卖出(「卖掉 XX 及以下」一键清篓,订单交付后整篓释放可卖);收藏锁(锁定不被卖出/交付);鱼卡外框按品阶着色(变体身份由 ◆ 前缀 + 名字品阶色表达,不再因变种变蓝边)。
  • 成长:多条线各管一轴——鱼竿(稀有度:缩短等待 + 提升高阶概率 + 鱼价加成,成本 400×1.7^级);属性装备链(鱼线→绕线轮→浮漂→探鱼器→钓鱼笔记→钓鱼手套,逐步解锁,顺序驱动价格:后一件解锁价就是该装备 Lv.1 购买价,约等于前一件 20-25 级附近的单次购买价,Lv.2 起按自身指数曲线递增;+1/+10/+100 真实扣金币,分别提供技巧/稳定/速度/反应/感知/生态/追踪/力量等角色属性;角色属性作为二级修正映射到钓鱼结果:速度/反应→一竿周期,生态/感知→品阶权重,技巧/稳定→星级,感知/生态→变体,反应/技巧→双钩,力量/稳定→体型尾部);鱼饵(星级:蚯蚓→红虫→活虾→秘制饵);鱼钩(产量:双钩,一定几率一次再上一条);诱饵/窝料(稀有变体:无窝料→碎米窝→酒米窝→麝香窝料,按级抬高斑斓/鎏金/七彩出现率)。金币/成本内部采用 double 浮点大数(极端值 1e300 封顶),显示采用 idle 游戏常见 K/M/B/T/Qa/Qi... 短单位(3 位有效数字)。升级体感:装备页数字明牌(每行具体概率 + 鱼竿"当前→下一级");购买任意升级后下一竿试竿保底(鱼竿=高运气一竿 / 鱼饵=保底新★级 / 鱼钩=必双钩 / 窝料=保底斑斓),花钱立刻亲眼见效。
  • 每日订单:每天 1 单,4 类(指定鱼种 / 指定品阶 / 大物≥Wkg / 完美品质),交付未锁渔获按鱼价 ×2.5;需求量随品阶分层(大众鱼 8~12 条起,恒按鱼篓容量封顶),鎏金/七彩/★★★ 珍稀不自动交单(完美单豁免★★★);HUD 常驻进度,跨日刷新。周目标 / 每周巨物赛奖励锚定昨日卖鱼收入的 10% / 8%(保底原线性公式),巨物赛累计夺金跨周沉淀(连着两档成就)。
  • 流动鱼贩:随机限时收购时段,卖价 ×1.5(HUD 金色提示)。
  • 鱼贩合约(自动贩卖,v14):60,000 金一次性签约,在线满篓时按市价自动带走一条最便宜的杂鱼(普通花色 · ≤★ · 稀有以下 · 非巨物;收藏与未交付订单目标不碰,想留的杂鱼上 🔒 即可);篓里全是珍品时照常咬钩、新渔获走满篓折价兜底——签约后挂机不停产。合约本身永不碰珍品;离线结算不走合约(仍为折价兜底,按「留贵兑贱」处理,珍稀建议上收藏锁)。买断后可随时暂停。
  • 图鉴:219 种鱼,每种记录累计数 + 最大体重 + 首捕日 + 变体收集 + 长期徽章;钓点页显示各钓点鱼种收集进度。
  • 成就:41 项(渔获/财富/收集/品阶/品相/装备/陈列/变体/猫税/长线断点/周赛线),多数达成发金币,超长线渔获档为纯称号(陈列物奖励管线待做,见 BACKLOG)。
  • 离线收益:回屏弹「离线小结」面板(时长 / 渔获数 / 最值钱一条 / 珍稀清单——含溢出段已兑金的);上限 12 小时(图鉴 ≥145 种扩 24 小时)、50% 效率;按昼夜时段分段结算(夜行限定鱼在夜段真的会来,每种每次至多 2 条),先填满背包空格,溢出部分按 0.5 折价自动兑成金币(留贵兑贱,收藏/订单鱼不动)。
  • 音频:UI / 抛竿 / 入水 / 咬钩 / 金币 / 升级 音效 + 上鱼四档阶梯(普通 → ★★ → 稀有·斑斓 → 鎏金七彩·传说;越稀有越长、越有旋律,而不是越吵)+ 咬钩→上鱼 0.9 秒张力循环 + 里程碑音(图鉴首捕 / 破纪录 / 成就 / 专注奖励 / 巨物赛夺金 / 钓点解锁 / 随机事件 / 猫偷鱼)+ 分层环境音床(多条循环音按「钓点生态 × 昼夜时段」配方淡入淡出;缺素材优雅退化为单层水声)+ 背景音乐(昼夜两曲 4 秒交叉淡入淡出,可独立关闭)。全部素材 CC0 / 公共领域,无需署名;亮度(频谱质心)与响度有硬预算、超标即构建失败,三个生成脚本幂等。详见 docs/audio_asset_rules.md。设置可调静音 / 主音量 / 音效 / 环境音 / 音乐。

界面 / UI

  • 入口收敛:主界面右下角不放独立按钮——点 HUD 金币栏即在主窗口中央打开多功能面板「垂钓手册」;钓点签 / 订单签深链到对应页。
  • 紧凑尺寸:100% 档以原布局的 80% 为基准;复杂菜单统一收至 560×520,继承同一界面缩放倍率并自动夹进屏幕可用区,内部长内容继续滚动。
  • 9 页签:背包 · 图鉴 · 订单 · 成就 · 统计 · 钓点 · 鱼缸 · 装备 · 设置(升级与设置都并入页签)。
  • 两种表面:暗玻璃浮动面板 + 暖纸(米黄)卡片;单一暖金强调色,克制冷冬调。
  • 品阶即信号:鱼名颜色读品阶(普通灰→神话红),变体加 ◆ 宝石 + 图标辉光。
  • 衬线展示声音:面板标题、钓点名用 Noto Serif SCassets/fonts/)呼应水彩卷轴气质;统计页顶部🏆「个人最佳」卡用 30px 衬线等宽英雄数字凸显史上最大体重;面板柔和投影。
  • UI 规范对齐内部设计系统(颜色/字体/间距/圆角/两表面/品阶色/慢而无弹跳的动效,详见设计稿,未随游戏仓库发布)。
  • 旅行手账风格方向(新):整体视觉走「手记装订」框架 + 每站独立地域色,详见 docs/art_direction.md

Windows + macOS 试玩包

试玩者可按所用系统取得对应的版本化 ZIP,完整解压后再启动,不需要安装 Godot:

  • Windows:解压 Backpack-and-Bait-v0.1.0-windows-x86_64.zip 后双击 BackpackAndBait.exe。必须保留同目录的 PCK 文件;不要只移动 .exe。内测包尚未 代码签名,SmartScreen 可能显示“未知发布者”;请通过同目录 .sha256 核对来源,不要 关闭 Defender,也不要授予管理员权限。
  • macOS:解压 Backpack-and-Bait-v0.1.0-macos-universal.zip 后,在 Finder 中打开 BackpackAndBait.app。这是同时包含 Apple Silicon 与 Intel 架构的 Universal 2 包,使用 Godot built-in ad-hoc 签名,未使用 Developer ID 且未公证。若 Gatekeeper 阻止首次启动, 请在 Finder 对 App 右键选择“打开”,或到“隐私与安全性”点击“仍要打开”;不要关闭系统 安全功能。

详细操作见 ZIP 内的 PLAYTEST.txt(内容为简体中文)。维护者安装 Godot 4.6 官方导出模板后, 可在干净工作树中分别一键重建:

GODOT_BIN="/path/to/Godot-4.6" sh tools/build_release.sh
GODOT_BIN="/Applications/Godot.app/Contents/MacOS/Godot" sh tools/build_macos_release.sh

产物写入已忽略的 dist/。GitHub Actions 会在 PR、手动运行和每次 main 更新时生成 windows-x86_64macos-universal 两个 artifacts;普通 main 更新不会创建 GitHub Release。只有推送 v<project.godot 版本> 标签时才会创建双平台 Draft Release。Windows 10/11 与 macOS Apple Silicon/Intel 的实机放行清单都尚未完成,因此当前并未公开发布。

运行

# 用 Godot 4.6 打开本目录,或命令行:
godot --path .

# 新克隆首次跑工具前先建缓存:
godot --headless --import

开发工具

# 无头回归测试(鱼数据 / 钓点·事件 / 鱼池隔离 / 分布 / 体重价格 / 背包卖鱼 / 排序 /
#   鱼竿·鱼饵·鱼钩·诱饵 / 成就 / 鱼贩 / 随机事件 / 每日订单 / 多钓点切换 / 满篓兜底 /
#   活水族箱 / 专注奖励 / 存档往返与旧档迁移 / 离线 / 动态层 / 窗口 Region 坐标与防误拖 / 测试模式)
godot --headless -s tools/validate_game.gd

# 引擎内视口截图(带 alpha,验证透明 + 各面板;输出 docs/img/)
godot --path . -s tools/dev_screenshot.gd

# 数值平衡探针(产出曲线 / 升级回本,只读)
godot --headless -s tools/balance_probe.gd

游戏内「测试模式」(开发期,逻辑见 test_mode.gd

设置页顶部「测试模式(开发用)」开关切换 游玩 / 测试 两态。测试模式下设置页展开「🧪 测试台」: 左侧开发入口可直接打开属性面板、功能管理与人情模块;属性面板可编辑金币(翻倍/减半)、装备来源层与宠物状态;测试台可强制昼夜时段、钓鱼提速(×3/×10/即时)、改金币、+1/拉满装备与背包、绕线轮升降/设级、给指定鱼(鱼种×星级×变体)、 样本包/清空鱼篓、解锁全部钓点/点亮全图鉴、召唤鱼贩/重置订单/充能专注、立即触发随机事件;人情模块可召唤指定 NPC 的闲谈/委托/Buff/终章事件、打开人情簿或到访面板、mock 偏好鱼与终章鱼、调整好感等级、重置或完成终章。

河湾五位 NPC 已使用专属水彩人物图:右侧到访栏从原图单独裁切头部并显示为主题色圆形头像,人情簿显示动作缩略图,到访面板使用紧凑对话头像;资源缺失时安全回退到带姓名首字的主题色占位,底部人情菜单缺少专属 icon 时显示「人」字占位,不留空白入口。到访页采用聊天记录式剧情与当前抉择,NPC 剧情、闲谈和结算均以第一人称发言,玩家按钮使用简短的真实回复;NPC 与玩家消息分别占有独立的左/右整行气泡,长文自动撑高本行,选择后反馈从下一行开始。一次到访的抉择、选鱼、玩家回复和反馈由同一份到访期临时会话承接,关闭或切换到访即清理,避免跨人物、跨到访串线;好感、近况、终章和偏好资料集中在人情簿,偏好按好感 0–1/2–3/4–6 三阶段显示未知/模糊线索/完整规则。

仅本会话生效、不写档:进入即冻结磁盘存档,退出(切回游玩模式)从磁盘重载正式档、丢弃全部测试改动; 默认重启回到正式档;如需启动即进入测试,可在 main.tscnMain 节点 Inspector 勾选 test_mode。正式存档永不被测试数据污染,HUD 右上常驻「🧪测试」角标提示当前在测试模式。

开启新存档(开发期)

设置页底部「开启新存档」:删磁盘存档(主档/.bak/.tmp)+ 全状态复位默认开局(复用 SaveSystem.apply({}) 迁移默认)+ 落盘干净档 + 重看引导(新:重新走一遍「开场故事→选角色」)。两点确认防误触(首点变红警示,3.5s 内再点执行)。开发阶段存档无价值,可随时清空重开。

结构

文件职责
main.gdclass_name CornerFishing 主控:透明窗/拖动、钓鱼状态机、经济、背包/成就/图鉴、HUD、卖鱼/升级、宠物、专注奖励、存档/离线;面板/事件/钓点/订单均薄壳委托下列模块
ui_panels.gdclass_name UIPanels:所有面板/页签/卡片/样式构建(静态 g 模式);含衬线标题、🏆英雄数字,新增开场故事(story)/选角色(character)面板
character_data.gd【新增】 class_name CharacterData:背包客角色数据(Jim / Ganie,纯人设文案,不影响数值)
events.gdclass_name Events:随机事件管理器(EventData 驱动)
spots.gdclass_name Spots:钓点鱼池/运气增值/解锁/切换/订单候选并集
orders.gdclass_name Orders:每日订单/周目标/今日统计
decor.gdclass_name Decor:陈列/活水族箱(缸位 8、观赏卖价加成)
aquarium.gdclass_name Aquarium:鱼缸视图——缸内鱼游动/翻转/点鱼看纪录/捞回/变体光晕
scene_painter.gd场景绘制:底图 + 动态层(水光/雾/雪/涟漪/灯光/渔夫/宠物),按钓点切底图,缺资源回退程序化
fish_data.gdclass_name FishData:219 鱼种、品阶、生态标签、权重、体重定价、星级、鱼饵、鱼钩、诱饵(变体偏置)、按钓点鱼池抽取
fish_lore.gdclass_name FishLore:219 鱼种详情卡文案(desc/fact/wiki),desc 已改写为背包客手记语气
spot_data.gdclass_name SpotData:钓点(鱼池 / 解锁条件 / 事件池 / 系数 / 背景),name/desc 已按旅程站点重新叙事
event_data.gdclass_name EventData:随机事件(鱼汛/晨雾/寒潮/顺水/涨潮/漂流木箱/保护鱼放流)
weather.gdclass_name Weather:昼夜时段(黎明/白昼/黄昏/夜晚,按真实时钟,修正+染色)
achievements.gdclass_name AchievementData:成就配置(41 项)
audio_manager.gdAutoload Audio:音效 / 分层环境床 / BGM 昼夜曲 / 张力循环的加载与播放、音量·静音·音乐开关、设置持久化
feather_mask.gdshader屏幕坐标椭圆羽化遮罩,让场景向左上渐隐融桌面
assets/fonts/Noto Serif SC(衬线展示字体,标题/英雄数字用)
assets/art/**美术资源(不在工程逻辑里修改,只加载播放)
tools/无头测试 / 引擎内截图 / 平衡探针
docs/调研、路线图、美术需求、白皮书 project_overview.html,新增 lore_backpacker.md(世界观+开场故事脚本+项目名候选)

存档

user://corner_fishing_save.json(当前 v24:v15 新增彩鳞/昨日收入锚/巨物赛累计夺金字段;v16 帧率默认 30→120 一次性迁移;v17 新增绕线轮等级;v18 新增鱼线/浮漂/探鱼器/钓鱼笔记/钓鱼手套等级;v19 图鉴补存破纪录日期 wd;v20 新增功能渐进开放状态与装备消费累计;v21 新增河湾人情簿五位 NPC 的独立好感、到访队列、当前人情 Buff 与终章完成状态;v22 将人情到访改为每位 NPC 独立排程;v23 新增五条一次性终章的永久标记;v24 新增初识到旧交的逐级人物事件及每人独立已读进度,旧档从最低未读等级依次补看)。每 10s 自动存 + 退出存 + 拖动后存 + 切钓点/陈列后存。 历次结构升级均向后兼容迁移(图鉴纪录轴、背包多元组、徽章、每日订单、多钓点、陈列、稀有变体、 活水族箱 / 首捕日 / 专注奖励 v11、诱饵窝料 v12、背包客角色 v13、鱼贩合约 v14、彩鳞与收入锚 v15、帧率默认迁移 v16、绕线轮速度装备 v17、属性装备链 v18、图鉴破纪录日期 v19、功能渐进开放 v20、河湾人情簿与到访事件 v21、NPC 独立到访排程 v22、一次性终章永久奖励 v23、好感逐级事件池 v24),回归测试覆盖迁移。

路线图(未实现)

更多钓点(数据驱动,加一张干净底图 + spot_data 配置即可,渔夫/灯笼自动叠加)、稀有大鱼限时事件、 陈列架桌面小景渲染、自动卖鱼(商业化方向,需拍板)、打包 itch.io / Steam。 模块骨架(UIPanels/Events/Spots/Orders/Decor/Aquarium + SpotData/EventData)已就位,便于并行扩展。

Contributors

Martinqi826

85 commits

ythere-y

77 commits

martinqi404

64 commits

ythere-y/corner-fishing-idle

0

stars

231

commits

GDScript

primary language

Aug 25, 2026

updated

README

背包钓鱼手记 🎣

贴在桌面角落的一本「背包客钓鱼手记」——TA 在外面环游世界,边走边钓;你在这边,边挂机边看 TA 的旅程。Godot 4.6 · 2D。

世界观:一位刚离职/间隔年的年轻背包客(Jim 或 Ganie,由你选),背包一甩说走就走, 一路从家门口的河湾钓到深海、钓到没信号的溶洞。桌角这方小水塘,就是 TA 寄回来的「远程连线」。 玩法内核不变(自动挂机 / 收集 / 离线奖励),仅重新包装成「旅程手记」外壳。详见 docs/lore_backpacker.md

首次开局:开场故事 → 选角色

  • 新玩家启动后先看一段轻松语气的开场故事动画(逐句翻页,可跳过),讲背包客为什么出发。
  • 讲完后选这次出发的人:男生 Jim(路痴但运气好)或女生 Ganie(认路但不认输)。
  • 选完直接进入原有的「新手引导」提示页,正式开始挂机——老存档不受影响,不会被拉回来重新选。
  • 实现见 character_data.gd(新增角色数据)+ main.gd/save_system.gd/ui_panels.gd 的标注改动。

形态

  • 默认运行态是普通无边框透明覆盖窗:窗口尺寸铺满当前屏幕可用区,但不触发 macOS 系统全屏 Space;挂机画面以 80% 紧凑基准固定在右下角,背包 / 图鉴 / 任务 / 设置等复杂面板在主窗口中央以 560×520 modal 打开,不再挤占挂机区域或铺满高 DPI 屏幕;带框 modal 使用不透底背景,避免主场景穿进内容区。
  • 置顶 + 逐像素透明窗口(GL Compatibility 渲染器,无灰底)。
  • 可拖动 / 缩放:在场景空白处按住左键并移动超过 6 个物理像素后才起拖(普通点击/手抖不会挪窗),拖边角缩放;默认右下角,位置和大小存档。菜单面板可按住标题栏拖动,并用标题栏的 − / + 同步缩放全部界面。
  • 空白透明区鼠标穿透到桌面;复杂菜单在主窗口中央展开。
  • Windows 下交互/裁剪区统一由逻辑画布转换为原生客户区像素;首次启动、最小化恢复、DPI、分辨率和任务栏可用区变化后会自动重建,避免窗口进程仍在但画面被 Region 裁空。
  • 边缘羽化 shader,融进任意壁纸。

玩法

  • 自动挂机钓鱼:抛竿 → 等待 → 浮标咬钩下沉 + 涟漪 → 自动上鱼入鱼篓 → 手动卖出变现,循环往复。
  • 10 个钓点=背包客走过的 10 个旅程站点(第1站中国·家门口河湾 → 第10站斯洛文尼亚·溶洞尽头,路线:中国×4 → 菲律宾 → 马来西亚 → 新西兰 → 澳大利亚 → 冰岛 → 斯洛文尼亚),各有专属鱼池与随机事件,按累计渔获解锁;切换钓点改变鱼池、订单建议、事件与背景。地理跨度不再是 bug,是「TA 到底跑了多远」的正当理由。
  • 219 种鱼 / 6 档品阶(普通→神话),每条带生态标签(河/湖/溪/海/深/冷/夜/保护)决定出没钓点;权重抽取;体重影响价值,标「大·/巨物·」体型。缺专属图标时回退按品阶的通用鱼图标,不崩。
  • 桌面宠物 🐱:渔夫旁的小馋猫,上鱼时偶尔扒拉;2% 概率叼走鱼篓里最廉价的一条杂鱼(卖价 ≤30,珍藏/订单/锁定绝不动)当趣味事件,计入「猫税」统计与成就。
  • 活水族箱 🐠:「鱼缸」页签——把心爱渔获放进缸里(最多 8 条),缸内鱼沿正弦路径游动、按方向翻转,点鱼看它的纪录(最大体重/累计/首捕日/变体),可捞回鱼篓;鎏金/七彩变体带脉动光晕。每条 +观赏卖价加成(封顶 +5%)。最契合桌面摆件的健康非数值长线。
  • 专注奖励:窗口失焦且无操作时累计连续「专注」,满 25 / 50 分钟下一竿强制升级渔获(保底极品★★,再保底鎏金变体)。回焦有 60 秒宽限窗(快速卖鱼一趟不折进度),窗外操作折算保留 80%;每日封顶按实际兑现计(25 / 50 分钟档各占一次;仅满篓停竿等两档都攒着时合并为一次兑现),50 分钟档兑现后本段重新起算——离开越久回来越有惊喜。
  • 随机事件(数据驱动 7 种):鱼汛 / 晨雾 / 寒潮 / 顺水鱼群 / 涨潮 / 漂流木箱 / 保护鱼放流,低干扰,按钓点触发,叠加咬钩/价值/运气修正。
  • 昼夜时段(按真实时钟):黎明 / 白昼 / 黄昏 / 夜晚自然流转;金色时段(晨昏)咬钩更勤、渔获略增值,夜晚静谧但偶有大物;场景随时段轻染色,HUD 显示。零存档。
  • 星级品质:无 / 上品★ / 极品★★ / 完美★★★,价值 ×1/×1.8/×4/×8,由鱼饵决定概率。
  • 稀有变体:每条鱼独立 roll 变体(普通/斑斓/鎏金/七彩,2.5%/0.4%/0.08%——约 1/40、1/250、1/1250 竿的三层惊喜节拍),价值 ×1/2/5/12,与星级正交。图鉴按种记录已见变体——219×3=657 格收集轴,超长线护城河(Chillquarium 式)。诱饵/窝料成长线按级抬高变体出现率(vbias 分档:越稀有的花色提升越多,七彩吃满偏置),是这条收集轴的专属杠杆。彩鳞(v15,分三种):重复钓到已点亮的变体折 1 枚同档鳞(斑斓鳞/鎏金鳞/七彩鳞),在鱼种详情卡的变体墙用同档鳞定向点亮同档缺格(按品阶 3/4/5 枚一格;七彩格只认重复七彩,防低档金流刷穿最稀缺格)——把最后几格从纯赌命变成可规划目标。
  • 鱼篓背包:起始 20 格、阶梯扩容至 100 格(14 级;55 格后的 6 档 25 万→950 万,是毕业期的大额金币去向,也是签约后更大的珍品缓冲区);满篓暂停上钩(满篓兜底:自动折价兑现,留贵兑贱,珍藏不动);排序(最新/价值/品阶/重量)+ 订单鱼筛选按品阶批量卖出(「卖掉 XX 及以下」一键清篓,订单交付后整篓释放可卖);收藏锁(锁定不被卖出/交付);鱼卡外框按品阶着色(变体身份由 ◆ 前缀 + 名字品阶色表达,不再因变种变蓝边)。
  • 成长:多条线各管一轴——鱼竿(稀有度:缩短等待 + 提升高阶概率 + 鱼价加成,成本 400×1.7^级);属性装备链(鱼线→绕线轮→浮漂→探鱼器→钓鱼笔记→钓鱼手套,逐步解锁,顺序驱动价格:后一件解锁价就是该装备 Lv.1 购买价,约等于前一件 20-25 级附近的单次购买价,Lv.2 起按自身指数曲线递增;+1/+10/+100 真实扣金币,分别提供技巧/稳定/速度/反应/感知/生态/追踪/力量等角色属性;角色属性作为二级修正映射到钓鱼结果:速度/反应→一竿周期,生态/感知→品阶权重,技巧/稳定→星级,感知/生态→变体,反应/技巧→双钩,力量/稳定→体型尾部);鱼饵(星级:蚯蚓→红虫→活虾→秘制饵);鱼钩(产量:双钩,一定几率一次再上一条);诱饵/窝料(稀有变体:无窝料→碎米窝→酒米窝→麝香窝料,按级抬高斑斓/鎏金/七彩出现率)。金币/成本内部采用 double 浮点大数(极端值 1e300 封顶),显示采用 idle 游戏常见 K/M/B/T/Qa/Qi... 短单位(3 位有效数字)。升级体感:装备页数字明牌(每行具体概率 + 鱼竿"当前→下一级");购买任意升级后下一竿试竿保底(鱼竿=高运气一竿 / 鱼饵=保底新★级 / 鱼钩=必双钩 / 窝料=保底斑斓),花钱立刻亲眼见效。
  • 每日订单:每天 1 单,4 类(指定鱼种 / 指定品阶 / 大物≥Wkg / 完美品质),交付未锁渔获按鱼价 ×2.5;需求量随品阶分层(大众鱼 8~12 条起,恒按鱼篓容量封顶),鎏金/七彩/★★★ 珍稀不自动交单(完美单豁免★★★);HUD 常驻进度,跨日刷新。周目标 / 每周巨物赛奖励锚定昨日卖鱼收入的 10% / 8%(保底原线性公式),巨物赛累计夺金跨周沉淀(连着两档成就)。
  • 流动鱼贩:随机限时收购时段,卖价 ×1.5(HUD 金色提示)。
  • 鱼贩合约(自动贩卖,v14):60,000 金一次性签约,在线满篓时按市价自动带走一条最便宜的杂鱼(普通花色 · ≤★ · 稀有以下 · 非巨物;收藏与未交付订单目标不碰,想留的杂鱼上 🔒 即可);篓里全是珍品时照常咬钩、新渔获走满篓折价兜底——签约后挂机不停产。合约本身永不碰珍品;离线结算不走合约(仍为折价兜底,按「留贵兑贱」处理,珍稀建议上收藏锁)。买断后可随时暂停。
  • 图鉴:219 种鱼,每种记录累计数 + 最大体重 + 首捕日 + 变体收集 + 长期徽章;钓点页显示各钓点鱼种收集进度。
  • 成就:41 项(渔获/财富/收集/品阶/品相/装备/陈列/变体/猫税/长线断点/周赛线),多数达成发金币,超长线渔获档为纯称号(陈列物奖励管线待做,见 BACKLOG)。
  • 离线收益:回屏弹「离线小结」面板(时长 / 渔获数 / 最值钱一条 / 珍稀清单——含溢出段已兑金的);上限 12 小时(图鉴 ≥145 种扩 24 小时)、50% 效率;按昼夜时段分段结算(夜行限定鱼在夜段真的会来,每种每次至多 2 条),先填满背包空格,溢出部分按 0.5 折价自动兑成金币(留贵兑贱,收藏/订单鱼不动)。
  • 音频:UI / 抛竿 / 入水 / 咬钩 / 金币 / 升级 音效 + 上鱼四档阶梯(普通 → ★★ → 稀有·斑斓 → 鎏金七彩·传说;越稀有越长、越有旋律,而不是越吵)+ 咬钩→上鱼 0.9 秒张力循环 + 里程碑音(图鉴首捕 / 破纪录 / 成就 / 专注奖励 / 巨物赛夺金 / 钓点解锁 / 随机事件 / 猫偷鱼)+ 分层环境音床(多条循环音按「钓点生态 × 昼夜时段」配方淡入淡出;缺素材优雅退化为单层水声)+ 背景音乐(昼夜两曲 4 秒交叉淡入淡出,可独立关闭)。全部素材 CC0 / 公共领域,无需署名;亮度(频谱质心)与响度有硬预算、超标即构建失败,三个生成脚本幂等。详见 docs/audio_asset_rules.md。设置可调静音 / 主音量 / 音效 / 环境音 / 音乐。

界面 / UI

  • 入口收敛:主界面右下角不放独立按钮——点 HUD 金币栏即在主窗口中央打开多功能面板「垂钓手册」;钓点签 / 订单签深链到对应页。
  • 紧凑尺寸:100% 档以原布局的 80% 为基准;复杂菜单统一收至 560×520,继承同一界面缩放倍率并自动夹进屏幕可用区,内部长内容继续滚动。
  • 9 页签:背包 · 图鉴 · 订单 · 成就 · 统计 · 钓点 · 鱼缸 · 装备 · 设置(升级与设置都并入页签)。
  • 两种表面:暗玻璃浮动面板 + 暖纸(米黄)卡片;单一暖金强调色,克制冷冬调。
  • 品阶即信号:鱼名颜色读品阶(普通灰→神话红),变体加 ◆ 宝石 + 图标辉光。
  • 衬线展示声音:面板标题、钓点名用 Noto Serif SCassets/fonts/)呼应水彩卷轴气质;统计页顶部🏆「个人最佳」卡用 30px 衬线等宽英雄数字凸显史上最大体重;面板柔和投影。
  • UI 规范对齐内部设计系统(颜色/字体/间距/圆角/两表面/品阶色/慢而无弹跳的动效,详见设计稿,未随游戏仓库发布)。
  • 旅行手账风格方向(新):整体视觉走「手记装订」框架 + 每站独立地域色,详见 docs/art_direction.md

Windows + macOS 试玩包

试玩者可按所用系统取得对应的版本化 ZIP,完整解压后再启动,不需要安装 Godot:

  • Windows:解压 Backpack-and-Bait-v0.1.0-windows-x86_64.zip 后双击 BackpackAndBait.exe。必须保留同目录的 PCK 文件;不要只移动 .exe。内测包尚未 代码签名,SmartScreen 可能显示“未知发布者”;请通过同目录 .sha256 核对来源,不要 关闭 Defender,也不要授予管理员权限。
  • macOS:解压 Backpack-and-Bait-v0.1.0-macos-universal.zip 后,在 Finder 中打开 BackpackAndBait.app。这是同时包含 Apple Silicon 与 Intel 架构的 Universal 2 包,使用 Godot built-in ad-hoc 签名,未使用 Developer ID 且未公证。若 Gatekeeper 阻止首次启动, 请在 Finder 对 App 右键选择“打开”,或到“隐私与安全性”点击“仍要打开”;不要关闭系统 安全功能。

详细操作见 ZIP 内的 PLAYTEST.txt(内容为简体中文)。维护者安装 Godot 4.6 官方导出模板后, 可在干净工作树中分别一键重建:

GODOT_BIN="/path/to/Godot-4.6" sh tools/build_release.sh
GODOT_BIN="/Applications/Godot.app/Contents/MacOS/Godot" sh tools/build_macos_release.sh

产物写入已忽略的 dist/。GitHub Actions 会在 PR、手动运行和每次 main 更新时生成 windows-x86_64macos-universal 两个 artifacts;普通 main 更新不会创建 GitHub Release。只有推送 v<project.godot 版本> 标签时才会创建双平台 Draft Release。Windows 10/11 与 macOS Apple Silicon/Intel 的实机放行清单都尚未完成,因此当前并未公开发布。

运行

# 用 Godot 4.6 打开本目录,或命令行:
godot --path .

# 新克隆首次跑工具前先建缓存:
godot --headless --import

开发工具

# 无头回归测试(鱼数据 / 钓点·事件 / 鱼池隔离 / 分布 / 体重价格 / 背包卖鱼 / 排序 /
#   鱼竿·鱼饵·鱼钩·诱饵 / 成就 / 鱼贩 / 随机事件 / 每日订单 / 多钓点切换 / 满篓兜底 /
#   活水族箱 / 专注奖励 / 存档往返与旧档迁移 / 离线 / 动态层 / 窗口 Region 坐标与防误拖 / 测试模式)
godot --headless -s tools/validate_game.gd

# 引擎内视口截图(带 alpha,验证透明 + 各面板;输出 docs/img/)
godot --path . -s tools/dev_screenshot.gd

# 数值平衡探针(产出曲线 / 升级回本,只读)
godot --headless -s tools/balance_probe.gd

游戏内「测试模式」(开发期,逻辑见 test_mode.gd

设置页顶部「测试模式(开发用)」开关切换 游玩 / 测试 两态。测试模式下设置页展开「🧪 测试台」: 左侧开发入口可直接打开属性面板、功能管理与人情模块;属性面板可编辑金币(翻倍/减半)、装备来源层与宠物状态;测试台可强制昼夜时段、钓鱼提速(×3/×10/即时)、改金币、+1/拉满装备与背包、绕线轮升降/设级、给指定鱼(鱼种×星级×变体)、 样本包/清空鱼篓、解锁全部钓点/点亮全图鉴、召唤鱼贩/重置订单/充能专注、立即触发随机事件;人情模块可召唤指定 NPC 的闲谈/委托/Buff/终章事件、打开人情簿或到访面板、mock 偏好鱼与终章鱼、调整好感等级、重置或完成终章。

河湾五位 NPC 已使用专属水彩人物图:右侧到访栏从原图单独裁切头部并显示为主题色圆形头像,人情簿显示动作缩略图,到访面板使用紧凑对话头像;资源缺失时安全回退到带姓名首字的主题色占位,底部人情菜单缺少专属 icon 时显示「人」字占位,不留空白入口。到访页采用聊天记录式剧情与当前抉择,NPC 剧情、闲谈和结算均以第一人称发言,玩家按钮使用简短的真实回复;NPC 与玩家消息分别占有独立的左/右整行气泡,长文自动撑高本行,选择后反馈从下一行开始。一次到访的抉择、选鱼、玩家回复和反馈由同一份到访期临时会话承接,关闭或切换到访即清理,避免跨人物、跨到访串线;好感、近况、终章和偏好资料集中在人情簿,偏好按好感 0–1/2–3/4–6 三阶段显示未知/模糊线索/完整规则。

仅本会话生效、不写档:进入即冻结磁盘存档,退出(切回游玩模式)从磁盘重载正式档、丢弃全部测试改动; 默认重启回到正式档;如需启动即进入测试,可在 main.tscnMain 节点 Inspector 勾选 test_mode。正式存档永不被测试数据污染,HUD 右上常驻「🧪测试」角标提示当前在测试模式。

开启新存档(开发期)

设置页底部「开启新存档」:删磁盘存档(主档/.bak/.tmp)+ 全状态复位默认开局(复用 SaveSystem.apply({}) 迁移默认)+ 落盘干净档 + 重看引导(新:重新走一遍「开场故事→选角色」)。两点确认防误触(首点变红警示,3.5s 内再点执行)。开发阶段存档无价值,可随时清空重开。

结构

文件职责
main.gdclass_name CornerFishing 主控:透明窗/拖动、钓鱼状态机、经济、背包/成就/图鉴、HUD、卖鱼/升级、宠物、专注奖励、存档/离线;面板/事件/钓点/订单均薄壳委托下列模块
ui_panels.gdclass_name UIPanels:所有面板/页签/卡片/样式构建(静态 g 模式);含衬线标题、🏆英雄数字,新增开场故事(story)/选角色(character)面板
character_data.gd【新增】 class_name CharacterData:背包客角色数据(Jim / Ganie,纯人设文案,不影响数值)
events.gdclass_name Events:随机事件管理器(EventData 驱动)
spots.gdclass_name Spots:钓点鱼池/运气增值/解锁/切换/订单候选并集
orders.gdclass_name Orders:每日订单/周目标/今日统计
decor.gdclass_name Decor:陈列/活水族箱(缸位 8、观赏卖价加成)
aquarium.gdclass_name Aquarium:鱼缸视图——缸内鱼游动/翻转/点鱼看纪录/捞回/变体光晕
scene_painter.gd场景绘制:底图 + 动态层(水光/雾/雪/涟漪/灯光/渔夫/宠物),按钓点切底图,缺资源回退程序化
fish_data.gdclass_name FishData:219 鱼种、品阶、生态标签、权重、体重定价、星级、鱼饵、鱼钩、诱饵(变体偏置)、按钓点鱼池抽取
fish_lore.gdclass_name FishLore:219 鱼种详情卡文案(desc/fact/wiki),desc 已改写为背包客手记语气
spot_data.gdclass_name SpotData:钓点(鱼池 / 解锁条件 / 事件池 / 系数 / 背景),name/desc 已按旅程站点重新叙事
event_data.gdclass_name EventData:随机事件(鱼汛/晨雾/寒潮/顺水/涨潮/漂流木箱/保护鱼放流)
weather.gdclass_name Weather:昼夜时段(黎明/白昼/黄昏/夜晚,按真实时钟,修正+染色)
achievements.gdclass_name AchievementData:成就配置(41 项)
audio_manager.gdAutoload Audio:音效 / 分层环境床 / BGM 昼夜曲 / 张力循环的加载与播放、音量·静音·音乐开关、设置持久化
feather_mask.gdshader屏幕坐标椭圆羽化遮罩,让场景向左上渐隐融桌面
assets/fonts/Noto Serif SC(衬线展示字体,标题/英雄数字用)
assets/art/**美术资源(不在工程逻辑里修改,只加载播放)
tools/无头测试 / 引擎内截图 / 平衡探针
docs/调研、路线图、美术需求、白皮书 project_overview.html,新增 lore_backpacker.md(世界观+开场故事脚本+项目名候选)

存档

user://corner_fishing_save.json(当前 v24:v15 新增彩鳞/昨日收入锚/巨物赛累计夺金字段;v16 帧率默认 30→120 一次性迁移;v17 新增绕线轮等级;v18 新增鱼线/浮漂/探鱼器/钓鱼笔记/钓鱼手套等级;v19 图鉴补存破纪录日期 wd;v20 新增功能渐进开放状态与装备消费累计;v21 新增河湾人情簿五位 NPC 的独立好感、到访队列、当前人情 Buff 与终章完成状态;v22 将人情到访改为每位 NPC 独立排程;v23 新增五条一次性终章的永久标记;v24 新增初识到旧交的逐级人物事件及每人独立已读进度,旧档从最低未读等级依次补看)。每 10s 自动存 + 退出存 + 拖动后存 + 切钓点/陈列后存。 历次结构升级均向后兼容迁移(图鉴纪录轴、背包多元组、徽章、每日订单、多钓点、陈列、稀有变体、 活水族箱 / 首捕日 / 专注奖励 v11、诱饵窝料 v12、背包客角色 v13、鱼贩合约 v14、彩鳞与收入锚 v15、帧率默认迁移 v16、绕线轮速度装备 v17、属性装备链 v18、图鉴破纪录日期 v19、功能渐进开放 v20、河湾人情簿与到访事件 v21、NPC 独立到访排程 v22、一次性终章永久奖励 v23、好感逐级事件池 v24),回归测试覆盖迁移。

路线图(未实现)

更多钓点(数据驱动,加一张干净底图 + spot_data 配置即可,渔夫/灯笼自动叠加)、稀有大鱼限时事件、 陈列架桌面小景渲染、自动卖鱼(商业化方向,需拍板)、打包 itch.io / Steam。 模块骨架(UIPanels/Events/Spots/Orders/Decor/Aquarium + SpotData/EventData)已就位,便于并行扩展。

Contributors

Martinqi826

85 commits

ythere-y

77 commits

martinqi404

64 commits

Languages

GDScript

66.8%

JavaScript

15.0%

Python

11.5%

HTML

5.2%