第 29 课：综合项目：完成能量岛寻宝游戏

请先阅读对应网页。这里按章节提供代码，可能包含先后替换的实验版本，不要全部同时运行。
.luau 文件内容请复制到指定 Script / LocalScript / ModuleScript；.txt 是层级或说明，不是可执行代码。
第 25 课默认 PRACTICE=true，不连接云端，也不跨 Stop 保存。第 28 课包含明确标注的故意错误实验。

01 · 先确定最小可玩的规则
新建并保存“姓名缩写_Lesson29_v01”。
写下游戏规则：三颗不同晶石 → 终端确认 → 得到一次奖章。
保留 Baseplate 作为安全地面，用低平台和路标做岛屿主题。

02 · 按对象清单搭建场景
Workspace 下创建 Crystals 文件夹，内含 CrystalA、CrystalB、CrystalC 三个 Part。
晶石 Size=3,3,3；位置分别为 -12,3,-12；0,3,-26；12,3,-12；Anchored=true、CanCollide=false、CanTouch=true。
创建 Terminal：Size=6,4,4，Position=0,2,-40，Anchored=true。
在 Terminal 内创建 ProximityPrompt，ActionText=完成任务、ObjectText=能量终端、HoldDuration=0.5、MaxActivationDistance=10。
建立 ServerScriptService > IslandQuest（Script）和 StarterPlayerScripts > IslandHud（LocalScript）。

文件：02-scene.txt
位置与用途：必须一致的 Explorer 结构 · 不是 Luau 代码

03 · 服务器记录进度，并检查终点
把完整代码放进 IslandQuest。
先 Play 并用 Output 或 Player 属性验证数量，再接入 HUD。
本项目只保留这一份任务服务器脚本，不叠加第 19 课的 CrystalQuest。

文件：03-server.luau
位置与用途：ServerScriptService > IslandQuest · 完整服务器脚本

04 · 让玩家看见自己的进度
把完整代码放入 IslandHud。
Play 后应该看到“晶石 0/3”和任务说明。
收集与使用终端时，确认文字跟随状态变化。

文件：04-hud.luau
位置与用途：StarterPlayer > StarterPlayerScripts > IslandHud · 完整客户端脚本

05 · 按验收表完整走一遍
0 颗就使用终端：提示还差 3，Medals=0。
A、A、B、C：进度依次 1、1、2、3。
集齐再提交：Medals=1；重复提交仍为 1。
中途重生：进度保留；Stop 重开：进度为 0。
双人分别完成：双方各得 1，不互相影响。

06 · 一次只加入一个扩展
请一个没有看过代码的人尝试找三颗晶石，观察哪里会迷路。
只修正最影响体验的一点，保存 v02。
截取起点目标、收集进度、完成结果三张真实游戏画面，不使用参考图冒充自己的成果。

