🌾 農場遊戲交接手冊 v2.8

格子化 · 買地多一格 · 空地能種 · 格子上限
2026-10-30 · 給下一個 AI 的完整交接
📌 版本 v2.8 · 2026-10-30

一、系統總覽

前端https://farm.ahpal.com
Workerhttps://ahpal-farm-api.praystone.workers.dev
D1ahpal-farm-db(7 表)
GitHubpraystone/ahpal-farm
前端部署GitHub Actions(git push 自動)
Worker 部署npx wrangler deploy(手動)
D1 部署npx wrangler d1 execute --remote(手動)
版本v2.8(2026-10-30)

二、D1 七表

#表名用途
1_cf_KVCloudflare 內部表
2crops12 種作物 + 空地(empty),含 level_required、season_count、regrow_seconds
3farms每塊田(含 stolen_by、stolen_at、fertilized_at、weed、bug、is_locked)
4farm_logs播種/收成/偷菜紀錄
5farm_players玩家金幣、level、exp、daily_steal_count、last_steal_date
6farm_weather當前天氣(Cron 每 2 小時換)
7farm_comments留言板(Turnstile 四層保護)

三、Worker 16 API

#方法端點用途
1GET/api/crops農作物清單
2POST/api/plant種植(v2.8 支援 farmId 指定空地)
3GET/api/farm查看自己的田(含空地)
4POST/api/harvest收成(含天氣加成、多季作物)
5GET/api/player讀玩家金幣
6POST/api/steal偷菜(每日 10 次上限)
7GET/api/random-farm隨機找成熟田
8GET/api/recent-steals公告牆(含苦主)
9GET/api/steal-history偷菜總表(分頁 + 近 1/3/7 天)
10GET/api/weather當前天氣
11GET/api/weather/forecast天氣預報
12GET/POST/api/comments留言板(POST 需 Turnstile)
13GET/api/level查等級、經驗、下一級門檻
14POST/api/fertilize化肥(20 金,縮短 1 小時)
15POST/api/clear除草/殺蟲(各 5 exp)
16POST/api/buy-land買地(500 金,Lv.2,格子上限)

四、格子上限(v2.8)

等級格子上限
Lv.16 格(初始)
Lv.29 格(+3)
Lv.312 格(+3)
Lv.415 格(+3)
Lv.518 格(+3)
Lv.6+每級 +3,上限 30 格
買地規則:500 金,Lv.2 以上,格子數 < 上限才能買。

五、空地(crop_id=empty)設計

空地查詢的坑:不要加 AND harvested = 1。空地就是 crop_id=empty,harvested 是 0 還是 1 都可能。

六、版本演進

版本主要變更
v2.4六表、12 API、12 種作物、天氣、留言板 + Turnstile
v2.5+11 欄位、等級門檻、偷竊上限、多季作物、exp 修正、使用說明 modal
v2.6化肥、雜草蟲害、土地擴張(/api/buy-land)
v2.7化肥冷卻、買地 Lv.2、雜草 Cron、空地顯示
v2.8格子化、空地種植(/api/plant 支援 farmId)、格子上限

七、踩過的坑(給下一個 AI)

  1. 改 Worker 前,先看真實行號:/api/plant 的 const body 在行 45,插錯會重複宣告
  2. 改 Worker 用「行號切片」:不用 regex 多行匹配
  3. deploy 前檢查檔案大小 > 20000:空檔 node --check 會過,但 wrangler deploy 會報 ES module format
  4. PS7 互動模式不貼多行 if/else:else 會被當獨立指令,用兩個獨立 if
  5. PowerShell 變數不會自動清空:每次改動前先 $w2 = $w
  6. /api/plant 空地查詢不加 harvested = 1:空地就是 crop_id=empty
  7. H 撞 Get-History 別名:函數名用 Head / Write-Section

八、給下一個 AI 的話

「田 = 格子。買地 = 多一格。空地要能種。」

「先後端,再前端。前端按鈕是殼,Worker API 是核。」

「先診斷,再動手。永遠先備份。不要讓董事長當搬運工。」

🌾 2009 年,你在偷誰的菜?

2009 年,Facebook 開心農場。你半夜設鬧鐘起來,就為了偷同學那顆快熟的番茄。那時候,我們都還年輕。放學衝回家,打開電腦,偷菜、種菜、被偷,一個都不能少。

17 年後,開心農場回來了。不是 Facebook,是 AHPAL。

你的菜,還在長。你的青春,還在等你。