| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | using System.Collections; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using UnityEngine; | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  | using UnityEngine.UI; | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  | using DG.Tweening; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | public class PanelMain : BasePanel | 
					
						
							|  |  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     [SerializeField] CanvasGroup mCvsOpenPart; | 
					
						
							|  |  |  |  |     [SerializeField] Button mBtnOpen; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     [SerializeField] GameObject mGobLogo; | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |     [SerializeField] AudioClip[] mLogoSounds; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     [SerializeField] float[] mIconPosX; | 
					
						
							|  |  |  |  |     [SerializeField] Image[] mImgLevelIcons; | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     [SerializeField] RectTransform mRctBottom; | 
					
						
							|  |  |  |  |     [SerializeField] RectTransform mRctFilmCells; | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |     [SerializeField] Transform mCtnBubble; | 
					
						
							|  |  |  |  |     [SerializeField] GameObject mTplBubble; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     [SerializeField] Button mBtnLast; | 
					
						
							|  |  |  |  |     [SerializeField] Button mBtnNext; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     [SerializeField] Button mBtnStartSingle; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     [SerializeField] Button mBtnStart; | 
					
						
							|  |  |  |  |     [SerializeField] Button mBtnLevel; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-15 10:18:44 +00:00
										 |  |  |  |     [SerializeField] Button mBtnPrivacy; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     private List<Image> mLevelIconList = new List<Image>(); | 
					
						
							| 
									
										
										
										
											2022-02-15 10:18:44 +00:00
										 |  |  |  |     private List<int> mLevelList = new List<int>(); | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     private int mTotalLevel; | 
					
						
							|  |  |  |  |     private const int FOCUS_IDX = 2; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private int mWaftDir = 1; | 
					
						
							|  |  |  |  |     private bool mIsWafting = false; | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     private int mSoundIndex = -1; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private bool mIsRolling = false; | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |     private TimerUnit mLogoSoundTimer; | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private TimerUnit mRollTimer; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |     private SoundBubble mCurrentBubble; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private const float FIX_DURATION = 0.2f; | 
					
						
							|  |  |  |  |     private const float FIX_WAIT = 10; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private const float ROLL_DURATION = 0.3f; | 
					
						
							|  |  |  |  |     private const float WAFT_DURATION = 4f; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     private static bool sFirstIn = true; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     private void Awake() | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         UIUtils.BindBtn(mBtnOpen, OnClickOpen); | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |         UIUtils.BindBtn(mBtnLast, OnClickLast, AudioType.Click_Last); | 
					
						
							|  |  |  |  |         UIUtils.BindBtn(mBtnNext, OnClickNext, AudioType.Click_Next); | 
					
						
							|  |  |  |  |         UIUtils.BindBtn(mBtnStartSingle, OnClickStartSingle, AudioType.StartGame); | 
					
						
							|  |  |  |  |         UIUtils.BindBtn(mBtnStart, OnClickStart, AudioType.StartGame); | 
					
						
							|  |  |  |  |         UIUtils.BindBtn(mBtnLevel, OnClickLevel, AudioType.Click_Normal); | 
					
						
							| 
									
										
										
										
											2022-02-15 10:18:44 +00:00
										 |  |  |  |         UIUtils.BindBtn(mBtnPrivacy, OnClickPrivacy); | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     public override void OnOpen() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         base.OnOpen(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |         mLogoSoundTimer = TimerManager.Instance.CreateTimerUnit(); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mRollTimer = TimerManager.Instance.CreateTimerUnit(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         if (sFirstIn) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             sFirstIn = false; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             mCvsOpenPart.alpha = 1; | 
					
						
							|  |  |  |  |             mCvsOpenPart.gameObject.SetActive(true); | 
					
						
							|  |  |  |  |             mBtnOpen.enabled = true; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             mRollTimer.StartTimer(FadeOutOpenPart, 3); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             ShowMainPart(); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     public override void OnClose() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         base.OnClose(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |         if (mLogoSoundTimer != null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mLogoSoundTimer.Destroy(); | 
					
						
							|  |  |  |  |             mLogoSoundTimer = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         if (mRollTimer != null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.Destroy(); | 
					
						
							|  |  |  |  |             mRollTimer = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnDestroy() | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |         if (mLogoSoundTimer != null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mLogoSoundTimer.Destroy(); | 
					
						
							|  |  |  |  |             mLogoSoundTimer = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         if (mRollTimer != null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.Destroy(); | 
					
						
							|  |  |  |  |             mRollTimer = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     private void FadeOutOpenPart() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mRollTimer.CancelTimer(); | 
					
						
							|  |  |  |  |         mCvsOpenPart.DOFade(0, 0.5f).SetEase(Ease.Linear).onComplete = ShowMainPart; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |     private void PlayLogoSound() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mSoundIndex++; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (mSoundIndex < mLogoSounds.Length) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             AudioManager.Instance.PlaySound(mLogoSounds[mSoundIndex]); | 
					
						
							|  |  |  |  |             mLogoSoundTimer.StartTimer(PlayLogoSound, 0.8f); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mLogoSoundTimer.CancelTimer(); | 
					
						
							|  |  |  |  |             mLogoSoundTimer.Destroy(); | 
					
						
							|  |  |  |  |             mLogoSoundTimer = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     private void ShowMainPart() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mCvsOpenPart.gameObject.SetActive(false); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mGobLogo.SetActive(true); | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  |         mSoundIndex = -1; | 
					
						
							|  |  |  |  |         mLogoSoundTimer.StartTimer(PlayLogoSound, 0.5f); | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         mBtnStartSingle.gameObject.SetActive(false); | 
					
						
							|  |  |  |  |         mRctBottom.anchoredPosition = Vector2.zero; | 
					
						
							|  |  |  |  |         mRctFilmCells.anchoredPosition = new Vector2(-1550, 0); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (PlayerData.Instance.UnlockedLevel < 3) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.StartTimer(ShowStartSingle, 3); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.StartTimer(ShowFilm, 3); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void ShowStartSingle() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mBtnStartSingle.gameObject.SetActive(true); | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         AudioManager.Instance.PlayBGMusic(AudioType.BGM, 0.8f); | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void ShowFilm() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         InitLevelIcons(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mRctFilmCells.DOAnchorPosX(0, 0.5f).SetEase(Ease.Linear); | 
					
						
							|  |  |  |  |         mRctBottom.DOAnchorPosY(580, 0.5f).SetDelay(0.2f).SetEase(Ease.Linear).onComplete = () => | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Waft(); | 
					
						
							|  |  |  |  |             ShowBubble(); | 
					
						
							|  |  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2022-02-14 09:14:06 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         AudioManager.Instance.PlayBGMusic(AudioType.BGM, 0.8f); | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     private void InitLevelIcons() | 
					
						
							|  |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-14 04:44:49 +00:00
										 |  |  |  |         mTotalLevel = PlayerData.Instance.UnlockedLevel; | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         int tLevel = 0; | 
					
						
							|  |  |  |  |         for (int i = 0; i < mImgLevelIcons.Length; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             tLevel = GetLevelInCircle(-2 + i + PlayerData.Instance.CurrentLevel, mTotalLevel); | 
					
						
							|  |  |  |  |             mLevelList.Add(tLevel); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             mImgLevelIcons[i].sprite = ResourceManager.Instance.LoadRes<Sprite>(Const.Path.GetLevelIconBig(GameConfig.Instance.LevelSort[(tLevel - 1) % mTotalLevel])); | 
					
						
							|  |  |  |  |             mLevelIconList.Add(mImgLevelIcons[i]); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private int GetLevelInCircle(int pLevelNum, int pTotalLevel) | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         int tFinalLevel = pLevelNum; | 
					
						
							|  |  |  |  |         if (tFinalLevel <= 0) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             while (tFinalLevel <= 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 tFinalLevel += pTotalLevel; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         else if (tFinalLevel > pTotalLevel) | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             tFinalLevel = (tFinalLevel - 1) % pTotalLevel + 1; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         return tFinalLevel; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private void FixRolling() | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mIsWafting = false; | 
					
						
							|  |  |  |  |         mIsRolling = false; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         for (int i = 1; i < mLevelIconList.Count - 1; i++) | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |             mLevelIconList[i].rectTransform.DOKill(); | 
					
						
							|  |  |  |  |             mLevelIconList[i].rectTransform.DOAnchorPosX(mIconPosX[i], FIX_DURATION).SetEase(Ease.OutSine); | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mRollTimer.StartTimer(Waft, FIX_WAIT); | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         ShowBubble(); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void Waft() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mIsWafting = true; | 
					
						
							|  |  |  |  |         mIsRolling = false; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         for (int i = 1; i < mLevelIconList.Count - 1; i++) | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |             mLevelIconList[i].rectTransform.DOKill(); | 
					
						
							|  |  |  |  |             mLevelIconList[i].rectTransform.DOAnchorPosX(mIconPosX[i] + mWaftDir * 80, WAFT_DURATION).SetEase(Ease.Linear); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         if (mWaftDir == 1) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.StartTimer(RollRight, WAFT_DURATION); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mRollTimer.StartTimer(RollLeft, WAFT_DURATION); | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private void RollLeft() | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     { | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mIsRolling = true; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         for (int i = 0; i < mLevelList.Count; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mLevelList[i] = GetLevelInCircle(mLevelList[i] + 1, mTotalLevel); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Image tStartImg = mLevelIconList[0]; | 
					
						
							|  |  |  |  |         for (int i = 1; i < mLevelIconList.Count; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             int tLastIndex = (i - 1) % mLevelIconList.Count; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             mLevelIconList[tLastIndex] = mLevelIconList[i]; | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |             mLevelIconList[tLastIndex].rectTransform.DOKill(); | 
					
						
							|  |  |  |  |             mLevelIconList[tLastIndex].rectTransform.DOAnchorPosX(mIconPosX[tLastIndex], ROLL_DURATION).SetEase(Ease.OutSine); | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         mLevelIconList[mLevelIconList.Count - 1] = tStartImg; | 
					
						
							|  |  |  |  |         mLevelIconList[mLevelIconList.Count - 1].sprite = ResourceManager.Instance.LoadRes<Sprite>(Const.Path.GetLevelIconBig(GameConfig.Instance.LevelSort[mLevelList[mLevelIconList.Count - 1] - 1])); | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |         mLevelIconList[mLevelIconList.Count - 1].rectTransform.anchoredPosition = new Vector2(mIconPosX[mLevelIconList.Count - 1], 0); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |         HideBubble(); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mRollTimer.StartTimer(RollOver, ROLL_DURATION); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void RollRight() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mIsRolling = true; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         for (int i = 0; i < mLevelList.Count; i++) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mLevelList[i] = GetLevelInCircle(mLevelList[i] - 1, mTotalLevel); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Image tEndImg = mLevelIconList[mLevelIconList.Count - 1]; | 
					
						
							|  |  |  |  |         for (int i = mLevelIconList.Count - 2; i >= 0; i--) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             int tNextIndex = (i + 1) % mLevelIconList.Count; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             mLevelIconList[tNextIndex] = mLevelIconList[i]; | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |             mLevelIconList[tNextIndex].rectTransform.DOKill(); | 
					
						
							|  |  |  |  |             mLevelIconList[tNextIndex].rectTransform.DOAnchorPosX(mIconPosX[tNextIndex], ROLL_DURATION).SetEase(Ease.OutSine); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         mLevelIconList[0] = tEndImg; | 
					
						
							|  |  |  |  |         mLevelIconList[0].sprite = ResourceManager.Instance.LoadRes<Sprite>(Const.Path.GetLevelIconBig(GameConfig.Instance.LevelSort[mLevelList[0] - 1])); | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |         mLevelIconList[0].rectTransform.anchoredPosition = new Vector2(mIconPosX[0], 0); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |         HideBubble(); | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |         mRollTimer.StartTimer(RollOver, ROLL_DURATION); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void RollOver() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mIsRolling = false; | 
					
						
							|  |  |  |  |         mRollTimer.StartTimer(Waft, mIsWafting ? -1 : FIX_WAIT); | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         ShowBubble(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void ShowBubble() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         HideBubble(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mCurrentBubble = Instantiate(mTplBubble, mCtnBubble).GetComponent<SoundBubble>(); | 
					
						
							|  |  |  |  |         mCurrentBubble.gameObject.SetActive(true); | 
					
						
							|  |  |  |  |         mCurrentBubble.GetComponent<RectTransform>().anchoredPosition = Vector2.zero; | 
					
						
							|  |  |  |  |         mCurrentBubble.transform.localScale = Vector3.one; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |         mCurrentBubble.Show(GameConfig.Instance.LevelSort[mLevelList[FOCUS_IDX] - 1]); | 
					
						
							| 
									
										
										
										
											2022-02-11 06:02:09 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void HideBubble() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         if (mCurrentBubble != null) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mCurrentBubble.Hide(); | 
					
						
							|  |  |  |  |             mCurrentBubble = null; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     private void OnClickOpen() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         mBtnOpen.enabled = false; | 
					
						
							|  |  |  |  |         FadeOutOpenPart(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 04:04:53 +00:00
										 |  |  |  |     private void OnClickLast() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         if (mIsRolling) | 
					
						
							|  |  |  |  |             return; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (mIsWafting && mWaftDir == -1)//turn around | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             FixRolling(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mIsWafting = false; | 
					
						
							|  |  |  |  |             RollRight(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mWaftDir = 1; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnClickNext() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         if (mIsRolling) | 
					
						
							|  |  |  |  |             return; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         if (mIsWafting && mWaftDir == 1)//turn around | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             FixRolling(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         else | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             mIsWafting = false; | 
					
						
							|  |  |  |  |             RollLeft(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         mWaftDir = -1; | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-11 09:03:26 +00:00
										 |  |  |  |     private void OnClickStartSingle() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         GameManager.Instance.LoadGame(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-10 13:45:04 +00:00
										 |  |  |  |     private void OnClickStart() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         PlayerData.Instance.CurrentLevel = mLevelList[FOCUS_IDX]; | 
					
						
							|  |  |  |  |         GameManager.Instance.LoadGame(); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnClickLevel() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         PanelLevel tUILevel = UIManager.Instance.OpenUI<PanelLevel>(); | 
					
						
							|  |  |  |  |         tUILevel.Init(false); | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-02-15 10:18:44 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     private void OnClickPrivacy() | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         ToukaUtils.OpenPrivacyURL(); | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-02-10 04:26:52 +00:00
										 |  |  |  | } |