Skip to content

Commit

Permalink
fix(bugs): Fix several issues with loading old files (pokeclicker#5531)
Browse files Browse the repository at this point in the history
* fix player region/subregion loading

* fix generating DefeatGymQuest

generating a DefeatGymQuest would fail if the file pre-dates the tutorial quest line

* this can actually be here

* might as well
  • Loading branch information
CypherX authored Sep 17, 2024
1 parent bd643b7 commit 31e4bd2
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 11 deletions.
17 changes: 9 additions & 8 deletions src/scripts/Player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<KnockoutObservable<number>>();
for (let i = 0; i <= GameConstants.MAX_AVAILABLE_REGION; i++) {
if (savedPlayer.regionStarters && savedPlayer.regionStarters[i] != undefined) {
Expand Down Expand Up @@ -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)];
Expand Down Expand Up @@ -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;
Expand All @@ -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);
}
}
Expand Down Expand Up @@ -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) {
Expand Down
3 changes: 0 additions & 3 deletions src/scripts/gym/Gym.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)]();
}

Expand Down

0 comments on commit 31e4bd2

Please sign in to comment.