| 
									
										
										
										
											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; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void Start() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>(); | 
					
						
							|  |  |  |  |         tUIGame.Init(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         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; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         tUIGame.DelPlay = PlayFilm; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     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
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         mCurIndex = 0; | 
					
						
							|  |  |  |  |         AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex]))); | 
					
						
							| 
									
										
										
										
											2022-02-09 11:36:47 +00:00
										 |  |  |  |         TimerManager.Instance.Schedule(PlaySound, 1.5f, mSoundOrder.Length); | 
					
						
							| 
									
										
										
										
											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) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex]))); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         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>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             PanelResult tUIResult = UIManager.Instance.OpenUI<PanelResult>(); | 
					
						
							| 
									
										
										
										
											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-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(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 tUIResult.Init(PlayerData.Instance.CurrentLevelID, tEdData.EndingName, tEdData.IsGoodEnding, tHasNew, PlayerData.Instance.HasUnlockedAllLevel()); | 
					
						
							| 
									
										
										
										
											2022-02-09 11:36:47 +00:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-02-10 10:17:22 +00:00
										 |  |  |  |                 tUIResult.Init(PlayerData.Instance.CurrentLevelID, "", false, false, PlayerData.Instance.HasUnlockedAllLevel()); | 
					
						
							| 
									
										
										
										
											2022-02-09 11:36:47 +00:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             tUIResult.DelAgain = PlayAgain; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void PlayAgain() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         UIManager.Instance.CloseUI<PanelResult>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>(); | 
					
						
							|  |  |  |  |         tUIGame.Init(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mFilm.PlayScene("0"); | 
					
						
							| 
									
										
										
										
											2022-01-26 07:46:33 +00:00
										 |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-02-09 08:35:01 +00:00
										 |  |  |  | } |