using System.Collections.Generic; using System.Linq; using BriarQueen.Data.Identifiers; using BriarQueen.Data.IO.Saves; using BriarQueen.Framework.Managers.Hints.Data; using BriarQueen.Framework.Managers.Levels.Data; using Cysharp.Threading.Tasks; using UnityEngine; using UnityEngine.UI; namespace BriarQueen.Game.Levels.ChapterOne.Village { public class Village : BaseLevel { [Header("Level Setup")] [SerializeField] private Image _background; [SerializeField] private Sprite _waterFlowingSprite; [Header("Items")] [SerializeField] private BaseItem _chainAndLock; [SerializeField] private BaseItem _vines; public override string LevelName => "Village"; public override bool IsPuzzleLevel => false; public override int CurrentLevelHintStage { get; set; } public override Dictionary Hints { get; } protected override async UniTask PostLoadInternal() { Debug.Log("[Village] Post Load Internal"); Debug.Log($"[Village] Post Load Internal - Pumphouse Open - {SaveManager.GetLevelFlag(LevelFlag.PumpHouseOpened)}"); if (SaveManager.GetLevelFlag(LevelFlag.PumpHouseOpened)) { if (_chainAndLock != null) await DestructionService.Destroy(_chainAndLock.gameObject); } if (SaveManager.GetLevelFlag(LevelFlag.FountainVinesCut)) { if (_vines != null) await DestructionService.Destroy(_vines.gameObject); } if (SaveManager.GetLevelFlag(LevelFlag.PumpWaterRestored)) _background.sprite = _waterFlowingSprite; } protected override UniTask PostActivateInternal() { TutorialService.DisplayTutorial(TutorialPopupID.ReturnToPreviousLevel); return UniTask.CompletedTask; } } }