chicken_dy/Assets/Scripts/Game/GameLogic.cs

119 lines
4.2 KiB
C#
Raw Normal View History

2022-01-26 07:46:33 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameLogic : MonoBehaviour
{
2022-02-09 08:35:01 +00:00
[SerializeField] Transform mCtnStage;
private Film mFilm;
private int[] mSoundOrder;
2022-02-09 11:36:47 +00:00
private string mEndingStr;
2022-02-09 08:35:01 +00:00
private int mCurIndex;
2022-02-14 11:17:52 +00:00
private PanelGame mUIGame;
2022-02-09 08:35:01 +00:00
private void Start()
{
2022-02-14 11:17:52 +00:00
mUIGame = UIManager.Instance.OpenUI<PanelGame>();
mUIGame.Init(true);
2022-02-09 08:35:01 +00:00
mFilm = Instantiate(ResourceManager.Instance.LoadRes<Film>(Const.Path.GetFilm(PlayerData.Instance.CurrentLevelID)));
mFilm.transform.SetParent(mCtnStage);
mFilm.transform.localPosition = Vector3.zero;
mFilm.transform.localScale = Vector3.one;
2022-02-14 11:17:52 +00:00
mUIGame.DelPlay = PlayFilm;
2022-02-15 10:59:36 +00:00
2022-07-27 02:30:05 +00:00
//TKGSDKManager.Instance.NotifyGameStart(PlayerData.Instance.CurrentLevel);
//TKGSDKManager.Instance.LogEvent(Const.AdsEvent.StartGame, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString());
2022-02-09 08:35:01 +00:00
}
private void PlayFilm(int[] pSoundOrder)
2022-01-26 07:46:33 +00:00
{
2022-02-09 08:35:01 +00:00
mSoundOrder = pSoundOrder;
2022-02-09 11:36:47 +00:00
mEndingStr = "";
2022-02-09 08:35:01 +00:00
for (int i = 0; i < mSoundOrder.Length; i++)
{
2022-02-09 11:36:47 +00:00
mEndingStr += (mSoundOrder[i] + 1).ToString();
2022-02-09 08:35:01 +00:00
if (i < mSoundOrder.Length - 1)
{
2022-02-09 11:36:47 +00:00
mEndingStr += "_";
2022-02-09 08:35:01 +00:00
}
}
2022-02-09 11:36:47 +00:00
mFilm.PlayScene(mEndingStr);
2022-02-09 08:35:01 +00:00
2022-02-14 11:17:52 +00:00
mCurIndex = -1;
PlaySound();
2022-01-26 07:46:33 +00:00
}
2022-02-09 08:35:01 +00:00
private void PlaySound()
2022-01-26 07:46:33 +00:00
{
2022-02-09 08:35:01 +00:00
mCurIndex++;
2022-02-09 11:36:47 +00:00
if (mCurIndex < mSoundOrder.Length)
{
2022-02-14 11:17:52 +00:00
mUIGame.RiseSlot(mCurIndex);
2022-02-09 11:36:47 +00:00
AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex])));
2022-02-14 11:17:52 +00:00
TimerManager.Instance.Schedule(PlaySound, 1.5f);
2022-02-09 11:36:47 +00:00
}
else
{
//end
LevelData tLvData = GameConfig.Instance.GetLevelData(PlayerData.Instance.CurrentLevelID);
2022-02-09 12:07:40 +00:00
int tEndingID = tLvData.GetMatchingEndingID(mEndingStr.Replace("_",""));
2022-02-09 11:36:47 +00:00
UIManager.Instance.CloseUI<PanelGame>();
2022-05-31 15:14:44 +00:00
bool tIsWin = true;
2022-02-15 10:59:36 +00:00
2022-02-09 11:36:47 +00:00
PanelResult tUIResult = UIManager.Instance.OpenUI<PanelResult>();
2022-07-27 02:30:05 +00:00
tUIResult.ReviewShowed = false;// !TKGSDKManager.Instance.NotifyGameEnd(PlayerData.Instance.CurrentLevel, tIsWin);
2022-02-14 11:17:52 +00:00
bool tHasComplete = PlayerData.Instance.EndingCountOfLevel(PlayerData.Instance.CurrentLevelID) == tLvData.Endings.Count;
2022-02-09 12:07:40 +00:00
if (tEndingID >= 0)
2022-02-09 11:36:47 +00:00
{
2022-02-10 10:17:22 +00:00
bool tHasNew = PlayerData.Instance.AddEnding(PlayerData.Instance.CurrentLevelID, tEndingID);
2022-02-15 04:58:53 +00:00
tHasComplete = PlayerData.Instance.EndingCountOfLevel(PlayerData.Instance.CurrentLevelID) == tLvData.Endings.Count;
2022-02-09 12:07:40 +00:00
EndingData tEdData = tLvData.Endings[tEndingID];
2022-02-10 10:17:22 +00:00
if (tEdData.IsGoodEnding)
{
PlayerData.Instance.UnlockNewLevel();
AudioManager.Instance.PlaySound(AudioClipType.Win);
2022-02-15 10:59:36 +00:00
2022-05-31 15:14:44 +00:00
tIsWin = true;
2022-02-14 09:14:06 +00:00
}
else
{
AudioManager.Instance.PlaySound(AudioClipType.Lose);
2022-02-15 10:59:36 +00:00
2022-05-31 15:14:44 +00:00
tIsWin = false;
2022-02-10 10:17:22 +00:00
}
2022-02-14 10:38:47 +00:00
tUIResult.Init(PlayerData.Instance.CurrentLevelID, tEdData.EndingName, tEdData.IsGoodEnding, PlayerData.Instance.IsNextLevelPassed(), tHasNew, tHasComplete);
2022-02-09 11:36:47 +00:00
}
else
{
AudioManager.Instance.PlaySound(AudioClipType.Lose);
2022-02-14 11:17:52 +00:00
tUIResult.Init(PlayerData.Instance.CurrentLevelID, "", false, PlayerData.Instance.IsNextLevelPassed(), false, true);
2022-02-15 10:59:36 +00:00
2022-05-31 15:14:44 +00:00
tIsWin = false;
2022-02-09 11:36:47 +00:00
}
2022-07-27 02:30:05 +00:00
//TKGSDKManager.Instance.LogEvent(Const.AdsEvent.FinishGame, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString());
//TKGSDKManager.Instance.LogEvent(tIsWin ? Const.AdsEvent.GameWin : Const.AdsEvent.GameLose, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString());
2022-05-31 15:14:44 +00:00
2022-02-09 11:36:47 +00:00
tUIResult.DelAgain = PlayAgain;
}
}
private void PlayAgain()
{
UIManager.Instance.CloseUI<PanelResult>();
2022-02-14 11:17:52 +00:00
mUIGame = UIManager.Instance.OpenUI<PanelGame>();
mUIGame.Init();
2022-02-09 11:36:47 +00:00
mFilm.PlayScene("0");
2022-01-26 07:46:33 +00:00
}
2022-02-09 08:35:01 +00:00
}