47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using BriarQueen.Data.Identifiers;
|
|
using BriarQueen.Framework.Coordinators.Events;
|
|
using BriarQueen.Framework.Events.Save;
|
|
using BriarQueen.Framework.Events.UI;
|
|
using BriarQueen.Framework.Managers.IO;
|
|
using BriarQueen.Framework.Services.Settings;
|
|
using VContainer;
|
|
|
|
namespace BriarQueen.Framework.Services.Tutorials
|
|
{
|
|
public class TutorialService
|
|
{
|
|
private readonly EventCoordinator _eventCoordinator;
|
|
private readonly SettingsService _settingsService;
|
|
private readonly SaveManager _saveManager;
|
|
|
|
[Inject]
|
|
public TutorialService(
|
|
EventCoordinator eventCoordinator,
|
|
SettingsService settingsService,
|
|
SaveManager saveManager)
|
|
{
|
|
_eventCoordinator = eventCoordinator;
|
|
_settingsService = settingsService;
|
|
_saveManager = saveManager;
|
|
}
|
|
|
|
public void DisplayTutorial(TutorialPopupID tutorialPopupID)
|
|
{
|
|
var save = _saveManager.CurrentSave;
|
|
var tutorialVars = save?.PersistentVariables?.TutorialPopupVariables;
|
|
|
|
if (tutorialVars == null)
|
|
return;
|
|
|
|
if (tutorialVars.HasBeenDisplayed(tutorialPopupID))
|
|
return;
|
|
|
|
tutorialVars.MarkDisplayed(tutorialPopupID);
|
|
|
|
if (_settingsService.AreTutorialsEnabled())
|
|
_eventCoordinator.Publish(new DisplayTutorialPopupEvent(tutorialPopupID));
|
|
|
|
_eventCoordinator.PublishImmediate(new RequestGameSaveEvent());
|
|
}
|
|
}
|
|
} |