57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
using BriarQueen.Data.IO.Saves;
|
|
using BriarQueen.Framework.Events.UI;
|
|
using BriarQueen.Framework.Managers.Levels.Data;
|
|
using BriarQueen.Game.Items.HoverZones;
|
|
using BriarQueen.Game.Puzzles.ChapterOne.AshwickHallow;
|
|
using Cysharp.Threading.Tasks;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace BriarQueen.Game.Levels.ChapterOne.Ashwick
|
|
{
|
|
public class AshwickOutskirts : BaseLevel
|
|
{
|
|
[Header("Background")]
|
|
[SerializeField]
|
|
private Image _background;
|
|
[SerializeField]
|
|
private Sprite _backgroundOpenSprite;
|
|
|
|
[Header("Keypad Puzzle")]
|
|
[SerializeField]
|
|
private AshwickGate _ashwickGate;
|
|
|
|
[SerializeField]
|
|
private TransitionZone _keypadZone;
|
|
|
|
[SerializeField]
|
|
private TransitionZone _nextLevelZone;
|
|
|
|
private Sprite _defaultSprite;
|
|
|
|
protected async override UniTask PostLoadInternal()
|
|
{
|
|
if (SaveManager.GetLevelFlag(LevelFlag.AshwickGateOpen))
|
|
{
|
|
_background.sprite = _backgroundOpenSprite;
|
|
_nextLevelZone.Unlock();
|
|
await DestructionService.Destroy(_ashwickGate.gameObject);
|
|
await DestructionService.Destroy(_keypadZone.gameObject);
|
|
}
|
|
}
|
|
|
|
public async UniTask OpenGate()
|
|
{
|
|
EventCoordinator.PublishImmediate(new FadeEvent(false));
|
|
|
|
_background.sprite = _backgroundOpenSprite;
|
|
_nextLevelZone.Unlock();
|
|
await DestructionService.Destroy(_ashwickGate.gameObject);
|
|
await DestructionService.Destroy(_keypadZone.gameObject);
|
|
|
|
SaveManager.SetLevelFlag(LevelFlag.AshwickGateOpen, true);
|
|
|
|
EventCoordinator.PublishImmediate(new FadeEvent(true));
|
|
}
|
|
}
|
|
} |