diff --git a/src/scripts/Player.ts b/src/scripts/Player.ts index 3bf3866a65..72d007ecaf 100644 --- a/src/scripts/Player.ts +++ b/src/scripts/Player.ts @@ -58,6 +58,9 @@ class Player implements TmpPlayerType { this._town = ko.observable(TownList[this._townName]); this._town.subscribe(value => this._townName = value.name); + this.highestRegion = ko.observable(savedPlayer.highestRegion || 0); + this.highestSubRegion = ko.observable(savedPlayer.highestSubRegion || 0); + this.regionStarters = new Array>(); for (let i = 0; i <= GameConstants.MAX_AVAILABLE_REGION; i++) { if (savedPlayer.regionStarters && savedPlayer.regionStarters[i] != undefined) { @@ -94,8 +97,6 @@ class Player implements TmpPlayerType { this.effectList = Save.initializeEffects(savedPlayer.effectList || {}); this.effectTimer = Save.initializeEffectTimer(); - this.highestRegion = ko.observable(savedPlayer.highestRegion || 0); - this.highestSubRegion = ko.observable(savedPlayer.highestSubRegion || 0); // Save game origins, useful for tracking down any errors that may not be related to the main game this._origins = [...new Set((savedPlayer._origins || [])).add(window.location?.origin)]; @@ -149,9 +150,9 @@ class Player implements TmpPlayerType { set subregion(value: number) { if (value < 0) { - value = Math.max(...SubRegions.getSubRegions(player.region).filter(sr => sr.unlocked()).map(sr => sr.id)); + value = Math.max(...SubRegions.getSubRegions(this.region).filter(sr => sr.unlocked()).map(sr => sr.id)); } - if (value > Math.max(...SubRegions.getSubRegions(player.region).filter(sr => sr.unlocked()).map(sr => sr.id))) { + if (value > Math.max(...SubRegions.getSubRegions(this.region).filter(sr => sr.unlocked()).map(sr => sr.id))) { value = 0; } const changedSubregions = value !== this.subregion; @@ -163,9 +164,9 @@ class Player implements TmpPlayerType { if (changedSubregions) { const subregion = SubRegions.getSubRegionById(this.region, value); - if (subregion.startRoute && subregion.startRoute !== player.route) { - MapHelper.moveToRoute(subregion.startRoute, player.region); - } else if (subregion.startTown && subregion.startTown !== player.town.name) { + if (subregion.startRoute && subregion.startRoute !== this.route) { + MapHelper.moveToRoute(subregion.startRoute, this.region); + } else if (subregion.startTown && subregion.startTown !== this.town.name) { MapHelper.moveToTown(subregion.startTown); } } @@ -201,7 +202,7 @@ class Player implements TmpPlayerType { public gainMegaStone(megaStone: GameConstants.MegaStoneType, notify = true) { const name = GameConstants.MegaStoneType[megaStone]; if (!this.itemList[name]()) { - player.gainItem(name, 1); + this.gainItem(name, 1); } if (notify) { diff --git a/src/scripts/gym/Gym.ts b/src/scripts/gym/Gym.ts index 37fcaa0c4e..80da8a0bd3 100644 --- a/src/scripts/gym/Gym.ts +++ b/src/scripts/gym/Gym.ts @@ -71,9 +71,6 @@ class Gym extends TownContent implements TmpGymType { } public clears() { - if (!QuestLineHelper.isQuestLineCompleted('Tutorial Quests')) { - return undefined; - } return App.game.statistics.gymsDefeated[GameConstants.getGymIndex(this.town)](); }