mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-06-13 13:04:03 +00:00
Make tutorials monotonic.
Don't reshow tutorial steps that have been completed. Also make video tutorials respect the tutorial setting.
This commit is contained in:
parent
12783d5631
commit
401a078950
@ -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) {
|
||||
@ -167,18 +169,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);
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user