PlaneRun/Assets/Scripts/MenuControler.cs

182 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
public class MenuControler : MonoBehaviour
{
public spawner spawnerScript;
public UiManager uiManager;
public PlayerMovement playerMovement;
public PLayerLife playerLife;
public shopManager shopmanager;
public soundManager soundmanager;
public score Score;
public PickupManager pickupManager;
public GameObject playerModels;
public bool playing;
public GameObject menu_UI;
public GameObject skins_UI;
public GameObject game_UI;
public Transform cam;
private bool inShop;
private float z;
private Vector2 cameraZoomRange = new Vector2(-442.7f, -277.8f);
[SerializeField]
PlayGamesManager PGM;
[SerializeField] private GameObject SigninUI;
[SerializeField] private GameObject UserUI;
// Start is called before the first frame update
void Start()
{
spawnerScript.enabled = false;
menu_UI.SetActive(true);
skins_UI.SetActive(false);
game_UI.SetActive(false);
}
// Update is called once per frame
void Update()
{
if(inShop && z<1)
{
z += Time.deltaTime * 2;
}else if(!inShop && z>0)
{
z -= Time.deltaTime * 2;
}
cam.transform.localPosition = new Vector3(0f,0f,Mathf.Lerp(cameraZoomRange.x, cameraZoomRange.y, z));
}
public void Play()
{
playerLife.life = true;
uiManager.gameOver = false;
uiManager.gameOverAnimPlayed = false;
shopmanager.coinsGiven = false;
soundmanager.PlayClick1();
spawnerScript.enabled = true;
inShop = false;
playing = true;
menu_UI.SetActive(false);
skins_UI.SetActive(false);
game_UI.SetActive(true);
}
public void Skins()
{
soundmanager.PlayClick1();
shopmanager.selectedSkin = shopmanager.equippedSkin;
shopmanager.UpdateUI();
shopmanager.UpdateButton();
inShop = true;
menu_UI.SetActive(false);
skins_UI.SetActive(true);
game_UI.SetActive(false);
}
public void Menu()
{
if (Score.scoreAmount > Score.highscoreAmount && !uiManager.paused)
{
Score.highscore.SetActive(true);
Score.highscoreAmount = Score.scoreAmount;
PlayerPrefs.SetFloat("HighScore", Score.highscoreAmount);
// Save data
PGM.OpenSave(true);
PGM.UpdateLeaderboardScore((int)Score.scoreAmount);
if (Score.scoreAmount >= 100)
PGM.UnlockAchievement("warming_up");
if(Score.scoreAmount >= 200)
PGM.UnlockAchievement("on_fire");
if (Score.scoreAmount >= 300)
PGM.UnlockAchievement("untouchable");
PGM.UpdateLeaderboardScore((int)Score.scoreAmount);
}
playing = false;
soundmanager.PlayClick1();
pickupManager.ClearPickups();
uiManager.Pause(false);
shopmanager.ShowSkin(shopmanager.equippedSkin);
playerMovement.gameObject.transform.position = Vector3.zero;
playerMovement.gameObject.transform.rotation = Quaternion.Euler(0, 0, 0);
playerModels.transform.rotation = Quaternion.Euler(0, 0, 0);
playerMovement.DontAllowMovement();
spawnerScript.enabled = false;
uiManager.gameOver = false;
KillAllEnemies();
playerMovement.enabled = true;
playerLife.Hp = 3;
playerModels.SetActive(true);
inShop = false;
playing = false;
menu_UI.SetActive(true);
skins_UI.SetActive(false);
game_UI.SetActive(false);
uiManager.gameOverAnimPlayed = false;
Score.scoreAmount = 0;
}
public void Quit()
{
//quit the game
Application.Quit();
}
void KillAllEnemies()
{
string[] str = { "missle", "shield", "speedBoost", "flare", "misslePickup" , "parachute"};
foreach(string s in str)
{
GameObject[] enemies = GameObject.FindGameObjectsWithTag(s);
foreach (GameObject enemy in enemies)
{
Destroy(enemy);
}
}
}
public void ShowSignInUI(bool state)
{
if (!Application.isEditor)
{
SigninUI.SetActive(state);
}
}
public void ShowUserUI(bool state)
{
if(!Application.isEditor)
{
UserUI.SetActive(state);
menu_UI.SetActive(!state);
}
}
}