using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace WildAttack
{
///
/// 游戏结束界面
///
public class GameOverPanel : MonoBehaviour
{
#region Members
[SerializeField] Image img_gameOver;
[SerializeField] Button btn_restart;
[SerializeField] Button btn_back;
[SerializeField] Text text_restart;
[SerializeField] Text text_back;
[SerializeField] Text text_highScoreTitle;
[SerializeField] Text text_highScore;
[SerializeField] Text text_currScoreTitle;
[SerializeField] Text text_currScore;
[SerializeField] Text text_endGame;
#endregion
#region Lifecycle
// Start is called before the first frame update
void Start()
{
RegisterEvent();
}
void OnEnable()
{
SimulateMouseController.ins?.AddOpenLocker(this);
}
void OnDisable()
{
SimulateMouseController.ins?.RemoveOpenLocker(this);
}
#endregion
#region ButtonClickEvent
///
/// 注册btn监听
///
private void RegisterEvent()
{
btn_restart.onClick.AddListener(OnBtnRestartClick);
btn_back.onClick.AddListener(OnBtnBackClick);
}
///
///点击 不玩了, 退出
///
private void OnBtnBackClick()
{
//#if UNITY_EDITOR
// UnityEditor.EditorApplication.isPlaying = false;
//#else
// Application.Quit();
//#endif
AudioMgr.ins.PlayBtn();
//退出按钮时候上传一次分数
GameMananger.GetInstance().OnUploadScore();
UserGameAnalyse1.Instance.showResultView(() => {
UnityEngine.SceneManagement.SceneManager.LoadScene("Home", UnityEngine.SceneManagement.LoadSceneMode.Single);
});
}
///
/// 重开按钮
///
private void OnBtnRestartClick()
{
AudioMgr.ins.PlayBtn();
// 重开设置
GameMananger.GetInstance().ResetMainCamera();
//GameMananger.GetInstance().ResetAim();
GameMananger.GetInstance().AddHp((int)GameModule.GetInstance().GetData("wallHp"));
GameMananger.GetInstance().SetScore(0);
// 重置enemys
for (int i = EnemyManager.GetInstance().enemyList.Count - 1; i >= 0; i--)
{
EnemyManager.GetInstance().enemyList[i].ResetEnemy();
}
//道具cd 关卡重置
EnemyPool.GetInstance().RecycleAll();
BalloonPool.GetInstance().RecycleAll();
FlotagePool.GetInstance().RecycleAll();
ProcessManager.GetInstance().RestartLevel();
UIManager.GetInstance().Restart();
}
#endregion
#region Functions
public void ShowGameOverPanel(bool isWin)
{
//text_endGame.text = StringModule.GetInstance().GetData("endGame");
text_restart.text = StringModule.GetInstance().GetData("restart");
text_back.text = StringModule.GetInstance().GetData("back");
//text_process.text = $"{StringModule.GetInstance().GetData("wave")}:{(ProcessManager.GetInstance().CurrLevel > ProcessModule.GetInstance().processDataDic.Count ? ProcessModule.GetInstance().processDataDic.Count : ProcessManager.GetInstance().CurrLevel)} / {ProcessModule.GetInstance().processDataDic.Count}";
//text_score.text = $"{StringModule.GetInstance().GetData("score")}:{GameMananger.GetInstance().TotalScore}";
text_currScoreTitle.text = StringModule.GetInstance().GetData("score") + ":";
text_currScore.text = GameMananger.GetInstance().TotalScore.ToString();
float recordScore = 0;
if (LoginMgr.myUserInfo.timeLimitGameScores.ContainsKey("WildAttack"))
{
recordScore = LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"];
}
if (GameMananger.GetInstance().TotalScore > recordScore)
{
recordScore = GameMananger.GetInstance().TotalScore;
LoginMgr.myUserInfo.timeLimitGameScores["WildAttack"] = recordScore;
LoginMgr.myUserInfo.Save();
}
text_highScoreTitle.text = StringModule.GetInstance().GetData("highScore") + ":";
text_highScore.text = recordScore.ToString();
GameOverInterface.OnGameOver(GameMgr.gameType);
}
#endregion
}
}