From 086fb199cf65f64569a8052d523c4e6fba4326b0 Mon Sep 17 00:00:00 2001 From: Oskar Wiksten Date: Sun, 3 Nov 2013 09:35:21 +0100 Subject: [PATCH] Remove Fallhaven prisoner when reaching quest farrik:70 --- AndorsTrail/res/raw/conversationlist_farrik.json | 5 +++++ .../LegacySavegameFormatReaderForPlayer.java | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/AndorsTrail/res/raw/conversationlist_farrik.json b/AndorsTrail/res/raw/conversationlist_farrik.json index aa026b993..92b4b5cac 100644 --- a/AndorsTrail/res/raw/conversationlist_farrik.json +++ b/AndorsTrail/res/raw/conversationlist_farrik.json @@ -374,6 +374,11 @@ "rewardType": "questProgress", "rewardID": "farrik", "value": 70 + }, + { + "rewardType": "removeSpawnArea", + "mapName": "fallhaven_prison", + "rewardID": "fallhaven_prisoner" } ], "replies": [ diff --git a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/savegames/LegacySavegameFormatReaderForPlayer.java b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/savegames/LegacySavegameFormatReaderForPlayer.java index d9b2709a8..52289ebf8 100644 --- a/AndorsTrail/src/com/gpl/rpg/AndorsTrail/savegames/LegacySavegameFormatReaderForPlayer.java +++ b/AndorsTrail/src/com/gpl/rpg/AndorsTrail/savegames/LegacySavegameFormatReaderForPlayer.java @@ -9,6 +9,8 @@ import com.gpl.rpg.AndorsTrail.model.ability.SkillInfo; import com.gpl.rpg.AndorsTrail.model.actor.Player; import com.gpl.rpg.AndorsTrail.model.item.Inventory; import com.gpl.rpg.AndorsTrail.model.item.ItemType; +import com.gpl.rpg.AndorsTrail.model.map.MonsterSpawnArea; +import com.gpl.rpg.AndorsTrail.model.map.PredefinedMap; import com.gpl.rpg.AndorsTrail.model.quest.QuestProgress; import com.gpl.rpg.AndorsTrail.util.Range; @@ -103,6 +105,20 @@ public final class LegacySavegameFormatReaderForPlayer { player.addQuestProgress(new QuestProgress("lodar13_rest", 65)); } } + + if (fileversion <= 40) { + if (player.hasExactQuestProgress("farrik", 70)) { + deactivateSpawnArea(world, controllers, "fallhaven_prison", "fallhaven_prisoner"); + } + } + } + + private static void deactivateSpawnArea(WorldContext world, ControllerContext controllers, String mapName, String monsterTypeSpawnGroup) { + PredefinedMap map = world.maps.findPredefinedMap("fallhaven_prison"); + for (MonsterSpawnArea area : map.spawnAreas) { + if (!area.monsterTypeSpawnGroup.equals("fallhaven_prisoner")) continue; + controllers.monsterSpawnController.deactivateSpawnArea(area, true); + } } public static int getExpectedNumberOfSkillpointsForLevel(int level) {