diff --git a/src/js/game/hud/parts/interactive_tutorial.js b/src/js/game/hud/parts/interactive_tutorial.js index 00c02b06..e96d5bfc 100644 --- a/src/js/game/hud/parts/interactive_tutorial.js +++ b/src/js/game/hud/parts/interactive_tutorial.js @@ -154,6 +154,8 @@ export class HUDInteractiveTutorial extends BaseHUDPart { initialize() { this.domAttach = new DynamicDomAttach(this.root, this.element, { trackHover: true }); this.currentHintId = new TrackedState(this.onHintChanged, this); + this.lastLevelHinted = this.root.hubGoals.level; + this.lastHintShown = 0; } onHintChanged(hintId) { @@ -172,18 +174,22 @@ export class HUDInteractiveTutorial extends BaseHUDPart { update() { // Compute current hint const thisLevelHints = tutorialsByLevel[this.root.hubGoals.level - 1]; + if (this.root.hubGoals.level != this.lastLevelHinted) this.lastHintShown = 0; let targetHintId = null; if (thisLevelHints) { - for (let i = 0; i < thisLevelHints.length; ++i) { + for (let i = this.lastHintShown; i < thisLevelHints.length; ++i) { const hint = thisLevelHints[i]; if (hint.condition(this.root)) { targetHintId = hint.id; + this.lastHintShown = i; break; } } } + if (targetHintId === null) this.lastHintShown = thisLevelHints.length; + this.currentHintId.set(targetHintId); this.domAttach.update(!!targetHintId); } diff --git a/src/js/game/hud/parts/tutorial_video_offer.js b/src/js/game/hud/parts/tutorial_video_offer.js index ee232a92..f08af683 100644 --- a/src/js/game/hud/parts/tutorial_video_offer.js +++ b/src/js/game/hud/parts/tutorial_video_offer.js @@ -12,7 +12,7 @@ export class HUDTutorialVideoOffer extends BaseHUDPart { this.root.hud.signals.unlockNotificationFinished.add(() => { const level = this.root.hubGoals.level; const tutorialVideoLink = THIRDPARTY_URLS.levelTutorialVideos[level]; - if (tutorialVideoLink) { + if (tutorialVideoLink && this.root.app.settings.getAllSettings().offerHints) { const isForeign = this.root.app.settings.getLanguage() !== "en"; const dialogData = isForeign ? T.dialogs.tutorialVideoAvailableForeignLanguage