// ============================== // PuzzleBase.cs (updated) // ============================== using System.Collections.Generic; using BriarQueen.Framework.Assets; using BriarQueen.Framework.Coordinators.Events; using BriarQueen.Framework.Managers.Audio; using BriarQueen.Framework.Managers.Hints.Data; using BriarQueen.Framework.Managers.IO; using BriarQueen.Framework.Managers.Levels.Data; using BriarQueen.Framework.Registries; using Cysharp.Threading.Tasks; using VContainer; namespace BriarQueen.Framework.Services.Puzzles.Base { public abstract class BasePuzzle : BaseLevel { protected AddressableManager AddressableManager; protected AssetRegistry AssetRegistry; protected AudioManager AudioManager; protected ItemRegistry ItemRegistry; protected PuzzleService PuzzleService; public abstract string PuzzleID { get; } public override bool IsPuzzleLevel => true; // BaseLevel still requires these. public abstract override string LevelName { get; } public abstract override Dictionary Hints { get; } public abstract UniTask CompletePuzzle(); [Inject] public void Construct(EventCoordinator eventCoordinator, AudioManager audioManager, SaveManager saveManager, ItemRegistry itemRegistry, AddressableManager addressableManager, AssetRegistry assetRegistry, PuzzleService puzzleService) { EventCoordinator = eventCoordinator; AudioManager = audioManager; SaveManager = saveManager; ItemRegistry = itemRegistry; AddressableManager = addressableManager; AssetRegistry = assetRegistry; PuzzleService = puzzleService; } } }