PJ/Assets/scripts/UI/Buttons.cs

221 lines
5.2 KiB
C#
Raw Permalink Normal View History

using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System.Threading.Tasks;
public class Buttons: MonoBehaviour
{
public GameObject panelSetting;
public GameObject Achievements;
private int LanguageID;
public GameObject DD;
public TMP_Dropdown DDE;
public GameObject Reborn;
public GameObject PlayB;
public string string1;
// Start is called before the first frame update
private void Start()
{
List<int> EL = new List<int> {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
if (!PlayerPrefs.HasKey("PassLevels"))
Currencies.Save("PassLevels",EL);
if (panelSetting != null) { panelSetting.SetActive(false); }
if (panelSetting != null) { panelSetting.SetActive(false); }
LanguageID = PlayerPrefs.GetInt("LanguageID");
if (DD != null)
{
DDE = DD.GetComponent<TMP_Dropdown>();
DDE.value = LanguageID;
}
if(PlayerPrefs.GetInt("LevelComplete") >= 50 && Reborn != null)
{
Reborn.SetActive(true);
PlayB.SetActive(false);
}
else { print(PlayerPrefs.GetInt("LevelComplete")); }
}
public void OpenScene (String sceneName)
{
End(sceneName);
}
public void Destroy()
{
Destroy(GameObject.Find("LvlMusic(Clone)"));
}
public void OpenSettings()
{
panelSetting.SetActive(true);
}
public void CloseSettings()
{
panelSetting.SetActive(false );
}
public void OpenAchievements()
{
Achievements.SetActive(true);
}
public void CloseAchievements()
{
Achievements.SetActive(false ) ;
}
public void Play()
{
End("LelelSelecter");
}
public void Skins()
{
End("Skins");
}
public void Minigames()
{
End("MiniGames");
}
public void Menu()
{
End("LelelSelecter");
}
public void MainMenu()
{
End("MainMenu");
}
public void Retry()
{
// 1. Если string1 пустая, значит это не импортированный уровень, а обычная сцена (миниигра)
if (string.IsNullOrEmpty(string1))
{
// Просто перезагружаем ту сцену, в которой находимся сейчас
End(SceneManager.GetActiveScene().name);
}
else
{
// 2. Если в string1 что-то есть, значит это уровень из файла (Level1, Level2...)
// ВАЖНО: убедись, что на объекте panelSetting есть компонент TransferScript.
// Если в редакторе Unity ты перепутал и там должен быть префаб Tobj — замени переменную.
TransferScript ts = Instantiate(panelSetting).GetComponent<TransferScript>();
ts.string1 = string1;
ts.bool1 = true; // Ставим true, так как это ПОВТОР (Retry)
ts.gameObject.SetActive(true);
ts.gameObject.name = "Tobj";
DontDestroyOnLoad(ts.gameObject);
End("ImportLeverl"); // Идем в сцену-загрузчик
}
}
public void ResetLevels()
{
PlayerPrefs.SetInt("LevelComplete", 0);
Debug.Log(PlayerPrefs.GetInt("LevelComplete"));
}
public void LC()
{
End("LevelCreator");
}
public void LeaveGame()
{
Application.Quit();
}
//MiniGames
public void Dropper()
{
End("GameDropper");
}
public void DoupleGame()
{
End("GameDoubleGame");
}
public void Gravity()
{
End("GameGravity");
}
public void Tower()
{
End("GameTower");
}
public void Iceberg()
{
End("GameIceberg");
}
public void Close()
{
Destroy(this.gameObject);
}
//settings
public void SetLang(Int32 LangID)
{
LanguageID = LangID;
PlayerPrefs.SetInt("LanguageID", LanguageID);
}
public void BackLLast()
{
PlayerPrefs.SetInt("LevelComplete", 50);
}
public static async void End(object S)
{
GameObject.FindGameObjectWithTag("Transition").GetComponent<Animator>().SetTrigger("End");
string LoadedScene;
LoadedScene = S.ToString();
await Task.Delay(750);
Time.timeScale = 1f;
try
{
int L = int.Parse(LoadedScene);
SceneManager.LoadScene(L);
}
catch
{
SceneManager.LoadScene(LoadedScene);
}
}
public void pause()
{
Time.timeScale = 0f;
}
public void resume()
{
Time.timeScale = 1f;
}
}