| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using UnityEngine; | 
					
						
							|  |  |  |  | using UnityEngine.UI; | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  | using DG.Tweening; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | public class PanelEndings : BasePanel | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  |     [SerializeField] CanvasGroup mCvsBg; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  |     [SerializeField] RectTransform mRctBg; | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     [SerializeField] Button mBtnMask; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  |     [SerializeField] GameObject mGobComplete; | 
					
						
							|  |  |  |  |     [SerializeField] Transform mCtnEndings; | 
					
						
							|  |  |  |  |     [SerializeField] GameObject mTplEndingCell; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private int mLevelID; | 
					
						
							|  |  |  |  |     private LevelData mLvData; | 
					
						
							|  |  |  |  |     private List<EndingCell> mEndingList = new List<EndingCell>(); | 
					
						
							|  |  |  |  |     private List<EndingCell> mAvailableCells = new List<EndingCell>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void Awake() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         UIUtils.BindBtn(mBtnMask, OnClickMask); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |     public override void OnClose() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         base.OnClose(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-16 09:00:22 +00:00
										 |  |  |  |         AudioManager.Instance.PlaySound(AudioClipType.UIClose); | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  |     public void Init(int pLevelID) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mLevelID = pLevelID; | 
					
						
							|  |  |  |  |         mLvData = GameConfig.Instance.GetLevelData(pLevelID); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mRctBg.sizeDelta = new Vector2(mRctBg.sizeDelta.x, 150 + mLvData.Endings.Count * 60); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mGobComplete.SetActive(PlayerData.Instance.EndingCountOfLevel(mLevelID) == mLvData.Endings.Count); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         RefreshEndingList(); | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         mCvsBg.alpha = 0; | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         mRctBg.anchoredPosition = new Vector2(0, -160); | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         mCvsBg.DOFade(1, 0.3f); | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         mRctBg.DOAnchorPosY(100, 0.3f); | 
					
						
							| 
									
										
										
										
											2022-02-16 11:41:50 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (PlayerData.Instance.EndingAdTipCountOfLevel(mLevelID) < mLvData.Endings.Count) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             ToukaSDKManager.Instance.LogEventByUmengAdShow(Const.AdsEvtValue.UnlockSound); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void RefreshEndingList() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         ClearCells(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         for (int i = 0; i < mLvData.Endings.Count; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             EndingCell tCell = GetNewCell(); | 
					
						
							|  |  |  |  |             mEndingList.Add(tCell); | 
					
						
							|  |  |  |  |             tCell.Init(mLevelID, i); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private EndingCell GetNewCell() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         EndingCell tCell = null; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (mAvailableCells.Count <= mEndingList.Count) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             tCell = Instantiate(mTplEndingCell, mCtnEndings).GetComponent<EndingCell>(); | 
					
						
							|  |  |  |  |             tCell.transform.localScale = Vector3.one; | 
					
						
							|  |  |  |  |             mAvailableCells.Add(tCell); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         tCell = mAvailableCells[mEndingList.Count]; | 
					
						
							|  |  |  |  |         tCell.gameObject.SetActive(true); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         return tCell; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void ClearCells() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mEndingList.Clear(); | 
					
						
							|  |  |  |  |         for (int i = 0; i < mAvailableCells.Count; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mAvailableCells[i].gameObject.SetActive(false); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnClickMask() | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-10 07:31:53 +00:00
										 |  |  |  |         mCvsBg.DOFade(0, 0.3f); | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         mRctBg.DOAnchorPosY(-160, 0.3f).onComplete = Close; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |