using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class MonumentController : MonoBehaviour { [SerializeField] private float _energyToUnlock; [SerializeField] private MonumentInfo _info; private EnergyController _energyController; private float _currentEnergy; private ScoreController _scoreController; private CockpitUIModule _cockpitUI; private MonumentPreviewSound _previewSound; private MonumentPreview _monumentPreview; public UnityEvent OnUnlock; private void Awake() { _monumentPreview = FindObjectOfType(); _previewSound = FindObjectOfType(); _scoreController = FindObjectOfType(); _cockpitUI = FindObjectOfType(); _energyController = FindObjectOfType(); _currentEnergy = _energyToUnlock; } [ContextMenu("Debug Unlock")] public void UnlockMonument() { OnUnlock?.Invoke(); //var totalEnergy = _energyController.Energy; //LeanTween.value(totalEnergy, 0, 1).setEase(LeanTweenType.easeInOutSine).setOnUpdate((float x)=> //{ // _energyController.Energy = x; // _currentEnergy = Mathf.Clamp(_energyToUnlock - (totalEnergy - x), 0, int.MaxValue); // Debug.Log($"Clamped energy value: {_currentEnergy / _energyToUnlock}"); //}); _scoreController.AddScore(_info.Score, false, false); PlayerSetup.Instance.UnlockMonument(_info); } public void PlaySound() { _previewSound.PlaySound(_info.LongClip); _monumentPreview.ShowInfo(_info.Name, _info.Image, _info.LongDescription, _info.LongDuration); } public void ShowPreview() { _cockpitUI.ShowInfo(_info.Image, _info.Description); } }