Ghost Town
基本信息
| 属性 | 值 |
|---|---|
| 成就 ID | villagenames.achievement.ghosttown |
| 字段 | VillageNames.ghosttown(VillageNames.java:109) |
| 内部名 | ghosttown |
| 注册处 | proxy/CommonProxy.java:69-70 |
| 成就页坐标 | pageX 0, pageY 2 |
| 图标 | ModItems.villageBook(Village Book) |
| 依赖成就 | 无(initIndependentStat()) |
| 显示名 | Ghost Town |
| 描述 | Create a Village Book for an empty village |
功能
为空村庄(无村民的村庄)生成 Village Book 时解锁。
触发条件
在 WriteBookHandler 中,村庄**人口为 -1(即空村庄)**时触发(handler/WriteBookHandler.java:230-236):
if (... || (playerIsInVillage && population == -1)) {
// The if condition was inserted so that your achievement stat will cap out at 1
try {
if (!((EntityPlayerMP) player).func_147099_x().hasAchievementUnlocked(VillageNames.ghosttown)) {
player.triggerAchievement(VillageNames.ghosttown);
AchievementReward.allFiveAchievements( (EntityPlayerMP)player );
}
}
catch (Exception e) {}
}
触发后即调用统一奖励检查(handler/WriteBookHandler.java:236)。整段被 try/catch 包裹,异常静默吞掉(:237)。
源码在 ItemCodex.java 中的变量注释亦印证了这条路径:boolean playerIsInVillage = false; // Set to true if you're in a village; used for Ghost Town achievement.(item/ItemCodex.java:97),该变量在 :226 被置为 true。
相关条目
- Village Book - 触发本成就的物品
- Codex - 同属村庄/结构记录系统
- allFiveAchievements 奖励 - 集齐全部成就后的奖励
- Fidelity - 同一成就页上的其他成就之一