Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class MapLevel : MonoBehaviour
- {
- public static MapLevel ML;
- private Vector3 _originalScale;
- private bool _isScaled;
- public float OverScale = 1.05f;
- public float ClickScale = 0.95f;
- public int Number;
- public bool IsLocked;
- public Transform Lock;
- public Transform PathPivot;
- public Object LevelScene;
- public string SceneName;
- public int StarsCount;
- public Transform StarsHoster;
- public Transform Star1;
- public Transform Star2;
- public Transform Star3;
- public Transform SolidStarsHoster;
- public Transform SolidStars0;
- public Transform SolidStars1;
- public Transform SolidStars2;
- public Transform SolidStars3;
- public void Awake()
- {
- _originalScale = transform.localScale;
- }
- #region Enable click
- public void OnMouseEnter()
- {
- if (LevelsMap.GetIsClickEnabled())
- Scale(OverScale);
- }
- public void OnMouseDown()
- {
- if (LevelsMap.GetIsClickEnabled())
- Scale(ClickScale);
- }
- public void OnMouseExit()
- {
- if (LevelsMap.GetIsClickEnabled())
- ResetScale();
- }
- private void Scale(float scaleValue)
- {
- transform.localScale = _originalScale * scaleValue;
- _isScaled = true;
- }
- public void OnDisable()
- {
- if (LevelsMap.GetIsClickEnabled())
- ResetScale();
- }
- public void OnMouseUpAsButton()
- {
- if (LevelsMap.GetIsClickEnabled() && !GameObject.Find("MenuPlay") && !GameObject.Find("BoostersLeftInfo") && !GameObject.Find("BoostersLeft") && !GameObject.Find("MenuTimerOn"))
- {
- ResetScale();
- LevelsMap.OnLevelSelected(Number);
- foreach (int lvl in LevelManager.THIS.keyLvl)
- {
- if (LevelsMap.IsLevelLocked(LevelManager.THIS.currentLevel + 1)) //если следующий уровень закрыт, значит этот еще не пройден.
- {
- if (LevelManager.THIS.currentLevel == lvl)// если входит в уровни с ключами и он еще не пройден, тогда открывается Меню таймера
- {
- if (GameObject.Find("MenuPlay"))
- {
- GameObject.Find("MenuPlay").SetActive(false);
- }
- GameObject.Find("CanvasGlobal").transform.Find("TimerPanel").transform.Find("MenuTimerOn").gameObject.SetActive(true);
- return;
- }
- }
- }
- }
- }
- private void ResetScale()
- {
- if (_isScaled)
- transform.localScale = _originalScale;
- }
- #endregion
- public void UpdateState(int starsCount, bool isLocked)
- {
- StarsCount = starsCount;
- UpdateStars(starsCount);
- IsLocked = isLocked;
- Lock.gameObject.SetActive(isLocked);
- }
- public void UpdateStars(int starsCount)
- {
- Star1.gameObject.SetActive(starsCount >= 1);
- Star2.gameObject.SetActive(starsCount >= 2);
- Star3.gameObject.SetActive(starsCount >= 3);
- SolidStars0.gameObject.SetActive(starsCount == 0);
- SolidStars1.gameObject.SetActive(starsCount == 1);
- SolidStars2.gameObject.SetActive(starsCount == 2);
- SolidStars3.gameObject.SetActive(starsCount == 3);
- }
- public void UpdateStarsType(StarsType starsType)
- {
- StarsHoster.gameObject.SetActive(starsType == StarsType.Separated);
- SolidStarsHoster.gameObject.SetActive(starsType == StarsType.Solid);
- }
- }
Add Comment
Please, Sign In to add comment