using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameLogic : MonoBehaviour { [SerializeField] Transform mCtnStage; private Film mFilm; private int[] mSoundOrder; private string mEndingStr; private int mCurIndex; private PanelGame mUIGame; private void Start() { mUIGame = UIManager.Instance.OpenUI(); mUIGame.Init(true); mFilm = Instantiate(ResourceManager.Instance.LoadRes(Const.Path.GetFilm(PlayerData.Instance.CurrentLevelID))); mFilm.transform.SetParent(mCtnStage); mFilm.transform.localPosition = Vector3.zero; mFilm.transform.localScale = Vector3.one; mUIGame.DelPlay = PlayFilm; //TKGSDKManager.Instance.NotifyGameStart(PlayerData.Instance.CurrentLevel); //TKGSDKManager.Instance.LogEvent(Const.AdsEvent.StartGame, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString()); TKGSDKManager.Instance.ScreenRecordingLogic(TKGSDKManager.SCLCategory.开始, "share title", new List() { "尖叫吧小鸡仔" }, () => { Debug.Log("分享结束 ----"); }); } private void PlayFilm(int[] pSoundOrder) { mSoundOrder = pSoundOrder; mEndingStr = ""; for (int i = 0; i < mSoundOrder.Length; i++) { mEndingStr += (mSoundOrder[i] + 1).ToString(); if (i < mSoundOrder.Length - 1) { mEndingStr += "_"; } } mFilm.PlayScene(mEndingStr); mCurIndex = -1; PlaySound(); } private void PlaySound() { mCurIndex++; if (mCurIndex < mSoundOrder.Length) { mUIGame.RiseSlot(mCurIndex); AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex]))); TimerManager.Instance.Schedule(PlaySound, 1.5f); } else { //end LevelData tLvData = GameConfig.Instance.GetLevelData(PlayerData.Instance.CurrentLevelID); int tEndingID = tLvData.GetMatchingEndingID(mEndingStr.Replace("_","")); UIManager.Instance.CloseUI(); bool tIsWin = true; PanelResult tUIResult = UIManager.Instance.OpenUI(); tUIResult.ReviewShowed = false;// !TKGSDKManager.Instance.NotifyGameEnd(PlayerData.Instance.CurrentLevel, tIsWin); TKGSDKManager.Instance.ScreenRecordingLogic(TKGSDKManager.SCLCategory.结束, "share title", new List() { "尖叫吧小鸡仔" }, () => { Debug.Log("分享结束 ----"); }); bool tHasComplete = PlayerData.Instance.EndingCountOfLevel(PlayerData.Instance.CurrentLevelID) == tLvData.Endings.Count; if (tEndingID >= 0) { bool tHasNew = PlayerData.Instance.AddEnding(PlayerData.Instance.CurrentLevelID, tEndingID); tHasComplete = PlayerData.Instance.EndingCountOfLevel(PlayerData.Instance.CurrentLevelID) == tLvData.Endings.Count; EndingData tEdData = tLvData.Endings[tEndingID]; if (tEdData.IsGoodEnding) { PlayerData.Instance.UnlockNewLevel(); AudioManager.Instance.PlaySound(AudioClipType.Win); tIsWin = true; } else { AudioManager.Instance.PlaySound(AudioClipType.Lose); tIsWin = false; } tUIResult.Init(PlayerData.Instance.CurrentLevelID, tEdData.EndingName, tEdData.IsGoodEnding, PlayerData.Instance.IsNextLevelPassed(), tHasNew, tHasComplete); } else { AudioManager.Instance.PlaySound(AudioClipType.Lose); tUIResult.Init(PlayerData.Instance.CurrentLevelID, "", false, PlayerData.Instance.IsNextLevelPassed(), false, true); tIsWin = false; } //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()); tUIResult.DelAgain = PlayAgain; } } private void PlayAgain() { UIManager.Instance.CloseUI(); mUIGame = UIManager.Instance.OpenUI(); mUIGame.Init(); mFilm.PlayScene("0"); } }