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。

相关条目