Files
main_plugin_farm/docs/land-rules.md
T
2026-10-26 11:34:00 +08:00

84 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 土地配置与地块顺序
`src/farm_core/data/land_rules.json` 按用户提供的 `91.png` 逐行录入。
这是用户选定的参考规则,不标记为已验证的现行官方全量配置。
- 开垦保留图片序号 7~24 的付费条件;红、黑、金土地各保留 1~24。
- 图片金币单位为万,配置中的 `coin_cost` 为乘 10000 后的整数。
- 前 6 块由 `initial_plot_count: 6` 表示,不重复保存空条件记录。
新用户默认6块;可靠识别为初始3块的旧用户一次性补3块普通空地。
- 开垦时,`expansion.rows.ordinal` 对应补偿完成后的下一实际地块编号。
土地升级已接入,具体行为见下文。
- 表外序号,以及材料、星钻替代支付、冷却和额外解锁条件没有在图中
给出。不能默认免费、默认通过,或套用最后一行。24 不是土地总上限。
- 已提供“开垦”(每次1块)和“开垦 条件”(查询等级及费用)。
等级检查、扣币及新增空地在同一事务内完成,重放同消息不重复扣款。
目前配置覆盖7~24号,25号起明确提示规则未配置,不扣币。
## 土地升级
- `土地升级 1 条件` 只查询1号地下一等级的条件;`土地升级 1` 扣费升级。
地块编号来自“地块编号”,支持各平台共用命令。
- 普通→红→黑→金,逐级升级。每种目标等级的费用序号为:
已达到该等级或更高等级的地块数加1,不等于地块编号。
升为更高等级不会使低等级费用重新降低;表外序号拒绝,不猜测费用。
- 红土地增产10%,黑土地增产20%,金土地增产28%、经验加成28%。
黑、金土地开始新一季时,生长时间取基础时长的80%,向上取整到秒。
沿用旧实现加成,不叠加到原加成上;普通地的新账号规则不变。
- 升级使正在生长的作物当季立即成熟,不发放收获物、不增加收获次数。
多季作物收获后才进入下一季。先结算升级时刻已发生的虫害,并冻结
当前虫数对应的减产;不清除已经偷取的数量或偷取记录。
- 已成熟作物保持成熟,不恢复虫害损失;枯萎的是作物而非土地,
升级不会使枯萎作物复活,仍需铲除。空地只改变土地等级。
- 扣币、土地加成、当前季成熟和操作回执在同一SQLite事务提交。
同一消息重复处理返回原收据;等级不足、余额不足或中途失败全部回滚。
不同消息各执行一次升级,因此不要重复发送不同的升级消息。
- schema v5 为地块增加land_level;v1~v4按顺序事务迁移。
旧版导入账号从已保存的legacy_rows.userSoil恢复明确等级;
没有旧版记录的地块默认普通,不按加成猜等级,不改资产与历史加成。
原始记录非法时中止并回滚迁移,保留旧库。
- 三种升级土地图从legacy原样导出为包内land-soils.zip,约57KiB。
保持既有外部assets.zip的内容、摘要和下载来源不变;绘图和底图缓存
包含土地等级,升级后不会复用普通地旧图。
实现和验证使用临时构造玩家;未迁移生产数据、部署或重启机器人。
## 新用户注册
注册事务创建 1~6 号空地,初始农场币仍为 500。重复注册不额外发地。
不重编号已有地块。旧库迁入用户及首次成功注册回执未记录plot_count
或记录为3的用户,在首次业务访问时一次性追加3块普通空地,保留已付费
开垦成果:3→6、5→8、8→11。首次注册记录为6的用户不重复赠地。
补偿与版本标识保存在operations中,重试、并发及重启不重复发放。
来源不明、地块编号不连续/数量异常或补后超过当前30位置时明确报错、
保持原状,不截断、不折现,也不标记已补偿;管理员修复后可重试。
已迁移及后续迁入用户都通过共享服务处理,不直接改动旧farm.db。
## 绘图编号顺序
沿原有五条斜排的坐标方向,前两排交错推进,后续逐排推进:
```text
1 3 5 7 9 11
2 4 6 8 10 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
```
前 6 块地形成两排、每排 3 块;前 12 块完成后,13 号起按单排推进。
`metadata.json` 的 `positions[slot - 1]` 是统一的绘图映射,土地、作物、
虫子和详情中的地块标注都使用它。地形坐标不变,只重排前 12 项。
已有账号的同一 `slot` 保留原作物和资产,展示位置随此映射调整。
## 用户查询入口
真寻接入新增「地块编号」,使用统一图片质量配置。它复用正式渲染器,
按当前账号快照标注全部 30 个位置:浅色编号为已开垦,绿色为待开垦。
图片附带编号顺序和「农场详述」入口说明,并保留当前季节、作物及头像。
该查询无需消息写入标识,不更改作物、土地或资产。缺少字体时返回文字清单。
「农场帮助」包含该入口;首次注册成功回复显示本次实际初始地块数并提示
发送「地块编号」。重复注册只提示查询入口,不声称再次获得土地。
日常「我的农场」仍不显示编号,编号图与普通图使用不同的成图缓存键。