PJ/Assets/scripts/UI/Buttons.cs

220 lines
5.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}